From 39b841fcb2eb7062c66d9f2540e79f430f4d294a Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Sun, 25 Jan 2026 23:16:38 +0300 Subject: [PATCH 01/16] 2026.1 --- .gitignore | 234 +-- .gitlab-ci.yml | 51 - .idea/evibes.ico | Bin 41662 -> 0 bytes .idea/icon.svg | 1270 ++++++++++++++++- CHANGELOG.md | 35 + CODEOWNERS | 2 +- Dockerfiles/app.Dockerfile | 8 +- Dockerfiles/beat.Dockerfile | 9 +- Dockerfiles/stock_updater.Dockerfile | 9 +- Dockerfiles/supervisor.Dockerfile | 8 +- Dockerfiles/worker.Dockerfile | 8 +- LICENSE | 6 +- Makefile | 100 ++ README.md | 321 +++-- docker-compose.yml | 4 +- .../blog/locale/ar_AR/LC_MESSAGES/django.mo | Bin 3945 -> 0 bytes .../blog/locale/ar_AR/LC_MESSAGES/django.po | 2 +- .../blog/locale/cs_CZ/LC_MESSAGES/django.mo | Bin 3469 -> 0 bytes .../blog/locale/cs_CZ/LC_MESSAGES/django.po | 2 +- .../blog/locale/da_DK/LC_MESSAGES/django.mo | Bin 3397 -> 0 bytes .../blog/locale/da_DK/LC_MESSAGES/django.po | 2 +- .../blog/locale/de_DE/LC_MESSAGES/django.mo | Bin 3547 -> 0 bytes .../blog/locale/de_DE/LC_MESSAGES/django.po | 2 +- .../blog/locale/en_GB/LC_MESSAGES/django.mo | Bin 3243 -> 0 bytes .../blog/locale/en_GB/LC_MESSAGES/django.po | 6 +- .../blog/locale/en_US/LC_MESSAGES/django.mo | Bin 3248 -> 0 bytes .../blog/locale/en_US/LC_MESSAGES/django.po | 2 +- .../blog/locale/es_ES/LC_MESSAGES/django.mo | Bin 3493 -> 0 bytes .../blog/locale/es_ES/LC_MESSAGES/django.po | 2 +- .../blog/locale/fa_IR/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes .../blog/locale/fa_IR/LC_MESSAGES/django.po | 2 +- .../blog/locale/fr_FR/LC_MESSAGES/django.mo | Bin 3556 -> 0 bytes .../blog/locale/fr_FR/LC_MESSAGES/django.po | 2 +- .../blog/locale/he_IL/LC_MESSAGES/django.mo | Bin 3716 -> 0 bytes .../blog/locale/he_IL/LC_MESSAGES/django.po | 2 +- .../blog/locale/hi_IN/LC_MESSAGES/django.mo | Bin 359 -> 0 bytes .../blog/locale/hi_IN/LC_MESSAGES/django.po | 6 +- .../blog/locale/hr_HR/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes .../blog/locale/hr_HR/LC_MESSAGES/django.po | 2 +- .../blog/locale/id_ID/LC_MESSAGES/django.mo | Bin 3375 -> 0 bytes .../blog/locale/id_ID/LC_MESSAGES/django.po | 2 +- .../blog/locale/it_IT/LC_MESSAGES/django.mo | Bin 3434 -> 0 bytes .../blog/locale/it_IT/LC_MESSAGES/django.po | 2 +- .../blog/locale/ja_JP/LC_MESSAGES/django.mo | Bin 3791 -> 0 bytes .../blog/locale/ja_JP/LC_MESSAGES/django.po | 2 +- .../blog/locale/kk_KZ/LC_MESSAGES/django.mo | Bin 359 -> 0 bytes .../blog/locale/kk_KZ/LC_MESSAGES/django.po | 6 +- .../blog/locale/ko_KR/LC_MESSAGES/django.mo | Bin 3582 -> 0 bytes .../blog/locale/ko_KR/LC_MESSAGES/django.po | 2 +- .../blog/locale/nl_NL/LC_MESSAGES/django.mo | Bin 3392 -> 0 bytes .../blog/locale/nl_NL/LC_MESSAGES/django.po | 2 +- .../blog/locale/no_NO/LC_MESSAGES/django.mo | Bin 3386 -> 0 bytes .../blog/locale/no_NO/LC_MESSAGES/django.po | 2 +- .../blog/locale/pl_PL/LC_MESSAGES/django.mo | Bin 3401 -> 0 bytes .../blog/locale/pl_PL/LC_MESSAGES/django.po | 2 +- .../blog/locale/pt_BR/LC_MESSAGES/django.mo | Bin 3533 -> 0 bytes .../blog/locale/pt_BR/LC_MESSAGES/django.po | 2 +- .../blog/locale/ro_RO/LC_MESSAGES/django.mo | Bin 3526 -> 0 bytes .../blog/locale/ro_RO/LC_MESSAGES/django.po | 2 +- .../blog/locale/ru_RU/LC_MESSAGES/django.mo | Bin 4587 -> 0 bytes .../blog/locale/ru_RU/LC_MESSAGES/django.po | 2 +- .../blog/locale/sv_SE/LC_MESSAGES/django.mo | Bin 3421 -> 0 bytes .../blog/locale/sv_SE/LC_MESSAGES/django.po | 2 +- .../blog/locale/th_TH/LC_MESSAGES/django.mo | Bin 5294 -> 0 bytes .../blog/locale/th_TH/LC_MESSAGES/django.po | 2 +- .../blog/locale/tr_TR/LC_MESSAGES/django.mo | Bin 3449 -> 0 bytes .../blog/locale/tr_TR/LC_MESSAGES/django.po | 2 +- .../blog/locale/vi_VN/LC_MESSAGES/django.mo | Bin 3690 -> 0 bytes .../blog/locale/vi_VN/LC_MESSAGES/django.po | 2 +- .../blog/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 3112 -> 0 bytes .../blog/locale/zh_Hans/LC_MESSAGES/django.po | 2 +- engine/blog/viewsets.py | 4 +- engine/core/admin.py | 66 +- engine/core/docs/images/evibes-big-simple.png | Bin 63681 -> 0 bytes engine/core/docs/images/evibes-big.png | Bin 97723 -> 0 bytes engine/core/docs/images/evibes.ico | Bin 41662 -> 0 bytes engine/core/docs/images/evibes.png | Bin 9628 -> 0 bytes engine/core/docs/images/favicon.svg | 25 - engine/core/graphene/mutations.py | 2 +- engine/core/graphene/object_types.py | 2 +- .../core/locale/ar_AR/LC_MESSAGES/django.mo | Bin 108552 -> 0 bytes .../core/locale/ar_AR/LC_MESSAGES/django.po | 20 +- .../core/locale/cs_CZ/LC_MESSAGES/django.mo | Bin 92964 -> 0 bytes .../core/locale/cs_CZ/LC_MESSAGES/django.po | 24 +- .../core/locale/da_DK/LC_MESSAGES/django.mo | Bin 90700 -> 0 bytes .../core/locale/da_DK/LC_MESSAGES/django.po | 24 +- .../core/locale/de_DE/LC_MESSAGES/django.mo | Bin 95990 -> 0 bytes .../core/locale/de_DE/LC_MESSAGES/django.po | 24 +- .../core/locale/en_GB/LC_MESSAGES/django.mo | Bin 87386 -> 0 bytes .../core/locale/en_GB/LC_MESSAGES/django.po | 26 +- .../core/locale/en_US/LC_MESSAGES/django.mo | Bin 87377 -> 0 bytes .../core/locale/en_US/LC_MESSAGES/django.po | 22 +- .../core/locale/es_ES/LC_MESSAGES/django.mo | Bin 93939 -> 0 bytes .../core/locale/es_ES/LC_MESSAGES/django.po | 22 +- .../core/locale/fa_IR/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes .../core/locale/fa_IR/LC_MESSAGES/django.po | 12 +- .../core/locale/fr_FR/LC_MESSAGES/django.mo | Bin 96786 -> 0 bytes .../core/locale/fr_FR/LC_MESSAGES/django.po | 24 +- .../core/locale/he_IL/LC_MESSAGES/django.mo | Bin 101120 -> 0 bytes .../core/locale/he_IL/LC_MESSAGES/django.po | 22 +- .../core/locale/hi_IN/LC_MESSAGES/django.mo | Bin 359 -> 0 bytes .../core/locale/hi_IN/LC_MESSAGES/django.po | 16 +- .../core/locale/hr_HR/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes .../core/locale/hr_HR/LC_MESSAGES/django.po | 12 +- .../core/locale/id_ID/LC_MESSAGES/django.mo | Bin 90973 -> 0 bytes .../core/locale/id_ID/LC_MESSAGES/django.po | 24 +- .../core/locale/it_IT/LC_MESSAGES/django.mo | Bin 94251 -> 0 bytes .../core/locale/it_IT/LC_MESSAGES/django.po | 22 +- .../core/locale/ja_JP/LC_MESSAGES/django.mo | Bin 99557 -> 0 bytes .../core/locale/ja_JP/LC_MESSAGES/django.po | 22 +- .../core/locale/kk_KZ/LC_MESSAGES/django.mo | Bin 359 -> 0 bytes .../core/locale/kk_KZ/LC_MESSAGES/django.po | 16 +- .../core/locale/ko_KR/LC_MESSAGES/django.mo | Bin 94150 -> 0 bytes .../core/locale/ko_KR/LC_MESSAGES/django.po | 22 +- .../core/locale/nl_NL/LC_MESSAGES/django.mo | Bin 93788 -> 0 bytes .../core/locale/nl_NL/LC_MESSAGES/django.po | 24 +- .../core/locale/no_NO/LC_MESSAGES/django.mo | Bin 91345 -> 0 bytes .../core/locale/no_NO/LC_MESSAGES/django.po | 24 +- .../core/locale/pl_PL/LC_MESSAGES/django.mo | Bin 93104 -> 0 bytes .../core/locale/pl_PL/LC_MESSAGES/django.po | 24 +- .../core/locale/pt_BR/LC_MESSAGES/django.mo | Bin 93672 -> 0 bytes .../core/locale/pt_BR/LC_MESSAGES/django.po | 22 +- .../core/locale/ro_RO/LC_MESSAGES/django.mo | Bin 95551 -> 0 bytes .../core/locale/ro_RO/LC_MESSAGES/django.po | 22 +- .../core/locale/ru_RU/LC_MESSAGES/django.mo | Bin 123716 -> 0 bytes .../core/locale/ru_RU/LC_MESSAGES/django.po | 24 +- .../core/locale/sv_SE/LC_MESSAGES/django.mo | Bin 91415 -> 0 bytes .../core/locale/sv_SE/LC_MESSAGES/django.po | 24 +- .../core/locale/th_TH/LC_MESSAGES/django.mo | Bin 147731 -> 0 bytes .../core/locale/th_TH/LC_MESSAGES/django.po | 22 +- .../core/locale/tr_TR/LC_MESSAGES/django.mo | Bin 93773 -> 0 bytes .../core/locale/tr_TR/LC_MESSAGES/django.po | 22 +- .../core/locale/vi_VN/LC_MESSAGES/django.mo | Bin 105647 -> 0 bytes .../core/locale/vi_VN/LC_MESSAGES/django.po | 22 +- .../core/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 82262 -> 0 bytes .../core/locale/zh_Hans/LC_MESSAGES/django.po | 20 +- engine/core/management/commands/__init__.py | 2 +- .../delete_products_by_description.py | 2 +- .../0054_product_export_to_marketplaces.py | 21 + engine/core/models.py | 11 +- engine/core/permissions.py | 2 +- engine/core/signals.py | 2 +- engine/core/static/favicon.ico | Bin 41662 -> 4286 bytes engine/core/static/favicon.png | Bin 9628 -> 333177 bytes engine/core/static/icon1024.png | Bin 0 -> 333177 bytes engine/core/static/icon192.png | Bin 0 -> 35710 bytes engine/core/static/icon512.png | Bin 0 -> 146205 bytes engine/core/static/logo.png | Bin 97723 -> 219734 bytes engine/core/static/robots_frontend.txt | 4 +- engine/core/templates/admin/index.html | 2 +- engine/core/utils/vendors.py | 2 +- engine/core/vendors/__init__.py | 6 +- engine/core/views.py | 8 +- engine/core/viewsets.py | 50 +- .../locale/ar_AR/LC_MESSAGES/django.mo | Bin 7761 -> 0 bytes .../locale/ar_AR/LC_MESSAGES/django.po | 2 +- .../locale/cs_CZ/LC_MESSAGES/django.mo | Bin 6705 -> 0 bytes .../locale/cs_CZ/LC_MESSAGES/django.po | 2 +- .../locale/da_DK/LC_MESSAGES/django.mo | Bin 6681 -> 0 bytes .../locale/da_DK/LC_MESSAGES/django.po | 2 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 6927 -> 0 bytes .../locale/de_DE/LC_MESSAGES/django.po | 2 +- .../locale/en_GB/LC_MESSAGES/django.mo | Bin 6450 -> 0 bytes .../locale/en_GB/LC_MESSAGES/django.po | 6 +- .../locale/en_US/LC_MESSAGES/django.mo | Bin 6438 -> 0 bytes .../locale/en_US/LC_MESSAGES/django.po | 2 +- .../locale/es_ES/LC_MESSAGES/django.mo | Bin 6918 -> 0 bytes .../locale/es_ES/LC_MESSAGES/django.po | 2 +- .../locale/fa_IR/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes .../locale/fa_IR/LC_MESSAGES/django.po | 2 +- .../locale/fr_FR/LC_MESSAGES/django.mo | Bin 7018 -> 0 bytes .../locale/fr_FR/LC_MESSAGES/django.po | 2 +- .../locale/he_IL/LC_MESSAGES/django.mo | Bin 7194 -> 0 bytes .../locale/he_IL/LC_MESSAGES/django.po | 2 +- .../locale/hi_IN/LC_MESSAGES/django.mo | Bin 359 -> 0 bytes .../locale/hi_IN/LC_MESSAGES/django.po | 6 +- .../locale/hr_HR/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes .../locale/hr_HR/LC_MESSAGES/django.po | 2 +- .../locale/id_ID/LC_MESSAGES/django.mo | Bin 6715 -> 0 bytes .../locale/id_ID/LC_MESSAGES/django.po | 2 +- .../locale/it_IT/LC_MESSAGES/django.mo | Bin 6827 -> 0 bytes .../locale/it_IT/LC_MESSAGES/django.po | 2 +- .../locale/ja_JP/LC_MESSAGES/django.mo | Bin 7274 -> 0 bytes .../locale/ja_JP/LC_MESSAGES/django.po | 2 +- .../locale/kk_KZ/LC_MESSAGES/django.mo | Bin 359 -> 0 bytes .../locale/kk_KZ/LC_MESSAGES/django.po | 6 +- .../locale/ko_KR/LC_MESSAGES/django.mo | Bin 6929 -> 0 bytes .../locale/ko_KR/LC_MESSAGES/django.po | 2 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 6689 -> 0 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 2 +- .../locale/no_NO/LC_MESSAGES/django.mo | Bin 6652 -> 0 bytes .../locale/no_NO/LC_MESSAGES/django.po | 2 +- .../locale/pl_PL/LC_MESSAGES/django.mo | Bin 6727 -> 0 bytes .../locale/pl_PL/LC_MESSAGES/django.po | 2 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 6858 -> 0 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 2 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 6814 -> 0 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 2 +- .../locale/ru_RU/LC_MESSAGES/django.mo | Bin 8650 -> 0 bytes .../locale/ru_RU/LC_MESSAGES/django.po | 2 +- .../locale/sv_SE/LC_MESSAGES/django.mo | Bin 6750 -> 0 bytes .../locale/sv_SE/LC_MESSAGES/django.po | 2 +- .../locale/th_TH/LC_MESSAGES/django.mo | Bin 10167 -> 0 bytes .../locale/th_TH/LC_MESSAGES/django.po | 2 +- .../locale/tr_TR/LC_MESSAGES/django.mo | Bin 6716 -> 0 bytes .../locale/tr_TR/LC_MESSAGES/django.po | 2 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 7378 -> 0 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 2 +- .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 6012 -> 0 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 2 +- engine/payments/models.py | 2 +- engine/payments/utils/gateways.py | 2 +- engine/payments/viewsets.py | 4 +- .../locale/ar_AR/LC_MESSAGES/django.mo | Bin 17472 -> 0 bytes .../locale/ar_AR/LC_MESSAGES/django.po | 2 +- .../locale/cs_CZ/LC_MESSAGES/django.mo | Bin 14450 -> 0 bytes .../locale/cs_CZ/LC_MESSAGES/django.po | 2 +- .../locale/da_DK/LC_MESSAGES/django.mo | Bin 14129 -> 0 bytes .../locale/da_DK/LC_MESSAGES/django.po | 2 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 15201 -> 0 bytes .../locale/de_DE/LC_MESSAGES/django.po | 2 +- .../locale/en_GB/LC_MESSAGES/django.mo | Bin 13626 -> 0 bytes .../locale/en_GB/LC_MESSAGES/django.po | 6 +- .../locale/en_US/LC_MESSAGES/django.mo | Bin 13615 -> 0 bytes .../locale/en_US/LC_MESSAGES/django.po | 2 +- .../locale/es_ES/LC_MESSAGES/django.mo | Bin 14928 -> 0 bytes .../locale/es_ES/LC_MESSAGES/django.po | 2 +- .../locale/fa_IR/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes .../locale/fa_IR/LC_MESSAGES/django.po | 2 +- .../locale/fr_FR/LC_MESSAGES/django.mo | Bin 15648 -> 0 bytes .../locale/fr_FR/LC_MESSAGES/django.po | 2 +- .../locale/he_IL/LC_MESSAGES/django.mo | Bin 15682 -> 0 bytes .../locale/he_IL/LC_MESSAGES/django.po | 2 +- .../locale/hi_IN/LC_MESSAGES/django.mo | Bin 359 -> 0 bytes .../locale/hi_IN/LC_MESSAGES/django.po | 6 +- .../locale/hr_HR/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes .../locale/hr_HR/LC_MESSAGES/django.po | 2 +- .../locale/id_ID/LC_MESSAGES/django.mo | Bin 14220 -> 0 bytes .../locale/id_ID/LC_MESSAGES/django.po | 2 +- .../locale/it_IT/LC_MESSAGES/django.mo | Bin 14887 -> 0 bytes .../locale/it_IT/LC_MESSAGES/django.po | 2 +- .../locale/ja_JP/LC_MESSAGES/django.mo | Bin 16457 -> 0 bytes .../locale/ja_JP/LC_MESSAGES/django.po | 2 +- .../locale/kk_KZ/LC_MESSAGES/django.mo | Bin 359 -> 0 bytes .../locale/kk_KZ/LC_MESSAGES/django.po | 6 +- .../locale/ko_KR/LC_MESSAGES/django.mo | Bin 15047 -> 0 bytes .../locale/ko_KR/LC_MESSAGES/django.po | 2 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 14544 -> 0 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 2 +- .../locale/no_NO/LC_MESSAGES/django.mo | Bin 14159 -> 0 bytes .../locale/no_NO/LC_MESSAGES/django.po | 2 +- .../locale/pl_PL/LC_MESSAGES/django.mo | Bin 14713 -> 0 bytes .../locale/pl_PL/LC_MESSAGES/django.po | 2 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 14650 -> 0 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 2 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 15094 -> 0 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 2 +- .../locale/ru_RU/LC_MESSAGES/django.mo | Bin 19370 -> 0 bytes .../locale/ru_RU/LC_MESSAGES/django.po | 2 +- .../locale/sv_SE/LC_MESSAGES/django.mo | Bin 14429 -> 0 bytes .../locale/sv_SE/LC_MESSAGES/django.po | 2 +- .../locale/th_TH/LC_MESSAGES/django.mo | Bin 22340 -> 0 bytes .../locale/th_TH/LC_MESSAGES/django.po | 2 +- .../locale/tr_TR/LC_MESSAGES/django.mo | Bin 14807 -> 0 bytes .../locale/tr_TR/LC_MESSAGES/django.po | 2 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 16106 -> 0 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 2 +- .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 13130 -> 0 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 2 +- engine/vibes_auth/messaging/auth.py | 2 +- engine/vibes_auth/tests/test_drf.py | 4 +- evibes/locale/ar_AR/LC_MESSAGES/django.mo | Bin 10162 -> 0 bytes evibes/locale/cs_CZ/LC_MESSAGES/django.mo | Bin 8550 -> 0 bytes evibes/locale/da_DK/LC_MESSAGES/django.mo | Bin 8238 -> 0 bytes evibes/locale/de_DE/LC_MESSAGES/django.mo | Bin 8694 -> 0 bytes evibes/locale/en_GB/LC_MESSAGES/django.mo | Bin 8084 -> 0 bytes evibes/locale/en_US/LC_MESSAGES/django.mo | Bin 8089 -> 0 bytes evibes/locale/es_ES/LC_MESSAGES/django.mo | Bin 8726 -> 0 bytes evibes/locale/fa_IR/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes evibes/locale/fr_FR/LC_MESSAGES/django.mo | Bin 8972 -> 0 bytes evibes/locale/he_IL/LC_MESSAGES/django.mo | Bin 9343 -> 0 bytes evibes/locale/hi_IN/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes evibes/locale/hr_HR/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes evibes/locale/id_ID/LC_MESSAGES/django.mo | Bin 8281 -> 0 bytes evibes/locale/it_IT/LC_MESSAGES/django.mo | Bin 8659 -> 0 bytes evibes/locale/ja_JP/LC_MESSAGES/django.mo | Bin 9131 -> 0 bytes evibes/locale/kk_KZ/LC_MESSAGES/django.mo | Bin 335 -> 0 bytes evibes/locale/ko_KR/LC_MESSAGES/django.mo | Bin 8479 -> 0 bytes evibes/locale/nl_NL/LC_MESSAGES/django.mo | Bin 8359 -> 0 bytes evibes/locale/no_NO/LC_MESSAGES/django.mo | Bin 8294 -> 0 bytes evibes/locale/pl_PL/LC_MESSAGES/django.mo | Bin 8606 -> 0 bytes evibes/locale/pt_BR/LC_MESSAGES/django.mo | Bin 8669 -> 0 bytes evibes/locale/ro_RO/LC_MESSAGES/django.mo | Bin 8743 -> 0 bytes evibes/locale/ru_RU/LC_MESSAGES/django.mo | Bin 11118 -> 0 bytes evibes/locale/sv_SE/LC_MESSAGES/django.mo | Bin 8355 -> 0 bytes evibes/locale/th_TH/LC_MESSAGES/django.mo | Bin 12921 -> 0 bytes evibes/locale/tr_TR/LC_MESSAGES/django.mo | Bin 8723 -> 0 bytes evibes/locale/vi_VN/LC_MESSAGES/django.mo | Bin 9309 -> 0 bytes evibes/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 7823 -> 0 bytes evibes/settings/graphene.py | 13 - lessy.py | 144 -- manage.py | 2 +- monitoring/web.yml | 2 +- nginx.conf => nginx.example.conf | 42 +- pyproject.toml | 8 +- {evibes => schon}/__init__.py | 0 {evibes => schon}/asgi.py | 4 +- {evibes => schon}/celery.py | 6 +- {evibes => schon}/celery_serializers.py | 0 {evibes => schon}/i18n.py | 0 .../locale/ar_AR/LC_MESSAGES/django.po | 110 +- .../locale/cs_CZ/LC_MESSAGES/django.po | 110 +- .../locale/da_DK/LC_MESSAGES/django.po | 110 +- .../locale/de_DE/LC_MESSAGES/django.po | 110 +- .../locale/en_GB/LC_MESSAGES/django.po | 110 +- .../locale/en_US/LC_MESSAGES/django.po | 110 +- .../locale/es_ES/LC_MESSAGES/django.po | 110 +- .../locale/fa_IR}/LC_MESSAGES/django.po | 104 +- .../locale/fr_FR/LC_MESSAGES/django.po | 110 +- .../locale/he_IL/LC_MESSAGES/django.po | 108 +- .../locale/hi_IN}/LC_MESSAGES/django.po | 104 +- .../locale/hr_HR/LC_MESSAGES/django.po | 104 +- .../locale/id_ID/LC_MESSAGES/django.po | 110 +- .../locale/it_IT/LC_MESSAGES/django.po | 110 +- .../locale/ja_JP/LC_MESSAGES/django.po | 110 +- .../locale/kk_KZ/LC_MESSAGES/django.po | 104 +- .../locale/ko_KR/LC_MESSAGES/django.po | 110 +- .../locale/nl_NL/LC_MESSAGES/django.po | 110 +- .../locale/no_NO/LC_MESSAGES/django.po | 110 +- .../locale/pl_PL/LC_MESSAGES/django.po | 110 +- .../locale/pt_BR/LC_MESSAGES/django.po | 110 +- .../locale/ro_RO/LC_MESSAGES/django.po | 110 +- .../locale/ru_RU/LC_MESSAGES/django.po | 112 +- .../locale/sv_SE/LC_MESSAGES/django.po | 110 +- .../locale/th_TH/LC_MESSAGES/django.po | 108 +- .../locale/tr_TR/LC_MESSAGES/django.po | 110 +- .../locale/vi_VN/LC_MESSAGES/django.po | 108 +- .../locale/zh_Hans/LC_MESSAGES/django.po | 110 +- {evibes => schon}/middleware.py | 8 +- {evibes => schon}/pagination.py | 0 {evibes => schon}/settings/__init__.py | 0 {evibes => schon}/settings/base.py | 40 +- {evibes => schon}/settings/caches.py | 2 +- {evibes => schon}/settings/celery.py | 2 +- {evibes => schon}/settings/constance.py | 6 +- {evibes => schon}/settings/csp.py | 0 {evibes => schon}/settings/database.py | 0 {evibes => schon}/settings/dbbackup.py | 0 {evibes => schon}/settings/drf.py | 26 +- {evibes => schon}/settings/elasticsearch.py | 2 +- {evibes => schon}/settings/emailing.py | 2 +- {evibes => schon}/settings/extensions.py | 2 +- schon/settings/graphene.py | 13 + {evibes => schon}/settings/logconfig.py | 6 +- {evibes => schon}/settings/summernote.py | 4 +- {evibes => schon}/settings/unfold.py | 19 +- {evibes => schon}/signal_processors.py | 0 {evibes => schon}/urls.py | 4 +- {evibes => schon}/utils/__init__.py | 10 +- {evibes => schon}/utils/misc.py | 0 {evibes => schon}/utils/parsers.py | 0 {evibes => schon}/utils/renderers.py | 6 +- {evibes => schon}/wsgi.py | 4 +- scripts/ASCII_ART_EVIBES | 12 - scripts/ASCII_ART_SCHON | 11 + scripts/Docker/app-entrypoint.sh | 4 +- scripts/Docker/beat-entrypoint.sh | 2 +- scripts/Docker/stock-updater-entrypoint.sh | 2 +- scripts/Docker/worker-entrypoint.sh | 2 +- scripts/Unix/generate-environment-file.sh | 28 +- scripts/Unix/install-native.sh | 172 +++ scripts/Unix/install.sh | 101 +- scripts/Unix/make-messages.sh | 2 +- scripts/Unix/restart.sh | 27 +- scripts/Unix/run.sh | 24 +- scripts/Unix/starter.sh | 16 +- scripts/Unix/test.sh | 2 +- scripts/Unix/uninstall.sh | 4 +- scripts/Windows/generate-environment-file.ps1 | 28 +- scripts/Windows/install.ps1 | 8 +- scripts/Windows/make-messages.ps1 | 2 +- scripts/Windows/restart.ps1 | 35 +- scripts/Windows/run.ps1 | 38 +- scripts/Windows/starter.ps1 | 15 +- scripts/Windows/test.ps1 | 2 +- scripts/Windows/uninstall.ps1 | 4 +- scripts/lib/utils.ps1 | 6 +- systemd/schon-beat.service | 23 + systemd/schon-stock-updater.service | 28 + systemd/schon-web.service | 28 + systemd/schon-worker.service | 28 + uv.lock | 2 +- 392 files changed, 4468 insertions(+), 2715 deletions(-) delete mode 100644 .gitlab-ci.yml delete mode 100644 .idea/evibes.ico create mode 100644 CHANGELOG.md create mode 100644 Makefile delete mode 100644 engine/blog/locale/ar_AR/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/cs_CZ/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/da_DK/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/de_DE/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/en_GB/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/en_US/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/es_ES/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/fa_IR/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/fr_FR/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/he_IL/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/hi_IN/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/hr_HR/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/id_ID/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/it_IT/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/ja_JP/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/kk_KZ/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/ko_KR/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/nl_NL/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/no_NO/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/pl_PL/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/pt_BR/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/ro_RO/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/ru_RU/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/sv_SE/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/th_TH/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/tr_TR/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/vi_VN/LC_MESSAGES/django.mo delete mode 100644 engine/blog/locale/zh_Hans/LC_MESSAGES/django.mo delete mode 100644 engine/core/docs/images/evibes-big-simple.png delete mode 100644 engine/core/docs/images/evibes-big.png delete mode 100644 engine/core/docs/images/evibes.ico delete mode 100644 engine/core/docs/images/evibes.png delete mode 100644 engine/core/docs/images/favicon.svg delete mode 100644 engine/core/locale/ar_AR/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/cs_CZ/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/da_DK/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/de_DE/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/en_GB/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/en_US/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/es_ES/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/fa_IR/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/fr_FR/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/he_IL/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/hi_IN/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/hr_HR/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/id_ID/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/it_IT/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/ja_JP/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/kk_KZ/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/ko_KR/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/nl_NL/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/no_NO/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/pl_PL/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/pt_BR/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/ro_RO/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/ru_RU/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/sv_SE/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/th_TH/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/tr_TR/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/vi_VN/LC_MESSAGES/django.mo delete mode 100644 engine/core/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 engine/core/migrations/0054_product_export_to_marketplaces.py create mode 100644 engine/core/static/icon1024.png create mode 100644 engine/core/static/icon192.png create mode 100644 engine/core/static/icon512.png delete mode 100644 engine/payments/locale/ar_AR/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/cs_CZ/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/da_DK/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/de_DE/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/en_GB/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/en_US/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/es_ES/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/fa_IR/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/fr_FR/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/he_IL/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/hi_IN/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/hr_HR/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/id_ID/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/it_IT/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/ja_JP/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/kk_KZ/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/ko_KR/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/nl_NL/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/no_NO/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/pl_PL/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/pt_BR/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/ro_RO/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/ru_RU/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/sv_SE/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/th_TH/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/tr_TR/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/vi_VN/LC_MESSAGES/django.mo delete mode 100644 engine/payments/locale/zh_Hans/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/en_US/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.mo delete mode 100644 engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/ar_AR/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/cs_CZ/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/da_DK/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/de_DE/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/en_GB/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/en_US/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/es_ES/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/fa_IR/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/fr_FR/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/he_IL/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/hi_IN/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/hr_HR/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/id_ID/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/it_IT/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/ja_JP/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/kk_KZ/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/ko_KR/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/nl_NL/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/no_NO/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/pl_PL/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/pt_BR/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/ro_RO/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/ru_RU/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/sv_SE/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/th_TH/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/tr_TR/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/vi_VN/LC_MESSAGES/django.mo delete mode 100644 evibes/locale/zh_Hans/LC_MESSAGES/django.mo delete mode 100644 evibes/settings/graphene.py delete mode 100755 lessy.py rename nginx.conf => nginx.example.conf (77%) rename {evibes => schon}/__init__.py (100%) rename {evibes => schon}/asgi.py (85%) rename {evibes => schon}/celery.py (51%) rename {evibes => schon}/celery_serializers.py (100%) rename {evibes => schon}/i18n.py (100%) rename {evibes => schon}/locale/ar_AR/LC_MESSAGES/django.po (81%) rename {evibes => schon}/locale/cs_CZ/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/da_DK/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/de_DE/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/en_GB/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/en_US/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/es_ES/LC_MESSAGES/django.po (78%) rename {evibes/locale/hi_IN => schon/locale/fa_IR}/LC_MESSAGES/django.po (72%) rename {evibes => schon}/locale/fr_FR/LC_MESSAGES/django.po (79%) rename {evibes => schon}/locale/he_IL/LC_MESSAGES/django.po (76%) rename {evibes/locale/fa_IR => schon/locale/hi_IN}/LC_MESSAGES/django.po (72%) rename {evibes => schon}/locale/hr_HR/LC_MESSAGES/django.po (72%) rename {evibes => schon}/locale/id_ID/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/it_IT/LC_MESSAGES/django.po (79%) rename {evibes => schon}/locale/ja_JP/LC_MESSAGES/django.po (79%) rename {evibes => schon}/locale/kk_KZ/LC_MESSAGES/django.po (72%) rename {evibes => schon}/locale/ko_KR/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/nl_NL/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/no_NO/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/pl_PL/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/pt_BR/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/ro_RO/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/ru_RU/LC_MESSAGES/django.po (81%) rename {evibes => schon}/locale/sv_SE/LC_MESSAGES/django.po (77%) rename {evibes => schon}/locale/th_TH/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/tr_TR/LC_MESSAGES/django.po (78%) rename {evibes => schon}/locale/vi_VN/LC_MESSAGES/django.po (75%) rename {evibes => schon}/locale/zh_Hans/LC_MESSAGES/django.po (76%) rename {evibes => schon}/middleware.py (96%) rename {evibes => schon}/pagination.py (100%) rename {evibes => schon}/settings/__init__.py (100%) rename {evibes => schon}/settings/base.py (93%) rename {evibes => schon}/settings/caches.py (95%) rename {evibes => schon}/settings/celery.py (98%) rename {evibes => schon}/settings/constance.py (96%) rename {evibes => schon}/settings/csp.py (100%) rename {evibes => schon}/settings/database.py (100%) rename {evibes => schon}/settings/dbbackup.py (100%) rename {evibes => schon}/settings/drf.py (88%) rename {evibes => schon}/settings/elasticsearch.py (92%) rename {evibes => schon}/settings/emailing.py (90%) rename {evibes => schon}/settings/extensions.py (85%) create mode 100644 schon/settings/graphene.py rename {evibes => schon}/settings/logconfig.py (96%) rename {evibes => schon}/settings/summernote.py (83%) rename {evibes => schon}/settings/unfold.py (92%) rename {evibes => schon}/signal_processors.py (100%) rename {evibes => schon}/urls.py (95%) rename {evibes => schon}/utils/__init__.py (79%) rename {evibes => schon}/utils/misc.py (100%) rename {evibes => schon}/utils/parsers.py (100%) rename {evibes => schon}/utils/renderers.py (95%) rename {evibes => schon}/wsgi.py (73%) delete mode 100644 scripts/ASCII_ART_EVIBES create mode 100644 scripts/ASCII_ART_SCHON create mode 100644 scripts/Unix/install-native.sh create mode 100644 systemd/schon-beat.service create mode 100644 systemd/schon-stock-updater.service create mode 100644 systemd/schon-web.service create mode 100644 systemd/schon-worker.service diff --git a/.gitignore b/.gitignore index 44102a49..fcab97ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,137 +1,150 @@ -# ────────────────────────────────────────────────────────────────────────── -# Python bytecode, caches, and compiled artifacts -# ────────────────────────────────────────────────────────────────────────── -# Byte-compiled / optimized / DLL files +# ╔═══════════════════════════════════════════════════════════════════════════╗ +# ║ ║ +# ║ ███████╗ ██████╗██╗ ██╗ ██████╗ ███╗ ██╗ ║ +# ║ ██╔════╝██╔════╝██║ ██║██╔═══██╗████╗ ██║ ║ +# ║ ███████╗██║ ███████║██║ ██║██╔██╗ ██║ ║ +# ║ ╚════██║██║ ██╔══██║██║ ██║██║╚██╗██║ ║ +# ║ ███████║╚██████╗██║ ██║╚██████╔╝██║ ╚████║ ║ +# ║ ╚══════╝ ╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ║ +# ║ ║ +# ╚═══════════════════════════════════════════════════════════════════════════╝ + + +# ┌───────────────────────────────────────────────────────────────────────────┐ +# │ Python │ +# └───────────────────────────────────────────────────────────────────────────┘ + +# Bytecode & compiled *.py[cod] *$py.class *.so -# Cache directories +# Caches __pycache__/ .pytest_cache/ .hypothesis/ +.mypy_cache/ .pyre/ .pytype/ -.mypy_cache/ .dmypy.json dmypy.json cython_debug/ -# Python environments +# Virtual environments .Python +.venv/ +venv/ env/ +ENV/ env.bak/ ENV.bak/ -venv/ venv.bak/ -ENV/ -.venv/ __pypackages__/ .python-version -# Local Django settings and database + +# ┌───────────────────────────────────────────────────────────────────────────┐ +# │ Django │ +# └───────────────────────────────────────────────────────────────────────────┘ + local_settings.py db.sqlite3 db.sqlite3-journal - -# Django backups and metadata instance/ backups/ -# ────────────────────────────────────────────────────────────────────────── -# Logs and reports -# ────────────────────────────────────────────────────────────────────────── -logs/ -*.log -debug.log -errors.log -test.json -coverage.xml -coverage.* -*.cover -*.py,cover -nosetests.xml -tmp - -# Coverage / test reports -htmlcov/ -.coverage -.coverage.* - -# CI / tox / nox -.tox/ -.nox/ -.scrapy -.cover -.pybuilder/ - -# Storefronts -.nuxt/ -.next/ -next-env.d.ts - -# Celery -celerybeat-schedule -celerybeat.pid - -# ────────────────────────────────────────────────────────────────────────── -# Packaging and distribution -# ────────────────────────────────────────────────────────────────────────── -build/ -dist/ -dist-ssr/ -*.egg -*.egg-info/ -.installed.cfg -MANIFEST -*.manifest -*.spec -sdist/ -wheels/ -share/python-wheels/ -pip-log.txt -pip-delete-this-directory.txt -desktop.ini -*.iml - -# Node build artifacts -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* -site/ - -# ────────────────────────────────────────────────────────────────────────── -# Static, media, and uploads -# ────────────────────────────────────────────────────────────────────────── +# Static & media (collected) static/ media/ -# Allow checked-in static from apps +# Allow checked-in app static files !engine/core/static/ !engine/payments/static/ !engine/vibes_auth/static/ !engine/blog/static/ -# Webassets -.webassets-cache/ +# Celery +celerybeat-schedule +celerybeat.pid + + +# ┌───────────────────────────────────────────────────────────────────────────┐ +# │ Testing & Coverage │ +# └───────────────────────────────────────────────────────────────────────────┘ + +htmlcov/ +.coverage +.coverage.* +coverage.xml +coverage.* +*.cover +*.py,cover +nosetests.xml +test.json +.tox/ +.nox/ + + +# ┌───────────────────────────────────────────────────────────────────────────┐ +# │ Logs │ +# └───────────────────────────────────────────────────────────────────────────┘ + +logs/ +*.log +debug.log +errors.log +tmp/ + + +# ┌───────────────────────────────────────────────────────────────────────────┐ +# │ Build & Distribution │ +# └───────────────────────────────────────────────────────────────────────────┘ + +build/ +dist/ +dist-ssr/ +sdist/ +wheels/ +*.egg +*.egg-info/ +*.manifest +*.spec +.installed.cfg +MANIFEST +share/python-wheels/ +pip-log.txt +pip-delete-this-directory.txt + + +# ┌───────────────────────────────────────────────────────────────────────────┐ +# │ Node.js & Frontend │ +# └───────────────────────────────────────────────────────────────────────────┘ -# ────────────────────────────────────────────────────────────────────────── -# Node dependencies -# ────────────────────────────────────────────────────────────────────────── node_modules/ +.nuxt/ +.next/ +next-env.d.ts +*.tsbuildinfo +.webassets-cache/ +site/ -# ────────────────────────────────────────────────────────────────────────── -# Cypress test artifacts -# ────────────────────────────────────────────────────────────────────────── +# Debug logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# Cypress cypress/videos/ cypress/screenshots/ -# ────────────────────────────────────────────────────────────────────────── -# IDEs and editors -# ────────────────────────────────────────────────────────────────────────── -# VSCode + +# ┌───────────────────────────────────────────────────────────────────────────┐ +# │ IDEs & Editors │ +# └───────────────────────────────────────────────────────────────────────────┘ + +# VS Code .vscode/ !.vscode/extensions.json @@ -139,33 +152,46 @@ cypress/screenshots/ .idea/ !.idea/icon.svg !.idea/externalDependencies.xml -!.idea/evibes.iml -!.idea/evibes.ico +!.idea/schon.iml -# Microsoft +# Visual Studio *.suo *.ntvs* *.njsproj *.sln *.sw? -# Spyder / Rope +# Spyder & Rope .spyderproject .spyproject .ropeproject -# macOS + +# ┌───────────────────────────────────────────────────────────────────────────┐ +# │ OS & System │ +# └───────────────────────────────────────────────────────────────────────────┘ + .DS_Store +desktop.ini +*.iml -# TypeScript -*.tsbuildinfo -# Environment file +# ┌───────────────────────────────────────────────────────────────────────────┐ +# │ Project-specific │ +# └───────────────────────────────────────────────────────────────────────────┘ + +# Environment .env -# Development stuff +# Development test.ipynb +.scrapy +.cover +.pybuilder/ -# Production stuff +# Production .initialized -queries \ No newline at end of file +queries/ + +# AI assistants +.claude/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 0255c9fa..00000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,51 +0,0 @@ -image: ghcr.io/astral-sh/uv:python3.12-bookworm - -stages: - - lint - - typecheck - - test - -variables: - UV_PYTHON: "3.12" - PIP_DISABLE_PIP_VERSION_CHECK: "1" - PYTHONDONTWRITEBYTECODE: "1" - -before_script: - - uv sync --frozen --extra linting - -lint: - stage: lint - script: - - uv run ruff format --check . - - uv run ruff check --force-exclude . - rules: - - changes: - - "**/*.py" - - "pyproject.toml" - - ".pre-commit-config.yaml" - when: on_success - - when: never - -typecheck: - stage: typecheck - script: - - uv run ty check - rules: - - changes: - - "**/*.py" - - "pyproject.toml" - when: on_success - - when: never - -test: - stage: test - script: - - uv run pytest -q - rules: - - changes: - - "**/*.py" - - "pyproject.toml" - - "pytest.ini" - - "pyproject.toml" - when: on_success - - when: never \ No newline at end of file diff --git a/.idea/evibes.ico b/.idea/evibes.ico deleted file mode 100644 index f3ba783b76ad1acba13fc265b899e748eea1d049..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41662 zcmeI5X^>UbcE?Y@PTLk5Fr_3PVwF@`sh29Np7~<(AxX6nWJZ~%W}d+bCmc|_Q~8j5 zGO0X8Q3M2JP#h6NL1_jNTLuxw7pfi=GgwqUbSx`{7WB#gxAs~0?!NEd?%TZX2JG9` z_S`e=v-etiP5-sdAxWzA-@JK={y!kuye>)pI7yN}SJR>7kQ&GNyLnZTT>q=k?1284 zrfH>BXi!-Ll{HXV1C=#USp$_dP+0?&HBeatl{HXV1C=$<>(; zS8>hiA(N`t4X^LBWz>uTuZ@{IeA|Qt4Yaq$&7bq?=s9(pM$NeP#bHxxx%SyxC)D_T z9ra&1Umow`H4Y!%5D#`uzGM4==}S+4Jo~}3$L2qreyVnK-b3lfv+h5$ciKHC-feEuWpXY(IT zPb~1p{v+beBk9q(52XjD-+Oxd#6?f8A2Ge3>9JeJnT{*>xs~hkd~}-(FQCij+h$(h zH0|z_pD$dVezW9>^xy7iNWWhEc>3j{$I>qrEKfhT_GtQr&U1`&{5~wc?4ELG(<`^n zzG>aC`o8pq%~_f0z6#CrH1CKOuKTx$7yGo?Y^muwi z>wRziJtyCtv}6nIJ+-~{cc1)N^gcHCVbfhMBVS2QzFa6iY0LdVhb=w*&csElw%m?w znN+usc%r}b}|diRMh7Cvrr@yVPATX#%Y_~gbBGy1O{ zGP!2W(8<*_{3(1Z__I$s4f_J^O-2?-MixG5vSj=bZ$6dn**D|f({GNSzw{+N!^eTF zRCv->e?bq{>x(0%_Srdk@fPU%_2MUN-Q!cO8$Pwq%3G12U{|1JtaH{6ukVY`yJNzl zC-+Xj=i8(6mPxK;Q>52im)TZ4Le}<8U;6EvW9Lm=J9J77HpSP1^Qf{7{CP`j_merx zTG3Iir`{MlcOv?Qc#ti289jr|4|->8t*&a5^LnifF+{^fpt@o{C=G4It;%n%H-a_BQ5B#BbCoSHBFZAnM z#$01IB8%T+9aV}?E+enV|2jDH{vYsvu}%IA*1#vSF>jAw*sxl-7Z`G>zJAWf;Ro|u zIcP%F2CZLk5&RzH0(!Zg$G$g?3O94mx(#n0$%ztLGQ44z!`reeE8vmZDc+g)gfeaEI8mi)Xgo4-|l*!mIm{Z=c^ zW<5hM=WQw4;d|jf;TwD;8G#pW+k@}*XnJtwy)7>b?_zzF>ZdmxcbmRu*p%uW!pn&T z4KI{jz>nj?ub>}tb5u6@!x{Is?45r1w|naEIxRNM0E|>n7;k z5v{o9`CBJczczNx@MiUo9t5j&S>c&)jh#Dr)!>O0tWi1#e-^!iF4{GD@%B%ZXM+BQ zp=*nNaefdlek5KH&%Zc)YA!zSkSD?`H!4otJ8kK=$Q?XEAHr++@uvK|j{4{==i$XO zTEnd44dMxL2Yx7+2YxDgjNb=m+}HBHavR`PYo+5lvK=w~R>*fEMkF`lzAw58p5QZJ zU*hX~`){YM`>5nCw#yHNe(+$Y@Ir7E`0(tYaaG{+ouL`NEceFzz<)q*VVAbtKJy00 zZ#vWO&-q$-5_DI{8G)_8C_DvB1zIw9?10nFc~}ljp1NghAN+=0vgzdA(SPW^53vO@K>P=dXdxEt7+Wm$ zoL}EE_8NTT_vAA;KkyI0Qg#w^N|*HnKT6TD6mN3Ji}1tGF=yv@srg@Q$6Y>ReFZ=8 z4X7bvysj&|YV6p<6~d>jb}Yjcuwmdc*emidZ;Y8Yd}~&-gza26Y-(Swi5tE;^1E@= z^lNG0*X!huat%7f#;*RE<5L628jivG^)<}ewq`sn9v{HZp5Up`gRzM&*rWr~?-Q;M z=B~W1`0;^a8T27@>Pq>iFXS9-An;)3^>2<_U^z|ne#TN6wAwXg$#&?E zU+r9Ss(X4% z`G!|V&#j{-!DLGO3NkgtFr>mcAkQJs=QculK>1Bp+h8&V-+~{U+rmq0nG9yW7WbfU zXq;b_)sbu*Iio+ZipL!m*T{}H3!fnePhPQbT<5bN%R4#;U9?ZJ4)g+-VGaByt6Tcb zl7{pf<)pt_L<_Y7oF`9BZ4>AH8jhn^@jXJr4+#yNfjA0zhp%99`10Ve@Cf-kIOG17 z{mS(*|2?Wrz*ohFVl&~{+thlB4#Zzz?XOCYzHkMI*lh{fJEiHpK6&+41n3@tSNPN7jVvam-qVCy5{M<%=TC z`3T>?RGkPh7ya@4WAZaCwiE9@(fa&Y4cr4+CjQ$aoE84PD{N}V#D!13Et+oA+Gc&z z_zl(@w|8_MbVtX6(;kp6CQr+Ac&=eAT3@Uo;y(IEccI6Sqe8l#?|vaac1~KfYWLJT znyCRp&ojn%Rj+}4U<{1)!x>9Yqcf=$qwyPB5D(G7KM&7d)(Rh8&p}V(CTQ<+!q&0a z6B*9}?+WyxpA%h-$800sI$ro0dQ!(--k>Ei$GR?T_@~|u=Y9u1`?wunLH-#l>wp>u zFhgX|{RrQlFAw7ToF6X?o>YU5rmhH|2-#(y#&4dFEK_>{UX3g>E*ihV9yo62q(9Il z=oM1XJ6O1N8^<_YSK>>! zA3|R_U&nmVypI9iiQYypzcp^&oSo7Q?;&%NL2UVlk}dF3(}$T}%<0EWM+Ti3jc&wa6UtcfrVF+FdHYonJA} z$aRx9#g-y_$Rc(N8N-)Au2_fYd~hc)LG&g5*FM#$eFX2MztKPFBIN8CP4o-8G02kJ zpP&ie*kE;gF8#tU(M*L8*Z(~lR< z0lSBs5oglKYqDP~ezLmGA>x~Ohpv1{dg5hab+1V;I^VXBU(gWi#NB3#?>YfZ-IihB z@fY!r_9$+^267$t@EzGo^eKHne|#nUGvXk|j=VoTXq@6y>gXzUx-ma3Zm@VE#0`Z! zWDVnYf)$XT085~uBR8rM$7~Q@fKP8Rr+i*w-Zsz3`j6!~K7X<9Y2#pcxBIln&UhuJWHerC@K`SbjciPbc}zwj9r+tY_+fOl>ftM_}c^TX#9 z=a}R973wj+zALsoCw^98pM~dxPZ8pEV)lT6d3^r6FL%w?U30V8g-w2K>qUxYV{m?s>0dg5j&gci=|& zfgUr5I9RyH!ch13xy5J1T8g{c;dSL5RToUYn# z(EGi-??9a8I4#)17kW>KI?Oyil*bo&_wIOxBT{1l?%~bwDr6^X0iSTpLUmAfJda;E zR-D5wkU5^OHDNV1;3_-=xl<#)4tSNuqj7*qgGqsJP(uR7Vfs=va_C*+JK}6~A+mzK zH=pVvwNdDXkAx3`7qC7Z`vyBDz9PjFE|{1QquD)gK6((Hw^|qheCg=Dkgi(q zo#}^o7~Q;0`Wu|$4dG1i2V2Y7E$1qK37t(1U}*K)*7qaU;yksh+(X`vT3TXW?03M3 zmux4Gh)n_`MfX4-cuid`dMe-@jz@vjf^CR@YVZSj%gLJIf}z&X^!4C7;(t=C>JljgL~|h4@WKS2jUqu&+rbL0JcHP$)b3P{Q%>Ku7+Wm z{0S$P47%MyE@EErJLV^{1BP`_{p^~0M-%xh))wQ(mKOSQ-AVUieKU@jmVV9eYx9^F zEyNlD>+s*sbHjg?FNb$)qsG2BKfZqW)V}Z&KiRNG*#>xr%z@?OyCF}`3+D^Ga?F=4 z@?yM$Z)#wP)JfyFF)rhY_~LZv>1}uMgL#zV2XnUiPHh8jQKWv0b85t;acm0qgzsee z8NJi7Y1Fi9S>u*>QLKY(Ve_zq=sM&9U5CwazQB{lkkW4GpP%DYT%e_p1NgBAAY-zLEhjKF%)qu*lzPIea{EkK`zwbh4TeF zg}-LDNj@Dh*RIKTZb!F1r#xM6;zuc(mvg*aUSh9#2OYbF@8J1*c#!8w&}YH!2VTL) zt+&s)iLqcm%NbMUnzr9*aC(?7%xZV|jeaBcz<<~yTSLw~&zJBnpz{X#A)f_rs4>Gw z1P4H0mh&FFkD;Jw5jJo(DZ?)KpOG0`~QJ_P%tiyG(x} zCyGdec%RtE!#(_Vy+LeGzJl6z^YJw=&iQ%2ue-PCFZ2(#p16ZrNBmyLFk`-$?#kkR zd}3@0`FiX;^XclbvaT7Q>sauU^&_YC+ajF_E=8;r>TsyFT-bn31Z&`XDj_c=99;5j zxT?lV4W{LvbZw~F3^g2lOJS4phu{!~8#rKgUR%?}x)00{{~rtyzJU#cSy3ZLeh}Qu>lS=|J-J2q@cogON6)^AS}&Ie zwdTFmR%agN zrF0MXxldwplgSTpa4uJ2{KYP2_(aBQe0_KiCdj*BU{RjibN$tox**KE__y3y1FQvN zKy<`Gy$kiJVJcxQ#XO;A{~KW}j2n!TxYO5mOy|!2CTBsdI%|RVJJ>>7zI_KK9rC01 zoJ4=+-*>vRnfwlo_n)vEa-}fbqcx=gEorRT`KO`f z-wR`Yv^F(2x|Vz5bx1r6FTsy^{{VYIK8ZQOk9dA|EVEnSNaPV;m;OSh5*K%NZd~tU z!S5zNMh?aNa`|}e^~Zh8kNK?E8l;BFa`zf{JZAWT{IK?@M@7fFo^7xHQs?3t!|sab zz^>sjaS3t-UV)yY?#JKz2zDy0J=YK5;e5-8SQ_0`Y7V82Lrc~>x`g-KpegS-(D3ny zol4#7$6ZeRdrR;H9=MDU!;=R?XKxxc)7}x`xqg3VxA2nti}m4atFwI;UT^wBag*gM zviJ$T$G7W|0qCCh9r8RuMmP?xf&WLp#l~6qJjU&7l>9z9-w=Z@*Y|z!5uY%B6}?(` zZ{a@ABgaBMn|c8LZG@N~!5%J8c{hxlJoh^f3;Vhl_npV+KgNeYg$_dpAQ!QmFjpGB z1@#ulayk4knn=Hq|G*xSFaJiq3UmxS*7sl)kGsxiOg^smXtq@t1mDhNOg>K2VUihi zF!d|+b1Ct|=L=n32k~wPbwi;JFP|&IKQkMnI2m7#nBMR4eu`}kYZy4b8odae@VU{8 zJ<`DqIV!@lxUkbAt!2+r5Sbp75^tPSuPY*1V{3bA5mwBW^MMES}K^weh9s zi5|p9qz;?$Wp$q(L#1()5z%qsI%vO?!{*CjRE8feaE+7 zi;bhbW7q`j7x5VOE-xS067p8dE-8L6SLjXr$r=Nn2N$7cGqwrDk-qNS&o7rBPEY!` z?@VMm1%7~w;`72!_a*%La<;Aq!KT3}3i-i$A;!9xwq1GC+LRQpM*ACAJZ|&pJF%FWbM*>D(E}(9M8ia0{i)&lfImH<@DQA*T4(x1Y;xjjQ+;&JbB088zu~{P23I- z&;`D(z&81Y2{B2~(SaXs&wc!*__0y-aUay*c>*3FSMbB^uJV8Qxa4!rhi1-?4a&n2 z`{nr&bSqdWvIDMjG4jK0HuZkQ!cHIN!8bL)F`c%)1v{j++jy7hey1fmBKW&)YlZz@ zXh4G|9@C&kYp2N3gve&8+G zAMfozfBd@GcD2V7#)|C;x!ni#E$j@dmMzCN5!aIcZLg0DanAX{v+;-U`-va01<(iE z06&NU{`K!hUlXq<_<@}VLvenvuAw1xpwIUB!Fg)!u~o!k(wL`kZ zdB`_-&^vs~ig>Y93>eSRX+jxi|&+IzzOtxRk)xf$M1D2E^JM^G~YwgGQh6FI%5{V;}*6C;kp4}L|y_iEKK`L`XI z1GdHGk$fdKjP>!guu1wmJomwrZ=7`p4ZEsOUsv=;-hyuznU2u-ohL3QPNO55m%oEZ ztjjyptY5x?iQSKFQn}-Vj`%{v1%^{&`&yWK{_OR_d$83pc@3zFoAbvPr#(Li`+>&}1{6cC+$en~7jWBzw^?2OwC!a?tVS%oh_hl*$N1-T|*HX&}Ycdx}y{BB}OYD}r?g9q-5obMQW@;+ZP#Ax`d z=nmGV&0YRt@O{WPJ=6*x-jtt$5A*zx;&t4e9lOUC*b=a%Ly|k5{k8C{K=T6qg>CVs z>(H|SuMc=8GDA)Zxo2+PIy zyZrn5^1dFBGvoxh!+-ch_yFHI2s$kPJ}x{m9>{)S!#I!6(WJFPyn-!(mSK#S_IJvh z&di5-Av5Gty|xdUIri8c>xbvFF2G#K{Zi9#RQku{M0^O_e9oA2=s0Z1#u3v75PK7& z<99iqyJMU^(Wj4}xp-|7zH2%DYj=!~H9#H%TJ!JNfz4w>kcETNsUOIOzb!cqIe{rA zryg7QT)JaiJ>4gB@%fl!Of&D8)@Jj>uii+H3q5DYWZB|F(BQ{~9#`f0#c|zkqKmo>e=SJ@ zo}Bx;ko$GlrD^p1*1n3yqy2NqFWc<@U!p8)bY4H(?Eh0zRTrOcN|Jw$_cimXc>m@k zxiZ>sP5x3HM*TM?jY&g(|6GzLRnh+0q+wBf{->(C?~}Ux^({%=ndG|s{`bih=i>bz zlD}?^_s=H3XtRGVNm}FnQjIRYp8dw?c^X~Y{ms>BWAyy=z@Pd4Pe}slugmQ}oLpfm zqH(5;cVCiRp8S}mtx4E#6zTr3r7k_4tg-V=+E4x_Nq!ON^&`9CFXeoGKhQhBUt{Ob z_|;-C*S98DUl|Uqv3(8Ye;YXg&p-T20}6t9JEw#XY{?X#3S%VE5au4X5aSc0bE6 zoWCmh3%ey-&#lYTGnaGVm)Y}{r)QI7R(^hZ&Y867=G=U>FA``$Wc}HGdMZikLjPf3 zkF9O9zt;E9wSa4-hmz`W{@j`C*l+Ruy^WWxtpQo9va#QHTHm?-|4gnvRhzEO z?XS7Hwy8Ec-!!YXB|5JuUEQej{ya_TPaChuU;k5eQ*EQ3*U#vYrr%XH^=tYAmzOmC zpQP!=Q%OVad`oikji;*Wa`M)atiA3#3DL~#er?!q4E#vb{}5@ - - + + + + + + .st1 { + fill: #495158; + } + + .st2 { + fill: #c1c6cb; + } + + .st3 { + fill: #e3e3e4; + } + + .st4 { + fill: #27292d; + } + + .st5 { + fill: #b6bdc3; + } + + .st6 { + fill: #555e64; + } + + .st7 { + fill: #848c93; + } + + .st8 { + fill: #2b2e33; + } + + .st9 { + fill: #e2e2e2; + } + + .st10 { + fill: #6c757b; + } + + .st11 { + fill: #24262a; + } + + .st12 { + fill: #373c41; + } + + .st13 { + fill: #c8cdd1; + } + + .st14 { + fill: #d5dadd; + } + + .st15 { + fill: #31353a; + } + + .st16 { + fill: #757f85; + } + + .st17 { + fill: #a1a9af; + } + + .st18 { + fill: #606970; + } + + .st19 { + fill: #1c1d20; + } + + .st20 { + fill: #8a939b; + } + + .st21 { + fill: #1f2124; + } + + .st22 { + fill: #4f565d; + } + + .st23 { + fill: #5a636a; + } + + .st24 { + fill: #e4e5e6; + } + + .st25 { + fill: #3f444b; + } + + .st26 { + fill: #18191b; + } + + .st27 { + fill: #2f3136; + } + + .st28 { + fill: #98a0a7; + } + + .st29 { + fill: #e4e4e4; + } + + .st30 { + fill: #cdd1d5; + } + + .st31 { + fill: #1a1b1e; + } + + .st32 { + fill: #7f898f; + } + + .st33 { + fill: #aab1b6; + } + + .st34 { + fill: #454b52; + } + + .st35 { + fill: #ebeded; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..79164f3d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,35 @@ +# Changelog + +All notable changes to Schon are documented in this file. + +Version format follows [CalVer](https://calver.org/) as `YYYY.MAJOR`. + +--- + +## [2026.1] - 2026-01-25 + +Initial CalVer release. Project renamed from eVibes to Schon. + +### Highlights + +- Complete rebrand from eVibes to Schon +- Native Linux deployment with systemd service files +- uv-based dependency management +- Interactive installer supporting Docker and native deployments +- Professional documentation and project structure + +### Added + +- systemd service files for production deployment (`schon-web`, `schon-worker`, `schon-beat`, `schon-stock-updater`) +- Native Linux installation script with automated setup +- CHANGELOG.md for tracking releases + +### Changed + +- Project name: eVibes to Schon +- Version scheme: SemVer to CalVer (YYYY.MAJOR) +- Installation: `make install` now prompts for Docker vs native deployment + +### Removed + +- Legacy eVibes branding and assets diff --git a/CODEOWNERS b/CODEOWNERS index bc569427..24ac3d27 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -26,7 +26,7 @@ uv.lock @fureunoir contact@fureunoir.com blog/ @fureunoir contact@fureunoir.com core/ @fureunoir contact@fureunoir.com -evibes/ @fureunoir contact@fureunoir.com +schon/ @fureunoir contact@fureunoir.com payments/ @fureunoir contact@fureunoir.com scripts/ @fureunoir contact@fureunoir.com vibes_auth/ @fureunoir contact@fureunoir.com diff --git a/Dockerfiles/app.Dockerfile b/Dockerfiles/app.Dockerfile index 622f4b25..430ccab7 100644 --- a/Dockerfiles/app.Dockerfile +++ b/Dockerfiles/app.Dockerfile @@ -38,10 +38,10 @@ RUN set -eux; \ RUN curl -LsSf https://astral.sh/uv/install.sh | sh ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH" -RUN uv venv /opt/evibes-python -ENV VIRTUAL_ENV=/opt/evibes-python -ENV UV_PROJECT_ENVIRONMENT=/opt/evibes-python -ENV PATH="/opt/evibes-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" +RUN uv venv /opt/schon-python +ENV VIRTUAL_ENV=/opt/schon-python +ENV UV_PROJECT_ENVIRONMENT=/opt/schon-python +ENV PATH="/opt/schon-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" COPY pyproject.toml pyproject.toml COPY uv.lock uv.lock diff --git a/Dockerfiles/beat.Dockerfile b/Dockerfiles/beat.Dockerfile index 97cdd9ee..46f820fa 100644 --- a/Dockerfiles/beat.Dockerfile +++ b/Dockerfiles/beat.Dockerfile @@ -37,11 +37,10 @@ RUN set -eux; \ RUN curl -LsSf https://astral.sh/uv/install.sh | sh ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH" -ENV UV_PROJECT_ENVIRONMENT=/opt/evibes-python -ENV PATH="/opt/evibes-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" - -RUN uv venv /opt/evibes-python -ENV VIRTUAL_ENV=/opt/evibes-python +RUN uv venv /opt/schon-python +ENV VIRTUAL_ENV=/opt/schon-python +ENV UV_PROJECT_ENVIRONMENT=/opt/schon-python +ENV PATH="/opt/schon-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" COPY pyproject.toml pyproject.toml COPY uv.lock uv.lock diff --git a/Dockerfiles/stock_updater.Dockerfile b/Dockerfiles/stock_updater.Dockerfile index f725d9b8..c4af50a1 100644 --- a/Dockerfiles/stock_updater.Dockerfile +++ b/Dockerfiles/stock_updater.Dockerfile @@ -37,11 +37,10 @@ RUN set -eux; \ RUN curl -LsSf https://astral.sh/uv/install.sh | sh ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH" -ENV UV_PROJECT_ENVIRONMENT=/opt/evibes-python -ENV PATH="/opt/evibes-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" - -RUN uv venv /opt/evibes-python -ENV VIRTUAL_ENV=/opt/evibes-python +RUN uv venv /opt/schon-python +ENV VIRTUAL_ENV=/opt/schon-python +ENV UV_PROJECT_ENVIRONMENT=/opt/schon-python +ENV PATH="/opt/schon-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" COPY pyproject.toml pyproject.toml COPY uv.lock uv.lock diff --git a/Dockerfiles/supervisor.Dockerfile b/Dockerfiles/supervisor.Dockerfile index f6835cc5..977695b8 100644 --- a/Dockerfiles/supervisor.Dockerfile +++ b/Dockerfiles/supervisor.Dockerfile @@ -2,10 +2,10 @@ FROM node:22-bookworm-slim AS build WORKDIR /app -ARG EVIBES_BASE_DOMAIN -ARG EVIBES_PROJECT_NAME -ENV EVIBES_BASE_DOMAIN=$EVIBES_BASE_DOMAIN -ENV EVIBES_PROJECT_NAME=$EVIBES_PROJECT_NAME +ARG schon_BASE_DOMAIN +ARG schon_PROJECT_NAME +ENV schon_BASE_DOMAIN=$schon_BASE_DOMAIN +ENV schon_PROJECT_NAME=$schon_PROJECT_NAME COPY ./supervisor/package.json ./supervisor/package-lock.json ./ RUN npm ci --include=optional diff --git a/Dockerfiles/worker.Dockerfile b/Dockerfiles/worker.Dockerfile index 62bd35ce..f2c28146 100644 --- a/Dockerfiles/worker.Dockerfile +++ b/Dockerfiles/worker.Dockerfile @@ -38,10 +38,10 @@ RUN set -eux; \ RUN curl -LsSf https://astral.sh/uv/install.sh | sh ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH" -RUN uv venv /opt/evibes-python -ENV VIRTUAL_ENV=/opt/evibes-python -ENV UV_PROJECT_ENVIRONMENT=/opt/evibes-python -ENV PATH="/opt/evibes-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" +RUN uv venv /opt/schon-python +ENV VIRTUAL_ENV=/opt/schon-python +ENV UV_PROJECT_ENVIRONMENT=/opt/schon-python +ENV PATH="/opt/schon-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" COPY pyproject.toml pyproject.toml COPY uv.lock uv.lock diff --git a/LICENSE b/LICENSE index 350dcf2f..2f8f6a59 100644 --- a/LICENSE +++ b/LICENSE @@ -1,8 +1,8 @@ -eVibes License – Version 2.0, April 29, 2025 +Schon License – Version 2.0, April 29, 2025 Copyright (c) 2025 Egor “fureunoir” Gorbunov -Permission is hereby granted, free of charge, to any person obtaining a copy of the eVibes software and associated documentation (the “Software”), to use, copy, modify, merge, publish, distribute, and sublicense the Software, subject to the terms and conditions below. Any distribution of the Software (in source or binary form) must include a copy of this License and preserve the above copyright notice. By using the Software, you indicate your acceptance of these terms. If you do not agree to these terms, you have no rights to use the Software. +Permission is hereby granted, free of charge, to any person obtaining a copy of the Schon software and associated documentation (the “Software”), to use, copy, modify, merge, publish, distribute, and sublicense the Software, subject to the terms and conditions below. Any distribution of the Software (in source or binary form) must include a copy of this License and preserve the above copyright notice. By using the Software, you indicate your acceptance of these terms. If you do not agree to these terms, you have no rights to use the Software. 1. Non-Commercial Use The Software is provided at no cost for personal, academic, or other non-commercial purposes. “Non-Commercial Use” means any use of the Software that does not generate income (directly or indirectly) and is not part of a for-profit or revenue-generating activity. For Non-Commercial Use, the Software is provided “AS IS” and without any warranty or liability. You may freely use and modify the Software for Non-Commercial purposes, and you may distribute it for non-commercial ends as long as this License is included and the same terms apply to all recipients. @@ -55,4 +55,4 @@ Egor “fureunoir” Gorbunov Email: contact@fureunoir.com Telegram: https://t.me/fureunoir -By using the eVibes framework, you acknowledge that you have read and understood this License and agree to be bound by its terms. +By using the Schon framework, you acknowledge that you have read and understood this License and agree to be bound by its terms. diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..38650eb8 --- /dev/null +++ b/Makefile @@ -0,0 +1,100 @@ +.PHONY: help install run restart test test-xml test-html uninstall backup \ + generate-env export-env make-messages compile-messages \ + format check typecheck precommit + +# Detect OS and set script paths +ifeq ($(OS),Windows_NT) + SCRIPT_DIR := scripts/Windows + SCRIPT_EXT := .ps1 + RUN_SCRIPT = pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/$(1)$(SCRIPT_EXT) +else + SCRIPT_DIR := scripts/Unix + SCRIPT_EXT := .sh + RUN_SCRIPT = bash ./$(SCRIPT_DIR)/$(1)$(SCRIPT_EXT) +endif + +help: + @echo "Schon Project Management" + @echo "" + @echo "Usage: make [target]" + @echo "" + @echo "Targets:" + @echo " install Pull and build Docker images" + @echo " run Start all services" + @echo " restart Restart all services" + @echo " test Run tests with coverage" + @echo " test-xml Generate XML coverage report" + @echo " test-html Generate HTML coverage report" + @echo " uninstall Remove containers, volumes, and generated files" + @echo " backup Create a backup" + @echo " generate-env Generate .env file from template" + @echo " export-env Export environment variables" + @echo " make-messages Extract translation strings" + @echo " compile-messages Compile translation files" + @echo " format Format code with ruff" + @echo " check Lint code with ruff" + @echo " typecheck Typecheck code with ty" + @echo " precommit Run format, check, and typecheck" + @echo "" + @echo "Detected OS: $(if $(filter Windows_NT,$(OS)),Windows,Unix)" + @echo "Scripts directory: $(SCRIPT_DIR)" + +install: + @$(call RUN_SCRIPT,install) + +run: + @$(call RUN_SCRIPT,run) + +restart: + @$(call RUN_SCRIPT,restart) + +test: + @$(call RUN_SCRIPT,test) + +test-xml: +ifeq ($(OS),Windows_NT) + @pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) -r xml +else + @bash ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) --report xml +endif + +test-html: +ifeq ($(OS),Windows_NT) + @pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) -r html +else + @bash ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) --report html +endif + +uninstall: + @echo "This will remove all Docker containers, volumes, and generated files." +ifeq ($(OS),Windows_NT) + @pwsh -Command "$$confirm = Read-Host 'Continue? [y/N]'; if ($$confirm -eq 'y') { pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/uninstall$(SCRIPT_EXT) } else { Write-Host 'Uninstall cancelled.' }" +else + @read -p "Continue? [y/N] " confirm && [ "$$confirm" = "y" ] && bash ./$(SCRIPT_DIR)/uninstall$(SCRIPT_EXT) || echo "Uninstall cancelled." +endif + +backup: + @$(call RUN_SCRIPT,backup) + +generate-env: + @$(call RUN_SCRIPT,generate-environment-file) + +export-env: + @$(call RUN_SCRIPT,export-environment-file) + +make-messages: + @$(call RUN_SCRIPT,make-messages) + +compile-messages: + @$(call RUN_SCRIPT,compile-messages) + +format: + @ruff format + +check: + @ruff check + +typecheck: + @ty check + +precommit: format check typecheck diff --git a/README.md b/README.md index aca50b61..01d690d7 100644 --- a/README.md +++ b/README.md @@ -1,132 +1,263 @@ -# eVibes +# Schon -![LOGO](engine/core/docs/images/evibes-big.png) +![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg) +![Django 5.2](https://img.shields.io/badge/django-5.2-green.svg) +![License](https://img.shields.io/badge/license-Custom-red.svg) +![Version](https://img.shields.io/badge/version-2026.1-purple.svg) -eVibes — a lightweight, production-ready e‑commerce backend. Storefront, product catalog, cart, and orders work out of the box. Minimal complexity, maximum flexibility — install, adjust to your needs, and start selling. +

+ Schon Logo +

-- Public issues: https://plane.wiseless.xyz/spaces/issues/dd33cb0ab9b04ef08a10f7eefae6d90c/?board=kanban +**Schon** is a production-ready e-commerce backend. Storefront, product catalog, cart, orders, and payments work out of the box. Minimal complexity, maximum flexibility. -## Table of Contents +--- -- Features -- Quick Start - - Prerequisites - - Installation -- Configuration - - Dockerfile - - nginx - - .env -- Usage -- Contributing -- Contact -- License +## What is Schon? + +Schon is a complete backend solution for online stores. Whether you're launching a small shop or scaling a marketplace, Schon provides the foundation: + +- **Ready to use** - Clone, configure, deploy. No assembly required. +- **API-first** - REST and GraphQL endpoints for any frontend framework. +- **Multilingual** - 28 languages supported out of the box. +- **Extensible** - Modular Django apps, easy to customize. + +--- ## Features -- Modular backend, easy to extend and customize -- Dockerized deployment with Docker Compose -- Celery workers and beat for background tasks -- REST and GraphQL APIs -- Internationalization with modeltranslation -- Redis-based caching and queues -- JWT auth and rate limiting +| Category | Details | +|----------|---------| +| **Framework** | Django 5.2, Django REST Framework 3.16, Graphene-Django | +| **Database** | PostgreSQL with PostGIS, Redis caching, Elasticsearch search | +| **Tasks** | Celery workers with Redis broker, scheduled tasks with Beat | +| **Auth** | JWT authentication, rate limiting, custom user model (email-based) | +| **APIs** | REST + GraphQL, Swagger/ReDoc documentation | +| **i18n** | 28 languages, model translation support | +| **Deployment** | Docker Compose or native Linux with systemd | + +--- ## Quick Start ### Prerequisites -- Docker and Docker Compose +- Git +- Docker and Docker Compose **or** Linux with Python 3.12+, PostgreSQL, Redis, Elasticsearch -### Installation +### Docker (Recommended for Development) -1. Clone the repository - ```bash - git clone https://gitlab.com/wiseless.xyz/eVibes.git - cd eVibes - ``` +```bash +# Clone the repository +git clone https://gitlab.com/wiseless.xyz/schon.git +cd schon -2. Choose a storefront (optional). The `main` branch ships without a storefront. If you want one, pick a branch: - ```bash - git checkout storefront- - ``` +# Generate environment file +make generate-env -3. Generate your .env file and review its values - - Windows - ```powershell - scripts\Windows\generate-environment-file.ps1 - ``` - - Unix - ```bash - scripts/Unix/generate-environment-file.sh - ``` +# Review and adjust .env as needed +nano .env -4. Install dependencies - - Windows - ```powershell - scripts\Windows\install.ps1 - ``` - - Unix - ```bash - scripts/Unix/install.sh - ``` +# Install (pull and build images) +make install -5. Run the stack - - Windows - ```powershell - scripts\Windows\run.ps1 - ``` - - Unix - ```bash - scripts/Unix/run.sh - ``` +# Start all services +make run +``` -6. Production checklist - - Include `nginx.conf` into your Nginx setup - - Issue TLS certs with Certbot (https://certbot.eff.org/) +### Native Linux (Production) + +```bash +# Clone to /opt/schon +sudo git clone https://gitlab.com/wiseless.xyz/schon.git /opt/schon +cd /opt/schon + +# Generate environment file +make generate-env + +# Review and adjust .env +sudo nano .env + +# Install (creates schon user, syncs dependencies, configures systemd) +sudo make install +# Select option 2: Native Linux + +# Start services +sudo systemctl start schon-web schon-worker schon-beat schon-stock-updater +``` + +### Storefronts + +The `main` branch ships backend-only. For a complete store with frontend: + +```bash +git checkout storefront- +``` + +--- ## Configuration -### Dockerfile -If you rely on locale mirrors, adjust Debian sources before running installation scripts: -``` -RUN sed -i 's|https://deb.debian.org/debian|https://ftp..debian.org/debian|g' /etc/apt/sources.list.d/debian.sources +### Environment Variables + +After running `make generate-env`, review `.env`: + +| Variable | Description | +|----------|-------------| +| `DEBUG` | Set to `0` for production | +| `SECRET_KEY` | Django secret key (auto-generated) | +| `JWT_SIGNING_KEY` | JWT token signing key (auto-generated) | +| `POSTGRES_*` | Database credentials | +| `REDIS_PASSWORD` | Redis authentication | +| `SCHON_PROJECT_NAME` | Your store name | +| `SCHON_BASE_DOMAIN` | Your domain (e.g., `example.com`) | + +### Nginx + +1. Copy the example config: + ```bash + sudo cp nginx.example.conf /etc/nginx/sites-available/schon + ``` + +2. Update domain names and paths in the config + +3. Enable the site: + ```bash + sudo ln -s /etc/nginx/sites-available/schon /etc/nginx/sites-enabled/ + ``` + +4. Obtain SSL certificates: + ```bash + sudo certbot --nginx -d api.yourdomain.com -d yourdomain.com -d www.yourdomain.com + ``` + +5. Reload Nginx: + ```bash + sudo systemctl reload nginx + ``` + +### DNS Records + +Configure these DNS records pointing to your server: + +- `yourdomain.com` (A record) +- `www.yourdomain.com` (A or CNAME) +- `api.yourdomain.com` (A or CNAME) +- `prometheus.yourdomain.com` (A or CNAME, optional) + +--- + +## API Documentation + +Once running, access the API documentation: + +| Endpoint | Description | +|----------|-------------| +| `http://api.localhost:8000/` | API root / Admin redirect | +| `http://api.localhost:8000/docs/swagger/` | Swagger UI | +| `http://api.localhost:8000/docs/redoc/` | ReDoc | +| `http://api.localhost:8000/graphql/` | GraphQL Playground | +| `http://api.localhost:8000/admin/` | Django Admin | +| `http://api.localhost:8000/health/` | Health check endpoint | + +Authentication header: `X-SCHON-AUTH: Bearer ` + +--- + +## Development + +### Commands + +```bash +make run # Start services +make restart # Restart services +make test # Run tests with coverage +make format # Format code with Ruff +make check # Lint code with Ruff +make typecheck # Type check with ty +make precommit # Run format, check, typecheck +make make-messages # Extract translation strings +make compile-messages # Compile translations +make backup # Create database backup ``` -### nginx -- Comment out SSL-related lines -- Apply your domain-specific settings -- Run `certbot --cert-only --nginx` -- Uncomment SSL lines and reload Nginx +### Running Migrations -### .env -After generation, review and update secrets and credentials (API keys, DB password, Redis password, etc.). +```bash +# Docker +docker compose exec app uv run python manage.py migrate -## Usage +# Native +cd /opt/schon && .venv/bin/python manage.py migrate +``` -- DNS records you’ll typically want: - 1. @.your-domain.com - 2. www.your-domain.com - 3. api.your-domain.com - 4. prometheus.your-domain.com +### Creating a Superuser -- Once running, access: - - API root / Admin redirect: http://api.localhost:8000/ - - REST docs: http://api.localhost:8000/docs/swagger or http://api.localhost:8000/docs/redoc - - GraphQL: http://api.localhost:8000/graphql/ +```bash +# Docker +docker compose exec app uv run python manage.py createsuperuser -## Contributing +# Native +cd /opt/schon && .venv/bin/python manage.py createsuperuser +``` -- Track and report issues here: https://plane.wiseless.xyz/spaces/issues/dd33cb0ab9b04ef08a10f7eefae6d90c/?board=list -- Pull requests are welcome. Please keep changes minimal and focused. +--- -## Contact +## Project Structure -- Author: Egor "fureunoir" Gorbunov - - Email: contact@fureunoir.com - - Telegram: https://t.me/fureunoir +``` +schon/ +├── schon/ # Django project settings +│ ├── settings/ # Split settings (base, drf, celery, etc.) +│ ├── middleware.py # Custom middleware +│ └── urls.py # URL routing +├── engine/ # Django apps +│ ├── core/ # Products, orders, categories, vendors +│ ├── payments/ # Transactions, payment gateways +│ ├── vibes_auth/ # Custom User model, JWT auth +│ └── blog/ # Blog posts +├── Dockerfiles/ # Docker configurations +├── systemd/ # Systemd service files +├── scripts/ # Installation and utility scripts +└── nginx.example.conf # Nginx configuration template +``` + +--- + +## Feedback & Issues + +We value your feedback. Please open issues for: + +- Bug reports +- Feature suggestions +- Questions about usage + +**Issue Tracker:** [GitLab Issues](https://gitlab.com/wiseless.xyz/schon/-/issues) + +Due to licensing restrictions, we cannot accept pull requests. See the LICENSE file for details. + +--- ## License -This project is licensed under the terms of the LICENSE file included in this repository. +Schon is released under a custom license. Key points: -![FAVICON](engine/core/docs/images/evibes.png) \ No newline at end of file +- **Non-commercial use**: Free for personal, academic, and non-commercial purposes +- **Commercial use**: Requires written authorization or automatic 8% royalty + +See the [LICENSE](LICENSE) file for complete terms. + +--- + +## Contact + +**Author:** Egor "fureunoir" Gorbunov + +- Email: [contact@fureunoir.com](mailto:contact@fureunoir.com) +- Telegram: [@fureunoir](https://t.me/fureunoir) + +--- + +

+ Built with care by the Wiseless Team +

diff --git a/docker-compose.yml b/docker-compose.yml index 4a0b5dc2..a8f895ea 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -147,7 +147,7 @@ services: condition: service_healthy logging: *default-logging healthcheck: - test: [ "CMD-SHELL", "celery -A evibes status | grep -q 'OK'" ] + test: [ "CMD-SHELL", "celery -A schon status | grep -q 'OK'" ] interval: 30s timeout: 10s retries: 5 @@ -175,7 +175,7 @@ services: condition: service_healthy logging: *default-logging healthcheck: - test: [ "CMD-SHELL", "celery -A evibes status | grep -q 'OK'" ] + test: [ "CMD-SHELL", "celery -A schon status | grep -q 'OK'" ] interval: 30s timeout: 10s retries: 5 diff --git a/engine/blog/locale/ar_AR/LC_MESSAGES/django.mo b/engine/blog/locale/ar_AR/LC_MESSAGES/django.mo deleted file mode 100644 index 0a83ae2c6076c3799937445b3b43a926ec842625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3945 zcmai$+ix6q6~_l?DHteFE-IHuzoZhjg=cL?G)kQYNE|0vO5(`akwCQSc=zYsX=i7a z`OP@-15%yD_TnG`54<5zR9at}#4*mLM*Sn;iJ2E(c;kV;fCoP3H?tQvMXa)WewTCk zp6@y5=ltV^XMX4K`6}OU^Zk(T5xzhB1V4QKiu@Jdzwy1!_w`RX&NSzLf5vh6=Nx_3 zafXoJK|YV1L7qjvj{GL_4ssItAyV|6Pdmi*ncDqR7>tD#PA)otVVSfbqD*F*6@T?86 zByIa4j01%ZaP0>e&gaVYSCCQ%Ol|JMk9>rm{*UlMSj(53f0?i4RyI>%)oYnF@DgoQ z)Y7q+_)%!oVic>U7kYI+tSc|9saPkmua{(dB{GT9Vd5t~Mt-O~ZoQftg~76FMl~I% zC0}1tMkf_D*YJ(12A)CFsKoPwDAqNVM5=+?Ko{Pkg*SCI;lAM|%8Rw~s)@gZAhH(( z(KQhHK~kVo3!cG66snqD^h1_%r(;u5(+PMIT}KgU*ZicR&b{e{^=QywReek2uTYjm z%(6*z(+1I@N#ny5c!6IJ3m-{CcVod((>F#~lI(OhSAd#`@YNu#;mL!SS`Ch(&IISimU~^f} z4R6V(fYD;VpOT#pyo7o#q(YO_+Dns06ptv18t4%LmVje~mM9Z|HM}Q@S8X)yjS15F zNKqhTqN)$$l+~-3tP~)1i1R8ja0p0`;uvMpYD0O3rulj5$5IGQp>*7dssxXesXw3s zs|uq;EkqR6_{}s(yiiA}36^bUmVJ}9T2UFcm+Xjn(8=12?1Qg!H1=rSsc zKKTjJ64h3fJBNudiACA+>RPsmjEh%j*t#gWDY~#!ou9p^hIFM~QE!YkbkG`Q;0PTr zzcKs+C-6ZDChNhdq3&P~JBLyv2;CxlmXwjuvQ9`UHM++}CwZUhG2)IOw?C3vcVWtv z^p0H`r_=7_VyG~sv`P2l5prt2X$9W03caRwre`aYGnc-PSy)dgoI9tz=7hR<=JJL4GZ&`*ul@vOalLrp()6XNUPj}U zv4P2ABHg*=7GM*7JsE{LKRl(X4KL=YJv~2n-aXmV6U>V+$O|9UD8Ym}x!@-QR|1}! zz&#(uO*5gwmff1u$4{wZd3q>RM^CHq;Zp-nzLEVUzm>13>>yudv5{?NJ1ToO+hwtr zZL7S^Vn5qqbC=bD%5RENzE&u1VzbKTA$of%U&%LAzM9?TteqWT&d*-DgO5`yl4H05p3*c+ko82b|h{einZ(m z*()4AlJp5C{t37V4eRALyDw?kTNZDZf3bkY(PO-=VJ{}ahP6Lb4x6ud&EA2e_Mx16 z;6U&YFC{^JB@n}+4B0z2-tBC&ld9w+CoIke6HY&6WSl*Ws z^cA#Mf1CMgwrerM7mzG>RN0oaynl$}J$QsFxCfFg(7v#i-xT)y6okt@kG7CI9nPep z(y!=<)}Q!YfmBP?0iI>GRvvJFk8ImH^=-4+>vAoW$pi>bo7sJoWD54Al?zwLS^=ZxLeRH4&|@|lWMhP zUmz_}g8ddHBP$u!eHll=vR)Y5`6Cb)7FV0$+5yT@8eQv+f%>Jlt%!Q(&*La%f=FG0yE?*_|_?9YneHk)pCy(_@o2lHe8G_l-~ z{tdH7;R-c z*|uEJ+Pp-z5FLH-)m7$-hQoKKyX0?m$Aub_pmbPCCdDnfgAjNg90ln<4i4lw8I?1_ zO5Zb9gV`U49d7rsU1cB84Ia7DyfY6HdI!}e~cJjQrZ2VjESktK>0RGHM%Wh{mSJ>Ppwi3 ZudB45ugf5dZkI}SklE+b-uHFke*vR*HYNZ7 diff --git a/engine/blog/locale/ar_AR/LC_MESSAGES/django.po b/engine/blog/locale/ar_AR/LC_MESSAGES/django.po index af8f5bbb..a9aaf7e8 100644 --- a/engine/blog/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/blog/locale/ar_AR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/cs_CZ/LC_MESSAGES/django.mo b/engine/blog/locale/cs_CZ/LC_MESSAGES/django.mo deleted file mode 100644 index b1858dc000dacaa26e29284f7f89ba617252a0e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3469 zcmai0O>Z1Y87^R#4+9H?PoYJ6la+`q+!H%!qu>xA_BxS899#A{hlpKmO?P>wr@O0q zyQ(^w;SX>if(wTz9Ci*!u*?(u-^NO5PNw4_t%8LpSbwC5UarN1K$81 z0Jnkf0ly0z0e65O0eQdptPr0Eybk;V@D1P!@H;?k5pMx60oQObn{&%O}Pl0dY zIS0NAdwvW26Y$@k6XKV^4P+h84Kwhg}`Z()wIFWyzGPk}fsc z(y6JakXm+A-6g3Ls+6lzRrBMav5u5>sY`Jv)glcUp&rEMs*z?oeHA-=?@33pQY2%S)&OXhd2SxUqBM7nb<~j-B8;X) zou(SM{7qH1MSBkRIMu~QnD#JrJ$k1vb=O?BI2C6K@|w-;h#gp`il9Vk>#J8Oka^nG zjSSaQb6w!5NUdd-*gG}%6^2>^^>OYKNRr?sNx+fOGN;Q^{?uh!2%y;L)3oaww_4&z zm9PQK;xu(~)1{KB4wN>!0`(1>jqgmEBI_z2J2()0>8PHpQv}eQF3Xv+Gc(U2o*mCL zajd0xJyWd{f|{#!Hq60}b)>}90k8(?&dIn}gfBMt-Ss9w)|xm4;|QzlPFZP;R2sr# z=zu^NDG?k?*2g`P7D@AgPb&_DLZDPN(@Ja)hiO?M!B*17QO6*tHZ6Saq*lh;d=NYf z>|0-!reglQGX-)vCbpBhN>5XJkvvRXaJMBSa=pqD^H4WxL-J2wOsSy4BNQD)Wo7C# zfv*u>Igjidka`4GEfQ96)C8ws#Zd8ZTDf`WtUYViKrPeq=>O4t-6SX!MI=9+lLMJPeG zFrQP(;Lt!hIOVNcurYH!Mf6bOf-Mg}?ArXsPVYE(!mSmvbcZh%5k@G3)64cSIZ0~E zTn4__bkHW69Umv~urk~@qP--#j|PBR+oIk3d)vFmbamtEwbtee zY6=Mv?b~jeMBBb=qqf;E1rcPwpMuryuVe+-u+3Y5(l@$>ags4)%Y7W4h}RxTvjU zu|;=p-Me#g>(1`~-M>Y#jpE_T{@(uX!lTXB#>!4pkx_e4!dRysxhr5U)i)^a$qKFZ z=1Kc@bbYapZ9WBq=AHjUOhHC%&(m;Sh)XCtFtIQSA|2Ezcj1&)j&V$7jtfS znun1svAvil5I&nF*?0t!xd($yR0ns?Jtafu|l{CswX3bf?CMVCeLa0W3|2}jzcsCv_BiTTJ>2?8A1?f z9`I;I&T>;QJs50|8EM~f=#WeEqZc{dr@5^%aS-w*w3;O|yqJ9G(4jJ9=X^Je6Zb-X zF2D3k^0I+=0MVe2TUTEtI#{xh;6Ks32a9&sqy$tl0@rF3d5(-}jH%C` VqQ#A0Oe-jas40nQ=}e1R{0I2;yQ}~J diff --git a/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po b/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po index 92a5e34a..495c9428 100644 --- a/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po +++ b/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/da_DK/LC_MESSAGES/django.mo b/engine/blog/locale/da_DK/LC_MESSAGES/django.mo deleted file mode 100644 index 2b79ecef9a65c09e9650d5233db3c5f174d18b51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3397 zcmai0OK%)S5N;shVcw7fLPV+%3EN_4V@Dzi4gq4v35Gbf%sMAP^zQV|Hq+a^O!sWE z|A7M%;siqCfG?c5amb0iBe=i~i9f(!fUmk|cTIxCXlHAtA5~v{Rb4fIJa^(tf$J3R zmvG<3eH!-%58w~iFOZ+%{uTEf+#fw8#16)PKOqEu;><}QRv=%2d?XCQAt^7;>(`99=Xyc@_5f#-9` zpCJEwM2K%7e}K~WFu(tJviCJ)3-8}TJ_q?TS$%OwjLxr=HtG>2)td#C2U z0;qQ|-!pX%O%lB1IXH4w8d`4nQ_HkaKs{&sx~P*|ZE>JRzyM~ko4UpoG-9eFrO8&L zKCzj6XUY`$P}RKv2cj=sHIQSC0J{EhJqb>8EB}WVU1996^$x4);WC5FcfNJ=Y-T9u=$3(N$7*)&(oCqHx%8@J-zXm=oGOdVlA)ZND*epFfxIrtbU9{=r za|2~Y=WyU)x|)2v`j#*nD1j+z@U${Nn5*JnF2V@1h52kKgF_P);8g9^f{mH;8qvcM z7mPgqv1{`O-#l^d#78e?=?-5!B8*T*r;p=da&qlQMo!4ep%Ofh9-<-usj@zb4$4GY zaX*3kmE*#Z?c~`l6abvH4cfl7v$_2~onJeDp}oF@Glhi6c737qY_l$W)^QuOw7-`f zpqlZH>?%@sgV(>7tzF30FVNb>jn`g(b!~lZZRv*eA?sAqdXz|4LHqT+1H!#|cysR- zy|J}-vvXyu^Y*pFgKdoL9JIIgcHhJ{Ths_#)=_e}K{u}4yncA)`u6{>-=JJ(dAYQ^ zv%9_UXuZ9*w3SX|)|rd|HmEz{9GKJg67>eMLaDuc*twQnT&!cveK3d$?{b7-gD!S; zSlTxzHzvF0s-fQ?JBqLV^7%`Y9xtz0I&+!US1&Dz9h;Zv4hE?^Zw+`3+R$M7oz0Qu ze0ou*2FP*C&$1s2dZz3^b)SkOQ|@9=(lgf?+iS*xhzKA{Nv zuw{CbLxbn6WQ%AFGoz_#WZX1LU}&K>SG-A<+%!9R#$V(bcziX;F zI+1EtLN3qPK9L87jj^ z3u<9BRqtrOfr`nhO}CD*!c=LStAR7@i7PySD@&^6QcC6V=E1}-6j@s4h%Bd;GCks+ z0vsU8#=ZirW_nckrn7KY$rAUop2~~4tCZYTEHf(e{`9CqF-tM!Lf5F7Q8!15HW7OZ zY{nytLe|F^lZ1k+OpD!OuUa&grob7evC0S2qdvO~l3S^2r#P0Dvj&`@KA^e07jwj> zWWXK}jIvxHU2IG!2JVK`Z-b^b2Zb{UpAt*~uqVT$3}-b4?lp|&M!GB&>qOy2ZAIw< z?_MH+fS)ICYs97UVfrJx)r4l&b9|ZlP0Bh1hFcIP(IWj~-?420W3#f%$<@G`56#f} z63xUY&Lxi$jc(?3u8TnU(l9m90*%;Qv>v7^n>C)23s;Oo6EB}(x==wR24Y(QW~fwR zyMoK`iH~iwob!sA;`x}qvkkEkH9Y@ED?%!BCsK1gEBDlaRk7Q2UG^Pdj+2VdMUFy7 z-3tBtK1MXM6FCviaFOC%79DgCM%tj}ceK-E1I&f`eK`PO%k8|<*Mr7{b@@5g&n oj%~~a=C>(eY$&ss5S^%W6L?iMRu-R+_+sH5jDp)Ab}{Y$0K&ac^Z)<= diff --git a/engine/blog/locale/da_DK/LC_MESSAGES/django.po b/engine/blog/locale/da_DK/LC_MESSAGES/django.po index ab8fce54..6c4cd5b2 100644 --- a/engine/blog/locale/da_DK/LC_MESSAGES/django.po +++ b/engine/blog/locale/da_DK/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/de_DE/LC_MESSAGES/django.mo b/engine/blog/locale/de_DE/LC_MESSAGES/django.mo deleted file mode 100644 index 2ae8c5cac8d18e3ad75a89fea46408b1059138c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3547 zcmai$O>ZPu6^1V);ln_HghdpAbS9A)TXFT+6J<1b7=qj5F;>Ro!ETROBvGonZ+G9g zx~i#r%O3kDAQoA`8jxngiUm?u-k|;iuz?+0cKHF>z;o{HcH1I|lFM&>+&bqy?>YCJ z{^u(%{?>4OkMsMS7o0!feE&=Q92-Ni-%-#>cH@Pps z58(3&_%HCYuNw1b@b4I{c>k+!B!8cSE8PDZd<|UrrZGPU+u$nr8}Jw4UqDQl*S}>9 zf94JTX*_G-E8x4J@;w0G2Hyw24SoVDzu$w(|Bv8X;GaO~#BaY0LNgvbHb@wK=>yyv zsKw(|{%ao8uEwtZ^iX}S9_mlIsXslw%Ne!Ro9(ifPkdA4!Fs7Cw$6jAN-u+|mT_L@ zLst$ZFZ)v4P&<2~w@)e`#FoJY$49P|oVR&DtIFa`##P@Ia^mc%cpF;M896V#BKNHH z5^`5mwe3r&WQ5tmCTmsqW7`Y7ALT*v+DhIF?gYSdUKG_Sj9d{CJL%>g6ICgFJ8&hJ z`p(wACA$GW!46pnwNn>H^5EmV99B0yU-gbH_R?Yv#Gmnx?A`1+G$7LAn)5^={l0Auny!_~I-^7S;F7 zWKz|tUlXb^wcHcsDMMS%N_$Z}DqIY=WpZl0KJHhiWpW#ffA(M|g^U|g(X}$Es}t8J z){IA?p*qjRK0{Sc!5Yn)(GsjR>&PLjWvdJv@u|@2HD;A}h8^KUWI4%)R&RrDmprYA zc@ce+s&KaS=-`no+t#opAKe<+VseWOhwJ+6qm_3};a~};Xu-?!<;Gkw*FwYz)uMXN zBqN|R8wjfLcA>^Rct`fw;zpUre;V55g`Zt%?ZiuO=H*T-o(z-981z*>Do)?|Ns*sP znUAf}2k9ajf=HbWXgaiswBo-7d{S51II`V-_LK&|UfYoEr@QU#L%F?n`%Y_pi9JO@ zWP5(-`dPaf`m9rJ$kLPj?0{~jUt|v`-3?v;PPTR@TfZY~cQ@Yo(OYZlYimo7av!oz zotK^#S=CtI**_4@_R-`0r}E>i{l}fnt*Y8cl`!!ChOa!z1_X-MMUeZwWY1JBeTxg1hTkcg! z(~EGfFZXm*6xmZ|MRusO;sNu-%6mF2EYpHQZU&Tym7g&OMtQf8gC@BaN#{jvdsHVd1`%wyiCcnF%E=OQsiH z9_Z$CW4bO1;a~L<^r9KLa-?}sq2Q-VBZWu$bB)|yojO-7`{V0#=P5;)BbfhsIqj#(eyb2ZO*5V45k;g zY|^!ntK%TFD!Vbd#SB6a-Ks9_jJ2(wwoa&rd1;Alv9j z6;7X*$5Gu?Id4h3m68LaQ>$g6XL2l*XRV@M^(wZeE%QPJ)*595k|Qa(jTzC=PrKvx zoT=u9Dd0vYf)BCsQ?j(I=R*owHb#@}=$xYB{#T*;q>XPGcv;z-O|96%+=B4s^I0U! zE`I-LDFrr4%J!)xjFN^=8TI)I(Hj-cPJhRvSnNYf0s0sMJiXB*&ITLdqH@-@MA#ca zI3-W5#r@AqMj1a5m0}!PDL{-_v#a%^zZ+H9Hjk)^^nF}@sEb6m#^r~##EF-Z^#vnu zvtYVJOVj5R06jy8AY_&`-PfAVin&xKRuYS5GNk-nOH(HFnNy|@tF&m9P$0ehKwAi( z1hzNKEEGfV8k&Y>OTCMc&TqA_DKYj$iX2__LW!Gg}+TESzPG&3c)!{{ZDodwu`_ diff --git a/engine/blog/locale/de_DE/LC_MESSAGES/django.po b/engine/blog/locale/de_DE/LC_MESSAGES/django.po index 76f2eff7..c4e123ff 100644 --- a/engine/blog/locale/de_DE/LC_MESSAGES/django.po +++ b/engine/blog/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/en_GB/LC_MESSAGES/django.mo b/engine/blog/locale/en_GB/LC_MESSAGES/django.mo deleted file mode 100644 index 4580471ec87b28ec0bd0de3f6380ffbf26be5f03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3243 zcmeHJ%Wfk@6fIzehk*eG7JvZVFcL{b+OZ=|lyOKP4=1vemy8{;fYFq@%k7$JSDCJA zCtk8*!-5STz-J)MM}UOHjy)@Wfpe>!#|(^y1rnQ-Tz$H`s_#Ab+^V|%{pPhF1ln8Z z@1Z|Le;@tJXK+FL8TcLgFX*S}cb^lYh4;T*69PXmb6toz;77n4z(e3B@GkIO;E%v9 z;6otK7tagvBH%jkCEyKU1^6})Q^YOchroH@>%cuA&;M#V-Ur^oa|ZkZe7*-Vzdv3m z`Hf+e`TYr_?C;LYCBJnb^GkuuZwzF9KLNLazXEywJFk@fJ^(VmSs;F*jtlc!2Qt5H zAoELs%T82r9#griQps#20v2F7FffI*OyNRA^{!~>EJi{|S>=bQ+IM5+ADD={BV z(`APQu4JsIo<&lf9u}FGM%lt;lMq=@-xZ^g%~`*~+acC+Ow5x~Wu{B}V)3wWA>68v zSnK(N#GaVaZCL!%7gH%{SRfTWMWft~b%IzUyz&KB=Y-TLRCQReg0m)g3Fe%2$U&Hk ztPg+n{P zann0qJK@%ev*nIh95RelhM+I=VQ~`eMwy(DkwYc;MR^kpfk+TfC};d#z@yyq z!4b8R=okk8_F99Q$F0rg=d@H?TCUbB*i%>#(Y{M{5^WZ#i#oPJm7~L`jnj<3h_52 zsk~jAGc>bC_4(DxRb9BM3s-gFKdcLz|8rf~dvaaazg+tMxh~{SsS7iL|CoeJC=C3> oH!i%wf3Hwy!-K=WobXQ)#r=t;q4RiY;1{7ZbV6z9{)^J^7sC$wyZ`_I diff --git a/engine/blog/locale/en_GB/LC_MESSAGES/django.po b/engine/blog/locale/en_GB/LC_MESSAGES/django.po index 3d22b672..e9e2e20b 100644 --- a/engine/blog/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/blog/locale/en_GB/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# EVIBES GETTEXT TRANSLATIONS +# SCHON GETTEXT TRANSLATIONS # Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. +# This file is distributed under the same license as the SCHON package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/en_US/LC_MESSAGES/django.mo b/engine/blog/locale/en_US/LC_MESSAGES/django.mo deleted file mode 100644 index 156b32c36e09dd2a8e4871400e37ddfc1200130f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3248 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 FgFkrqT8aPw diff --git a/engine/blog/locale/fa_IR/LC_MESSAGES/django.po b/engine/blog/locale/fa_IR/LC_MESSAGES/django.po index a1aaa8b0..92b36319 100644 --- a/engine/blog/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/blog/locale/fa_IR/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/engine/blog/locale/fr_FR/LC_MESSAGES/django.mo b/engine/blog/locale/fr_FR/LC_MESSAGES/django.mo deleted file mode 100644 index 29743ab0776b9244e5e496f5f9b0f64c70c3d786..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3556 zcmai$&u<(_6~_y97Zw8x>@E^QASzicV{6?LJJLqMA%xiLM3(G0GUG_BHmj}auIZ_4 zPxowBwG;Cq&UUg5~Nswr{{kprV-uu4q`!)Z1 z^VMG|uD7|r$Nh}^``jOWfqz_oMgEfeZ`@C~KYm52J-+|rRi*e-mtIq975PKt8^}ZC zHu7WScagtA?jWBbWxx88Qm-RkLw*JM266@Y9VA=SJIKq(HRLyu`$*aUuv?!X-{HML zJ_OI_$bTaL{bi;8j{FNsKV<#4Uv2IE2l+1VuY66ZZzI=`50ST!3G&y-pCkW_6#MUf zT`3;bdq}Z=y_0)LOsNl%L!?3e0Qor*6Y390IsXiK3Hc`^aMYXJU*wjva`9O~p#pBa z#Fm_w>n(1H!#B9aw(ujD@N@AJK7?zrC)c;QBe(LhTc&32o5BR^bv3uO39c%=o>aA- znbPF0%(W>qUE5GQdm^v*D<8BigA0yBuGEHAlOr)R~>Q zl1EvywIAxe0G?oTHUjOj3se2UBU9$pz;i17)S|E5EROh7AM7j|v88Y7=P59S%ga_r znA+YJ9L=2f!jgDrdtU+SE6k@wlcCALOP0Y=RhmK%I{xfHpDWO5RZd*qv~CU6k)4A9 zW;w0LMV0HhP#r04ZAI!^He26?GOK;4n>64+^krYI?^tO;+7jg{Hc$vi zLvXzIO*+-alQf?-u9iSp0%hx^RV{cVOcxDmucF7 zP52ZVvh!5iC$Q>CSS3+Yl7h8F9Xd37DV2%CKOtJI#;CHUs0be-%DKs{yap*3)9#3I z(X!HJVYl`8XkV||VLsHKT$$QpeuaX=bbb2C+AUQ$P=YCH@Orf`%r*6#ix?qWgwKvL z96GfDry6h1*;qR7h#n=b1bO@?uJsSTdy?FVk6ta)9bY^VCX~_Xi+F^b%=vj?PIYN! zR>_C%`-jO9-Aqm-ACS6Rvj6>L<65$LO>bP^djCi7ZES9Atn3>fl2L6+ zPm8Q-wBJ2E(%jp}_YNQEAMYIA8{OU+{q)Z9(Jo*1j)psj2S4FhnKuM38Cf&i()+jX z-95g2clZD9-_jHDdF5d5VE5dk&Edw%PFs=5=yVR)V4s95Fz3n}I-Q!DR(tb!bSJrf zzE3buV2}=9WrSc$Umv@$a=)P66v>^cp7||Z&f}}UdG&^FA8)Rf`qE9kxprfv9}ZR* zu{AEvmg6C_l$4j&ph=o+0GwJ{cI?T%9S(~#-!}IQB)VZ|>FsPxDscLwK_imhws^`X zTVkVaVcs@{9qJt$f^8=U%VagVxcFToiPY3O2MZMyaWOln_}Ch0DB8nRoF5Z_gxGEo z*q6p%OEob+7H1@W4T5g42%5zi)5Ougb_)>s0cE^+noCn{;;2|Woki@uo~-GI3a+$+ zMoi`g@@XylGvK~Rogc)(LQ{wcWchp|^e8Ma_N{(oo1U$-nlT<2V2iWd6jr)0UO~~t zAtJla)y3j27H6{8I6S$$tjo*ov>`?;Sz%`x2^5SS1Q1r9XlDR1%Q!@mJEDRvDDHmp zZ~)c>B=y#!%LeFuQCTFn_a#osZWKX;gti#aylulULLV&F%%iATMpDBw?a?isrm#~< zr_~da$}o^03~_Y~!8EZ5NXEXr(eL7vTAW2@dxsow*()%l*To6NbFeVr+xU^(j`@MT z=#Ojzhpvc>_&0IsRGNDPvrg-zfzO$4az3-olYUmUVd%2!rASf$QpjW{{*m3~ve^1j zCdnigC4XB7F`VCJ81Z zPPmW^QrmI3b@Pl2kH58Q0Ff!6?qEryS5mM7HBPTMxPY(7{oIAb6)kl$>%G)t412#j zllm^$XLGXQrO~HvseNWi;b5c%&6Fb7}kFKcR__;j)J`d~T! zfgJmXL~vdc%JaA|8iNz!e<7_hEdEG^G(D-khD%C{#Hx{uH}S1|iS15uxBVb_E$2Ik z?IEv@7H4TQZ<`w-lU}&o^1qz8SIwZ(OvDjkQUWnpoCOElv`-b+8*;O$)ksXnFC@Z= OJ8}F#X$$W8(ES(3k$)5b diff --git a/engine/blog/locale/fr_FR/LC_MESSAGES/django.po b/engine/blog/locale/fr_FR/LC_MESSAGES/django.po index 92b3d1b8..3000dde3 100644 --- a/engine/blog/locale/fr_FR/LC_MESSAGES/django.po +++ b/engine/blog/locale/fr_FR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/he_IL/LC_MESSAGES/django.mo b/engine/blog/locale/he_IL/LC_MESSAGES/django.mo deleted file mode 100644 index 3553e3c754eea434a8316249e66ccbc626040db5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3716 zcmai$-)|j9700L0^20z21ti1|X+oviR=qcNL__LeO5!+?r8tg^9SMn6UEe#tciX+Y zmz`ZFe&Uq}9_-}0squ{yyC$*y5Af1|0STT~;(>QwDjs>{b7uDbNK3_S*Jo$u%sJoh z_neu{KVN-uSMmEE&yRUN;rR*AZ(raKzrSJs$n$redpz%cS*b<_TGsMoMR#ZF?sjlGE#|97hO z4eV=-W9&QN*~Y%`C8a+7s#5=9{BMHZV*Ov=@cS-(Q>i(|SFpnI_t@WHyV##&KgEXF z*T3cc|A74t;~ngGu^(ft9*tfCQu)tBT@&He0 zyPxt}^McoDD}#lk9(HUIhqOu}ZAGMY+Ch?YTrwtS9&B)x< z*5oz4+KQ~M$Dzg3>O73%G&2pIr@BSh*!XDa`unDyv)&4G9cD&{^*q|dkU5Ow^e%{^ zIQQuEdT0reCc0rZqJ&pjGnuXF#T-1jY2pa9yHVcK*WM44W;$-!RsX;c&pQhdyJd6J zc1cWPi|ly`!Z>OsK1SX$gIs9Tj;s}xgq<011*lC)Uyq9hkwSE7G|(tb!dQ=2`k8S( z44~_2vJo{4PphU@Oa}}o%Wl0Mr%l}vshy-gmy_PB>A8z!M%z3q>Nx})mvz$$HzNv| zZj8pM)ak>^sponjGD)q&B5$SHl%}Y$nG#?*IHqWciU6t+JtL;{7Tr{VAfvipI z5sFjRuvw|%L7If%b#f38kRipf+7|Ve4lPadyCTY@5QajTte;g29x2mkLJd}(q`6*C zDXNXyMVyC;NedfqIc83MTXZ^UCi)e5+NPK5T5#&7NvhT!HjfDB=+;z7uV)`L(z}UI z>zcossHD*Cf>Nv--O19;r~%i2sl1>&x3sy3s+NXTQZ*$lm`T-rW-!gIMJO_@{+17iLZ>u;0 zC74_Ut0x8rb5cD=ktB4B=vheyp)Hd`s<39LMxT5{^*G{6kh?!ZZSZ2NH|ZVsYE{48 z;bN&UrF5i6@rXE$$admzODAF5D4FmtE)YPnV1rACYr=bcUclQ~Di=qv*a+@$0dUr4 z^}?OSs|&x@7p5;c-x5nQ8nXT|@`VESS( zb5T!Untk)FH>PK%r^jxFHV;;_FtJ>bX-4!L%PX4a>e{X4JNg&%%ePjq%&-3H`r66@ zGm9&=`Q@cwvMp&A6fRgbVS85JymITt+Lap%|JQ$3w@eVlV@r!m3qwXTwdt{Wee_hW^FsG zla3qOxeJ%If1R61^tm}bGkJMTl?Ua1xmWgdd0ZZqyJe5(OkeKSR*TU7yRZpZpEI$(ZQZi&3DOtbz2Tr^_aFeBCae)658Sf&NKxKfN zBl^XWE8#0Pg7l2u+;z|y91+xYpft@+c`~Kl>KU2Oco#MI%g4Mu<87z>v#^nFJSjgG zV7rii3QvhgyG;3y2E#Lu`F3_IyE5h4V5B)^`@UCi8)wl%VxjiF<3)%0209hiy*?P1 z*Ej!XA%SySPE1dFtw+uMc_Sh$15U$%oAF3oLkdATtVrSNEN4MLRKoAlY2qOLhKtDT zK8wEf4_P5wm;J&R$tXNWS#nETJR8b3_=bpR16_yTi=clPkL6%VV;n(#Pq|lmL>lTt zsk`hQNPFz)&}t)v99fp5;hIgclVc%zQZ~9z2+8EOsO>HZad<#dr?hiB@|6&Uu38Y_T^XIRwNmX?j1<*_Ve^-D}E*x+^fx5p~ z88~@ZdCZrW*mA7^N2IHIb|ivaG}6D1&Z(gyUMGq=&}c-t!Q7y-l4LMjy^#Kqa`+@C z*LXEAD1_{TFD7~_gg$$*%b}*yZcWZDh}E#Ss)ar23m)k>>h7yhksqAq5h_F2{{=RV Be7yhw diff --git a/engine/blog/locale/he_IL/LC_MESSAGES/django.po b/engine/blog/locale/he_IL/LC_MESSAGES/django.po index 7bc4931d..9bc6fe4e 100644 --- a/engine/blog/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/blog/locale/he_IL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/hi_IN/LC_MESSAGES/django.mo b/engine/blog/locale/hi_IN/LC_MESSAGES/django.mo deleted file mode 100644 index 9964f0bf6f21a7376a5f3b631dd55508538e3d72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmaiv&rX9t5XNit#L=^dJ$Tc>rAY~0|3pAaND4Fv+*ep}P2FvlZKDt3>-j7W7kl(e zewk$Eo5?pn=V#wD)CqEdTq38)H8Lqc0EbJgljlzxqu)hmA?u+PW|UenlC)WrJd-({ z`>y9yVyBITd>mvC(S8`A){Hot5-M?!(*`_oE7;^;0QJH12@Tj{c||=+oi!gV)P}2Z z%dIweJuNGOL`_k)E5^*g}ra;6$D4$6!%paNK~hLsRl-Z7ipc@ EFP42@z5oCK diff --git a/engine/blog/locale/hi_IN/LC_MESSAGES/django.po b/engine/blog/locale/hi_IN/LC_MESSAGES/django.po index 2028ed1c..434a4314 100644 --- a/engine/blog/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/blog/locale/hi_IN/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# EVIBES GETTEXT TRANSLATIONS +# SCHON GETTEXT TRANSLATIONS # Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. +# This file is distributed under the same license as the SCHON package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/hr_HR/LC_MESSAGES/django.mo b/engine/blog/locale/hr_HR/LC_MESSAGES/django.mo deleted file mode 100644 index f7b56b65f23ddd46f0761a3fd031f6e6afd9436e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYL@Jx{|h5Qd9j%810q;DHS;v>i||AF4~-63I@gG_3@iX-zN+cICJTeh7b$-@;`f zuk`4KdrtTM9v}S-FbBvfa)ult7f6=`Il<*M&d&MI!n=3936O1Jt$k~prG&4uDPNND zaC{YyqEhdi4;5;R>l@KInl9O95StcedO-sI9-lJ;ky{a`-T76I=SUz8|IeJ1&8WTHT_YO9Y zndE)xQ9O(uoDJIIyYC(L3HmEs?iyw64cWXY-|BF;s%DV%URUc?d*F8Cw#L?!BrhgJ FgFkrqT8aPw diff --git a/engine/blog/locale/hr_HR/LC_MESSAGES/django.po b/engine/blog/locale/hr_HR/LC_MESSAGES/django.po index a1aaa8b0..92b36319 100644 --- a/engine/blog/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/blog/locale/hr_HR/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/engine/blog/locale/id_ID/LC_MESSAGES/django.mo b/engine/blog/locale/id_ID/LC_MESSAGES/django.mo deleted file mode 100644 index c13178cc32b36c6fe77e4488123905e375a56eef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3375 zcmai0&u<(_6|RL{ei&F_0}?_Yy|9AVTKB|`v>`YIh#e;~#BpTCIUusyH`6semF}+U z?W(dfoH?QuLgK;&v3~+5g!Yes6F00Z$P>tY z$oC+>3Hc|;1IUjdWxx82QlEo(1M>5bZ$fTBeghI))Z38Xf!u=p3glx*+5dc4pFzHj z_XhGg@cb6?kC6ZVtWv**{18f?WBu9}vb_%=-@*Gic!xB)X= z_?+yB4Y{yg0ZO{A;lIQ|?1}Hfk6gmf`X%;+Yq2Mn;7Huc%b}fe=VQY`dvcxbIT&X> z&0J3{Tds_)h;2!|4!zOm^7_>IK-vZq3=SDfj8!fRXPX7JuG9^k8+}1uhY^kE#?!Q6 zkDZPtX-M0@{TMb9(TCZRKuwoSN1e`toLR#4mi%Z8D;*kNs5&xG|N@I>KCE z+5$(d@m^RG@ARdw0O}pgPn%dm6N8ts1V_$tLpKKg^bJ}mpsBMnQ^oAoNS*2q7{Dw} z)1+|~bwYKbG}}tlXEw9%LYXEX`Zx`6Ao()Ub3Qi+pqs7h8Q59E3y9|=3QZDgj$!Wl zZ9-5Ry)D23aBL$b1_!_zw1>dcd7D;z6RYhUAn)DOfN_MCtAUjaQd=mW!UhxqBqKPU ze4NgSJ(A{wXnF~RMxb=Rv`T_U!nAIXfR(HZG;s*3H*IVJTkWE67Rj^3zK>n!df_hy z*CLmvBsi(kc1Z12@(6Ls-H~GCdS93B!e+B6`G*e!71TzAVxp<*-MJ~@Yk^N8B0CqP zUxHPSgjEtXB`MfT)IkSfFG^)*;GYmJR#Q~5rce<+B$ORjT3&;c3+EjvE+i{C3x};| zr;lk8a!=Y7Uq_^;v$S7TZGSnGB~u*0Zv7) zS8ObuH;5ieTnX~@Ph7iv@WYejPI~leneOn#BfDJDz+oRnL)D#k;IQEq(i~U&n zV(j*4mnyZkpnu>s!A^wo9-6-mSZoAMb5ix_*y#x9)DJV{K75bsiAjT}?2?Yso#5*6o>F~kO}M6{c2dJ)UmYzt=ax=jdpCt(~~X(u(t zSkD7PazzR~(E-kDHu#mW%79k4h?^i1s1pu|ARuet3<9Oa9EfvS%l0snI9|1hDW(H= z2Hm~nnrdA}Nj4~%a*x4^M!_v#jsBAUGS)~YL>zXY8J1;yxI9eo8)7Y`lG`Jd=9F;J zM~nR^Mg%f}8UVh!h8@vM=hLNOaikc4PF$lg7)#FN2uQUr^8^~uz492T87UzIUJjXD zjq(Wzpm4n5Iba|R0$;`pzIL!QPbD^N7?K5B^7-X~A@gO(JipF7+Lfy2B>aC!sv zGI1X8EN~BU+nDE8PNL0Kfp4jYGRt4(AxEb)1LXx(AaE_PukQDH!WD`Ng^4s@@O6dc zR^!3%rTnQR<0_eDj}%4fWw}3j4(r)|1?Uryw(3;iR1IG$l@#aKl)G&#!Dxw}ZyEKK JFo;RE>VNdyG*mOC`ec$)}>VLg- z<2MDzH#on;`99}&Ie+#k{y6@I{1xZlIiGXB{h6ZJ_fyFCtfv-$Jsacp3RU6z2znJa)390MPqLH>Jq{vV|7`v}Rec;(Akejf>x;&r6re~bi9@e=2!IrW_$JT9QH0B$-| z2awY7b^bLDYEOMve)Ld&t{#d{xmLV-e2p`4t2euCW#*x8OteA#+;%29-v&AJoy<&Y zYS-3c+KF^FcFvyb?U4^rY#Uv4Y;vs_-kM42+vY-MeqtLrclMbC8%Hvpx*%0!0xN?= z;~L-Di9|0`)HXJ2^QZ6HD)N46qL|K#siHeaVA(W{e+DAg#Eec(O+bZjWn#}<%cZ`v zT^Pw;1W&Xz3xW2`#i_jUu4!w(8rW66XVI4zt0UneL_14HY#aLSIt8Y2b(?j>sa@KF zqnQgqSyJ!p(pP{6kNK+UCulP8GMT`UZ%res1Alf^E)_`S+cQ`9*{xA=Z0BHrS$4~5 z<7=5K)rrz%)TpSRzmFhD&j!$<sLIQ89z z5Y)zQD6j~Q4N_uo0M^hRqp7B|^d>ZYy^#YHg0CEm6IN3XtYnb3MR|n{6avx^oFJjE zreXp~^Yh+y8VF0EY`3r~ibunA)u4b?S|8=q6V%{leG^S@U`So?8(jx zvCm;Okg$bDtKoyfGKjnwc&1LB2?e z0MeCbG#%PRUh#1Pk2sAo>yB*R-G1!{uWoK_Zm#T`5X*6A+CYo+9oios z9t-Er$&Eg=4-ofsrM_Z%Km4~?^%kjk=u+ct`w_wh-_oSMdj#hjBWc;YSd$~?ApTQs< z-cJa@w%k2M^HD>)Y05{wn}uy@=jk@wzkN^g<^8o*Zr+!z^?NJD-eNci@k_(u7x3k@ zgHcf-I#S3|##OI_gBzAJu4!Pyxd)X^)+BU)*bn_A=bVepM%Yovjh zk^H1bv&kdF$_KxfGwnL0snB*=am{+&IPrDOUY9La+6{f{wN<%u2R!XOfU@G6)cQM9 z*G~I%>I7n3e(G|Ar(cicO~>mrMRd1r42pYZ6s?YrL5KRWm@2%~>; zCoebyJj^$YF8ovjX(m{P$`ug%s~_WSm@PD2Rol0#^g!Fu>64dvl4yhy)jDR9%FEHi zgfa7B#29reO_m%4;*=^BKe*I3Hj@2i7>;xfrHPZgB3?RjQpE5VO_iT%ol(XuqdhCh z`jn%jjcn4%C>k@OlcrD3rDj#zb;sO66Y1j{pDy8sDa5M{VM){2ni?b#)kmXa3h1f5 z10nTVzB1AzB8HdP9mtdttLaBEG*0Im`G^;ttEPO!kY5?{(xNP!$YW@*y+LQBY4YJg zX0@cj?9^!l$ql?`93}rP8I`cHFgtdofJ zNKTJa{v{&P{lS2Qud`*JBL+Iv6q&C1Uyx5Uy9OqUYd2YWeg@?|?dBXEkf)iSVC2zV F{1+>ILl^)6 diff --git a/engine/blog/locale/it_IT/LC_MESSAGES/django.po b/engine/blog/locale/it_IT/LC_MESSAGES/django.po index bf7a2a6e..6277656b 100644 --- a/engine/blog/locale/it_IT/LC_MESSAGES/django.po +++ b/engine/blog/locale/it_IT/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/ja_JP/LC_MESSAGES/django.mo b/engine/blog/locale/ja_JP/LC_MESSAGES/django.mo deleted file mode 100644 index 0ccaf17decad07404be13fe04c26ddd876bb81cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3791 zcmah~U31jd8CKgQZQV9)lU#H6=%l7JY03=75vlMu%cz}U3|%?Ab+`w#S@z3N?W&VG41Q~!Zp^m&i8>veI{9m|iT z^PczPdEWEtA1^&OrQ!DquAks4;QA@9KYk7W@cS!p9M|7)ox%0?H#Dsa@BjXsrr}R} z^?6Ne2L2NGBCs2H2>3Se$G|yY2e1Gnd+h~H`xfAN;J1M<0-Jz80>VUl4fu25PT&uK zM}cJjR=hp{d=1Yg@Gaz%2fp!jP5ak3HSM2xZiX`t>#uw_@;?gv1)i?}UjjY?_5l9^ z>;(Sodzv;4j-#{#BFQ6F0mw~j80TD|3HE=Jm9r%6VdqCRf1Id0YUcUxJI%+S{ zQ+oj#+-smvL%Qlmd%hFjzYHWD$S>7Se(6X2H2#PWxL179`yb*`+|om*mDF>>Gj*2> zX6Lx0yM}EEHefp}t6O^7u+mJoQq1A5WAH(GJYfr$amzJa1Dgzs=~&fM3EMJ#@L5))0bNqUw0PRwOEHgio4Y3Z8WEl1hOi z+tN+8Bj%6qV4DtD(zXVSv=^1tqV@0`asac~&H7C{&2mJwqBM%7sE^o;YA4D#6RzVW zT@;{d>E{`J(13vUK%<|SomzS>^z8SDCem8>+>Gt)Vi48jyC^XidF(<<#07vgcz0br znaQdZVS4FZkw8M&Ndt^SRy`fF5+%tkI8P!593n{_;s_?ZWQOSiP4k{-I3xszP~53S zWt0!e)EJN$f4QFtVQM>K3;>VGgOv6#K%<CvU*qDK}=7e*^l7sjT2Jx5tHZ%MbX zcXnsEncIy6htST@J3D`;nFg{%PRfH|&Gm!1Q`=G^f}mT7&zLe4G{jvLfwlMl)3sxrPXgld`G>bZiQBBchn-FFr-vPH|9g+qzsWW^&w{IS+3EG=ten0B2Hoe zLkD9bvUrxj6OK)TBhi&goWuaYS!-vVC%X=H{(Xu@usV%rK9`UZ?Vlvdk`+s%k^wKJ9_Z=k-mdR zI{&YIJ3FN(PUV`8bsg*6tf;M}wW%XIk%``+9FleU8Fx3BGpzkAnb94L+5>&PhZFlY z?I`B~Fo+3nryxN)+t+WnO(#r@8#8g(cCw_qT2(_7JKyoYumZMNvkd_ zNq?<$aasnWrTanU%DnWKWq4DD@5^vehLbY9EyIEgp2#qi;fVAXr9UeDOEMUX=DG~# zW%!v4&&%Le{NG=$EYDT)=cPXn&!yF?=$YYEXWY~ugKu8G8lpL@`VS|KZ{+Z zE9+(|IU`R5Kcdn!F}o9mHq^(l>v%JNsHBm zwer;GHIH}H-Z<~*Lj;eYFi(V`f|#BQ>SaUldVt^|l?eXAk3m@FiwC7VB3<1s_e&&2 zh$7(mp$zX*ivD8x&nV>e|!NC_*nce!A^?kVYJd^RW-Q%s;-Pf`(xV#qOM2lAuiNM16{7(@yid; z-80lr{y0JxSLVvo)ZnH3czFg(i!~cmy`XvvM4~%M-_ppJmCw&oVugpeZzNbHIjc%* zU`92#>hFtNO7@ql?=OJo%9YvjNFMsi;0qbvP~D|^4~Kz*ZfgCJ8Ui?v!!p1@!Fk6( zKsVPoCDU0tr{Q*%0qoU?p#M}r`C`7f`hh9{MPiuXY=Zg)#gr<0IN0nktvotanMYkU zfzF>>59g!D>e98+$nDZnUPJWt8#9&bXJvR@WxIk`lgf3xfX}LG(|CEKFj8C{+bCTB z?~m+80eY>#G>%InU@h z5!JDU@&EY{AHaBBD@|N0t_(NwQk(u?&4rQ`1EccE<5GS?i*&8uZ4FZI0U4qV@m=~- YHSLrP|D;;%0!e}Q{sJ77E=*|u0Vc@Upa1{> diff --git a/engine/blog/locale/ja_JP/LC_MESSAGES/django.po b/engine/blog/locale/ja_JP/LC_MESSAGES/django.po index ba926bea..0a67698b 100644 --- a/engine/blog/locale/ja_JP/LC_MESSAGES/django.po +++ b/engine/blog/locale/ja_JP/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/kk_KZ/LC_MESSAGES/django.mo b/engine/blog/locale/kk_KZ/LC_MESSAGES/django.mo deleted file mode 100644 index 9964f0bf6f21a7376a5f3b631dd55508538e3d72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmaiv&rX9t5XNit#L=^dJ$Tc>rAY~0|3pAaND4Fv+*ep}P2FvlZKDt3>-j7W7kl(e zewk$Eo5?pn=V#wD)CqEdTq38)H8Lqc0EbJgljlzxqu)hmA?u+PW|UenlC)WrJd-({ z`>y9yVyBITd>mvC(S8`A){Hot5-M?!(*`_oE7;^;0QJH12@Tj{c||=+oi!gV)P}2Z z%dIweJuNGOL`_k)E5^*g}ra;6$D4$6!%paNK~hLsRl-Z7ipc@ EFP42@z5oCK diff --git a/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po b/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po index 2028ed1c..434a4314 100644 --- a/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# EVIBES GETTEXT TRANSLATIONS +# SCHON GETTEXT TRANSLATIONS # Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. +# This file is distributed under the same license as the SCHON package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/ko_KR/LC_MESSAGES/django.mo b/engine/blog/locale/ko_KR/LC_MESSAGES/django.mo deleted file mode 100644 index 4d9786c17b30a9cdc2d790f73de379b599988cdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3582 zcmah~-%}gc6~0ZA{-9}^rhVvi+Rkw^6JUa5@H8G5*GX-HJIuY4&e8ISR!5q{utN|d=YpN z$m`#Z=O=(K3g3-KzRp9lU3cnWwC_zU1G zz%5`F_!l7a`N=n;wK42s+{=jAt-- zjxSyd2?gke7t#t)4X^Lumt%elgKOt}e6c?57wf@VvtE3C8za<~9|rA|kyi!F@T4Lq zFI~ek9b3_a<5JGBjf`n$$gtDoO3yXrBtKqpltlqO3Mk;#x2iDS0!o410PRjun^R4m|m9NeAlouPN%|Gsp}H)qQzW@ zno^$3g-N8X3hq$}49m>eQ4B9DTe+Z7&Qyw3;_76pRuEMV(xl1@V-$2KhL zjP;Y9bQpkAjy+*!3Q<`}F(UKe0A=wtjayEJ@+@^IX_PCJK2kHPoh6f`JhzbYP(WDA zxXc=pCJb~Y+T+CPH0gQpbG*PZvDZey%Q|ik!Bk83Ffk82de9Pa0ZlA+Kv?-fj!jgT-(y3MS_eAuS; zgaoc+J06WYFjbkkg5?>ubPCFv3M&iMSA~4uaaq5D=j71KDPo?Kk#^kLht0#nh2=FsAuJOt!6}TOsH?RxyTy?bkp$hsdd8BWpegC0sDhG*YBY;C;U2cQVCLZu zm)5#b@g4V0c&kLS-BF8z!>}?ex}6V;lQvb}GN#Bja#HY%=q3yVB5q;=hYpU3XvOCR zyy7~1a3qG(iK{pOu-E!&@aoXH!MEr{?}?Miz7FguG(_T(%9!cIxk5%IMxB1@xH6m= z!D+@{B;G{p_VfDJ61^uAeJ82+RR3!~eYLl*x3}Y>p}fSXYuE}$q~jv`h2asxI5&2A z_$vKuVEFRr*@4lYpC20;#G9d!Mtf(*9+c6OB$i(PW9%Mav(>o63O#3vYvWAPJ_RQGm`NXNibg>xH;8Nc0PPmXHJ}^==MyPO~=kqU-#(_p({@t^(yI&qQ3u- z{Ev7159;La*TR?E%faeHy|$!_<>(C8Yb(J*6@UJN18UT!{f~Bo)ly@BgBp9&diK}+ zz|qRZV6{woeOa&F)|DdZKW*yyrQqHQ;`s}6{=!z0bfreYOwC^}>G>^xeuaX2WnFwk zdUht5E$d1>O4+EE^Ag~v&%aajH!I|Cuj?mU2b-7{zI;2RaZ*> zQkjC)Vo;3O)~kNC#0xfCueWEIT(CBW+P{dIUVnfZ5t97sBWU2?Z3{tqp^OTG+vUdo z0R`_r=15DWqdXc<7NH2FB!8vqS5Qo>4QN+t{vUQwfZm>tD{JG@w4zuK=Ii*Lh0;$} z8r5m)j5P10C^$79??OL>px_Q{*=dty{&B3j@aroOpz%qa8ujVeZx+G7RSIUO{n^`1 zd%}N1NBlYRDT~1gH>>&{;@r8%1+mki^lb&`wOzDClQ|X@AL;d_9xN>TA3p>>Ed{ri zbbSN2#f@OLqBmwJSX|UB(%z2$WEvCmyZ-NXnY3TM6ZYN44xvf#CX{q>I&8Q1Kj7fp zR&o9RyVqJ-$uEVP9?3|0YZBI)}pC^c?$e;Hk{uoadJu zyC72HBK7K1f=Z1?wMd?sqrHaoA@@*?uo(2mgF5~)8dqAzR|2XOqy^6+di`VQC(b!u=cl*1Tj@0HYaH|GW;umQC zioah3TM>39+-LiKQ-Tf5bG_M5f*S)<_|Mj*OLP67|HsD0VGD;RLF;?&vL*){2_O!& z-w=FG-Q`24Ne@oxwOZGa)2#cy38O10Jrs~jj||hz?LlCMe~F_QV=!;%NTi|eo@E3Nt?GMX}cKBz@ioBp;xeRl{^W&qUh+pz) bf~U`hZu3uvVn8EY diff --git a/engine/blog/locale/ko_KR/LC_MESSAGES/django.po b/engine/blog/locale/ko_KR/LC_MESSAGES/django.po index 92a5a3c3..3a710a3a 100644 --- a/engine/blog/locale/ko_KR/LC_MESSAGES/django.po +++ b/engine/blog/locale/ko_KR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/nl_NL/LC_MESSAGES/django.mo b/engine/blog/locale/nl_NL/LC_MESSAGES/django.mo deleted file mode 100644 index f214e344e27a1d6970d2c9cb177eea97010efc71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3392 zcmai$&u=706~_xm2yq~UfC54w)e?bi#XW1Ul-1&86V_huVzFLZ&Uld!iBdCN)6<@w zuA!@XW}Q11!~qE*Bo0WNIBk|-_reEUcBd*Ancuio>& zUw!VkisNgX-{Sm`^V^(1`wTxEAA!H({3quV&i6j2)FIFR^_)`tscX+GwE=z)d>K3j z_rUkSZ-RdW_rVWAS+72?)E9u~!56`o!8Pz3AWPKi;CH}H@D=bODC^(t-jBf7xv#)? z;qz=+~oc>5IX8r&d+j+Z8>j@h4h~UUCS(sIA-_)I&4#ZDoS>+RbcZLg{L+N3PLRQ=6i! z3vKFLH#Rh-oy+Zs^FiA>l%eFKvet&TCeK`5UFfOHZKda>U1)DZPxr^A*Tc$qR(c&w zS-HmMIygPXY-N)*H#oP$!27WY+B8<1VJPPSo=sJ`1&qonBzAgWJSJSNb2}<)F6EtV zd`}++_yk+95NeAujP<>9Qx|UC^VM)-v6mK0ApXJ!JB?0k?c3&Q2~1TMb+Qr0_R<#` zO-t`ZC5g^n#tKpIa6hct97_gW@*Is^Z7RLq>1WsV%77ladQ=u|3ah71?FL_XQ6{SyVrr1R?t9@wNVIY7Q%fOD!yd;5cbk$C$&XQgrpMzFpl3bfMj9s&( zNor-cgjj&b7A4UIfNEF|!3@XK_{LXlv6T|!y&IM&PFhXTsgg+A8skHJU=Wgq(>M2+ySyNJijbt4;G;7%^qmuYUXz?1e$~(o5@FB9CnZn9#knLj9ikKHIZ&DR@ zOV3Up>J8f~diwqAV_VIxv*B>vT)e;ewyH{4!YNwtdgF3qZmOq3#0k|RdUlc#(1i^I z)q1;9V;Ou&_SoV|n8zOp?efBRS5iCi(yL{;6N@Lqq%sD5m5+#%mwr~63tgM3Rq`NR zL_-j1vJp*(Hj!5Rzknx=lg5!9=GkK!0DEm$A3Q$XJ9tOm*uHVIx3k8cq9C#(UzB;a z*A_nOyIs9@a-5yg&E$*h9;Lf0>)*__Z)Q6;_4cjZH^2YJ_RjY9+C$?*)^AMhX_2nM z`h(+B&AE5>==ibz!T#~1{@wll5AUCy9`NMww6}kJ^cJ7hMN8tczBSWb{qXLi2WNL5 z9DM5fU0qjMU9BA*9v!SA+Uaet?WY}?^)F_S4faX6j&fyvTMx&kq1E0w>)+3At=0+W z5em}bT}}#i^{qh})=nzgO_kku&D7&<7H|EX8@F}3yt7g3Yj^a{=Iu50V@89m!g4OK zjcN9CM-`7L721q#Y|SKK!Pr#boTeu&DwC2A>}sCzi3O-hAgk;L+&nuZ?(tMlWJp+< z5^hEXG6)I_Oz=;SW*%4uLbRTy1$KfJ77Ph1-uYvT@ZGAz2WQ0^0|T?duCTFhmew}8 z?H1CpendQJaPWeT%k3x3jW{zH8aVsFH3fsPiHhX-9oU6!CTPt|!mi457Ris;!`;)) zmvg}4|K61`GO%-OIX8*Ak?6+g^-kf{^srZlhwUlKpSfr21?kC4;ROllMzZg^34)hS zWRWpVG*Kdw>t;yXNNAE@*f#7)QEh2!V4HF{W~%>Ggcq7jgfvFF!l3WkHq8-RZK1;0 zwfS<4kR?7NM|JK8<$1*h*-HHxmxU$$%#oBCdO?zO*PBKkAB zT~jCVy^2*WVJ|Pd>PseKQIHnd3TkgjQyt*m))U@$)GzzkGqn3`gBX(`CS#^b9;6E~ XuO1|(ejbNatR-eE3zM*&XCd}KZ16U> diff --git a/engine/blog/locale/nl_NL/LC_MESSAGES/django.po b/engine/blog/locale/nl_NL/LC_MESSAGES/django.po index d7e35acc..5db5d57e 100644 --- a/engine/blog/locale/nl_NL/LC_MESSAGES/django.po +++ b/engine/blog/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/no_NO/LC_MESSAGES/django.mo b/engine/blog/locale/no_NO/LC_MESSAGES/django.mo deleted file mode 100644 index 19b14901d3aa647ee489a5f1eaf69d02dec5ed0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3386 zcmai0-EJI76)qslkAbi(D}fM*ldK@Na8K+=8wH0f#EugTb{v^;uGrPqOrPngbWPRJ zRXxeP0T&>_1#k-&S&1iLCHBrd07yvO@dSux;5${_p4nX_T5f;+Q+>{NzH{oF`PXY# zeyec2j`JHhKfw7-oIm>n{^9r=@RvCMj`Ic1cRr=m5uX3^ic%cz(4}c#4Wxe{eQlAC90{k5CDsTh%H6WI#H-OiHTfkR=$3R*CcK3b)d;|9u z_%`_b8u(}6e?FtsAAs+{sPKFA`E2huz-`?B9{45TUx7ac{sXuL{MHwgdJA|26n?(| zioah0UjzOQ_+{XqfN-Jy0+e_!fL{gv8z^yH`C|5W75Hu3zYYYQWaE=S&`bv&D@d4Z z$pd_@KqVbt!GFnv@RZoat{kGz`XT&8Ytc&%;g__Pn?pC&^UzuyIgp=oqoeUI(8M=1 z(@s~$Ris@>4adgtLT;b<5Q$wh(cmNFNaL+83-9cbX1-)g3&YPTa2(KZY66X|4po!h(vrR~< zW#8nxckrGM_S+f@ABgH8&XwMfN?Y2NsSDG_UdN3lh9E{R`2 z)qsLkk~JkI*htnP2VpI?%ETZ(5n8;atm2)*jtDWaoa>6^Hp+IR=u zjBxIsKR$g*-#<8gJiLD}{Ncm%vqL;NIvX6Ep1g(6T-73R#gO%EkB;v@esq5S(c%AH zzlW3*&TpI?ogA(r+8yj{9ONBY43~3|jr=0sgmT8+rSViZXtnpwhYyQ8t98P80tM0G zeTfw8(VdZr8&53SjV&JfW)|RWo^HdvTX!j6-rIC^?H=uJ-Q7?}&efO>7Nwg;LwM$~ zjZzk-7cX6jDwo}hJ~fpZ$E9AReqOMfGTxFQ)KsV&)aQspy^Im}sh?Sh@9;?gb&QDz z>>N`qbAlb=OMJv-iJUG=v}|mgi4(wJDbSe`{ciy94upChV76C$K~88R;EHXIN&H;yx&yfM|xIVlL^t_v7y*p zyeyNwvY#R1wR8uL56UhUl;@KR(LXZ$>1LmDeVk@+(@g zSE%{;wyTIg pPO;yVPA~FK>+}c5X3ML+-m diff --git a/engine/blog/locale/no_NO/LC_MESSAGES/django.po b/engine/blog/locale/no_NO/LC_MESSAGES/django.po index 8c89adef..01326e85 100644 --- a/engine/blog/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/blog/locale/no_NO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/pl_PL/LC_MESSAGES/django.mo b/engine/blog/locale/pl_PL/LC_MESSAGES/django.mo deleted file mode 100644 index a8a659b12b9e9cc3ab5932d467ba069989879d2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3401 zcmai0&u=706)qs*hXV;D2oNID+YMrE#XW1Ul-1&832Vo@vhXjN@ggD;rKY>4r)IjV znyza1b{_*491uc69HJEm#0`lPNL-c^o;#el2 zKYaPQ-wRw{#r-YZPjSDB`=_7653YX!e~tU!xF6$w_cKE5;roA{69RwY+VeuJ0>1-% z5qJdL2EGgYCh(8I9pF;pW)c559Q+s~7XZT(duXeFb;mmS1*FEDKj<(kn-{P^I+R z8b@PWQZ9{5wMj{ugi7U0t^=GCI?$Ca3&>h7;{5 z&ZNUkM_%g8mMS4{X@YGt)$L|SQx$uRPoyVVDw46+X8>51S!Qc^q%+@nMslt=4`*Z%w61?G1-j@l0XAZZZer8s}9Wj40!(@>vRGrc=}H z;V0_S7C6eabIcM)r!HfKqt3#7oK*>SlHestz>zgFqZ>Vc>IN-0pxBzRPOC1gfjChG zd;qgpO{2`FR4~(hkVGE6CH9BYbk!iiS2EVq$Repu=T+vVQMPhf6Cw-j zyQ(N`$^2E`=FoCX>?ftl^wM66hlvZ}4upi(%UNP;)0qw8??3cZP+lPwBSl4N&vb%V zBYg4|)Y*`F3|1WkD>!R{C0KISK?h+jj>=dgJ|>#2hOA;t;6ykdyewp@_|@}qk==}t z7vhmlh5gjilYLrMgLFXe-JGbbxQPP?(`EDC+M6QN@De_S9UQG*9?UiIOo%W7wJ@JO zWeBKI9zj)3E!kKEuaP|*alxL49}eyE!Szq9o$%Pl&OirR*k;#UP z%$48|-9y+2j+D_DMF(Y~oAJK{9+#F2N3@qjk5B+`*0yN((cbp%kLcFMt=ogm6`Uyu zB06xXPNMB9bZHe6<9-R>G?bE}fNA$g&qr>6-o#782oSy9B%ihUg=jh=3SZ2}+iHn9x=3BIX z|M21I{fE2%cm5U?SyW^z2YUy*%ZN4y8!J2AiHwF#0cX8>>~DfOZSGP$ktIs)z0=`? z=+1H;`#c7NsPHyH3byFZNc)xJ4CN+^9@sK>TV#sx>h9gT3(GumZ`IJXd$hTBcLmL1 z7MepfRb6k0@zBb$y*N)=X|yDbw2mO{@S;pS)m=TWsa23`ty#K>o&EE#byvnJ@=Z3g zlvuJ!+%~=%&=1iaBm_lMtig!$*4Y}(C(IhT`TJF>iS5ihZ^T7#o%k6Nb{FR)XTGV8 z3f{D}%p_zK%6!S&un%xwma(qLQX2}V<`LCR;`$Mq2FL02#Rt?bnuV>Kyl)d|6x=zw zEoI+UV6v5ks+o&6wTZFwCl|k5kcC0;wY1mdnyR9dn69uQ*8_Sx(6l6}WzI@8R0N7y z^QYh-k$z@t#5r5Ei+Bnr7dy>=LDv_@?RwutTGSklrt8LapWd{0Q(!h7sb&{T%;52A0 zY|@Lp=U^ZZHIml^HA8uA168p3Wohlat7Yjs&0Ln}i0W2ORn9I3HP+26t73cueM)R| zhp8dCiw}I+nx<D3Xos5zM{sd2cG{*pYWOECROJLGCd_MC zu#1^czD)T4k(@%yF~ui#oPBg0B-FL|XKJRAHr|qt>FUQ%`kFWf1DXyNy*5M$-)w)z z!;y@Tvs|O>qR2ru6^Ps>p!aU^ HmE8OnNJe2? diff --git a/engine/blog/locale/pl_PL/LC_MESSAGES/django.po b/engine/blog/locale/pl_PL/LC_MESSAGES/django.po index ca29c601..64bbab4c 100644 --- a/engine/blog/locale/pl_PL/LC_MESSAGES/django.po +++ b/engine/blog/locale/pl_PL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/pt_BR/LC_MESSAGES/django.mo b/engine/blog/locale/pt_BR/LC_MESSAGES/django.mo deleted file mode 100644 index 8d48a501fa8ee8205d86e3200168fcb50a698634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3533 zcmai0J!~9B6doV}Vjw_3B19m)BoeWS_hJVn3Qi2z&Ly&B$Cf!q6eP;r?s#vK-JQ+O z?AcC7Pk|!QAPOQ1l!B5bN_V26f{Koc7Aj~F-<#Px+erkcoBMWmX5Y{E{_eL!`@R(T zypHu2)I=; zJ>UZHA&}3DXN7nkupf8;cn~-SJPgDUaU6III01YGxCG?$*P8te;Bnk%z-zGQ3*g_t zKc5rgF7S5?A3qjwH!1r+f6YwzbAK)jzH(nItB(Mao0>1`Al=uV4T>J%O{RdtW z;x*tAAiko7pLc;5fNug*AfNjT2ouCz;A!AjK$s&AVLgq-viXC@0u=hQd=E7OCixHR zVcjoddENeL;HSCtzhtZYv5r*Xw9|M=7bLMOlgJd=HsvN!8TGZ=B&%GDIz4SE&ZNajOHS&{R4O57 zs0Xo`3ersXrivZ*d(x4t6v^1>J^-3!mYGdhq%#++qpq|NVG2srhAwc)d#bW6T6D0- zsT2oc+NO3rx_DC-sX1ZsR(wlAUO3E-*lp`n?v<#**417LWTw+1$Z$P1(glukZ7s9J z-l>tVFw`2TkFz>~Bne)U1RR+{W^|(APo1D00Ti2JL#K6ct0mS{2^+vH-llG5QYx8h zPifHQsSj)h-U=v;DGm~t9r7p5kRxCTTa8y&^(8Dc59}IV=ZgfGu0#^sF|8% z!yN3GL`pOcfHg>WPR705@7SzPCqsa&HL(Wc2&+sRR)UeLfbbYPAP`1M1jmxC;~q(i zq`6(|iUXk#C{+!$65GRJ+O3daD;363*C41?=XK^}p-gSFZSR?9-_~VmD(0_tCPyyE z#CB4uiYB#pl81@&?zV(Pu2;7bvsnbSKKYvm4HcBv2t`*>S((00;A@0Ou10olliC8S z76~gjYJyX+;;4fT!daBchK7GkG;8%y#hyS#Sm&)QWvckrakFP?T_j7)akRW=`qw45+Yi*sZOH#I<-;9 z%+T2CO0_mDp^>xNK--j<&`zU znqR-Na+NMDtX%2LEp$G*w7%BHlf|{x!piaoc&$il1TN|*na|MD+?C7gbC=uydwzyW z7j>(#<;CUpjz`n2sj-Dnkx^&6gt1O-xl>?H7w0MN$qKD@cD-{cI=6FOYQ7ETM z6)1V`1cnqUIj(tj;Ka9v4{*vSlG~u~SZK0!&gFfx<`-}P)T4Ct9e$+|>f4+lYgnqH z3{3&1wy15b3=>4r;69qFEFFGO7?q?9YPfOa#3RI+M&a!mHdx2jpuGBcj0EJy4Z*&( zpckdEieKbuLb&F+P~oI+tU57hWbF*;tA-0667LdVW3FB-D<%arphD(IY zBM8SI)bU69#DrMkndbAs?y%zHWI0$N0`S&0LvDx05r^mkeRYSYk~K#KXSS?F+i6s= z^C22h(cuK!%}podDRE;O^0iubGsHGz8UEdcCRuS-4IUIs03UsVD_771Svpd(%Sj6J kAs0aqVF%ndMu|pmvw^NOxEJe;YNwm-ig!ajJr>S?0n?L-mjD0& diff --git a/engine/blog/locale/pt_BR/LC_MESSAGES/django.po b/engine/blog/locale/pt_BR/LC_MESSAGES/django.po index 6f816744..8feaac9c 100644 --- a/engine/blog/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/blog/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/ro_RO/LC_MESSAGES/django.mo b/engine/blog/locale/ro_RO/LC_MESSAGES/django.mo deleted file mode 100644 index 36ed3e9ba5925f868487a8f0170a8ce4b05f7016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3526 zcmai0O>Z2>5p5@O95adh2{SZAoA>W5Q z3AqEg26-3qUC6&eu0uY7{uc5R z$bUexe_um#94CGz#2b)rLB0n0OGua!7a`9#7SeE4E~<}b#BZ8Bbbv7ZrJe%Ua&tX(LjSB`A0 z8tJt)jz+ejN*X!VW=zr))F|I*b-=H?)_GFKYp?NRZB#+t(gbQtm9*L6eU*FcPoyW=D3ZC?2N19<%hEo8N4oUMI~qy{ z71mIpM%v(!_f+G0wCUlGS7RK6YY()a(DnP$jO|&6ukz0n^rgcbh&yy%RndqtE;KJf zAWJ{Gd|rkEnj~;33SeZ7Ea_~EpE^r31(aJe(&LcA z>WMv7!v`RXuW4A?G1Uxpgf!WT&?hug>uJ&H-1Eri zFfdGPJ}|DRMS}{_J`9nZ;;?C8S80ikyNLvPT&(w-F$0~f>X35i;7J}c}4lg!5AZx>o9s0v8MP*L63 z16?523`;(sIuA)b1gZ`ND>!R{OR(Xr0}jGjw8}^$J_eet#;jsbpd*}*Ue0} zQXZ0#l@h#=9-<;R(qto$4rn5s_%49Ejb-Ad0(xSi@Pb9{Te@PMa%~Ph=90b?-R#A{ipFw77Wh? z{`x>4p?fqmH=5tm~}B(<*sr2&rF@7)D8aq5?mlN5?S_Jh^6jw<*n>x>RRl}cl9zFe=LA`2d5BM1Xg4X10 zsZn;Z9zfbCWpH4!9Lj*BX)&0fzwHPT0UaigtcF~A-H__h_4x$JJXba2oQ4t?LOZRv zIARDHn~IooIr5O=g`PlF4g;JTg~sS3gpO2oXiVwdNinaX*C=_j)c{P<2yLMo3(EM;JS#P diff --git a/engine/blog/locale/ro_RO/LC_MESSAGES/django.po b/engine/blog/locale/ro_RO/LC_MESSAGES/django.po index ec629534..be389aff 100644 --- a/engine/blog/locale/ro_RO/LC_MESSAGES/django.po +++ b/engine/blog/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/ru_RU/LC_MESSAGES/django.mo b/engine/blog/locale/ru_RU/LC_MESSAGES/django.mo deleted file mode 100644 index 163752232da04018baed0be71af798b6ca39763a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4587 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 gl2@=CBm=3rSDY}iO^niI&U1p6b`{@*FQh^ z$Y%oA-?3iA`UdMItoI(mKV07fKf(F|>mJqze-dIB`#(M+1pdUiM}=4g{sZ_l@Bp|4 z`~dg@@C)EJ@Eah@i^qicGvHC+Uw}^oSAfq0AtGJ|o(HZ0p9Ss#S^oXzc^~*PejDKX z@aI$Dx4>T>7vgi^f1vbTJU@OS>H8Yk!tZ|rS>OMFd%$0T=YU&JCVz7v`}ZY~{rU>{ zH{g9BzxN#wCd5y`HQ;}N%-K^#*3@xrzMg;5u8K#hPa z@nU=6j~jp-F<5JO@Y4N<$YK{?r9pD4?FReO=TkthP8*BlrMj@iujhD`>=2 zM@o~eNPS{6#mR=QL36*CH9BYv}};zD_Iw)>yT8h%i08Km8-p(#K(Ta8)8Gl3J~L-cYa3&lSJ9~YSL7qfClEFKv~Dr3;g{xCVY_9G)FWM!!YZ={>32#!=) zA58~sB1t?*;GN2G=+FIXKj;qj(4|q{zaG8FI{eLtl&(cAhLa5=ser13!in| zCav5#$PUrX_>JraN_UgxU(MDpXB(Gk{mSO6uf4LqvA({tCw<5|m9!o$(pAuY>)?>E zwvKKe9MkLD2e&)dw>xj$JUZOL&hBA*`(XbKyk?6UiOV`lmYcM9{r0V+>$i6PP=1sA zIP+>{e|LXp5z$6_ePuhH$gDFN!P%hhg^OTL+pE+Y$O^6Y+EM3bc4Z;QKKH>OI=st~ zf=#;8)nVn1LAx>8O;?qElk6z|^w%z3rF463)zZ0Zw6S(|MZAO2U}VKDem)wwjHmZ; zKttdTjzX8@aGnR#lQPKI%`;^O3J*wQN{}B`dhCajJePTDWoC>MdqY_(X&48?^rT|3 z=?P>i56K5jaO2B(N(@o4t|Wd%4lyH=^`MQJp0Z8u?v;vNg~tS1D~+b7se9uL%3L)A zAiB^@3+#I;aRkz^n9quAq0KkLf@Ag5lOd`tOizq~Nv2|nAA~i%kMoF;!Xjk}5!MaM zv1d14pi6^CT|}y^Y}4@s%?qkSut*n})7C=fG}>^zp+^|lodkr5(ZuI>NrxXU&yqyo z`IMCNOOpkWR;(q?6qCfbXJO8p=}A$v=^ai9B$)Aq!$=Tj%#ddciUAySkzt%nw2W8| z3LKo(g9M+604&9UljQlOK97?M(*|8wnbtzOMPq4j@;OsoZDb)^sg1K?PBk-!PXqLC zS%8Rz(_j!~6vB+QEsVr>pPAoyc6eBV)=Il)E)+uL7aq2dG& t(N2EX(XbZPLIfXxvA#TJmyMe|#c&tZUQZ6oiv7m1#YYStp7CWy{BK)=al-%r diff --git a/engine/blog/locale/sv_SE/LC_MESSAGES/django.po b/engine/blog/locale/sv_SE/LC_MESSAGES/django.po index 17c686bb..3e215ff3 100644 --- a/engine/blog/locale/sv_SE/LC_MESSAGES/django.po +++ b/engine/blog/locale/sv_SE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/th_TH/LC_MESSAGES/django.mo b/engine/blog/locale/th_TH/LC_MESSAGES/django.mo deleted file mode 100644 index 9ab060c528c2d6bf0879032fd776c935939c7fc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5294 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 diff --git a/engine/blog/locale/th_TH/LC_MESSAGES/django.po b/engine/blog/locale/th_TH/LC_MESSAGES/django.po index c4f2e138..df679b19 100644 --- a/engine/blog/locale/th_TH/LC_MESSAGES/django.po +++ b/engine/blog/locale/th_TH/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/tr_TR/LC_MESSAGES/django.mo b/engine/blog/locale/tr_TR/LC_MESSAGES/django.mo deleted file mode 100644 index 8b41db22e0103e604463d16749979d1788447eaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3449 zcmai0&u<(_6)s?xA7)u#0fEr2^s*~qTkD?Kkv7UYgx!qeSeD{Aa>kL6*wxld*Ys4T zx@xGZcGCG9IB3R!U3^9Yd(zIpb*4Y+WE3wLf@5#Ous`4MuU<({v*y6U~}eecyP z|Kp8UekE{y7x$aEFL1ww`)6Ok53WB0e}VfixS!(w_)9_@V*GEf2!TIwdN@4|oCO`Qpn$d=>C2@N2-=fos4Y05L_p1AH5}3H%oD9+2mM)P5fV z-@&^9egr*TCy|{}jmf{tD#p{{*fB-+xVrhd>Er z|9=2}1NcYacYuEaejoUEAoKV)kp2G$_&wm;m<&_m29Uqs0lo`70)mcs1NRqkgJ!xg zEFhr(-E_fBTF)=+kMrzoEahsb zEgt!s@}WbA5qzR5FcH+A=s2P~kEJc#dcdl|SixR1nF9%Rh^kCZlns@CQ37dnVH+E9 zq!zxQQK>^W z7OSamTtO3-I!W62O42uKHnFp0ibC|&AR>SiOJ9xTnMMNLaMez$&YWIEKKm8R#JQGL z967&5NUBj=Oe})O7D}QG0II=yjB+q4)0beXVyj6|2yUREIMOPMR+WaNvM@e?4;TbV ziR1(d)nG(2plE(xY0rsJNR;w(uf%*fO{)$GT*hiWo$ zp7pDuD^be>VxCke+m`mScv!d;ZbwMex*zB6iEZ4b;%^69DX6TFioT+WcV{|BtQm%4 zh3c$HJ%y?P1uHmff=keI)*%OBF1E^0BR&?Iy{4??+^vTtcGLx&=aB%JGPc}agMuR0dB@2Nz78`R@ybvOspjueZRx$)s ztB9bgpq6UPgV)F&wzy#C>4!sGJcRa%YbQMhF)w$-5|Ck}G6lWLhsDWtm>5};m8B9q z&^#nVAmXzjnhx4TGvj3eA9%-&BRkBqM`!@pYrC}n=&-y0kgjcCyWZJZ!=6GxWJjUU zdDg9pkoDXytvxu-PSDMGMRo_JyUX+6%eJp)JJ)IZ#_oIXzq`G&y}fo%hM4udv;i&B zd00O|;Ynxj_~<8CW{V1m%X&(dyL9jN{e#on z2mAkb{w_tIMZb1*c(lKaXs5Hiw%6>)tXEG!HmaxbDwNaqCJjc?qt)Iz?cL38Eax%j zArwT1cR5n9OE>yDu01elHzvF5d>MAhPSR_*b?qiKkGD1~UAaX&n>W|QLun$pab+t{ zeT@Sl_4eZOxxc)ymlq|C@uQI6ylvxW(wo_IY^0w}?QBZ*<#VfIi5`iqY)VP`^K+w0 zqp<5WjdAi^UKqS}s9RA;Yli44W9%1l1|2l@JF9|K?V84b8k4^K3@1-j!=tq2Z2I|m zoJ~DDLR*+k%lT+(_nwz4V&-ZwP^wyyeg-SpJQ^I@lfqW$+UIKq<)CIh5+q!ApXYtfAmQ5&~u6S5A*a zxR#UI6cOeKIoV@5QV^nx>FMaG<+Irou9~c|-e4cJA(gY>N!eEN*>o$pN$VgI^69ZP zETl=ETEd7kmuILeR=Y{?Tx%HoseC4Jfb=C&j2hT#De(hzo1H6sLck!DyHImzdaG&9 zte=5`WBihedaTe#e4F9R=g+K;=y2n9tjX2Gd9gHskC6n}Tv$fK_X=g?QF{{q;*5#U z7d=iKGsLG^TG_sV)4)RvuzazwVyG=2CQ64XyK&@Afb3v%oABY~ei}?to(8MPdwk2(ZWtZ6$M=ywz8p%RGTk0AoXpKxl z2y`WsCoI{O^J=NxxH8xvsFEv!OI?a173AZ&IO3qK@@2j0#TeK9BFnRBvl3K9uicLG uIBJcq_CEpar}|B;22E1&KY=jOj;7~syF(WK=A>Hf=FE{GF6dang!nI>oSqf{ diff --git a/engine/blog/locale/tr_TR/LC_MESSAGES/django.po b/engine/blog/locale/tr_TR/LC_MESSAGES/django.po index 3228feee..ba62e0d5 100644 --- a/engine/blog/locale/tr_TR/LC_MESSAGES/django.po +++ b/engine/blog/locale/tr_TR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/vi_VN/LC_MESSAGES/django.mo b/engine/blog/locale/vi_VN/LC_MESSAGES/django.mo deleted file mode 100644 index e3d60cc263c96bca3064bbbf61ba5ea1394238c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3690 zcmai0-ESOM6~92shk*j62!ud7p%Sr$XJbc72o9#ijuR}|v1QhIqE+wCUe8QCduKEE z&f3dc4wiMLAo$P0e}5)!|2@2q!2A~Eva zGxzJ9-}#-7@h8teb4TEL0pmLuA7gwM;}@U851zk4{s!ak7`qs+d`5_6tpDQ~A@C>8 zJS)T`|AA!u-+=RcpCIQUry&7H zJdg2d48U{`jtfvI0M|V*@9y#B>lhpd#>u`jKm4%%@rU_fu9+`>7_Z}&Crdh%ZBwMu zDnnUY<CgsZJiR$olJu{Y+wuwz}DbXacE1N;4(=N5Lrb?-k zs2wuO)~FsQhQd@DoHS%*l4iMTlFcZF+EjUMS>u)pE%sw+N#=@VXp;^EEXy>_c7P~J ztw%=~`OX?^)Yj7*vR?z1Uvm>T!tZF$U zN}D2ooC299k@h-ltWIr#qgG-Jv&7!1Q(pnpWH2A5MH8ANcxg7lQKn@|XDj~HSsE#z zFw)Vnelo0nFkyHPS4iHdE~=^|l=Ko=xvNQ>Mt+ya+8EaK1EDEISDTm~D;g zsn{99vxsM-V467AvaoTMPZNTgs%ZvhfnypeQ8@tCpxs&-#x1vF(juDn0Wu~F6EKdj z%BW(+gH#&IL)d^qfRqT1Ayb4gNrR-hT_iaNLLpEpA6g~G!(kdXNWe-uv((5CRFkxd z)Jmm*J18eqv5$j&aQU9f79u!5r|I0bW#I_MyrMX78h@Q;aRt1hb86Q~Gd z9m=+h6i+Rei}WX4T!?pk7FI_$H&$p;)uI}`dM;LJ`y2`mrt|KrQ!j}$0ZL$U8VpUI z7Uq*tz7bqS>dx``3&G6AVD=)-T$;P^ zqaV!7&df}#NMnO~F1106%yMYIzP3Ra3!69AZqknz*KX9WEY^Q|ZF6G@E6W?T#kJL+ z;F^vK1TLs6*_xx3D>trhUb(*Xf6vdMn*<#_vAVpvH1cS+HZ!s4D>A5e+W>3Tu003l z5`CG%SmtQ8^PBZ+!KKkT#=Hdv(c!ZuLNG^{8i}1)Ptk7D;98cq%pB>qo0|Fam&w1* zPii_dPqR~(C&claMyIl-=hnmvzPt+;z68cY{ol7qmv_5Z zI(abYAF{4w(0gQQ8^7-09_f zsz!M?L7uu`aK9UdtKxgmAF%|F*&S0SDSl7T?+~|JZ_pkGd}1-q6$j>)_JC=l7u3 zrxdz0GFeORS<4p%_2N2TMF2h?Q@@c3SV%mOT~nulX(TpE4|7oNbx z*P(1XEPibMQ+#MeK1ZD=@3W?;lqRAdV=c)2+Z^8l%q_Xv+0}^5EnEDxKS!bS#USSm1Br>R6UGC1QY< z0FJ$WS7Mx8esL_Zgwu*17Lh%^uVd~-ZzF8rv!a#{xC_Vo$9wDz=cvna{GY*d9OX}? zyH1mx@`zb^XYR?bW<~o;;ws}aNCcqtt&9WVvTxkd@$%@5Sl|Njeu}!|Z=9;9tc3nPYRrT_o{ diff --git a/engine/blog/locale/vi_VN/LC_MESSAGES/django.po b/engine/blog/locale/vi_VN/LC_MESSAGES/django.po index 0dfa97e4..4c649da7 100644 --- a/engine/blog/locale/vi_VN/LC_MESSAGES/django.po +++ b/engine/blog/locale/vi_VN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/locale/zh_Hans/LC_MESSAGES/django.mo b/engine/blog/locale/zh_Hans/LC_MESSAGES/django.mo deleted file mode 100644 index 9f5f92542c11c9ea0cc7488e0124ef4f77cd325f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3112 zcmah~-)|Jx6~1kfHg(&yP5V$)ZFQ4W0TgDjk%FiRE#Mer$;QaFc}kOvcdvIRnVs3r zoiVsiYheAO@!}N_gE59IIJSjg*9bz^yZ-Snv`b0)VbGi=S)ut_thid8kCn1((=(`JI{bXa2- zC}(zz_NO#X=vs3ilk5nUR?&H`M|Cqs_G!{ho z2)9`}48jcVSbHTrV2ZED+~rT!Z2$tD1~dkx4QG&f|yyhe%RIaX95pJVjNGrumbjS)vdOg<@7SDi!&N zGVKmXkt;P!n+}>ND%aAEZmR|}9j=dr%tH0KlgXHt(9f~WGUtjHtDDnnws1 z(v1-ny>5M+FfSM~Y}owKL?i`GJ1E5Iq8>Af0cGPH+*HAqi zaUwDge+0Gd7aqNd-U(khX|_AKa8wwj3`y_KM~IWqct%%8sG+7A5fkzybc94KWeArJ zt_f-JO##nYrnoqiu7q+P7XZ#$JMBE*b*l3Z^l(TbNfBRNzTWf1ex5{m$-%<^ZE7G*!{Y-Bk z#W*!^w)Z@Jr=$05|H+R26Q>9IIx*AL7whQl`5m?yNe6{f`k9(;r`;#do*6iKrt|;W zx6?nT6kLqFrKhW>bB9w~thJ>>o=K&DB!hHqcF{fr?KI;Uji*!#m+kR^{?p3Q9XpZr z5H!RcZzfQLc6xMBvs=#TxNvmkv}vVzJ2f)lCqI7p7?rQb_Z#%JxD7z+LZqwTYq++zV20K zyvGG#>8`tey?*o=C&>Q!&y3O4)CYTjR#VYzE_c{O-a z+*+IRR-b#h(V$fEKU?+lC9ibbU7dt!usQD67QETzU~?`gPRUQi@Jg56%GK!dr!e#i zSH0;Kxn6%-tJm%!Z-1fy-}Pe2-JF-{Vbiv6fBte~w%}H>!T2+gc9U(edCQy1`JX&$ z+@JRrX2OJzb#vAu<;l&%vd8JkHGF@(DClSJ}J#Wlj!LKx{Ki+_=`dr1! zJ;kn|v?7#va@Wr;2|}{C(`9e1>P`#GfY3VNHlMzJP+MI0V2%D^H6$?DOf^p5)rY~AWL|LQe==5qpFz0!RWj3T$Z z^eGe=%QY@9%TM8;JXU|SNc>yn#{8_G9c>i9Xv|~N=Ir(q6_>7@-&&i19N)Nmx7I{E z%F23$n_Fx5h&OT58?XA4S^v(YTo8N1^8;%FsiX$9r}@uE(t?sf`Ac_w6Nh7GO%mK% z8;#iPAw{HrNonT;ZPK)s4eI4Tbt@15M>3HZw>IhvRj-h*FRc(cweumI`7^8ThRDmG Lh!Wf;y~q5&emWj* diff --git a/engine/blog/locale/zh_Hans/LC_MESSAGES/django.po b/engine/blog/locale/zh_Hans/LC_MESSAGES/django.po index a2ad6a8e..bd3d4cb3 100644 --- a/engine/blog/locale/zh_Hans/LC_MESSAGES/django.po +++ b/engine/blog/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/blog/viewsets.py b/engine/blog/viewsets.py index a617ec96..a4d0d2c2 100644 --- a/engine/blog/viewsets.py +++ b/engine/blog/viewsets.py @@ -7,7 +7,7 @@ from engine.blog.docs.drf.viewsets import POST_SCHEMA from engine.blog.filters import PostFilter from engine.blog.models import Post from engine.blog.serializers import PostSerializer -from engine.core.permissions import EvibesPermission +from engine.core.permissions import SchonPermission @extend_schema_view(**POST_SCHEMA) @@ -20,7 +20,7 @@ class PostViewSet(ReadOnlyModelViewSet): ) serializer_class = PostSerializer - permission_classes = (EvibesPermission,) + permission_classes = (SchonPermission,) queryset = Post.objects.filter(is_active=True) filter_backends = [DjangoFilterBackend] filterset_class = PostFilter diff --git a/engine/core/admin.py b/engine/core/admin.py index 4c15e694..f32a0ed4 100644 --- a/engine/core/admin.py +++ b/engine/core/admin.py @@ -155,7 +155,7 @@ class ActivationActionsMixin: ] @action( - description=_("activate selected %(verbose_name_plural)s").lower(), + description=_("activate selected %(verbose_name_plural)s").lower().title(), permissions=["change"], ) def activate_selected(self, request: HttpRequest, queryset: QuerySet[Any]) -> None: @@ -163,7 +163,7 @@ class ActivationActionsMixin: queryset.update(is_active=True) self.message_user( request=request, - message=_("selected items have been activated.").lower(), + message=_("selected items have been activated.").lower().title(), level=messages.SUCCESS, ) @@ -171,7 +171,7 @@ class ActivationActionsMixin: self.message_user(request=request, message=str(e), level=messages.ERROR) @action( - description=_("deactivate selected %(verbose_name_plural)s").lower(), + description=_("deactivate selected %(verbose_name_plural)s").lower().title(), permissions=["change"], ) def deactivate_selected( @@ -181,7 +181,7 @@ class ActivationActionsMixin: queryset.update(is_active=False) self.message_user( request=request, - message=_("selected items have been deactivated.").lower(), + message=_("selected items have been deactivated.").lower().title(), level=messages.SUCCESS, ) @@ -458,6 +458,8 @@ class ProductAdmin( "sku", "name", "is_active", + "export_to_marketplaces", + "has_images", "category", "brand", "price", @@ -519,6 +521,60 @@ class ProductAdmin( "is_updatable", ] + def has_images(self, obj: Product) -> bool: + return obj.has_images + + has_images.boolean = True # ty:ignore[unresolved-attribute] + has_images.short_description = _("has images") # ty:ignore[unresolved-attribute] + + @action( + description=_("export selected %(verbose_name_plural)s to marketplaces' feeds") + .lower() + .title(), + permissions=["change"], + ) + def export_to_marketplaces( + self, request: HttpRequest, queryset: QuerySet[Any] + ) -> None: + try: + queryset.update(export_to_marketplaces=True) + self.message_user( + request=request, + message=_( + "selected %(verbose_name_plural)s have been marked for export." + ) + .lower() + .title(), + level=messages.SUCCESS, + ) + + except Exception as e: + self.message_user(request=request, message=str(e), level=messages.ERROR) + + @action( + description=_("ban selected %(verbose_name_plural)s from marketplaces' feeds") + .lower() + .title(), + permissions=["change"], + ) + def ban_from_marketplaces( + self, request: HttpRequest, queryset: QuerySet[Any] + ) -> None: + try: + queryset.update(export_to_marketplaces=False) + self.message_user( + request=request, + message=_( + "selected %(verbose_name_plural)s have been banned from export." + ) + .lower() + .title(), + level=messages.SUCCESS, + ) + + except Exception as e: + self.message_user(request=request, message=str(e), level=messages.ERROR) + def get_queryset(self, request): return ( super() @@ -1090,7 +1146,7 @@ class ConstanceConfig: site.unregister([Config]) # ty:ignore[invalid-argument-type] site.register([ConstanceConfig], BaseConstanceAdmin) # ty:ignore[invalid-argument-type] site.site_title = settings.PROJECT_NAME -site.site_header = "eVibes" +site.site_header = "Schon" site.index_title = settings.PROJECT_NAME diff --git a/engine/core/docs/images/evibes-big-simple.png b/engine/core/docs/images/evibes-big-simple.png deleted file mode 100644 index 682ca92773a29bfe181388f9d2acf64011ce1f21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63681 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
v~@-#nfNP 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 b_0bE8?RF2cAlmgc2-svLl_V;~jD!CV9c|!p diff --git a/engine/core/docs/images/evibes.ico b/engine/core/docs/images/evibes.ico deleted file mode 100644 index f3ba783b76ad1acba13fc265b899e748eea1d049..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41662 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 - - - - - - - - - diff --git a/engine/core/graphene/mutations.py b/engine/core/graphene/mutations.py index 7c701cf2..a60c60a5 100644 --- a/engine/core/graphene/mutations.py +++ b/engine/core/graphene/mutations.py @@ -25,7 +25,7 @@ from engine.core.utils.emailing import contact_us_email from engine.core.utils.messages import permission_denied_message from engine.core.utils.nominatim import fetch_address_suggestions from engine.payments.graphene.object_types import TransactionType -from evibes.utils.renderers import camelize +from schon.utils.renderers import camelize logger = logging.getLogger(__name__) diff --git a/engine/core/graphene/object_types.py b/engine/core/graphene/object_types.py index 9795b76e..44ffffc3 100644 --- a/engine/core/graphene/object_types.py +++ b/engine/core/graphene/object_types.py @@ -57,7 +57,7 @@ from engine.core.utils.seo_builders import ( website_schema, ) from engine.payments.graphene.object_types import TransactionType -from evibes.utils.renderers import camelize +from schon.utils.renderers import camelize logger = logging.getLogger(__name__) diff --git a/engine/core/locale/ar_AR/LC_MESSAGES/django.mo b/engine/core/locale/ar_AR/LC_MESSAGES/django.mo deleted file mode 100644 index a52eb0c969dc65ce050ec8b92b7a15dc2b38583e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108552 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 diff --git a/engine/core/locale/ar_AR/LC_MESSAGES/django.po b/engine/core/locale/ar_AR/LC_MESSAGES/django.po index f1d46689..74b18e53 100644 --- a/engine/core/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/core/locale/ar_AR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3157,8 +3157,8 @@ msgstr "" "Django للتعامل مع إعادة توجيه HTTP." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "إرجاع الإصدار الحالي من eVibes." +msgid "Returns current version of the Schon. " +msgstr "إرجاع الإصدار الحالي من Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3171,15 +3171,15 @@ msgstr "إرجاع المتغيرات المخصصة للوحة التحكم." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"يحدد مجموعة طرق عرض لإدارة العمليات المتعلقة ب Evibes. يرث صنف EvibesViewSet " +"يحدد مجموعة طرق عرض لإدارة العمليات المتعلقة ب schon. يرث صنف SchonViewSet " "من ModelViewSet ويوفر وظائف للتعامل مع الإجراءات والعمليات على كيانات " -"Evibes. وتتضمن دعمًا لفئات المتسلسلات الديناميكية استنادًا إلى الإجراء الحالي، " +"schon. وتتضمن دعمًا لفئات المتسلسلات الديناميكية استنادًا إلى الإجراء الحالي، " "والأذونات القابلة للتخصيص، وتنسيقات العرض." #: engine/core/viewsets.py:160 @@ -3252,14 +3252,14 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" "يدير العمليات المتعلقة بنموذج \"المنتج\" في النظام. توفر هذه الفئة مجموعة " "طرق عرض لإدارة المنتجات، بما في ذلك تصفيتها وتسلسلها وعملياتها على مثيلات " -"محددة. وهو يمتد من 'EvibesViewSet' لاستخدام الوظائف الشائعة ويتكامل مع إطار " +"محددة. وهو يمتد من 'SchonViewSet' لاستخدام الوظائف الشائعة ويتكامل مع إطار " "عمل Django REST لعمليات RESTful API. يتضمن أساليب لاسترجاع تفاصيل المنتج، " "وتطبيق الأذونات، والوصول إلى الملاحظات ذات الصلة بمنتج ما." @@ -3282,7 +3282,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "تمثيل مجموعة عرض تتعامل مع كائنات الملاحظات. تدير هذه الفئة العمليات " diff --git a/engine/core/locale/cs_CZ/LC_MESSAGES/django.mo b/engine/core/locale/cs_CZ/LC_MESSAGES/django.mo deleted file mode 100644 index 71ef7fb073510bdc540d4dba7fb8b4634dcfba5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92964 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 diff --git a/engine/core/locale/cs_CZ/LC_MESSAGES/django.po b/engine/core/locale/cs_CZ/LC_MESSAGES/django.po index 3272a778..4c423dc9 100644 --- a/engine/core/locale/cs_CZ/LC_MESSAGES/django.po +++ b/engine/core/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3226,8 +3226,8 @@ msgstr "" "funkci `redirect` Djanga." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "Vrací aktuální verzi systému eVibes." +msgid "Returns current version of the Schon. " +msgstr "Vrací aktuální verzi systému Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3240,15 +3240,15 @@ msgstr "Vrací vlastní proměnné pro Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Definuje sadu pohledů pro správu operací souvisejících s Evibes. Třída " -"EvibesViewSet dědí z ModelViewSet a poskytuje funkce pro zpracování akcí a " -"operací s entitami Evibes. Zahrnuje podporu dynamických tříd serializátorů " +"Definuje sadu pohledů pro správu operací souvisejících s schon. Třída " +"SchonViewSet dědí z ModelViewSet a poskytuje funkce pro zpracování akcí a " +"operací s entitami schon. Zahrnuje podporu dynamických tříd serializátorů " "na základě aktuální akce, přizpůsobitelných oprávnění a formátů vykreslování." #: engine/core/viewsets.py:160 @@ -3325,7 +3325,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3333,7 +3333,7 @@ msgstr "" "Spravuje operace související s modelem `Product` v systému. Tato třída " "poskytuje sadu pohledů pro správu produktů, včetně jejich filtrování, " "serializace a operací s konkrétními instancemi. Rozšiřuje se z " -"`EvibesViewSet`, aby využívala společné funkce, a integruje se s rámcem " +"`SchonViewSet`, aby využívala společné funkce, a integruje se s rámcem " "Django REST pro operace RESTful API. Obsahuje metody pro načítání " "podrobností o produktu, uplatňování oprávnění a přístup k související zpětné " "vazbě produktu." @@ -3358,7 +3358,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Reprezentace sady zobrazení, která zpracovává objekty zpětné vazby. Tato " @@ -3366,7 +3366,7 @@ msgstr "" "filtrování a načítání podrobností. Účelem této sady zobrazení je poskytnout " "různé serializátory pro různé akce a implementovat manipulaci s přístupnými " "objekty Zpětné vazby na základě oprávnění. Rozšiřuje základní třídu " -"`EvibesViewSet` a využívá systém filtrování Djanga pro dotazování na data." +"`SchonViewSet` a využívá systém filtrování Djanga pro dotazování na data." #: engine/core/viewsets.py:652 msgid "" diff --git a/engine/core/locale/da_DK/LC_MESSAGES/django.mo b/engine/core/locale/da_DK/LC_MESSAGES/django.mo deleted file mode 100644 index 70d017afe46e015f17efe0b0885c23eaddf64b96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90700 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 diff --git a/engine/core/locale/da_DK/LC_MESSAGES/django.po b/engine/core/locale/da_DK/LC_MESSAGES/django.po index 66d3e9d7..d3270aaa 100644 --- a/engine/core/locale/da_DK/LC_MESSAGES/django.po +++ b/engine/core/locale/da_DK/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3250,8 +3250,8 @@ msgstr "" "til at håndtere HTTP-omdirigeringen." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "Returnerer den aktuelle version af eVibes." +msgid "Returns current version of the Schon. " +msgstr "Returnerer den aktuelle version af Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3264,15 +3264,15 @@ msgstr "Returnerer brugerdefinerede variabler til Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Definerer et visningssæt til håndtering af Evibes-relaterede operationer. " -"EvibesViewSet-klassen arver fra ModelViewSet og giver funktionalitet til " -"håndtering af handlinger og operationer på Evibes-enheder. Den omfatter " +"Definerer et visningssæt til håndtering af schon-relaterede operationer. " +"SchonViewSet-klassen arver fra ModelViewSet og giver funktionalitet til " +"håndtering af handlinger og operationer på schon-enheder. Den omfatter " "understøttelse af dynamiske serializer-klasser baseret på den aktuelle " "handling, tilladelser, der kan tilpasses, og gengivelsesformater." @@ -3350,7 +3350,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3358,7 +3358,7 @@ msgstr "" "Håndterer operationer relateret til `Product`-modellen i systemet. Denne " "klasse giver et visningssæt til håndtering af produkter, herunder deres " "filtrering, serialisering og operationer på specifikke forekomster. Den " -"udvider fra `EvibesViewSet` for at bruge fælles funktionalitet og integrerer " +"udvider fra `SchonViewSet` for at bruge fælles funktionalitet og integrerer " "med Django REST-frameworket til RESTful API-operationer. Indeholder metoder " "til at hente produktoplysninger, anvende tilladelser og få adgang til " "relateret feedback om et produkt." @@ -3384,7 +3384,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Repræsentation af et visningssæt, der håndterer feedback-objekter. Denne " @@ -3392,7 +3392,7 @@ msgstr "" "filtrering og hentning af detaljer. Formålet med dette visningssæt er at " "levere forskellige serializers til forskellige handlinger og implementere " "tilladelsesbaseret håndtering af tilgængelige feedback-objekter. Det udvider " -"basen `EvibesViewSet` og gør brug af Djangos filtreringssystem til at " +"basen `SchonViewSet` og gør brug af Djangos filtreringssystem til at " "forespørge på data." #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/de_DE/LC_MESSAGES/django.mo b/engine/core/locale/de_DE/LC_MESSAGES/django.mo deleted file mode 100644 index c227907ef73e6ec244b3e4d3401748dc62ea0c87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95990 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 aTDs(M#6^K%)S+GSIP;q-USgQfr~d^5PO^jm diff --git a/engine/core/locale/de_DE/LC_MESSAGES/django.po b/engine/core/locale/de_DE/LC_MESSAGES/django.po index 7f727012..9170d453 100644 --- a/engine/core/locale/de_DE/LC_MESSAGES/django.po +++ b/engine/core/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3337,8 +3337,8 @@ msgstr "" "Django für die Bearbeitung der HTTP-Umleitung." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "Gibt die aktuelle Version von eVibes zurück." +msgid "Returns current version of the Schon. " +msgstr "Gibt die aktuelle Version von Schon zurück." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3351,15 +3351,15 @@ msgstr "Gibt benutzerdefinierte Variablen für das Dashboard zurück." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Definiert ein Viewset für die Verwaltung von Evibes-bezogenen Operationen. " -"Die Klasse EvibesViewSet erbt von ModelViewSet und bietet Funktionalität für " -"die Handhabung von Aktionen und Operationen auf Evibes-Entitäten. Sie " +"Definiert ein Viewset für die Verwaltung von schon-bezogenen Operationen. " +"Die Klasse SchonViewSet erbt von ModelViewSet und bietet Funktionalität für " +"die Handhabung von Aktionen und Operationen auf schon-Entitäten. Sie " "enthält Unterstützung für dynamische Serialisiererklassen auf der Grundlage " "der aktuellen Aktion, anpassbare Berechtigungen und Rendering-Formate." @@ -3440,7 +3440,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3448,7 +3448,7 @@ msgstr "" "Verwaltet Vorgänge im Zusammenhang mit dem Modell \"Produkt\" im System. " "Diese Klasse bietet ein Viewset für die Verwaltung von Produkten, " "einschließlich ihrer Filterung, Serialisierung und Operationen für bestimmte " -"Instanzen. Sie ist eine Erweiterung von `EvibesViewSet`, um gemeinsame " +"Instanzen. Sie ist eine Erweiterung von `SchonViewSet`, um gemeinsame " "Funktionen zu nutzen und integriert sich in das Django REST Framework für " "RESTful API Operationen. Enthält Methoden zum Abrufen von Produktdetails, " "zur Anwendung von Berechtigungen und zum Zugriff auf zugehörige " @@ -3475,7 +3475,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Darstellung eines View-Sets, das Feedback-Objekte behandelt. Diese Klasse " @@ -3483,7 +3483,7 @@ msgstr "" "Auflistung, Filterung und Abruf von Details. Der Zweck dieses ViewSets ist " "es, verschiedene Serialisierer für verschiedene Aktionen bereitzustellen und " "eine erlaubnisbasierte Handhabung von zugänglichen Feedback-Objekten zu " -"implementieren. Es erweitert das Basis `EvibesViewSet` und nutzt das " +"implementieren. Es erweitert das Basis `SchonViewSet` und nutzt das " "Filtersystem von Django zur Abfrage von Daten." #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/en_GB/LC_MESSAGES/django.mo b/engine/core/locale/en_GB/LC_MESSAGES/django.mo deleted file mode 100644 index 509b0aa8210e1ccd5419e4047e1f7bb05f79a75f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87386 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 diff --git a/engine/core/locale/en_GB/LC_MESSAGES/django.po b/engine/core/locale/en_GB/LC_MESSAGES/django.po index 13c41142..1eb310ca 100644 --- a/engine/core/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/core/locale/en_GB/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# eVibes Translations. +# Schon Translations. # Copyright (C) 2025 Egor "fureunoir" Gorbunov -# This file is distributed under the same license as the eVibes package. +# This file is distributed under the same license as the Schon package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3190,8 +3190,8 @@ msgstr "" "It uses Django's `redirect` function for handling the HTTP redirection." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "Returns current version of the eVibes." +msgid "Returns current version of the Schon. " +msgstr "Returns current version of the Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3204,15 +3204,15 @@ msgstr "Returns custom variables for Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." @@ -3289,7 +3289,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3297,7 +3297,7 @@ msgstr "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3322,14 +3322,14 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/en_US/LC_MESSAGES/django.mo b/engine/core/locale/en_US/LC_MESSAGES/django.mo deleted file mode 100644 index 920ff3f5f0066e99deba8bfdb8b94d5ec83d1acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87377 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

G-O8o=9 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%0D8y=Go_CjGcD~_bb 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 Q&g@;%erC~bBmQ*%2Zw=&9RL6T diff --git a/engine/core/locale/zh_Hans/LC_MESSAGES/django.po b/engine/core/locale/zh_Hans/LC_MESSAGES/django.po index a712b466..b77e58ad 100644 --- a/engine/core/locale/zh_Hans/LC_MESSAGES/django.po +++ b/engine/core/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3020,8 +3020,8 @@ msgstr "" "`redirect` 函数来处理 HTTP 重定向。" #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "返回 eVibes 的当前版本。" +msgid "Returns current version of the Schon. " +msgstr "返回 Schon 的当前版本。" #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3034,13 +3034,13 @@ msgstr "返回 Dashboard 的自定义变量。" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The schonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"定义用于管理 Evibes 相关操作的视图集。EvibesViewSet 类继承于 ModelViewSet,提供了处理 Evibes " +"定义用于管理 schon 相关操作的视图集。schonViewSet 类继承于 ModelViewSet,提供了处理 schon " "实体上的操作和运行的功能。它包括支持基于当前操作的动态序列化类、可定制的权限和渲染格式。" #: engine/core/viewsets.py:160 @@ -3103,13 +3103,13 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`schonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" "管理与系统中的 \"产品 \"模型相关的操作。该类为管理产品提供了一个视图集,包括产品的筛选、序列化和对特定实例的操作。该类从 " -"`EvibesViewSet` 扩展而来,使用通用功能,并与 Django REST 框架集成,用于 RESTful API " +"`schonViewSet` 扩展而来,使用通用功能,并与 Django REST 框架集成,用于 RESTful API " "操作。包括检索产品详细信息、应用权限和访问产品相关反馈的方法。" #: engine/core/viewsets.py:605 @@ -3129,11 +3129,11 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of" -" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +" accessible Feedback objects. It extends the base `schonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "处理反馈对象的视图集的表示。该类管理与反馈对象相关的操作,包括列出、筛选和检索详细信息。该视图集的目的是为不同的操作提供不同的序列化器,并对可访问的反馈对象实施基于权限的处理。它扩展了基本的" -" `EvibesViewSet` 并使用 Django 的过滤系统来查询数据。" +" `schonViewSet` 并使用 Django 的过滤系统来查询数据。" #: engine/core/viewsets.py:652 msgid "" diff --git a/engine/core/management/commands/__init__.py b/engine/core/management/commands/__init__.py index 21794264..b7144dac 100644 --- a/engine/core/management/commands/__init__.py +++ b/engine/core/management/commands/__init__.py @@ -4,7 +4,7 @@ from django.conf import settings class RootDirectory: def __init__(self) -> None: self.label = "root" - self.path = settings.BASE_DIR / "evibes" + self.path = settings.BASE_DIR / "schon" # Mapping from Django locale codes to DeepL API codes diff --git a/engine/core/management/commands/delete_products_by_description.py b/engine/core/management/commands/delete_products_by_description.py index 8601b5b5..5920f9fe 100644 --- a/engine/core/management/commands/delete_products_by_description.py +++ b/engine/core/management/commands/delete_products_by_description.py @@ -23,7 +23,7 @@ class Command(BaseCommand): while True: batch_ids = list( Product.objects.filter( - description__iexact="EVIBES_DELETED_PRODUCT" + description__iexact="SCHON_DELETED_PRODUCT" ).values_list("pk", flat=True)[:size] ) if not batch_ids: diff --git a/engine/core/migrations/0054_product_export_to_marketplaces.py b/engine/core/migrations/0054_product_export_to_marketplaces.py new file mode 100644 index 00000000..e2a3b870 --- /dev/null +++ b/engine/core/migrations/0054_product_export_to_marketplaces.py @@ -0,0 +1,21 @@ +# Generated by Django 5.2.9 on 2026-01-25 19:58 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("core", "0053_product_is_updatable"), + ] + + operations = [ + migrations.AddField( + model_name="product", + name="export_to_marketplaces", + field=models.BooleanField( + default=False, + help_text="whether to export this product to marketplaces", + verbose_name="Export to Marketplaces", + ), + ), + ] diff --git a/engine/core/models.py b/engine/core/models.py index 46065a5a..312fced8 100644 --- a/engine/core/models.py +++ b/engine/core/models.py @@ -65,7 +65,7 @@ from engine.core.utils.db import TweakedAutoSlugField, unicode_slugify_function from engine.core.utils.lists import FAILED_STATUSES from engine.core.validators import validate_category_image_dimensions from engine.payments.models import Transaction -from evibes.utils.misc import create_object +from schon.utils.misc import create_object logger = logging.getLogger(__name__) @@ -669,6 +669,11 @@ class Product(ExportModelOperationsMixin("product"), NiceModel): unique=True, default=generate_human_readable_id, ) + export_to_marketplaces = BooleanField( + help_text=_("whether to export this product to marketplaces"), + verbose_name=_("Export to Marketplaces"), + default=False, + ) objects = ProductManager() @@ -736,6 +741,10 @@ class Product(ExportModelOperationsMixin("product"), NiceModel): def personal_orders_only(self, value): self.__dict__["personal_orders_only"] = value + @cached_property + def has_images(self): + return self.images.exists() + class Attribute(ExportModelOperationsMixin("attribute"), NiceModel): __doc__ = _( diff --git a/engine/core/permissions.py b/engine/core/permissions.py index 22c123cb..a69d9069 100644 --- a/engine/core/permissions.py +++ b/engine/core/permissions.py @@ -14,7 +14,7 @@ class IsOwnerOrReadOnly(permissions.BasePermission): # noinspection PyProtectedMember,PyUnresolvedReferences -class EvibesPermission(permissions.BasePermission): +class SchonPermission(permissions.BasePermission): ACTION_PERM_MAP = { "retrieve": "view", "list": "view", diff --git a/engine/core/signals.py b/engine/core/signals.py index 3f4b8aca..43fe5e65 100644 --- a/engine/core/signals.py +++ b/engine/core/signals.py @@ -31,7 +31,7 @@ from engine.core.utils.emailing import ( send_promocode_created_email, ) from engine.vibes_auth.models import User -from evibes.utils.misc import create_object +from schon.utils.misc import create_object logger = logging.getLogger(__name__) diff --git a/engine/core/static/favicon.ico b/engine/core/static/favicon.ico index f3ba783b76ad1acba13fc265b899e748eea1d049..64dfc9ae75bbd1cce204255e187cb8018e7357d1 100644 GIT binary patch literal 4286 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௺>K|6Ei>Peis&vEKC*szBB%s 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

ab{^D?X@?wUV6 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௺>K|6Ei>Peis&vEKC*szBB%s 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

ab{^D?X@?wUV6 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

5BZ&RRPwp|vzoY>9D5@O4 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∓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

bQ3NLYAJj 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%0ANk^GCJZE+xP%X`2W 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

4y;w%4JP$-!g{@tANqwtV2Q}cn$`v?13LC4W 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 E09aLZZU6uP literal 97723 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 b_0bE8?RF2cAlmgc2-svLl_V;~jD!CV9c|!p diff --git a/engine/core/static/robots_frontend.txt b/engine/core/static/robots_frontend.txt index ddd16e59..ff35bfa3 100644 --- a/engine/core/static/robots_frontend.txt +++ b/engine/core/static/robots_frontend.txt @@ -7,5 +7,5 @@ Disallow: /*/auth/sign-up/ Allow: / -Sitemap: https://evibes.com/sitemap.xml -Host: evibes.com \ No newline at end of file +Sitemap: https://schon.com/sitemap.xml +Host: schon.com \ No newline at end of file diff --git a/engine/core/templates/admin/index.html b/engine/core/templates/admin/index.html index 7e98c630..87f141ef 100644 --- a/engine/core/templates/admin/index.html +++ b/engine/core/templates/admin/index.html @@ -58,7 +58,7 @@

diff --git a/engine/core/utils/vendors.py b/engine/core/utils/vendors.py index 3edf4304..714caa7d 100644 --- a/engine/core/utils/vendors.py +++ b/engine/core/utils/vendors.py @@ -2,7 +2,7 @@ import logging from engine.core.models import Vendor from engine.core.vendors import AbstractVendor -from evibes.utils.misc import create_object +from schon.utils.misc import create_object logger = logging.getLogger(__name__) diff --git a/engine/core/vendors/__init__.py b/engine/core/vendors/__init__.py index ebe72bc5..585df0fd 100644 --- a/engine/core/vendors/__init__.py +++ b/engine/core/vendors/__init__.py @@ -30,7 +30,7 @@ from engine.core.models import ( ) from engine.payments.errors import RatesError from engine.payments.utils import get_rates -from evibes.utils.misc import LoggingError, LogLevel +from schon.utils.misc import LoggingError, LogLevel logger = logging.getLogger(__name__) @@ -427,7 +427,7 @@ class AbstractVendor: case "delete": products.delete() case "description": - products.update(description="EVIBES_DELETED_PRODUCT") + products.update(description="SCHON_DELETED_PRODUCT") case _: raise ValueError(f"Invalid method {method!r} for products update...") @@ -441,7 +441,7 @@ class AbstractVendor: filter_kwargs: dict[str, Any] = {"is_active": False} case "description": filter_kwargs: dict[str, Any] = { - "description__exact": "EVIBES_DELETED_PRODUCT" + "description__exact": "SCHON_DELETED_PRODUCT" } case _: raise ValueError( diff --git a/engine/core/views.py b/engine/core/views.py index 28816274..1d1e2252 100644 --- a/engine/core/views.py +++ b/engine/core/views.py @@ -86,7 +86,7 @@ from engine.core.utils.commerce import ( from engine.core.utils.emailing import contact_us_email from engine.core.utils.languages import get_flag_by_language from engine.payments.serializers import TransactionProcessSerializer -from evibes.utils.renderers import camelize +from schon.utils.renderers import camelize logger = logging.getLogger(__name__) @@ -438,11 +438,11 @@ index.__doc__ = str( def version(request: HttpRequest, *args, **kwargs) -> HttpResponse: - return JsonResponse(camelize({"version": settings.EVIBES_VERSION}), status=200) + return JsonResponse(camelize({"version": settings.SCHON_VERSION}), status=200) # noinspection PyTypeChecker -version.__doc__ = str(_("Returns current version of the eVibes. ")) # ty: ignore[invalid-assignment] +version.__doc__ = str(_("Returns current version of the Schon. ")) # ty: ignore[invalid-assignment] def dashboard_callback(request: HttpRequest, context: Context) -> Context: @@ -849,7 +849,7 @@ def dashboard_callback(request: HttpRequest, context: Context) -> Context: "revenue_net_30": revenue_net_cur, "returns_30": returns_cur, "processed_orders_30": processed_orders_cur, - "evibes_version": settings.EVIBES_VERSION, + "schon_version": settings.SCHON_VERSION, "quick_links": quick_links, "most_wished_product": most_wished, "most_popular_product": most_popular, diff --git a/engine/core/viewsets.py b/engine/core/viewsets.py index b06111f9..714e5b30 100644 --- a/engine/core/viewsets.py +++ b/engine/core/viewsets.py @@ -67,7 +67,7 @@ from engine.core.models import ( Vendor, Wishlist, ) -from engine.core.permissions import EvibesPermission +from engine.core.permissions import SchonPermission from engine.core.serializers import ( AddOrderProductSerializer, AddressAutocompleteInputSerializer, @@ -134,18 +134,18 @@ from engine.payments.serializers import TransactionProcessSerializer logger = logging.getLogger(__name__) -class EvibesViewSet(ModelViewSet): +class SchonViewSet(ModelViewSet): __doc__ = _( - "Defines a viewset for managing Evibes-related operations. " - "The EvibesViewSet class inherits from ModelViewSet and provides functionality " - "for handling actions and operations on Evibes entities. It includes support " + "Defines a viewset for managing Schon-related operations. " + "The SchonViewSet class inherits from ModelViewSet and provides functionality " + "for handling actions and operations on Schon entities. It includes support " "for dynamic serializer classes based on the current action, customizable " "permissions, and rendering formats." ) action_serializer_classes: dict[str, Type[Serializer]] = {} additional: dict[str, str] = {} - permission_classes = [EvibesPermission] + permission_classes = [SchonPermission] def get_serializer_class(self) -> Type[Any]: # ty: ignore[invalid-return-type] # noinspection PyTypeChecker @@ -155,7 +155,7 @@ class EvibesViewSet(ModelViewSet): @extend_schema_view(**ATTRIBUTE_GROUP_SCHEMA) -class AttributeGroupViewSet(EvibesViewSet): +class AttributeGroupViewSet(SchonViewSet): __doc__ = _( "Represents a viewset for managing AttributeGroup objects. " "Handles operations related to AttributeGroup, including filtering, " @@ -174,7 +174,7 @@ class AttributeGroupViewSet(EvibesViewSet): @extend_schema_view(**ATTRIBUTE_SCHEMA) -class AttributeViewSet(EvibesViewSet): +class AttributeViewSet(SchonViewSet): __doc__ = _( "Handles operations related to Attribute objects within the application. " "Provides a set of API endpoints to interact with Attribute data. This class " @@ -193,7 +193,7 @@ class AttributeViewSet(EvibesViewSet): @extend_schema_view(**ATTRIBUTE_VALUE_SCHEMA) -class AttributeValueViewSet(EvibesViewSet): +class AttributeValueViewSet(SchonViewSet): __doc__ = _( "A viewset for managing AttributeValue objects. " "This viewset provides functionality for listing, retrieving, creating, updating, and deleting " @@ -212,7 +212,7 @@ class AttributeValueViewSet(EvibesViewSet): @extend_schema_view(**CATEGORY_SCHEMA) -class CategoryViewSet(EvibesViewSet): +class CategoryViewSet(SchonViewSet): __doc__ = _( "Manages views for Category-related operations. " "The CategoryViewSet class is responsible for handling operations related to " @@ -341,7 +341,7 @@ class CategoryViewSet(EvibesViewSet): @extend_schema_view(**BRAND_SCHEMA) -class BrandViewSet(EvibesViewSet): +class BrandViewSet(SchonViewSet): __doc__ = _( "Represents a viewset for managing Brand instances. " "This class provides functionality for querying, filtering, and " @@ -453,11 +453,11 @@ class BrandViewSet(EvibesViewSet): @extend_schema_view(**PRODUCT_SCHEMA) -class ProductViewSet(EvibesViewSet): +class ProductViewSet(SchonViewSet): __doc__ = _( "Manages operations related to the `Product` model in the system. " "This class provides a viewset for managing products, including their filtering, serialization, " - "and operations on specific instances. It extends from `EvibesViewSet` to use common " + "and operations on specific instances. It extends from `SchonViewSet` to use common " "functionality and integrates with the Django REST framework for RESTful API operations. " "Includes methods for retrieving product details, applying permissions, and accessing " "related feedback of a product." @@ -600,7 +600,7 @@ class ProductViewSet(EvibesViewSet): @extend_schema_view(**VENDOR_SCHEMA) -class VendorViewSet(EvibesViewSet): +class VendorViewSet(SchonViewSet): __doc__ = _( "Represents a viewset for managing Vendor objects. " "This viewset allows fetching, filtering, and serializing Vendor data. " @@ -620,13 +620,13 @@ class VendorViewSet(EvibesViewSet): @extend_schema_view(**FEEDBACK_SCHEMA) -class FeedbackViewSet(EvibesViewSet): +class FeedbackViewSet(SchonViewSet): __doc__ = _( "Representation of a view set handling Feedback objects. " "This class manages operations related to Feedback objects, including listing, " "filtering, and retrieving details. The purpose of this view set is to provide " "different serializers for different actions and implement permission-based " - "handling of accessible Feedback objects. It extends the base `EvibesViewSet` " + "handling of accessible Feedback objects. It extends the base `SchonViewSet` " "and makes use of Django's filtering system for querying data." ) @@ -647,7 +647,7 @@ class FeedbackViewSet(EvibesViewSet): # noinspection PyUnusedLocal @extend_schema_view(**ORDER_SCHEMA) -class OrderViewSet(EvibesViewSet): +class OrderViewSet(SchonViewSet): __doc__ = _( "ViewSet for managing orders and related operations. " "This class provides functionality to retrieve, modify, and manage order objects. " @@ -909,7 +909,7 @@ class OrderViewSet(EvibesViewSet): # noinspection PyUnusedLocal @extend_schema_view(**ORDER_PRODUCT_SCHEMA) -class OrderProductViewSet(EvibesViewSet): +class OrderProductViewSet(SchonViewSet): __doc__ = _( "Provides a viewset for managing OrderProduct entities. " "This viewset enables CRUD operations and custom actions specific to the " @@ -970,7 +970,7 @@ class OrderProductViewSet(EvibesViewSet): @extend_schema_view(**PRODUCT_IMAGE_SCHEMA) -class ProductImageViewSet(EvibesViewSet): +class ProductImageViewSet(SchonViewSet): __doc__ = _("Manages operations related to Product images in the application. ") queryset = ProductImage.objects.all() @@ -983,7 +983,7 @@ class ProductImageViewSet(EvibesViewSet): @extend_schema_view(**PROMOCODE_SCHEMA) -class PromoCodeViewSet(EvibesViewSet): +class PromoCodeViewSet(SchonViewSet): __doc__ = _( "Manages the retrieval and handling of PromoCode instances through various API actions." ) @@ -1015,7 +1015,7 @@ class PromoCodeViewSet(EvibesViewSet): @extend_schema_view(**PROMOTION_SCHEMA) -class PromotionViewSet(EvibesViewSet): +class PromotionViewSet(SchonViewSet): __doc__ = _("Represents a view set for managing promotions. ") queryset = Promotion.objects.all() @@ -1028,7 +1028,7 @@ class PromotionViewSet(EvibesViewSet): @extend_schema_view(**STOCK_SCHEMA) -class StockViewSet(EvibesViewSet): +class StockViewSet(SchonViewSet): __doc__ = _("Handles operations related to Stock data in the system.") queryset = Stock.objects.all() @@ -1041,7 +1041,7 @@ class StockViewSet(EvibesViewSet): @extend_schema_view(**WISHLIST_SCHEMA) -class WishlistViewSet(EvibesViewSet): +class WishlistViewSet(SchonViewSet): __doc__ = _( "ViewSet for managing Wishlist operations. " "The WishlistViewSet provides endpoints for interacting with a user's wish list, " @@ -1178,7 +1178,7 @@ class WishlistViewSet(EvibesViewSet): @extend_schema_view(**ADDRESS_SCHEMA) -class AddressViewSet(EvibesViewSet): +class AddressViewSet(SchonViewSet): __doc__ = _( "This class provides viewset functionality for managing `Address` objects. " "The AddressViewSet class enables CRUD operations, filtering, and custom actions " @@ -1257,7 +1257,7 @@ class AddressViewSet(EvibesViewSet): @extend_schema_view(**PRODUCT_TAG_SCHEMA) -class ProductTagViewSet(EvibesViewSet): +class ProductTagViewSet(SchonViewSet): __doc__ = _( "Handles operations related to Product Tags within the application. " "This class provides functionality for retrieving, filtering, and serializing " diff --git a/engine/payments/locale/ar_AR/LC_MESSAGES/django.mo b/engine/payments/locale/ar_AR/LC_MESSAGES/django.mo deleted file mode 100644 index d992cc605959e77291e2ecb8f08a331d75fc848d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7761 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 diff --git a/engine/payments/locale/ar_AR/LC_MESSAGES/django.po b/engine/payments/locale/ar_AR/LC_MESSAGES/django.po index 197e386c..6f8047b0 100644 --- a/engine/payments/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/payments/locale/ar_AR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/cs_CZ/LC_MESSAGES/django.mo b/engine/payments/locale/cs_CZ/LC_MESSAGES/django.mo deleted file mode 100644 index 1e660dccb319c13a527711bc89701d3ed1b6bc91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6705 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 Wz6(|;xeaPkdYcb}BBMu~Wa>X3yxd~| diff --git a/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po b/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po index b928084b..69585e5a 100644 --- a/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po +++ b/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/da_DK/LC_MESSAGES/django.mo b/engine/payments/locale/da_DK/LC_MESSAGES/django.mo deleted file mode 100644 index 8dd26ab7ef78ffc11e8df70df40a8df9b44d2a0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6681 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 I;4QWCUq}c)8UO$Q diff --git a/engine/payments/locale/da_DK/LC_MESSAGES/django.po b/engine/payments/locale/da_DK/LC_MESSAGES/django.po index 99d64984..c237e368 100644 --- a/engine/payments/locale/da_DK/LC_MESSAGES/django.po +++ b/engine/payments/locale/da_DK/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/de_DE/LC_MESSAGES/django.mo b/engine/payments/locale/de_DE/LC_MESSAGES/django.mo deleted file mode 100644 index fdbdb52de7cfa1d0ee24f6eba4e1028a49795346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6927 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 b^6cQL=egWhC)6`!*V`O@{2aI@l4Siq7{ip+ diff --git a/engine/payments/locale/de_DE/LC_MESSAGES/django.po b/engine/payments/locale/de_DE/LC_MESSAGES/django.po index 125a9e25..0fcdece2 100644 --- a/engine/payments/locale/de_DE/LC_MESSAGES/django.po +++ b/engine/payments/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/en_GB/LC_MESSAGES/django.mo b/engine/payments/locale/en_GB/LC_MESSAGES/django.mo deleted file mode 100644 index 72852c679e6e0e92c50e9eab13513eeb7a52d1e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6450 zcmeI0%a0sK9mfj@i8H)INC<>b1{?1tJCpHRB+=SyvAbS-7wt>ySqG3MQ!`yN)1)6m zSNE<5+d@Q;1LD9TNW5}@LnIE|KqyE#z=b~n5Dy{235gpLTq5}V`Z3$KV`H!nMsmxw z->&L<{C?lxqkiK*K6Kx=6wfi*)S9t3{} zHo!N^?+572(SI0}b2mZR_w(RKz#;e$_!9VW@H^m#z}LYL{0;a4@HB^g3_K6YIbQ}* zP5l6r`LCAv3-Dd^e-EAj{|d^yBkxq|!{7`k`mBH=&u74QgFYzwT`ch{pvd)ga2k9C z+yH+CJ_|m=A#ANSK!()kz{}tOlzsjJ%DTUS5&S;NA!3)8I9%-VGf?dE211Bkj&qpE z^KGyR{sJ_)`Eid;Vi=fT&&gWx|vs8o+ZrhGpH zie1{EocjVO`(6gcE?)&XTKy0dyZjUso_`C5;NL<1sqQ0%T`q!h&i6p!`*l#}|FXnC zfKZ|S35s3rf3%pl1d3f&K+(qoMV=HCyL=54{a!Bd6;R}Q6%>A71H~?X2A=_EKUnDJ zgJPEq6uZ0#%0B-BW!-_tl!D$|CYdLk%cJwZN=Z1)mhU3pTWO!5A%5Hn5G~xd+P57-I;pBa^`)P-0kJBVhvU-K!q#f5(HZ(q z_X6Xb9wl+lI>%bJ&`F%7^=(!P>!RffB-V}M$XV#|{2q)!kjr|aw~iCtH-3;MwxzD7MTC~Ug)(g;Zxq9LO+?R* zV&^lmZzI=gppnZ)qc{=D;k%dE+(bI=YlEiOt5*X_i25OK(P%-u*0?9EqL8_V%LfW#Ub2#+s6{JwF}h zXV=t3jTFvsx7>en>z3?Icq$Hc8gKMNY$Ydz=3?<41o0l`uGlbPoQaW5FNraU*=2Ln z4Q%Bxj?MQ;);l|^r>+{fDonD>_a-q?x|}-a+r6_k)qTvJdziQYmhqZ#6pVE|vPB@_ z4~5g#&kJME1}*)j-cj2`;xXx)p3P6mdlI=ERB%|+pfqZ#F=*i?we!weqAKvegsDYb zOrCdTBOwu|tc{4T6uWiA+47LKk;9#3Uz4H_`iZZ^30rz{V&Z1>-Z0jog%LNhJ-_ew zG!%rsbJ(BHJqe>CK;(p)?XiWayfcw#7_bTCab6yrxP+t}Ke3)72kFEg3^6V8*kqTn zt_e)kvlUi8Q1zYalC79NFp1}8PIQx#BEaD(0^$p{mtKfS9nzDT+S%Jug7slVC-64Y^?Jeqi}@2 zwE>2;_&`h&j#6A&#~E%}Bsp!;hQ7&jc&c1;{3&}}%eDx~MV|H-c6qAE^2 z0vOWpp!}jK()`Hyo*J2PNb0WK@7lhb4CHGG2JgmF6NCErwXLYa#d2{-Y%ElJ*v zak6KffI3T)nRg^Nt7{TO$+h2NBY41YdD1U*n$xN#Uj5yvJzKb9c|~(oVHfUE z&zHc)QxnNea%B{m_3%^?V>nmwwFuRlJ7yV85+R4D%8q!aBiP(bKCCvvZ8s4tTiX|KiO;_Z60gu_OZFyXP;{GG}equn;p470+YrG zyPw(I*0jZ)jm>lV#M0(QXJM)Hsna{#%Z#jUx0W{7PqHi;WM*KS9g^joUff>ote#!b z%Nu9b1pm{r>sB<@SJ#*KRXo~iH<^Rvfw@j5>h>4Wq7==AZ%z2f*@ zaa{ePxK|vT@x9`hT3If_yQ4T>*e@Qr^lnldFT6={yjYfaCF)bf&qY=Com#y0;&|y! z6~}7nZm5kbDoVUTZCrhY`tnX!w^AFg+_*O8m-qieZM-HwcWzo6uiZVh@#gK+##?3a zT-L^Aw^kcdj!D5SDWR&3w{N*Np3J;6wXystuhqG?SR2>>bEE$5)bqDd8h=&_=i4cb Kpa1Vm<9`E4gvFl# diff --git a/engine/payments/locale/en_GB/LC_MESSAGES/django.po b/engine/payments/locale/en_GB/LC_MESSAGES/django.po index 0d4bcb0f..8dba35e2 100644 --- a/engine/payments/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/payments/locale/en_GB/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# eVibes Translations. +# Schon Translations. # Copyright (C) 2025 Egor "fureunoir" Gorbunov -# This file is distributed under the same license as the eVibes package. +# This file is distributed under the same license as the Schon package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/en_US/LC_MESSAGES/django.mo b/engine/payments/locale/en_US/LC_MESSAGES/django.mo deleted file mode 100644 index b7263d76496338606f704c0b93db26f49d6feed3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6438 zcmeI0OKei3KZGU9bWPgjldZJXYNykof-l7~iB#2qcRj zJ;ia1@g(D?Z&T_lTzLn7I0pAAH4S~Z$i0{0Ed1j;mAc6F zr|wtk{qPcO!f(PA?*AN4Fu(snr9KF!A(zx?_&&G-AAlF(v(UnK!|%XT@D+Fn{thgujI!f@j$5l<(qz6w|2ui$a` zD4VdfT7_IvpM{rUAIds^g7V(qp@)4RV-xYqWi}VTT!rG7HxNSnGQ(yf&$nO`{t${^ zUWekBCmt#MvH-b==havnkt!hRy$Z!Izkx5nXC5!~`y3R%_)z?^3uT=* zpuG1_hve^j05c;O5+}m?O87`1*Oq zgA7#8>jubUMJR{Z`3Pf5CLAA=KW9y9_smFNN)r<~(@p(2YW0hYSMg%ovf*sTSqE76WGV4;O(^#hitLN62TaC`Zce)!G=kzd%yVg10 zWeJ_cSz2Fasnc24>uZ~xH?3oayg5vKgwn%OG$a!-61`)b^>iHNJM!GF?=i2Q8k)p} zHnmAhFQ*zwJnQ^^#1qI^EO8*e-L(B3(3n}&_dTm%N0nh z8^)2dn8)+GSPTQXtSfr!IMF@h2U%iU>RPji(6Y9eOxwsC##p>2qGyM(^SN^1BiCx6 zk;{g|I1!U$?`~pq7wNdC4Vu2`9c_B3qjycD|kM@s{{Wd~f${HdwvlG}VVjPPf z7+G&^EuX&T!Zm4$(;`ax*7I|#4%e5U7n5b(j zRxwb`o!X&V@p#`Po|`(klbjL(4o{E}U$EVDJEC+#uT8TJPWj<8YE)J~@cdWW$;JssnQ85FGe@Gg>HkfS221%`=9(OA*$lUBY`m* z5tM&uiZVYmzNdy}6jHjY@VkEQ#uxH98BaM$e9|}_agr}8HKDAB$6Ge^@T*ciYRc{`cWj0BM9G)mA5}i`3y~OOPOC*g{Z`WGiSo`$i zLT7t*?%d)PeYr}+ap_twN>g*$Yo4dLk~nR>cz$_)aZ?|iKKepyrm?|iKS`VCT;KPa z^I6|DJ8@e#*4LUFcGs6Tny0B+ZF&Ba&FPuuv1vVhtbO$ObJHA+730!oN4_6{N#lgo z&#rA~#{Aam+If9)VQsZDx6t|2nXQdQt}Jh~7S_(4;m|-dxg) zt7lh)|LL_hO;0m(jdRQA77rAgX-zj4$PVJS*%=LyIi(+aei#@(I-$D*lVG>mt7imvDY}(c@?)YhAowmya%`T4Fk6`TX4-E%Dqz%gCqhCN1&YTeQUUWn))TpDunRs!e{x(;3a* zdPBT$ry63la5wbBl_5&rpdYU8V)*hqu5P6tUb=BV%&+bLhkkfPe&XD;A6~h8`r)

4(?LhPmvA%W172rUjEGTM9ze4{zLZKRkZ&&h*3bL%i18-eNyo{|}A&xl8Qdy diff --git a/engine/payments/locale/en_US/LC_MESSAGES/django.po b/engine/payments/locale/en_US/LC_MESSAGES/django.po index 451a4779..3af32e34 100644 --- a/engine/payments/locale/en_US/LC_MESSAGES/django.po +++ b/engine/payments/locale/en_US/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/es_ES/LC_MESSAGES/django.mo b/engine/payments/locale/es_ES/LC_MESSAGES/django.mo deleted file mode 100644 index 075c29345cbda02ac8ef42edb4b914531344f9a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6918 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 LnKFo>{Z{Hf(`Ju* diff --git a/engine/payments/locale/es_ES/LC_MESSAGES/django.po b/engine/payments/locale/es_ES/LC_MESSAGES/django.po index 310d1ba2..8bc80fed 100644 --- a/engine/payments/locale/es_ES/LC_MESSAGES/django.po +++ b/engine/payments/locale/es_ES/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/fa_IR/LC_MESSAGES/django.mo b/engine/payments/locale/fa_IR/LC_MESSAGES/django.mo deleted file mode 100644 index f7b56b65f23ddd46f0761a3fd031f6e6afd9436e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYL@Jx{|h5Qd9j%810q;DHS;v>i||AF4~-63I@gG_3@iX-zN+cICJTeh7b$-@;`f zuk`4KdrtTM9v}S-FbBvfa)ult7f6=`Il<*M&d&MI!n=3936O1Jt$k~prG&4uDPNND zaC{YyqEhdi4;5;R>l@KInl9O95StcedO-sI9-lJ;ky{a`-T76I=SUz8|IeJ1&8WTHT_YO9Y zndE)xQ9O(uoDJIIyYC(L3HmEs?iyw64cWXY-|BF;s%DV%URUc?d*F8Cw#L?!BrhgJ FgFkrqT8aPw diff --git a/engine/payments/locale/fa_IR/LC_MESSAGES/django.po b/engine/payments/locale/fa_IR/LC_MESSAGES/django.po index 6c7f4325..3f56cc08 100644 --- a/engine/payments/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/payments/locale/fa_IR/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/engine/payments/locale/fr_FR/LC_MESSAGES/django.mo b/engine/payments/locale/fr_FR/LC_MESSAGES/django.mo deleted file mode 100644 index a486467083f7c601ee31ae86ca0434005b9812ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7018 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 M1JYZ_%ORKi7j+}fLI3~& diff --git a/engine/payments/locale/fr_FR/LC_MESSAGES/django.po b/engine/payments/locale/fr_FR/LC_MESSAGES/django.po index 71ba30dc..bfc4e00d 100644 --- a/engine/payments/locale/fr_FR/LC_MESSAGES/django.po +++ b/engine/payments/locale/fr_FR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/he_IL/LC_MESSAGES/django.mo b/engine/payments/locale/he_IL/LC_MESSAGES/django.mo deleted file mode 100644 index 7c302b92ad7f8f98adde6dc2777a22794c4c2ce6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7194 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 BRN?>t diff --git a/engine/payments/locale/he_IL/LC_MESSAGES/django.po b/engine/payments/locale/he_IL/LC_MESSAGES/django.po index d3a6f6c2..61ccae6a 100644 --- a/engine/payments/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/payments/locale/he_IL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/hi_IN/LC_MESSAGES/django.mo b/engine/payments/locale/hi_IN/LC_MESSAGES/django.mo deleted file mode 100644 index 9964f0bf6f21a7376a5f3b631dd55508538e3d72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmaiv&rX9t5XNit#L=^dJ$Tc>rAY~0|3pAaND4Fv+*ep}P2FvlZKDt3>-j7W7kl(e zewk$Eo5?pn=V#wD)CqEdTq38)H8Lqc0EbJgljlzxqu)hmA?u+PW|UenlC)WrJd-({ z`>y9yVyBITd>mvC(S8`A){Hot5-M?!(*`_oE7;^;0QJH12@Tj{c||=+oi!gV)P}2Z z%dIweJuNGOL`_k)E5^*g}ra;6$D4$6!%paNK~hLsRl-Z7ipc@ EFP42@z5oCK diff --git a/engine/payments/locale/hi_IN/LC_MESSAGES/django.po b/engine/payments/locale/hi_IN/LC_MESSAGES/django.po index e7190169..2c3c9c34 100644 --- a/engine/payments/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/payments/locale/hi_IN/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# EVIBES GETTEXT TRANSLATIONS +# SCHON GETTEXT TRANSLATIONS # Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. +# This file is distributed under the same license as the SCHON package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/payments/locale/hr_HR/LC_MESSAGES/django.mo b/engine/payments/locale/hr_HR/LC_MESSAGES/django.mo deleted file mode 100644 index f7b56b65f23ddd46f0761a3fd031f6e6afd9436e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYL@Jx{|h5Qd9j%810q;DHS;v>i||AF4~-63I@gG_3@iX-zN+cICJTeh7b$-@;`f zuk`4KdrtTM9v}S-FbBvfa)ult7f6=`Il<*M&d&MI!n=3936O1Jt$k~prG&4uDPNND zaC{YyqEhdi4;5;R>l@KInl9O95StcedO-sI9-lJ;ky{a`-T76I=SUz8|IeJ1&8WTHT_YO9Y zndE)xQ9O(uoDJIIyYC(L3HmEs?iyw64cWXY-|BF;s%DV%URUc?d*F8Cw#L?!BrhgJ FgFkrqT8aPw diff --git a/engine/payments/locale/hr_HR/LC_MESSAGES/django.po b/engine/payments/locale/hr_HR/LC_MESSAGES/django.po index 6c7f4325..3f56cc08 100644 --- a/engine/payments/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/payments/locale/hr_HR/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/engine/payments/locale/id_ID/LC_MESSAGES/django.mo b/engine/payments/locale/id_ID/LC_MESSAGES/django.mo deleted file mode 100644 index 0b1c2bfffa77d9b75e1423d37172e52ca5ad0066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6715 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 IJ&wWrZ*f>9A^-pY diff --git a/engine/payments/locale/id_ID/LC_MESSAGES/django.po b/engine/payments/locale/id_ID/LC_MESSAGES/django.po index a5fab24f..9c0261f3 100644 --- a/engine/payments/locale/id_ID/LC_MESSAGES/django.po +++ b/engine/payments/locale/id_ID/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/it_IT/LC_MESSAGES/django.mo b/engine/payments/locale/it_IT/LC_MESSAGES/django.mo deleted file mode 100644 index f34f93cd51d34e24225c95dfa27f139eecbae9a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6827 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 diff --git a/engine/payments/locale/it_IT/LC_MESSAGES/django.po b/engine/payments/locale/it_IT/LC_MESSAGES/django.po index 1186c6c3..62a4982d 100644 --- a/engine/payments/locale/it_IT/LC_MESSAGES/django.po +++ b/engine/payments/locale/it_IT/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/ja_JP/LC_MESSAGES/django.mo b/engine/payments/locale/ja_JP/LC_MESSAGES/django.mo deleted file mode 100644 index bf301a3408e244978fd505edc29a76da7f62c765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7274 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 U8u_U==2}{o`>Z^`!(D~_7gL>wssI20 diff --git a/engine/payments/locale/ja_JP/LC_MESSAGES/django.po b/engine/payments/locale/ja_JP/LC_MESSAGES/django.po index 1b985535..cc38bd01 100644 --- a/engine/payments/locale/ja_JP/LC_MESSAGES/django.po +++ b/engine/payments/locale/ja_JP/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/kk_KZ/LC_MESSAGES/django.mo b/engine/payments/locale/kk_KZ/LC_MESSAGES/django.mo deleted file mode 100644 index 9964f0bf6f21a7376a5f3b631dd55508538e3d72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmaiv&rX9t5XNit#L=^dJ$Tc>rAY~0|3pAaND4Fv+*ep}P2FvlZKDt3>-j7W7kl(e zewk$Eo5?pn=V#wD)CqEdTq38)H8Lqc0EbJgljlzxqu)hmA?u+PW|UenlC)WrJd-({ z`>y9yVyBITd>mvC(S8`A){Hot5-M?!(*`_oE7;^;0QJH12@Tj{c||=+oi!gV)P}2Z z%dIweJuNGOL`_k)E5^*g}ra;6$D4$6!%paNK~hLsRl-Z7ipc@ EFP42@z5oCK diff --git a/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po b/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po index e7190169..2c3c9c34 100644 --- a/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# EVIBES GETTEXT TRANSLATIONS +# SCHON GETTEXT TRANSLATIONS # Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. +# This file is distributed under the same license as the SCHON package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/payments/locale/ko_KR/LC_MESSAGES/django.mo b/engine/payments/locale/ko_KR/LC_MESSAGES/django.mo deleted file mode 100644 index b8330561c240454be37eb52c28958128323d59bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6929 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 diff --git a/engine/payments/locale/ko_KR/LC_MESSAGES/django.po b/engine/payments/locale/ko_KR/LC_MESSAGES/django.po index f85e7c01..615cda5b 100644 --- a/engine/payments/locale/ko_KR/LC_MESSAGES/django.po +++ b/engine/payments/locale/ko_KR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/nl_NL/LC_MESSAGES/django.mo b/engine/payments/locale/nl_NL/LC_MESSAGES/django.mo deleted file mode 100644 index 7c69a7098e47f160175cbbd1ed01ec2265bc278f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6689 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 F_+LEqI$r<) diff --git a/engine/payments/locale/no_NO/LC_MESSAGES/django.po b/engine/payments/locale/no_NO/LC_MESSAGES/django.po index c6460b48..0417ca74 100644 --- a/engine/payments/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/payments/locale/no_NO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/pl_PL/LC_MESSAGES/django.mo b/engine/payments/locale/pl_PL/LC_MESSAGES/django.mo deleted file mode 100644 index 3a7dd23db29ab0ecd99a6f347512f90f262a6138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6727 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 diff --git a/engine/payments/locale/pt_BR/LC_MESSAGES/django.po b/engine/payments/locale/pt_BR/LC_MESSAGES/django.po index 5a214174..6993e9f7 100644 --- a/engine/payments/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/payments/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/locale/ro_RO/LC_MESSAGES/django.mo b/engine/payments/locale/ro_RO/LC_MESSAGES/django.mo deleted file mode 100644 index b49eb1bea46beaa05fd43e59c80bc9c354616b6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6814 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 diff --git a/engine/payments/locale/zh_Hans/LC_MESSAGES/django.po b/engine/payments/locale/zh_Hans/LC_MESSAGES/django.po index 5989cf9d..2adce62a 100644 --- a/engine/payments/locale/zh_Hans/LC_MESSAGES/django.po +++ b/engine/payments/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/payments/models.py b/engine/payments/models.py index 27af14f9..6070c97f 100644 --- a/engine/payments/models.py +++ b/engine/payments/models.py @@ -20,7 +20,7 @@ from django.utils.translation import gettext_lazy as _ from engine.core.abstract import NiceModel from engine.payments.gateways import AbstractGateway from engine.payments.managers import GatewayManager -from evibes.utils.misc import create_object +from schon.utils.misc import create_object class Transaction(NiceModel): diff --git a/engine/payments/utils/gateways.py b/engine/payments/utils/gateways.py index 65ccfd54..9dbb3de4 100644 --- a/engine/payments/utils/gateways.py +++ b/engine/payments/utils/gateways.py @@ -2,7 +2,7 @@ from typing import Type from engine.payments.gateways import AbstractGateway from engine.payments.models import Gateway -from evibes.utils.misc import create_object +from schon.utils.misc import create_object def get_gateways_integrations(name: str | None = None) -> list[Type[AbstractGateway]]: diff --git a/engine/payments/viewsets.py b/engine/payments/viewsets.py index c8644bf0..6fecb702 100644 --- a/engine/payments/viewsets.py +++ b/engine/payments/viewsets.py @@ -2,7 +2,7 @@ from django.utils.translation import gettext_lazy as _ from drf_spectacular.utils import extend_schema_view from rest_framework.viewsets import ReadOnlyModelViewSet -from engine.core.permissions import EvibesPermission, IsOwner +from engine.core.permissions import IsOwner, SchonPermission from engine.payments.docs.drf.viewsets import TRANSACTION_SCHEMA from engine.payments.models import Transaction from engine.payments.serializers import TransactionSerializer @@ -22,4 +22,4 @@ class TransactionViewSet(ReadOnlyModelViewSet): lookup_field = "uuid" lookup_url_kwarg = "uuid" serializer_class = TransactionSerializer - permission_classes = (EvibesPermission, IsOwner) + permission_classes = (SchonPermission, IsOwner) diff --git a/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo deleted file mode 100644 index 9e100142c40e66b49d3c4e9a11b261d48817be66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17472 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 TSSI(5i!SY@>3lOToOSoVlsVsP diff --git a/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po index cd90dc73..766723ba 100644 --- a/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo deleted file mode 100644 index 273ef0f20ec2fc07cd4fcdd1cb44b4e2f296f260..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14450 zcmbuFZH!!3dB+bSwBQ5^;Vmtt+)YVi!|ud(5=b@)WbHVKUw85DI>aqFcV_PH+?|IVu{tAZ-3qN>0D zIrrX~+1)ru9r^fwU(d_)@_(N5-2L_q*M7?I`ylNXY1dzC%q8$AKg)mozOc)fIq-|% zFM&UE9nXL_gRcblgZwl171xh}Z{Yk9@Mpjt_!Y`w&o^WfV!|1UcEWpIp67}6X9 z_1qEgM(|N^FW3ja$$NhSHo*`6oG~HSzx!%qUIre2jWMqUXTkS_i=f8+DyV+H2CBbr zfCqU0``|d|HD1#AzY5+5eh7RE_!aOMz<&lMkN*L02XB0xF+UF;2Q|+{@SWf}@J-;C zK&E7#1DT?E9%QNJKS8=M{|icfH}Eo|H2c7}gZF?Mw*|fm{3xjTe;SkuJ_kx(e_Y^m zAWJYm0dD|bg|MfDa{fH1erFJ>*7tt!72p!6>lyeS@WaLRZ-LUow?WC}yCDC}5Bcv`!0QpJ z^l=-w8+;Vh{C^9SelCEL-(Q0FfZqhQo>wzj&HoLco_{kadE5$)fd@e8rCHz;pq~4E zkfoVF1vURoQ1gBclwJQ5D82juL}lhiI+6S*z`MZrg3{9`K+S6nWJ=~sApgwY^4~|m z?}Mko4`4*<=WjsG?>nH@@gq?4+4p9L2SJT94`@AR;!;6xaVAd^hJm z248xOF?YVzn9uY6Js8P{xc)DB8I$KF<4x!Tp?n zmBmhg{|&wqyagq*RC5MI1m;7ai65=C&3?s^Weu(mfm|Fd>s5CsP*@F z>3Z-9@H+53sQEkz9tEE+u4|F9+v`D0+`I-vMWzNyt`CD#;K#t*!LNa+*j$5>^xPg$ z_IwhQpR_@Z_xS>!2IUW50p(ZU0#T9q9;o@eoGh`q$_g`lRE(30c!nc3;ZZ3{eK43JiiP+0X_!?;7K}Dzh4Gl4gNLw5crSa zYr&h};pTN0C_T=CvcFG&uK>RYz7G6zQ1bgbPC!aM_s}w0pC&(eH|>2i z{f^O&)9O0m7do(Zr$fn6KhOT}_`b*STyg$>P%=77dld~8*xxGu%NO*M?l4hvA5C(7 zDeW%W0!{X=-v?+ddt}Tq_(*Xqc#tN&oTf=$vaR8t&j}*7G4C2sGSja^J7kZ@6~MeW zo&+VweYCT*!?XrXGJhFOzl8RCa&#;0WOc=uQ^m1tZWk@0 z?WIlAWDoku&QY^Ds1tr?Xs@KjG}%b`lYKo#dpYd^n(Rxz8)@^jyLG}({)su86FM3C zy_I8V$Npra`lYlb+8Aw-c8>N2+7X(5Z=^xF_9y$?QydFq*YBmho;FLnmZl%3X?;S+ zkJ46jz)${TrlL6NcjG+u;>7dwtQACA*zmKU>2YTw&HRN0FHeIc_0k|}dfgyR{ly@y zc~hM<_R_r9i<2z%{6-eW(Y?JeTCAC=Gz}M{An>|*ntAoW^SwbwHFL1#XJtntC#gHj zT1ntHhmX0@iPL~7bb^NF<{l|7H_Zc@e6^DD=0kqe>;$Qo1Pe)!wwRh1FL+tp4x-ds z7+o)u_j-BKV-(gl*9udw(ecyN)VcOpXE4S+zS$4 z;y^5^*YlH1AG>q0b*PKXwm0Iwv$2l4L@Qh7u&EA4 z7ZOIjT)IW?ti72x=%U9_k9T=E&NJPwnZuFo!1J>#3F|qxkZ#w{CcVe1OJ{n1n4B}m zo&8jnv9DI!w|D=YUZdqF*bsJBGt<2wvj1(@_e_vXIQ145#d}c{bj-=1*XfTVIutnW zW-NUdLc;!fK_grU8-?Z6^a296a`wG>#DNYn=~J(G4GcH#BA%wV5C)y56GAu0S~176 zo#1SSKj{9jHH?^!dqheNys3JcX@Pd6Zrltyc9LO~1&dN012mhVjK=SH3xS_mbLfQa zpqPsnbp5d7b>hV^8ZQ+lD=H>6jxW~JMiTbaiKLU|DG#D&mTk?^$)(Z=9-YMr&TK8v zmpd00j>%^s#x2v)TDyMaGwdSf)Ids|zBMk^9%8>vG}dq?>b_h>T(E3Mv~Sxf^!2*m zXv8^|Ehz;~=uQ+kSu?PlVI2*f;;p6MhXalgShTrTDobeYx`om%_X>=%P9 zv!mmRVPaje(ZCF?0t#*@SwW_*Zf{{ie&!eIv|U*tFa>E7IoTd?YdcqUKO%tvkxCgW ztsr3qLvGESaOrYBM;@LlC$JkCZJFC1W~2cMDBYF1Iys%anG*M zlPX-NjtR7~l4az=h;Bd`ZvGk}gI_&=(GMdrcT)JW96!taMjP)OahyuX10^4soj&0` z9MruzN3^?HUActH3rqTOR-(BT6eMxU#v3)y%qsY}|GhA($7j7p9A!z|an~l|2upN< zC!K`*((DZD!aLwO;?FqdI!p>SHhJ?A{($iW%ZLyS^gFRH_eMbhSmb4UB4^HW**@xVK<61Zz=EMO4zj?O}rLQj+shi?#)tk z!PRcnYBk=olo;&teu`f)Nc9qHE;wo19XquxSFH<$QCq1?SVU$gB$02q=)u&>advo5 z3$D1_5}X+dQ(?3a>m2J+c9`xi%XV+rg6Ubg1O)z8kxZ%0jICDkyYDx zpg2{BI;?U7Z2%X;(A8rgQr+|+x%>& zYhD$6WW)@BL+^23GLrb!48a!%wEw4u{Ss+;WJ9x4=(a1V(RPu{j?BhI`+=V~118te z6T?wmIg$9lW(!;IkxgiB3pxD_?qzZ8tpt9%xJc0*DqHn2KQ?ViMv z{jlZ?O0nBvD^)nms(nlBc6+s&DTDQhWOur_qiFTMlwQTbN(A-3^>oXUSdAX4?m6=u zy;yW)!)Ey)*KCGWGNf|xR^gd{jggXf?4-A0S0#WwL~|LLq&T{}OZ*Mf-bc-2Llv)fA=6uH&k zar;CNHQ3&=jgp_Ov|>hC2oiaE|`TwSN=g-&X7kex3a1o?)^V(Y9< z%45u9$`8&Bg18kK_Ak|*GlPIJb8`B~p@Va0PD~v?bk2L+n<}zh4(x{iDvzGDK08xT znqk|d6l~&fbK(@H2?b4hhfWR*ahxvd>sPX&4uVE| z{mNjlS}{>FSzpq~@@nSG#rdhu`dXX7?(Vv?>REqT<7M7*zmCw>*Sux>v~T8Dbt{Ns zncL8^%lpX3Z^X;Uh?nAe6ff&Ug0O70d0B-LZ~d8#^8sPn$*FjP-7#k6Wg5B3ZoU&E zJ6>$F%%yO1E!()DeyAC?H_k^ebLjS_4KCV|th~!%mOT{JZG^T`yneBpZyoHk?R4`g z1kTo-NWuOCYYL^>PKat5e2u)-L!Da3p!eLXI=2<%co`90q4r=)$Sg7GH(C@^Gn9Hd zMu4mKUDe=wF?P^GG^nMw`DEBkSR;3@5Q<$^i?c|%t{GzwKe#O36Gbe)7TCRpt3c9|A(YlIr4l7k@per?xRp#T2tt(q7 z%gw8i-`>1TsW}Url?;xy+sjc|PsdJt$l8fz%-R{Cna1pwrE>NeSl9X`YHQH9N=`@? z8!R>1j-z(6elf!e2#tls6-6~foJmm9V3xc3DDfO?l;W;*rBJl$tK=IueVrrABwpQI zTfbxtnp~u^tSzQ!9}731)BvvNI#QDMiSQ~#>vq%cs7KpZ1H)SK+p#AFY9}D`mDXDw ze{-$$i(o><>7YAa8K^Idw)3RCLe{(N#m)N0g(M$5;#`WHu8k0z#hFtls)0(6EyqYYH6jiVg!Zl2W^Dqw^hNwiB^4kErPVrob@r-Pu6Ie zu3U@!I@1J>+baFM_6!Uf`OAsST*T&lZB^PsR#lx^glBEHM^T9>h&D5cYnztJ*;m9W zTbx0KO^Hf6s8-`%U&SHXPDIV+cqxQJotNNJOk7L$ORAFSIWI}X*T!|gs#N>uVkl~8 z083VGp6nL9)sp_C>QUJsw^bOo<2N@hlmp=DtagZa6cjXFMs;%y%SSyGx_6IEe017- zkXkpE>7Z4#ALW@{8*40sQO!HT+94)61zKsAGh(*gp;dKD4Kw8dOQI{qKJf~vz2mfs z>6|f;3i}a;A#FhNh_UarlDy8c(hxqsx}rwqMTMf!PN@xB9d{-1a;areT;@|UsK0Su z(uZK|mpON)^t|0CEDnWSbJUf@i8V|d3&G}xNNV%4nQF^e;(XOP&d^N~j-Rq|17x^`RhhxT>c!`&9n4?ZMLDFHvo;xPnKi>$WkWA_5^(5ooTt;|Rzp&dC!4&Shut zYdHbYS4DM2G*ZwT$I3R&6Fsc|;rs0@*QZlo+}QPTh(c8*Ju*CGNp_G$xXB>awE~h( z^=1{t;I7KXrGldZn^ZvkE_0v<_530fcQu|@NnZPlEd_Z;NGiyy{}F$uK#ze#Sc7a( z$yML-e}D5?ziD}rtkUP@E1qM10%_%-rQhuyEZpXkmD^LN#}>R6tW9>~it~hWK1EhZ z1DQaVfMH`Q-!S`4s5cA7$N;*Vm$5O5hN44JjQljEGgLfg)_+e@_m)&uB;9(}36==l z2~~wJZrA&rk-I2Rcc)yS_~~l&Hv7w}cS^+#jA`qw;@o+1+-&=+HmdN2$_diS2;z4g zZ=K(ZygfE@-*Sz)zlh>0+)y5(>^-GQeczngTnid4C2#UHWnM5IROl-L?U10m5)clJ zv2=&s1(CUM-LDS3j%dauy%||=?m{kBRwfU)IBr-ok5=hg`sna>fRq_}zSJ%(s))*F z%6_^s2SQiDpJkBMrV^vBE8vqJZ7aH%txpk5c6e$|r9ZsP!*&uenMg6jb&b8#-|-fr z3fYpYNY7?LnOQRm+xb>EDXaV#D+XRZg@?u2a^k|zz)dVa3<=nrf`wuwc47e}agmg9 z$ik+{7Kl}DOEGl)kj=)-QF(^-@TKnhMRq&0?VN0=a-nJ$vqkRP|>9tm>3gp(?RCQ;)^ z=^cz9o)$0rvQ={67x@@K-O|Nai3VD0b!-emlar=r=VZAc%gK1`UWlN?T$D4y2^7Kf zF~H7bDXd+!WKt5{{hOCNflchzY&?OJ%A8`bD`Be~EW{CVWm<|I3|I3uKCXj!*xFZp zCBAF~+@H)~CG2EIzYWZ={p_$=m1+4<8ea)qk9;F%@RC2A(~}#OsZwk>v4MqY=oqFX zYiEzOhOgtBMM7?l_^bW4dMB>q2&+4M3E*1+^+d(znAEPj!xP1~0>>cyH3mZ-)7OH{ zKj^`4gh7!IY+$#UMbt2S2y^M!&i7Sm)xP2!e+t&Gs}scKTf?g4TgZYE(CBA{F*8f9 z_978fUlrQq`V~zn0m+M8);GroMT&@>k4-p>{iX|Y#rFrK={Ecu7ZjotUid2>WtYz8 z6emkX6#Q;Zm0>cn-rWpHs_{mgM`hC?pF2Is{Cn$bN$%bwud_E40J&OT^oD}2-JJ6> zxfW@4waw9RgzLJJIOxCa4;>R5`mmT^_@DwUA5TvN%YCej0x~Y`uJsKj$aYMrA8KK7 zHY2iI-SuahKE^b(gcl||^AIUf%$IlmTYo0)ZCqf_PlvXiX{nz-jCaq_B?e5TiYf|q z6~DfI(cU3dQdK$S53|G_{N0#M@GU8t=@fQ_O$IS=Zky#8j4BWp4Q5P#6u_LvThR@Y zp<=@?36}MgQMC-Nmm4+fnHbp%=w`U9tq}kpML;&e>=yH37cxjGyZl*#sKsmvB15yY z4>)6SiK^8P(-{gSp*gW}p}}8sDt42Zu+5S0=_|+m8yDKJb{F18^)9p0V+EJ6BMPAs z%xfvY2)2b_{!CO^m1S5SVi(c%(&f#|OJ$zJzOk)c9@phYLjl7Q`J{4DIVn{H3XfDy z*o09g)i>ZuUqi$%&l9<;AfQhjHTSI}rDSOMh!rAh+4@dtjO_ugNJ+-*%kiX{4X7q! nOt6!7g5_6}ffVs2`^9AJD&Ik@n-u)1J&0dv|TXjJ=L$*0YD%i=Eju&f(eW?&_Y}uC8jT zs%Jd5mn%YqNRbc{3JHM_CA$id0znA^@c~E%5=F`dM2SQch|Py2f-fNvUxJeS{?A+0 z$Lx5GL}}jncU|xC9RKHepYHG6^vsVsj(5|3hIZpKo%X4>%e(BVMwbd*D zSAZA61K>9JE#CV>umisPh0euX|K5w7dlq==#m>D1Tm>Hjd!WYs3sC+34XFOU2`=;g z_rV3uo4lm)e-XSFd=L1u;8(#{f&U6h9{&U00lwm;&b<;m1!|r>@U7rw@YUewL8j!s z0WwAR1jtg|4?((c{|icfH}Nu}bO*sVfp>!%cLRI@_^Y7i{~MrG@JUeex?15kK$hTs z4BiC30AVkI^Pu`^gS!7KAR==g1tq8712yiatMfkvHO`knz4vFJ*8Mnm8T>K$0Qktu z{d&F$4mf`TRKI5ts@C@q_+0Q3sOu&84)Fce^?v}Rhwp%r%lAP3+<)=!_27*NRr;BdR`b6Z)bpM?lT%cR{A)J`eKe{*Hei0KX6Z z0{AYBNd5dZsQEn(Y90R#YCZ>FWGhUv>Ytz-K(& zxvzqs;Qg=h(tEhydV{yKCqUWj55SAyjZ9wS4k|1`UUiRxkMjQSfKAR{%_L-J_k+ve z7N~x{1pXZOZ7=};4?GA47=iS94%B)QQ1875L}c#ILHYaRpzP^~;0@q&83fh3n?T9$ zHgFDn5S0CNKt$p`3CbV73Tpm;4?YL{Cy+n)UH)m_H#Yn@cY&J6N$?D~4(k4AtLxtZ zrSJa))t_#vzvqBDe_?fgGl=NiEuiFn6ubuNjK-#j~eW2vi0C6RE4~QzRD`~vu5 z@JAKi@Mb^mt3cV)QBdoQz?XsvsPW!c;cr&>IZ)&O6^N?bzk$;8&2RDj-vYj$^8=vP z`zN4y=_{c0{?DM~^NhD5Yw-27v$S{9bo6N~-Q7ovXakz&{|;J7+om0+{XFfLX*y2Q zPSILA;fOuhy!26iqa(2Y-o7QXwd(vK@Hp-5G}#)WwBr%}i!*dc_ge40G}*^9XtIwk zO>)!mF4~5Da&8lRu=*^JZA%~GWXVMwJbi?mAR3E#PX}eQIuhE7eIi!?N7d&=Q1Zmw z+{3gJv^MR9v}e(DjgH@@QBh3d1oN<5O%4$#if zq*ooUq@hlCL?;~UG}(4WdmXJlpX~UZw3pFVY2pnXchck&Ixf<-^npWu z<(ASc-5zA4BFOR}9F-eUTE^|Lj5+~#8buj)yTPc4@**grv=a=Xq6m9Y(F~T7A`6Pq zaG2#~5rpkB&eFrfIPEpvQc=XcG>U@3s3?P06okQ~qozBu5temFGbe>VD>w2e>`Z^= zMv@f~Q%It==H?%%E_d8fO@6$R`sVR4?IckV%Wdn(`mDzZvSE~m5(i=_f?=4K z8aGU*<*V_E?V^kZ&EP~CFryK3WL=1+oy2H?3GhlDy=xR9#IWw&rosw>t+-@KK_}|Q zDHj*o>nsUZO8_o6<9CD2l8dn{v@;%={mTa;-tg+JEQQ!=*Cgf@j@6xmW=+hV5ZaZKRZJn{l!B82k02F~e!JLb-~#VADplw`~gBdOd8nvk{gpDMeoB zUKBW4Co;}3M?;tGPu3rnO6_X8)RfFDgqL9aoHVbH#QW zGc*NM+)%TEOkLf+feD3WSgF&xG9fSpX%jhF54g3>Ro%}>U_zu)#@0rZvw|tNW=^GK;t*mAl zxiF%eP==qsMkwLeAnb*4D(22BUzX#SW!UcHoimOz7V<>N_phEg9Xt@Vf;CUH`&eDQ zgs~Ua^y95WbE_yw;*yQGn}J(Z@bUkHIBjJQ2kk5^^DOb#8d-`Z`oL2x!hJ=#&bsgp zc#in9fVobSg2krbe2PC{Jkcg1L<8GN7RtR*Py~4rT$*mxh}p?k?Oz?N3UNffJIAjDZ>rohcOy+s$)?K?X)itfmT_(oG{N?$_19ro)~*f(_K*5sfZ0DR;-J$ zZF^x7&Y^e(nG0ev^j#VCzS?u?-22S_rh6cI19~i?FmGG9*U0i$ACYyEF~MRB+z8H1g{e60 zW;(~ZlpU5XOp+jvdmH2ovbcOR>NxLVptl367;v8hJ$E7jv9r7 zYaf+4J;|d91SuA>Nt2?v*6u5X!wX2)lvf&sTWCf()7DS4P~O*5Pr2L}ItXES|DuBf zyKz347{zeL%bhU?d>y3Zf3h2AY@sW5W_g683+PfSb-g?r4gLSZRiSr=DZD@Ww>P3B z$q<0LTAy^XzgTcFxi!Ke|0^N!u!Zjgos5VnZ-R#U3jrLdu++|mII^ zwA%CMPF~kb;NHx;F%9d^6IgD)nn|9SiS`Na|!#nxS?)XysA- zQ&~{aJh^oG*!iVnE321%s>=o<9FaU+`^5T@Gxx1rrpMY+2+WxqgozfxlDsADIw$A1 z>zAhdJ}42bL}DzDG8p zxphbMH@R14S+Es_{qYr&-ORj(UfLUu+;9++La~9>=fd_RM)uR1b122O!zNWY%+$Us zcKf|r)78OxMzVWd+*7oAUrHax!LbNh+ve%Ul30x%8sGEgIeW3{$iim*AlEFzsu@zb zeKOef2)YudN7*SY#Hq8!_+THcoHq*dS&oH^r9*nFYJbq4o{Jhl4xr+`k~B&q;#w zB6{MzA8v23w9FE3_MhHr)wTBndaa1a#v5O>oZT*IP~_Hn%N>mdaqp+Fsjax!P#)tRReo@J62whp*uPYJ z*-Zk**>h*^Upcb2etPND%H`m(V5!P>`CuFV>pXhSeD-WbX^w4^Qn1E}PU8Zm2?Z?% zD;G{IudD`#4jg(*^WYrYPvUXoRMCq&jpb3VXsl(6!Q9z1jdRgvtT!6>u}NCg^KWh( zIM}%TKycvp#Y1m>(*cgTlLWKITFxebO;?uF`>`|U0^0KV(`POOcON-(dTr^*+Pz25 zpIhO|iF3^(XHMP2Yd)$r)<_B$gXME4)=sP*4^~beJ1Kms*A_`08lC>!sS~GGCJQ^* zJTP~J9WB(-Slb>l=aQ1qZ9`&HdY4ti;IqT$*N!&soIIzg<4=thxfz_W7~I*4%ek}3 zC=ZjyQ6e*Y;dE%H#oIb6^w9`}CsM~g}&)#E=;+Wqv zj_(}bxuSLDOg|fT^SJ06MTg@WFhwraWRbsWWR`3f%58S8B+cNyh{9sfR}r|923rEX zPzH&3)9S!|U$LVOMoPj>qq9b4`*h3Qi6C0K)%&`EV%VLM`15k&e-mQ8rcxT*m& z^Svv8Yq@@|~;jCyKie7g|3L({0$@ z;Ce5HJH?|Ur*YCxw^jd;&L_oTzhYy0t=Yz$tdBhjCEy^l>XZt^JfgTNqp9k{O?SSx zosihF_NqQC8Shmco_EXM%qq*#K26ru4eBy6)zY--c0SM|S>u0tjWwLD@|6g=VS7W? z?agR)Geoip2BgU6CHoGAI8~K2sHLSSd7NNP6^jVVlD?JtwjGV%;Z0$*#N` z)mrCEgoaAQjp-7xx9Mtr7*;F8s8uX2b`^;IPLq+7u;(|Od}C3mi&fhE&D2yXu~p0O z<=TCy;8L~tjmqOBUbL2OGx3r{M7umnRvOse^=70JCAn7+A}EDIB{)dXqGIKa>ZK1w z#_*05F_sbCR25_Ic(_bG__%Nkotcb^g5)Qph-Mo#xe6O44eSLNb_Q|E6#aKLd)WXB zFy_$g7^ut2d7Dg~qJ59ZP&A~oDX%auVgJ>uX_Ug4>K3&b)E$n8HcgXID_h3`WN9-i zvJPu`Rg4`a`l@4NlXP>2EvBYN>9tYKWuKqw>_qn?>`t(8Y3FJ(^h5yH^x{p3FQEWY zlIw`zii|p{Cy&Y!5M^t-rz$qPe3)Gl!I{D$F8qM?3K4;4HPlEF*hfucYHIP-hseof zi&nH`MFX)AX)6`EN&T6))XSsRQ)y?n?d)BQo?UcRl)KzNlZOq(1Q)#OxcCMDqIeLmJH%Gy`hSK;(1}P{y$^FN^h8@`OzKCtH zM~2Q@S42^KRj4G`TPof!RWD3=iuzNYY$h;vmzvTnkWB{WTa=NK52`K+;VsdGB>l<> z`*5&oO5Jp{tI{okm{htO zwUn4=(;c%QSdp|sFiz9Q{x^}a8NYphO(n#ayO$%~?854Gpx-wkm@0Mi3#aaVA;w=N z843qb337|NVp;_gY%_$SE5#|DC6ZGR{qV5vE-^<&+=EDc!|7qDRHW zUAZ}1{#Mp=OS9RjTQVPV%T?ignS>H<-k=P{H#|>KIzL5dAvho$dx0#TZS+56-I=InzQcAod473H;c{k*Sj+^jn-1nJHd`(_xytBg)kjo>NKSlYBX z?u2x+ap@kBq(d(X3EzSo^@9tFAIJCbj4CI{T?L^H&b^k=l3yD z1-Uz3rAOD0lo7yqP}1`0&f#ciWxdlXOa;~Dr;yST<4 z@%gFPs)sjl71d$SMrn^Hd?CH*Rz%8X7$;RpKNS}p{dxrh@@BL9!nl^+oO*UfO1rD+^X{k& zaweKF|IVn-$Ubzl5;%gao6Op8GE=vzeR^df=4!sO-l+M4Ewbf!J`SeyBpcdCny@_e zYQICAsBU=YXsAxq=;z_4DFn4)cCq(mcho1*Hd=#J8l$Je%G~XWa_e!C9r07(vl_b; zyK4vC)TWW^75FU0t?(sV?IYHsJC9q;Tq)drQDP1?*{&m$u^ZxPleBkC70P8KyIqVi zO%qEK%CJz_QoR7BR9Ooj&0efFPej@EG-j;`4Hr*tW3&M6t$zJqk% zQdvDy&4QG%7SpxK-MG)Gj>gwSR@2wboTe0L)svdm-RVqw7ZUoQ7bg0hnw9j|!v2B; z(TT;MN_T1&P_}e!%nB@>QF7wr9EJ9AE>f=$A5%)D9g?`3-=|O;h7TEL5d+k3ZffsT z!t9yS`;W~)UunoB%%ua$_xuK@D&Vsu#)X0Vb@9IF2PBP*=V`v_)~cjPYwJn#3q7cZh@eeZeUYE)7^j9l51YC^ z!=G*$2hw8kXg?JCpv*t@yx&riW@sbqt0r#MeqCpJ@o!0Vlj4eLJKa{A(&9Uoy0bBd zj9p5JyUeW011*yn2U1xqE>io0GWHo0S8TL>(5&@MIl)h4gF7E1vE*l>=%X(9PYJZH a_Rn9ZhF>N1RSrH0kh{MYsHZzML-+p|0TAQ> diff --git a/engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.po b/engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.po index de359fb0..48c06b7b 100644 --- a/engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo deleted file mode 100644 index f0c2223e25b9517dfd3506230482aeab3c60a678..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15201 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 Lsn@O2sF?o+V!0KB diff --git a/engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.po b/engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.po index 80e26e52..83a988f4 100644 --- a/engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# eVibes Translations. +# Schon Translations. # Copyright (C) 2025 Egor "fureunoir" Gorbunov -# This file is distributed under the same license as the eVibes package. +# This file is distributed under the same license as the Schon package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.mo deleted file mode 100644 index 3b16d8ddf1d9b4e9f59bcccacabf2e52a67919a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13615 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 Kb*nTg=6?YW4-(1% diff --git a/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po b/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po index 54bb23f7..02760fb6 100644 --- a/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo deleted file mode 100644 index 80b6428999e59164092646fc0753cbbe139b6f18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14928 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 HHYNAJB@;!W diff --git a/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.po b/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.po index 7d7e8b7a..184c78d1 100644 --- a/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.mo deleted file mode 100644 index f7b56b65f23ddd46f0761a3fd031f6e6afd9436e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYL@Jx{|h5Qd9j%810q;DHS;v>i||AF4~-63I@gG_3@iX-zN+cICJTeh7b$-@;`f zuk`4KdrtTM9v}S-FbBvfa)ult7f6=`Il<*M&d&MI!n=3936O1Jt$k~prG&4uDPNND zaC{YyqEhdi4;5;R>l@KInl9O95StcedO-sI9-lJ;ky{a`-T76I=SUz8|IeJ1&8WTHT_YO9Y zndE)xQ9O(uoDJIIyYC(L3HmEs?iyw64cWXY-|BF;s%DV%URUc?d*F8Cw#L?!BrhgJ FgFkrqT8aPw diff --git a/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po index 7d298896..95fee93a 100644 --- a/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo deleted file mode 100644 index dd1fab78fc34a4c4f5b8f034b66150abd933222c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15648 zcmbuFdyFJkb;d7_&11vEn3pk-)H*SI62H5fDYI-VWRuGg7;cz0&adtKdKJyW~g zRqd+onH`%Y7AS$dNe~JTCnCzrV z{sj2cALkzMCh%F{0g!+0uHyOv_(INK4?YzffG+^oz?G*s_p9J5IR8%u`6+NWgYZf> z59+>q!Rx^Xz_rDRm3;a3oC&9k~ZvejzN+16Xz6!kl`OdupAzw3AyRl5D)&EOrN-n#-m8+;ci`F{)468sJ*ef?p9 zUj&(g`w@5@_-vFt3+@IrP8-zk?*LJmdoL(G{T`_IZWQMq1@)f40QKA_LCyOc;6?C9 z;Qio3FY@zw0_=1CO;F>WM5&tJTfk?4=RjQ_g7<-MFRuS1sCD=%D7}0OG1Kp!D`WQ1AI|P|tq^)N`LI z&i@INKK~WG3A_p;lYaJqlCufE6Fdk$9sD%Nt?u)n-uFFFdVdi{Apg1xd>7|`5P17; zqD-w@7nFUkf_ncuLCN!ekRjY3gIbTj1AiKP0{rq*ock|uKj;6zV%`E?#gDr0R#49! z1W~nn6L=I{1ApNv>=FDv&)+izXK;OHueY<$fEw=!@a^E$OhWT|C#dy&Hz<8P3VxgC zKL*Zo{sD|k&wU*{242^IyTAuP>FqtB?CsBs>;D4Y$oaKRzkauX8s{Dmk=(C=n*YZ^ z>GQLo~ls-QRN*_;vPXqrM)N|h`@cMn8Z%%+3 zHv&(AZv}q_`~rw6x#uuB&3hV@9P^;YI}U36GsXFv!5PjYP|tk`d=L0nU=O?xr921x zYw(xB&x6;3Z(#AB1)c|=0j`76_dCE4{B`iz;P=6+L6PQlz%`)!<9d*v+yQV7?1J*A z$3d4{1CU2u1Lg76wLtOO`@olj ze+Ek4uYr>1yWk7KYhL5y+e<;+{~)OGegl*~J_pK9UwfP9mDhooo_h$Cz5G5n0zU(u z2k&H38vk+ddElqO`@k=Qn%65B`~~1)@J{eeAWP^z2ui-sfj59(1||0oLD|auYr zhrm5x8$1O53iwR$3!wD!74QS#zk$yMe+jaY{Evb+gMSGks{0Ozd)PZpf^Xx{M{{7w z-Q64!N1sD-Y7Rq=b&i7^vb{HR=(E6ajH9I!KCuV0KYf*)`ULjB=lcQQ7mM?^fcJ3x zEQf4JcB0Qi9P&+lG)G*@-Nhk${4owx>be}VZ+#x*Sg~*L6!`k$yFj)j{k(xgdS?0) zAK5S_VKMJ2@P^`7*?|0BpEq)7t@WAV(7NpBxWI9gqs<}TxrRfZjN`5L&FlV6e7})H z_Ng`8`sr{1w>SSTe>+ork!|kcNH}CKCpcchq0fssFjMm@ouB29ucjQb(efkzd6?tr z9EUkx%AwEo97`OSjD2SLU%qtQpH}}v$*xhHJ-@&lJjbz{W0~V3hy3bZ4t-w40R`Jf z_9)*eKjO{TamXJ|a~N-cvQOEpJ`ZrL=?fqElbcP_WWAq`@*vHEa5P+rl40Bqhfycs zmqtDeyWL=vM_C@^QPK(eQJ#m(QQiz@dwCk!W)pcMsSFdnGs=2pUCIncyO?$3rRSrm5a-}#}J<`E+FqPAr7w-lEWrm zPndLiQ66MbH;eKWL<`bxFig)!Ngi}3=Zo;cV3ZAb3v*jsiSwY{3-dhS3)AO~X)wsr z)wmM{-BDt*4SVr$-3GET%l8E7Aj(3i1GVJAAk2n(ZSKlr{YF78b>GNfPzksc6t!pGI{o;Ix-m>s=@b`x`{< z-HeO5$Jnn|jTug(70Ok_1*`T(d)h=;*W+QkosO_skf*$B9`$*SQeG%zMoEymhPlre*vTO$)LUCMLs{fngld(hDq+4drl zUQjGfCunC;N5;yM+0voC)+p}5GPrpFY>*oPaF^Kk6OW^C)z#CuAD;Ug(dxXE0Jsk1xa19 z@pdzCrxkqs|3RFz(hEU5O@>+8^Vb?_f+hOElh43?`S2|B!aLwO;?FeZS|y&rDQ@e3u=(dKX51h2%nEHr z&0QybtYBbB%=5p+jDq65F`20~;Ao>{85~aBUQyIwjSHX6B1kntJ=4KxAd<$bp^r#z z?mgO*RjCP7)$WZtW-%yYEzJlHFx`-w@yak`7|oee?~eAM_g6pO&R*V+GI78q8Ll5+ zz-Y{=jzkHx(>_B4I?d$egjw2BE--uYXyq|YcSd2SAU2Fxu`b58?SXMPhvF4v&WOoa z@4~3}l%C7r-e>kU-Tl!N>zGGj*0yl3H_KmrMAk`)fcYB6zn+eQu%|?Wu(6W%IzelF zw|hNT3A;%;49<=ExDs})TeDz=J9oQEW&X)hbB`zYfSCYuLob*`q@;y5|rwLbFZUpCQVJc3#sm`%3Wrsr-_Ig1U zFRzd@$l|iqsN=jZUNRRPMO2AoH+Q_Ue9w<&#aZqkDac`Alc4Bj}Fk5%EOqOXm zZ}_ei_7pi>OBq!bEr(erpT47&-KlVN(;n#W9Q1cK3H#Ar95o92+i#UQUEtg@f3h2AY@sW5W_g5T2e2RO2_%8)tQQ{9wt*EHLuQwx{%61X?@ zF1bdKX=UjeqRi;+a_J6)qW4*`LW1mBh4rppPGpcZ>9@65IY4bL(-KNc?xKx%tL=1vIsgh5@{hc$xjW@rx{M^`tk;P2=Uyb<7B=Gns z%1|UK-{yUf*;t$M{k4WldQj$;=53BMp{;4b|Z!XLpKe9A? zWd8I;pXyRTgd>uN?RT7=J8}2?MMf+wg}|J;e%R9_n3A`oE$8I?cKu@Q#=5Tf-A>PX zJ#iaxrA&^fH(49StI0eQ&!qYo=FYUrRD2LP>r1qXIFta{rKU?DdQlf<@1vZq$Y_Jn z2ovG1xKF-g6@aack`hGaf?is{?(vz@L5Rq&A!^8y@tulJIP#INZHzBr)$pF8R$ z((=SYvtQ6{S8}Ivk<5*u+QelC3*pyzy_tG!53G z@O*WJWH&XhVU+fYBRA~Fq)-&F`kq@&Vq{-mIme<{Ic!>m!))2N#BN`!HC-93Cp5d$ z#T`|v=e6in9IRB(S~pKOmc(jwQ}vrS&&i9$Ko&O38@Xl~R>_dc{R>s+sj4fDzNTz( zElZPS8Tjt}qN7wN#)@;4Whmj)eR#4?w?>F&NquD^;2Es2&CBu-Q>1cepV#O$er-ii z#0*kcHDcbu&p5p;#|kk+xhcNXPc7IL4z;HrUI<=w+umszeMSfCNt^PPGD?27wvzIeZj{NZHDDQ(#CIdI zx@xTA1-t!~v$fFaMv3qH`1z?aAr}*|`7{{46nf0vrF=&6InzuPk)jI(Sbxo1Zjs6O zOLfXBu4HL9rYep5u&cl1$=DayMa6ADpb6%glcU4^JJscOSMKcjDy4O65xFspCH8~4 zU>3gm_7B?fhCE@pl~wKV+yBF+*5Z6cd5n8l`N73;5I2=!|61CMZX7U9o;q>w{M_Q% zFIMnh=GIf@vnLBmbCgX=!5T+9jWd`g6f_gepE-JH{&a9)-+^13 z`*%@(5|10l^5wYGI5b+$8;j{ouP}Ym{9~!bfp=iA31R<;5f8&{KT2yj=2-Z7iZ@d?>fA6YMv`cPc`RG9J`ap zd{k{Lk`&GahfW<`JbL<`VE*`#1>uuDHWPHSMmO7a?C7!i@x=Bw_wAaaqJ>%-i|Yeq z9?~*;<$&0f+-@B)`0U`);^D?^s=MiU`(?H#hQtf(%oJ(yUhY z&CHmzZWQ>yKb0O z70l*_y35?1Fm-pBpEoz$Nfm$9JrjdgdUHoMA46uyAq%@%xcOnK&pfwwfGOo%L`Iwk zn;)_>`n8BMHCD7IkY+F^zVHbQ%?McAFVf})6fY^d{Fl(d8u=CRqN)kKx#4e+nCW11 zqwGE-?PUe(U`vv^9a6&~5=vK3dh@Zq&bA9U-{WSgCbD4`3T86Jlzpv1G_syb2RfxQ zDmeq2c})nCXiXkDtyK*o<1idu2s)b^D29$>Ggt_NRmRSzXf}_qHd^D7lJ&8kb&k!d z#X~E*oVW#|VlA=643*i)JI%h3NtuGOO4*(CmcuIQca{xq4bjxb0y&YCQM9&6lM>&n ziUOFhyd3%VcCZ`gDt*A4b33&H0^ykHe%XNUcU!w#X2V-fj8?NaE5M}L$sp(G!eZ8S z*CSb!?YdK&8-p}q5vS=Ln^iNtuK5&;pvIS1JSW^PNydIan{{(Ty>ZslclWS z47Jp#c}Wdn&lj|jqPDFe&etE%6f0bRb3^TMbXaf$rpcOdD&y64Xrykmc*KU9=xlIo zF@Aqti%x%d^D%Iuf6fc30yiI9meuYwuC}Fmn;Ys1O9`swF+kD#{t*VK1zl#AX4TrL5}}nLMS88-l$xgI z&*B&8qnJR5YI|`iS2dlKPb(m8H$(A($`TmTO7STwwW#Dmwb3<*pPNJ>AKZMbFw7eJ zl$@;Yc3kmS#|WRP+gjG-D2-AtUoIIQ(ojjohUs>OG;{I_E~phlV$ViuEt>x&NnTEV zZ3k!{pqRoo65A^lVPUlwsU=fsRuq7es@7T3Qh4Liikhtz%gAojh}|2)eS;zVbhJF0 zYpF?nv26tG2)<=U$|%8@+uT4m7Ah^g9WupI}#%}`T}S(_>vIX!|_;lqp0oVYl4>AJ}_-AOBZwXrxS z;Ws~u3v)XT*h)7)jNUjgpYywIby9Z9eiiQd9lt?p&AZOpSG-qoH&4Q`^hZ1y03CRT zAwAo0Rl6B-b&7QH2X(swiZ(D5#of}FwlBStag2xLq@R8damdeeimjrk-?CX#NovJ3 z{mRGj(&nzimXDC8Bs^W-USxPabu_O*FfCZ+W<3Pv+?J~5ZPQyx8vT`IOCbcojjGh9 zAZJZhevCxYmY(~UjJ23KH5xmis_Fk$ymra<;2dm_6&o+Lt zGQ#MKEt%u`+Y~LeE17IyxmPF+Dl|@k+8mCo>rDawafLyEMm@VGkbPtrHMfn3;>da!>D3Pdcwkm&p zRpw@G&(s|%wvLWPF`1XZTAk-&>ZK zUI9mLx9vH+n1`|WL=M}VFnl!#vREbf7LS;NeMrcAbc2X=Y2O{u4pme@PPJ{BC#Juh zkmX&)=2bz86Yo5fCJGiiZ(yB{bI=JOl@ly z6xDW3CcnW&+J#h6Lw_~YysR8W{nO*`xVG$dmDR89bD{K9R^xSE^hZ&Y=OU{Y*wXQL zjr~0j>B%Ym@hK`b^W@Ig5`VxHUWognzQ$$;jMhn4f39bI2DPVH@8(9c;HYu+?dCCP zXk3*RZ5o}4D!cxh3No%PgcvTJJKs(rePJ!d6XVupZ8yxyTI`$&Stz1dQd0sMcDUc~ zjVZjD;N7qFVxszp;6=t^bA-_)=1HuKZg3*z9eXoQu!=YX$Wm3Ou_QQ ziM)4P*mt?M|Y8o|Hn^gSPbXKZ?b{-r_HAOdfGR!KCoG~k` z*vv%4d+WAht-G?j1(&h6G12=P?{2Eq#Wp6MIo{gTh-@=z%d;szGOj6^sLHCxzbM=G z(G9jV4y*PzQ5DLWG-TT=(L`|L2znHya35lBPkt`*e!O*2e~jQ2Rm<=0hAVyL2JeXc zeFBjB76c&{V&@NF)Gsd+E5$lb)Hx~W1W{Ram!hJo`?a+&S*rC8nE&`pD%0kvB|~K` zu%)Qns+~)a!Zt0EgIJf8eu?e3Zoh%Q3LO%XWt%?wmtkhhdgzZtiyNuTs}8O89Y_nj zHt3d(3!Uxns;MB~q4xE~ZMbUPo=BZhpI}%p(P(wAu4sO{^EQLZedq7_GZ&*9=R`Yh=NhdP#&nr`p`j`a`A6!)yZ-~}lav+! diff --git a/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po index a23b231f..74a1de22 100644 --- a/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.mo deleted file mode 100644 index c51124bcdd4679dfcdb0091e7679be9e4f199065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15682 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 diff --git a/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.po b/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.po index 75772612..526c7dd4 100644 --- a/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.mo deleted file mode 100644 index 9964f0bf6f21a7376a5f3b631dd55508538e3d72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmaiv&rX9t5XNit#L=^dJ$Tc>rAY~0|3pAaND4Fv+*ep}P2FvlZKDt3>-j7W7kl(e zewk$Eo5?pn=V#wD)CqEdTq38)H8Lqc0EbJgljlzxqu)hmA?u+PW|UenlC)WrJd-({ z`>y9yVyBITd>mvC(S8`A){Hot5-M?!(*`_oE7;^;0QJH12@Tj{c||=+oi!gV)P}2Z z%dIweJuNGOL`_k)E5^*g}ra;6$D4$6!%paNK~hLsRl-Z7ipc@ EFP42@z5oCK diff --git a/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po b/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po index 34a17a46..66815307 100644 --- a/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# EVIBES GETTEXT TRANSLATIONS +# SCHON GETTEXT TRANSLATIONS # Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. +# This file is distributed under the same license as the SCHON package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.mo deleted file mode 100644 index f7b56b65f23ddd46f0761a3fd031f6e6afd9436e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYL@Jx{|h5Qd9j%810q;DHS;v>i||AF4~-63I@gG_3@iX-zN+cICJTeh7b$-@;`f zuk`4KdrtTM9v}S-FbBvfa)ult7f6=`Il<*M&d&MI!n=3936O1Jt$k~prG&4uDPNND zaC{YyqEhdi4;5;R>l@KInl9O95StcedO-sI9-lJ;ky{a`-T76I=SUz8|IeJ1&8WTHT_YO9Y zndE)xQ9O(uoDJIIyYC(L3HmEs?iyw64cWXY-|BF;s%DV%URUc?d*F8Cw#L?!BrhgJ FgFkrqT8aPw diff --git a/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po index 7d298896..95fee93a 100644 --- a/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.mo deleted file mode 100644 index 3350b6b692cd1a4151d89e73715ef63ac17380b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14220 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 diff --git a/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po b/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po index f95a3f13..b4b5c0dc 100644 --- a/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo deleted file mode 100644 index e4fcff66478b05ca77fbe0a36d13a1b6d9f9b702..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14887 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 diff --git a/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po b/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po index 06078812..9ad57bdd 100644 --- a/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo deleted file mode 100644 index 369b977095e49bccea3750bd582d79bd4917654d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16457 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 QVlO8elTIzm4(CDhf3SH`*Z=?k diff --git a/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po index 0ff2b694..a4cfc7f8 100644 --- a/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.mo deleted file mode 100644 index 9964f0bf6f21a7376a5f3b631dd55508538e3d72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmaiv&rX9t5XNit#L=^dJ$Tc>rAY~0|3pAaND4Fv+*ep}P2FvlZKDt3>-j7W7kl(e zewk$Eo5?pn=V#wD)CqEdTq38)H8Lqc0EbJgljlzxqu)hmA?u+PW|UenlC)WrJd-({ z`>y9yVyBITd>mvC(S8`A){Hot5-M?!(*`_oE7;^;0QJH12@Tj{c||=+oi!gV)P}2Z z%dIweJuNGOL`_k)E5^*g}ra;6$D4$6!%paNK~hLsRl-Z7ipc@ EFP42@z5oCK diff --git a/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po b/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po index 34a17a46..66815307 100644 --- a/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# EVIBES GETTEXT TRANSLATIONS +# SCHON GETTEXT TRANSLATIONS # Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. +# This file is distributed under the same license as the SCHON package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" diff --git a/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.mo deleted file mode 100644 index 1f33cb3ce010c06a1e5dcb9fa892d18b1b51a3f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15047 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 diff --git a/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po index 965e1c7c..cf371272 100644 --- a/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo deleted file mode 100644 index f0c5399bb9b1cebb527a82148e00dc2ae4968918..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14544 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 diff --git a/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po b/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po index 94a42391..18c7e1d6 100644 --- a/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.mo deleted file mode 100644 index cec22804de138b48dd014fb4dfa4d9449e2561ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14159 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 U{L4P|_xilXeQUF{QM>*B0|t{Q82|tP diff --git a/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po b/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po index 95dd51ba..cc1ce7a1 100644 --- a/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo deleted file mode 100644 index 92878a3add503d002d615a7a300b168790940b5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14713 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 diff --git a/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po b/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po index 9737db00..cfcb98a4 100644 --- a/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo deleted file mode 100644 index 6a049f694e6167ee0d46b1a6196479d54ec7c3f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14650 zcmbuFeT*Duea9ct@Ma)DcuU&S&ZVT-w# zW@h%zm-K*^RzRgns0dNiQZ+)9CQ>LA=u6ZJ%0VlY(iW&%wGxyU^$!Yv6;xGfg!=jZ zo@Zuv&u53KYtMdno_XeZ`Mv*s&wb4xC~TrgRIS z`rQLw2R;by2RFg5@!sQL7kv8*ol9x|&WoITCV1k-&bR=bKp;c-vmXE{{e3WuY0L;*MlcOt#cK89k>Pl6!;mC zCAqJFEYW=%WUKB!L56TY0!6=Tc^Oi=1K>^IouKAj1Fr$!18V&r1jT~i1x2sl5BL?3 zEx4z^Yr$(E_8d3`YMc(J=kEd`nfm}JI(-DxypM(ZPlKB0Nl@?oC8&LW3)}*q0`CPM zeudx9SHV8_-v%}ADTu25JpeuzJP)e90^bDwN@)K_P<;3XD7t(Hy`cE>+o0(8S@2HqYoPY?A{MLlzZ_KmSAwF)&EOPx1QcJo0pAI#-|v8I z&3zoy`o9Qj-CqGE*Z&5JFW(1YnY)fbME@D^_28R9@#!}~t?N;cCArUl{C9uP*RO%! z1MdePLWnfZ--24-w?OUVhoIJT;FTWdLCtdpgv9Qhpy>8npyv57sP{h!>b)<7`+ovO z&+mdaf>$AAqR(DX>uiDV1`mPH0lx^+)%_i)`MwW|?yo=yq+f@@jQfv9ybHb*Vj^m8 z9u(c~1GSDpXnz-|@je7fUjGEt`acVP;u+5UGblZN56l!@{|pr0{v8zEz7Ilb_pDbr zcN;hbwyuKC;Foy+-3W>3xx^y%-oJn}xo?6S;IsGndEWs(hx>Pf{CDr;>tnqCB&c!Q zOg;mC2%H7~8e|A}6~ZUJ-2`eKM?tN(4QgNS2c_4a1m6ID9=rj327`$&uL4E?+d=8q zn?P9W-U^C-o8WW7KLF>zKLXjB`ynX)Tu&$MYcKdb@Me%H+#LbeK*`SsK=I*m@E-7U z-~sS?H+#Mu0=1rHP~)wEF935;@~{=!-vzRD_v@hO|Hohf{sZ`CaGuSZo`Ap1{l~!< zg8P|F;~fUI&XeFZ;Qio9Fa@>GKLy2y&x0=pzXXb|Uk91O{Wmxd?mY<2z#fPQx{rc~ zz%PK3v#V}#?k@0pQ2TiRlzb(i#_faR%R4}ZbngRS4SpU(q}+di8t0l@J%4WmweC4k z?I*yOfL&1XaS_xy{}9x8e*>NXp8~c2dtU4N-w%p^8K`mI58ekp4xR_EX0VrnIe0Dj ztKb6oLGWeZ*TeH4fTG89UgyWV9TeT(2EH6z0cDrB0)7~jT>S;8{rxM*fA=H4MEBbu zrsg{gu7OLS==0~G+bOQMbLn$|3lO&Lvv4b;Bq1VEoe0BjG*@DES_6Er{uj~eLmOEPh~X>sms z_$^tGeaX1?b1ia-uliiiC0Ur)4WDyd($$ z3b8l6)_whv+|Ps?$+$ixm*jqmYn5w@OY$olrOzw4USq$!-b(iB&nx-yW-jT)64%vS z`XHia6ZHE*t_}U*BYkyqS)Oh7^I;j~MHCOKwIr+3PFyA3h$k~;6|byB!!jw#s7$hM z)KAJXUQNnYG}kNhs2mOkc~O;7+^Nz$J2XhM)s~wp%XBqMlBho{tEinsaWopJ<>uGo zsvcPWdPzrX^Ibx7*WInfH#?~xzA?_ay`+qaWTi;THI^3T zD^ZnSNU}0oncOdnj|RhHz%1--c`YrYPA@LYh#zd98S`jR7{Ui1@KCdJTy!o zVqA}IOJN7mMq06@sGF>$8I8=CM7^}1R<`~mT2GS=USceGn=vwMD9gN)8gt=j%K9Hp z3hiv2pIr?wxsfy*48>dc&fdGj4nqw1HQ-%3=fg_RTkcq914MCE6={3OBdFVttJ&z0 zrs>=uPKzyf!pl!183$Ue1N#r&9(C5@0vSTiT5fTWWcGC_zfUE_jAw6;@>Cg^rk2~FIK zR+6|fapBng=>gB6xHeEAJQWO?7jV`v!PLU2Yh^SKyOFF`5wr%3*>C$in zjjr+nWi|sxI#8*%X~Ml^#sp`k9ZOYY3)XE$ zd)t<|eSF@nFiUT`sC?f((5I3QdjeuI)S~dIx z1xAKc%-C2<3U)B2)~pGYuGe$Vz036i_Cli_Yum?)G(liaH|i8gSHcR*jCD}2JxqI8 z8Pq%<*bXDH!Vl^#fp%6~8L2R&8<`Bhe$7x}U!!<6PBU5VBIvRdzpCQS1+;TQaT+3z zn0(LD;>qaVq#Z4LL%WyV)mvz^ur@zlO0>3Mf@2zZiA$tSa)J zZ=1<8B+)ybau(ZHR_E9k+JT+J|4bvU<3_=JQ*#k)CtbC#+F6yd5yj>pM{WHB+kXi&)Bd1mQfNDB?K$Or1p{Nmy!|(y5lp-nCKI(8 zY_yqV2^>n?S(Dd*$3bU{1f!Zjp6O^fkda2KF&~N4+-tNqRy8FcRi`)Xn#4eejl94) zVCgD4qm^;NFxoS>ULEa4udjZ*-L<@*6tV%AwQ&9PB0^(Ibu`H^JDsz5pd~ghB`or` zVu86+#~O`kxwCRR!LT93@^vY)Z7+=6IVN6C=Bz9k{0>6Bx7J(+_d2t$rQPPzMN#qDN!6`ddUQ6=PBU5jXq zo>Q(NnSZk;U2>&ItyYWo%p@jzq95ZECTU(`&%q{L^2C<5qt#R>%`PZ(NrPwhM3V8X zH$7Tw1}aC6Nt zXI%R67K-~;HBuop#vH_0c>kiq2Ck$}UAo|UCoF~6NB{O(((C0AKtr7y4YIGCb}6wn#3BBxFye6=-HEz69#h(c z8M-hXVI$?1I{5%aR#X|YM|*1}XWR|#_RQ(ySJV=0Z|+rc11Hli@(q?UtJ$T}T?~rm zvt)$;*;^I(-As;WkTmJp73VQJwH$_>1Sdvu%=WrkqXuhvmPFaG-^M~`<*yRJqoWW*o~WM9>mIu?Ka2lzX?f0c zGtsXQ`n73C!dHg`brLD9P#F(gc?A7b6jZj3&z(GaX71?1(v}Z(Ng(1O!Na9J&do30 zwXnsAwWQ#fbJvf1+5}tjlCi2_CYnk1 zQI*c9%2vD+IOkKe#&9SAvZj{HF!VBAh`sl6YLU=J!yzIe(a4>lxdZGw zVlr$#42CX&j-|Vt&S-tkDARbPp=epoIn3qO7N2Wojio{-!|s&;wy|B$JT zv|Ljh;~r6bur+exMl$4Itle@WhjHrk;ynxV%jZtcomkk4ekqy@(JntM;lD!H)26eh zf=P3vO$xzgj&*0wBAS?>*=XVHu_Fsh(ZT%(Z)+XcL;8t7o;gvjrrnt%!_{(TIiHR8 zoLZbYovf#NW9BZBq*?WU?aclIGq>!I_TMsl@O3xs=d=*SftF*ZTl0%2-oR_#tIjMF6wXFRP9Ix7w)Dnm;pEZd z!l!#}HX2kj?PAY~V<#3y8#~b2zh|C|7Sl4byg6Xa6(ysa2l%G!4y%Y^&kmhgzI*2O zQ9msmeVSR2nqd=WqubkQwdYiCSj4@VyYbBA!r8!X%R>k6!0_nFp}ko&btpQp?~XlW zuEXs|i!@iVw*BcW#X?ZaQ+1M+P%G+kpKX7Ha!^vxB+Ee*xBYvO^0NVXa<-nveUjo# zrQl5EoVefKeyp!@u!1FXy-hWEQKCD*nQTA0PT8xA(ZOiri2Knntc2Jq4BnzbXv6mD zND-q-W(M&fuUknlCz_9^6oV$4mbX7ONIPs{qT}6(DvS!HdwNCr3Z-PECGN(hv!~tM zouUXCRrLT3bsPf2u2>{RHC0XH?T?8*%wYD*io7wELchF*kk+deEl@J|aY+(wKgOn+ z6F0?FxQYyACxE1gsKuxZ%c%Cyl2(TJ48*7Ha#MHmKAa+IAlfEnf(c3-`bL#YR?>?j zvL2$@B*L&nP{~)Nn1a%G30KP;XOmi)pzn9r%uJA=q@@6O(Q3_pX;pkt)3N`QCman> z9ZlP5O(beEtcBPvYu zyQKpGVj1I5>}%4wT-f%b5Eyf@vn)O3=4x@4+##Sc+${P4HrUsvLwTCh0XIj;U*$l- z^t*}EJoQopy_RW6t1^TgYGChBg>F1ek+*|Cq*RVDAr5ly2^s;>t!G5Xq_h158Dc(G zbRz_UwbD})6mh)PAq0Wi1?dW9s;IyHSe1)SbpVIZ+O3J*q_mM8!662m6jk4hkPt%P zY4gb%HjWS}qINBJH6%!c10>)Q;*<)NNu?F5MaE>tiq{isnI5f?9-jRsF;udxcx~(_ z49!#whhVk0^AVCb*VnLd1OaWI<$h%up{A*+U58ub`o}4 zB)-&6b!olK@>NNvgudGbRD&k@A}_S+DwYh+6WMz4fCWKpu+VUh)0&~|3ihx~wLnU@ zV~;h>L_90DCyi;1y>YDf32|j0G3*Zw8`BS6P#;(zF+q!PFbefF8Y_}XQ1w0jv3NPD z8H{kb8ocelxBV&V>xge-V9ZxE#<^zqm`b+Xg1LUDaD@Uq)*O!(r)Ku8D6V};C49Fz z#*o`eE>emvQ5;E5c=%&i>X+nVRg)KQn5|d^wx6sLn8qHhfR9KHRnWJfg~GjeeNBYp zPO)B7j^I=DViUK>CDn55jx_~*zki;=ne$Xk?fr4)n?oMG+S-G+ksFus9)CytS6@kR ztr55vQy~@oefYr^;?ZEia&nI6rALPtogs#^z8wn#7#j^S5*w+adctu#8`H;51X9U9 zX_&d`utx=AL_<1R(2;e4`Ll2wA}W4$*rW|X2?bI;9P=p_tAu%8H~c)aC(54SlH>U_TDj4 zB58_%&2Vszuz&|rR4n6#?-AwrCoU**u~qhP-af9S!UMS|x>4(ya%c0-_TwRZ#%=OP z1wAJ9Rs`>Y9Jdp+yY6^?`%xpcX7^Oqalu?5xSq;k7&GwCdL+ISSIq9}BL-tyc%dF$ ze1m3<*!$rK+{5f{Q4!4rlZ253U=y3@$p|&JKEi~s2W-I8zdq%bRcf1@fWIKX==E#) z9R(6@fzYvlV0p=Va?AYha!8a`{DA%(GDx48_y3e+%!Qzk7g4|ZhCofeMQ&O_Ix`rn z>p%lP=^H~$%!gF&!KVILKFGF4*^Li}Oitb0gr{?Jb`ob+wYU8Qfh6IiQZ14)ll#Pu zCFbgkYiBuWx6ZYFy`=UO2%gC+A=ju6QJZfh&zo#r96Ohgs3R>&UuDu*najB1VY8^@ z`(uj2hc8$$#iqW$T!qyo3F+y!o7vImaVV-*hS@E|!b`h^Gma%ic_u{1Ipe5OSSz#w>nIolP zA!Fa^3B86%+-rO0WBPDNf}-2e2rlX*K3|&Zox1rJVmRF??QR}pWY-BA##0)r=}LL( zoHLxDP}fCt>y*N($&M8(*IXD)HmPEtDL$EVbEcBBb4I7cSaDCv(qr7h)928>cQxKvY!l zeUQ=q5UGt;_!F?0Kace7p~}|Dsg7G!AnCI=J9|;wxWg$9G$sklZnEZ3z)WEU+;4az zvk~%cCH*jH+bUyCSfpUW=euTHClbLcJQ^{LGanx_#RWmr>0sn#@cq6g&8)8*DwcxY zVP*8FiPsR^-gR{|v6Dj7vC$Q))NMXAM(8ik(7E2KB6x^VD157rZx(U7GQ3ut!IPO~ z!Fd-F<(>YPk`}=b(Q+LoNeTHo5pVr!|Ij8O%4Zc(G-|ETAHI!gOs(5+2h*{m%&@n= z{pdwfdU-}Wq*10zSV>-C=QAO5!(I}C#QddXC_o@!BO5x_7-C}j`BP6S#y(e4V$EUA zcm`x?N(LcK=UJXC`XvSI3ICbMy?%H z5ZJK^>ON%iP2Ea^w22KW&YN|HYA3ajb$sG_W2OHir-?KL!S5vPMA?XJ_CyTet>l=d z)SA(XPD$l=c|yR_OT`zYe23f~x9E@!@~4=|d1C5t{4+-4`s`=w3MV=tqcFx^q1)-k IT6kUlUv>Z$5&!@I diff --git a/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po index 36c2ac2c..e687c987 100644 --- a/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo deleted file mode 100644 index 4b7606c2e52751a4e1f253308fe6e1651d422ab1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15094 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 diff --git a/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po index 4e8a90cc..a940015b 100644 --- a/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo deleted file mode 100644 index 3e5c6f79bf274f510b90e02f6fb00f9e5fc41483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19370 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 diff --git a/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po index e1a2da5c..c5455491 100644 --- a/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.mo deleted file mode 100644 index 8bcfa0b0d27b46a564f44097e12912fb47648aed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14429 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 diff --git a/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po index 8c42e28d..f6044ea5 100644 --- a/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.mo deleted file mode 100644 index 46a7c4824c4ca630152ea2d41fd9e071ff80a0e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16106 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 GXY;=yID7N} diff --git a/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.po b/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.po index 325c9209..303937e6 100644 --- a/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo deleted file mode 100644 index a1d2a4a6b7423adaaf7acc5131443e8a63a28d82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13130 zcmbuEdvIJ=ea8ze zmX*Y*{E#Ktl4Zy5_alDDPAu7uAF^awWv1{~TZX`NrZXK1WbfVGA)U;$4AYqg+RyKt zv#XWtxXkp9&VKJX_dI^*_dZ9zxa*Exisxm@pHn`1hf?RjcmI?hp7Rrwss%5Ae*u2* zBlH2k0)7mf4)UjF+4iTvyQx0|eh^H9p8=b}#`h`J4gMwd-!aLTz==%4l4>3({hkEx z0e=8a1zW(MG43oF2Vee#QVH7Mx>KnSfD1pV)Th8@;Im)@DC_>^ z;1uc+2Fd#0180GM3w{y&JMeShFG1nQe}fN!_k3EZKLZznLT3Z`Ft`@{Ja`#|B=u7e z64kFkwyOREWD4~MQ22KjgJGqb2Hp=o2FkjP;K#uZQ0U(SiUne+se%^)7f9 z_;Hv$8=MHrJTXwdZvbJL+64-qUIk^{Gq!#SlywF{8TUg__WdhxE%+|@H2A`2&3@hl zo2dU9lzErHRN3FN;D^EIKxxl{-vQU#_Md|yhhKogm$yLv)PM4GANWz2D)M*`oCN*= z6#6?skM^#1}V{CEJI2+jdTE^&*kp!7QkvNhEQ3jIF< zh3=n%qSyZhid^0X5t+J&NreA3;5WeUf+D9^K%wgx2ubQP$e;QNKW*S|z`q8cM~P&f ze*lHPUxBiZ--1HVv@aN(3(7jnL0GI>LE+n8P}VsF%J>VQjQe|A|7TG6SpvTTz8@tM z{!9Xe&Is5J&ICUM{s^S2`X^A`iw<66O0;BN4P;QJv~@WY_+=}vGq%& z$;bq}AC&s{LD_#Al<{jpS^v0gAF%i%P}YAFlyUz8vb1{Jwtt#MW&Gzs;r}d9`acVP z7<6sj1HVpvwZ(Iw*iGKzZ^0Vscc7#q_vxT~|28Oee$QefDD&qmzGQI&DEr(}z((-Lw*CN%3Z0LEvcD&6{Tc8{>M>B(>$7+nlz!JiR9*c9ybpXE zWDDw35o2eMgTl|}K+%I%Q1){i6g#;H%DnGb{GI*&dr;{7*aK$V=RjHSF;Muj7?kgg z;3vQwDD$-0_AZP2KuA)jz)yfb2SsjqP~`AYf{@HJ*WwaT=Knq@cD)*00&W2pfd2|g z|NBrP!3V)d!C9cp{}L$UyFgj@Bq((M3>5l8Q2PBlDE)qKzu!IG)F*?|e-0>eTn@^( z=RsL-4Y&wwv-O{Y!v9}^;vfEC@yib?g?VV12>mZprhJ?NY5IAAU!hqZ*&8BP zvnY2`{)8g_xSk^Wm*;tk=&U@eDbMIP^D`f~iy}VxBNWlC>L*G?hcd6JZQ z`VHFxbM}1(D0+f;)EbJ&K1LDQeSjiQhVqhrGrImayx&Xt8U=TA(-Wr!wNp#0zO1nC zxMdx`Qy?m)7E?t2@<{x7m@-!?JYvTmqj(hDXyp<6eUb7Z$`cgP3wcD(mQx;;3eRlH zLln`Y>PP&S=&U@V`||jd=O|*k4V1N%yD8!m3fc!OQ*d|)_0<@Y{E;;Oeaze5jETQ6AdZXb((U1)~R!ys53fI zM9poCX3Go-E0L^HwF znM7TVPjI&>nw{aiSZP|BjwUi|)k32`70s9yiA2QtWt zJY|RzLvg((*b{f^6K*nYn9$^A8$I4dcic5u>_NU)Yr`1TFuVIZ=oSM3*n2Pv<)p|ueT9eQs!=tg7mqW9KORizMVFgAOceT&ZhK5Wr z+)V#2U))MXg@ zWrZyM)rmGl6DjfB8Eea8_}OeUwhHSUV>lHij|%z8Ws4U%PrG$at#P!I*j;%G6)P;e zAEPBgn{`3LF46H=#8Jy6_?TZOk*f37I597k&3H-ER^z46L=$-Y8TdXwyOMoj9r!uo z&lJ?P+9~MRnP=Rq9D)%Vlz7Gm|6gY4@wh(RZVnm=5={ve>JM$Wrkj z&~HZhTfCeTO-iCc*l6^Uai^|jqI!l_!fwjTI?v^rFeUU_x@Me4dQMaomYI=d*15O) z6p2I_r(L2u!TBQ|yGUgad$vC5rZ1Ybajn{f5~)>^x+H95HcS%dTi*02>E(59F-|sI z@#WgVsj4uQNY#5%N4q3D%&KTI>0}ZOjpPiXahcU_Tp3$@&s=ac8mZA&0#1vhjqF;- z1Bp|WI4EW^rf((3j3=~-MKdj`DwAbf$|%07izX#XMu0u1zsn&j? zh2(t=GE+v(7s}ndW@AT?K$w*PKx|b^hRlKAuYP5^9aQhxJ%io zYRGuGwE6Xw4ZUMLg|SC7y3tK0Js2QUtsI?XvOh&7$gN=x`Ck?%9<9T6oVZ8C6l=l_ zt(xNCBPA@wyflU^S!I+x>QVI`^ES(FmoI(lwpN1g^^8e26J+W#UNfZ3kk!Sc<2V#q zPajrDkd0SC-j&6P45Cf)?Y8S^K1CFcodZr3!_mH1l`SgW=%rjIm20ZQL*QpfcO!Zy zwyAvdAz~2xNtH|rZhFpe?!EsT<>%fA9$7row68&a0|`7f3Ns`Ul~*&i$8L0-C4Q-d zzf#+#D{nUStD_waZ^)6V2TRfX*7@13+MG)85hZ2;40^J$k}-*2L=k*3K>h10&P$}_DIJ=PKyPaC zl^hqz?8t0Pv>&zexC?Pf=}{fkB_|SpptFVX-^eC}w)!0Njeg5|p403`S5;a_c0Fx1 z%o1x<jRxQH20 zp-&^)I{1vyYjHFZGbA^~mYO^r?5sgeYKpFL9(rW*6jAyNNpQw@f8Dw**2va8op^Kp zG+HZD8#`cD>xlGvl}4Sj>n2$gzSVvGp&B<8<9N$4O6;t;(PNc*HzQUp6PAOL_`4ig zU1cu2z(musvMO|{T*}=0nElDggj`Gnrkx| z(^T!UY)i(gPjD(tG~r!MlX1r8aBWZA`U9L`pFTM{zW-L|a^1^UdVD3NRn0EBF&<02 zAD#=(!mGLdfm=qA$7pUvt8Ve_|DjXO3BOVD81qS*`Qt#w{N%&?&^e$sQD&`q#4rxYc*4+)jT-W znfl<2=?~vOm1n|J1hbmj42J*?U0#OS=PzFBQ06ROw0MQ{*xbd7YG==_o%O`>rSoW6 zurxAv@xsR$W}<3MElJ@FXU@_EwF{Pg%bB-m{!@bg*RUDR3yn4S3xC4G1qV&zRX>l$!wJm9=&T?t=K$_^3dQ{(u;n8L;uYIECk-ZlQmBen>h`q(z@!;oc<`TN50IQlyWA{bf!&ybb<=HMuKhKVaM)L>;B?MdvWl! z{LpaeY*(>=U19&m(xJn_)sy+*gZaV1VEf*}&fc)&YS7ak^lUG+uFH=c3)l6()w;eo zvNzn>A9k(Nk=9=R(yoG@J;lB=GI*q|bZjWx+kf+P(yzE~b8zB}neUdBfuYjzz2z^a z612Th+HM>g ztKo(9)zk`Mr#A%$ZsczqDqh|VZG{5^Y?Rf5!JeRFPtdhH*w-5#I%xz~O;Yj3j-c&i zaP3Nd@N{A4krMO_?_i*`w+{;MgA0el*3;q9>%sM&aL>_jSI0Zo_m97=edqc*WyE77 z30oX4Y|V{re&B3yZcpL$Q+m4Vt>MlaD(u`5TyGsOov^=$&PFUkeU)yNj&Com+o51g zq4OGyF`eK?aNuxoqWi7Zbw;$oD_xG<-^g0|p;wE?dV{vB;la*g`&k)vtrJqhzRPqA zcV7$N*oCOW&NIP7aS}d*c5hb zqf5|sB|o&=%qO2tt*?UJ-tXEFa~q{aBzLld^I!( z^R#ei%-`5DDgvnwZY^%bH|)kZg8pm8zLC-%P2X6v3wk!&^>&>PyZe~YsJ0P=c{ht$ zBF1iSj4iU;%j+uKD} zm@fH&9l|H=voQI}ttmQbu4;JE_okr!ZwhEF5C4z%FrE++@`GDg1tY|H6o-e4-J({? z_)2BOZNd5wJW|iAw#l#*<3d-%-QqDPSd-KeM2XR;!qCPtpK&AncTR;P-~P( z4a7+7SGiEPXgk!Ho8R3k(7B#Vmof^hQi~ z>v=3NIB^;t>kCtB6Xnoi!<>npB^<=5bw&vEul7VD4WmXCt+xTIW4BR%qxCB6*q$GH zJv{fSsD1xX*m)z|dXmVBGC>rPsnFXUwC>ZLcWPQ0(=EnLGVvI+6@HZKVdo(~SS5(WAa)dkkA?hn0r5lRO691X;G6_(NWCUn6yG|gOkIzyu`$dgonxhHkS?^7lw3omR{)-mA`zI zB#-HgMFi(JNmL!!BG;7;nTlj_*RB*U?k!%r6m*;qFZUErcaWat2hQDA#cwfmeXlHB zH34o~8M-jB@ZvF4(4^wwIrKsDMoZMlaADU;8cim0+jXlMs2xRnxA>7gXweZ|^yOmz zp`hm~?yx#Vq+|6btE63>rjJQFA$H8&CR!Ps*dMf!01e0uXMVUFmrc4Rs~RgUn;kZK zbN~makR86Bj3(IJYceK6*hP~;sbc@RVs9&liqZ4u=#^$(VstC)C=KmJtx&?7dzouZ zSsuj+&-W-|YcR4$6?P2-!^f)`bBiX)lI{IwrGJH2^0E4gY^}H!6DUloVvJtIJ2tN) zO%Ha^RiBq68NM)t3Ksir5Q)qkjJ@hKzC?ShgJ*HnqH3B=)&&|?qI5=0jQX3anBdj( z;ohyvrbOCwiBGmpM@i+zo&(KfbRu6ek%K5UCUPK>;-z!=rQ^5*MRHK=yvXjz(1QU2 z!ojma8=*y4%+bljuLFhSqrP^` Tjo?d;Q7D_Uy=SlLh1LH89UjxA diff --git a/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po b/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po index c21cbc39..c98d7aeb 100644 --- a/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" diff --git a/engine/vibes_auth/messaging/auth.py b/engine/vibes_auth/messaging/auth.py index 1b7d959a..e5ee571b 100644 --- a/engine/vibes_auth/messaging/auth.py +++ b/engine/vibes_auth/messaging/auth.py @@ -34,7 +34,7 @@ class JWTAuthMiddleware(BaseMiddleware): class _Req: def __init__(self, token_str: str): - self.META = {"HTTP_X_EVIBES_AUTH": f"Bearer {token_str}"} + self.META = {"HTTP_X_SCHON_AUTH": f"Bearer {token_str}"} result = jwt_auth.authenticate(_Req(token)) # ty: ignore[invalid-argument-type] user = result[0] if result else None diff --git a/engine/vibes_auth/tests/test_drf.py b/engine/vibes_auth/tests/test_drf.py index 4adaab28..ece3809e 100644 --- a/engine/vibes_auth/tests/test_drf.py +++ b/engine/vibes_auth/tests/test_drf.py @@ -184,7 +184,7 @@ class DRFAuthViewsTests(TestCase): access = str(RefreshToken.for_user(stranger).access_token) # noinspection PyUnresolvedReferences - cast(Any, self.client).credentials(HTTP_X_EVIBES_AUTH=f"Bearer {access}") + cast(Any, self.client).credentials(HTTP_X_SCHON_AUTH=f"Bearer {access}") url = reverse( "vibes_auth:users-upload-avatar", kwargs={"pk": cast(Any, owner).pk} @@ -214,7 +214,7 @@ class DRFAuthViewsTests(TestCase): access = str(RefreshToken.for_user(stranger).access_token) # noinspection PyUnresolvedReferences - cast(Any, self.client).credentials(HTTP_X_EVIBES_AUTH=f"Bearer {access}") + cast(Any, self.client).credentials(HTTP_X_SCHON_AUTH=f"Bearer {access}") url = reverse( "vibes_auth:users-merge-recently-viewed", diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.mo b/evibes/locale/ar_AR/LC_MESSAGES/django.mo deleted file mode 100644 index 7bf70b544a1570b77497737951c30a4de7955822..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10162 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 Opn3OZpi$%GaqxfhgIFH` diff --git a/evibes/locale/da_DK/LC_MESSAGES/django.mo b/evibes/locale/da_DK/LC_MESSAGES/django.mo deleted file mode 100644 index cd49e7ba6fbc9d837a4182282f47f9cda8fbd9f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8238 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 diff --git a/evibes/locale/de_DE/LC_MESSAGES/django.mo b/evibes/locale/de_DE/LC_MESSAGES/django.mo deleted file mode 100644 index d048452cd3eeee6fb3d0fe231ec04f59b4d6528b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8694 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 D?Z?>q diff --git a/evibes/locale/en_US/LC_MESSAGES/django.mo b/evibes/locale/en_US/LC_MESSAGES/django.mo deleted file mode 100644 index f773c94f94b312ad27ae5a5b5bcd65cc2589077e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8089 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 EZ%k?0*Z=?k diff --git a/evibes/locale/es_ES/LC_MESSAGES/django.mo b/evibes/locale/es_ES/LC_MESSAGES/django.mo deleted file mode 100644 index 334abe07cd130304f211facc2a1a1e03e8792a33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8726 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 diff --git a/evibes/locale/fa_IR/LC_MESSAGES/django.mo b/evibes/locale/fa_IR/LC_MESSAGES/django.mo deleted file mode 100644 index f7b56b65f23ddd46f0761a3fd031f6e6afd9436e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYL@Jx{|h5Qd9j%810q;DHS;v>i||AF4~-63I@gG_3@iX-zN+cICJTeh7b$-@;`f zuk`4KdrtTM9v}S-FbBvfa)ult7f6=`Il<*M&d&MI!n=3936O1Jt$k~prG&4uDPNND zaC{YyqEhdi4;5;R>l@KInl9O95StcedO-sI9-lJ;ky{a`-T76I=SUz8|IeJ1&8WTHT_YO9Y zndE)xQ9O(uoDJIIyYC(L3HmEs?iyw64cWXY-|BF;s%DV%URUc?d*F8Cw#L?!BrhgJ FgFkrqT8aPw diff --git a/evibes/locale/fr_FR/LC_MESSAGES/django.mo b/evibes/locale/fr_FR/LC_MESSAGES/django.mo deleted file mode 100644 index 77b3523512ae2f303f6f07f537289d5c2c41e1f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8972 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 diff --git a/evibes/locale/he_IL/LC_MESSAGES/django.mo b/evibes/locale/he_IL/LC_MESSAGES/django.mo deleted file mode 100644 index cb8840e78f545214b8e832d8a3058b5a31781342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9343 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 FgFkrqT8aPw diff --git a/evibes/locale/hr_HR/LC_MESSAGES/django.mo b/evibes/locale/hr_HR/LC_MESSAGES/django.mo deleted file mode 100644 index f7b56b65f23ddd46f0761a3fd031f6e6afd9436e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYL@Jx{|h5Qd9j%810q;DHS;v>i||AF4~-63I@gG_3@iX-zN+cICJTeh7b$-@;`f zuk`4KdrtTM9v}S-FbBvfa)ult7f6=`Il<*M&d&MI!n=3936O1Jt$k~prG&4uDPNND zaC{YyqEhdi4;5;R>l@KInl9O95StcedO-sI9-lJ;ky{a`-T76I=SUz8|IeJ1&8WTHT_YO9Y zndE)xQ9O(uoDJIIyYC(L3HmEs?iyw64cWXY-|BF;s%DV%URUc?d*F8Cw#L?!BrhgJ FgFkrqT8aPw diff --git a/evibes/locale/id_ID/LC_MESSAGES/django.mo b/evibes/locale/id_ID/LC_MESSAGES/django.mo deleted file mode 100644 index 26a235faa892cdcfc332521c99750511ae573fb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8281 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 diff --git a/evibes/locale/it_IT/LC_MESSAGES/django.mo b/evibes/locale/it_IT/LC_MESSAGES/django.mo deleted file mode 100644 index 1a43d99a9485c706d7aca45e9a8172b50824d487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8659 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 diff --git a/evibes/locale/ja_JP/LC_MESSAGES/django.mo b/evibes/locale/ja_JP/LC_MESSAGES/django.mo deleted file mode 100644 index c72acfd5b2611424c5fccdca55d24794ffee739a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9131 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 diff --git a/evibes/locale/kk_KZ/LC_MESSAGES/django.mo b/evibes/locale/kk_KZ/LC_MESSAGES/django.mo deleted file mode 100644 index f7b56b65f23ddd46f0761a3fd031f6e6afd9436e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYL@Jx{|h5Qd9j%810q;DHS;v>i||AF4~-63I@gG_3@iX-zN+cICJTeh7b$-@;`f zuk`4KdrtTM9v}S-FbBvfa)ult7f6=`Il<*M&d&MI!n=3936O1Jt$k~prG&4uDPNND zaC{YyqEhdi4;5;R>l@KInl9O95StcedO-sI9-lJ;ky{a`-T76I=SUz8|IeJ1&8WTHT_YO9Y zndE)xQ9O(uoDJIIyYC(L3HmEs?iyw64cWXY-|BF;s%DV%URUc?d*F8Cw#L?!BrhgJ FgFkrqT8aPw diff --git a/evibes/locale/ko_KR/LC_MESSAGES/django.mo b/evibes/locale/ko_KR/LC_MESSAGES/django.mo deleted file mode 100644 index 2f0e1304fd31c59f65e7bfc4153aa13fcff89f3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8479 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 diff --git a/evibes/locale/nl_NL/LC_MESSAGES/django.mo b/evibes/locale/nl_NL/LC_MESSAGES/django.mo deleted file mode 100644 index 70b2be263043f87e39d7e92f1c15593b7dfcc4c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8359 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 diff --git a/evibes/locale/no_NO/LC_MESSAGES/django.mo b/evibes/locale/no_NO/LC_MESSAGES/django.mo deleted file mode 100644 index 141df521999dab34feafdb15a960adc6155e967f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8294 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 diff --git a/evibes/locale/pl_PL/LC_MESSAGES/django.mo b/evibes/locale/pl_PL/LC_MESSAGES/django.mo deleted file mode 100644 index deae1dfa4acbf3462dc74df181e4f464128bd761..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8606 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 diff --git a/evibes/locale/pt_BR/LC_MESSAGES/django.mo b/evibes/locale/pt_BR/LC_MESSAGES/django.mo deleted file mode 100644 index 062d4a6c051a7fa15c0ffe6e239c8948bb5ba447..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8669 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 diff --git a/evibes/locale/ro_RO/LC_MESSAGES/django.mo b/evibes/locale/ro_RO/LC_MESSAGES/django.mo deleted file mode 100644 index 9d21414bc94a90eb728cd9d4362329a682e732a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8743 zcma)>PmCPdUB@dS5SRoK5+FbVJjbwWd);GugTTzj%l3@N_AJw$S@+E5&w-sc-LJdL zuCA)opBeY8i~x&pAaIKW?1@#lu8?v-$q85s8F7iYL<$JO1rESzPaKf=eBZ0;o*D11 zcck{O>ec)6`}6(%d;Zr?edL=Fe^>Z@j^DRF6h&*$i$BCa{9XM>6g~K{DEbZPr+NSD zACIC>LjMu^Gths5o`b#v{blIqej2Tfwf+ZCt^fDt{lB5V%KJOetI%^CuJsnGbr}@aqu+&o6#55H z$??ZfmPCI6{UzvMLAC$)n(^;LKg;`nKz|haVK)01^kWVE3{-NRh3dRc^Zr8fz79RZ zcpoZ#)=-`Q9jMOzTd3B554sEeLG%6cPlkC{p+C&{OVD*}aszq>2EOsB!2esn5Jf-5 z_rHTmp6^3{9r|C;i_o*b7`|^qrAG%9|F1(O=O03K{+~4Ce+m^}--2rWx1k&r{To#J zc?bF#=%;y+9M3^zhc7hrMX2<@0lfzOeJCtPe*+bt{{)ph{|OZz{{t0%{uheq(I-tf z=L}T*b)i~+3wjp%RjAJW9jN&HI#l@jCRF>q+0eHd`dz5b{d?#ap#Kcrf_?&{XrI@h zl5Y&vIY-bO`VFY||G$QQ{PSV|&q6=MxUeL=pZ=3BpKS)ECt*e|Bn(MUm-tDqvc=Ey zV|(v&KMNJ^pW`RF^(VPdcl3;2n!jIxUgjs>FtNA!1*l|~{tQ3;Nv9w7PvIZb>+yMP z$m>P#9e%*u>sLCFKH9(YJSZM4^OIjAzSk4P+c8@Dl1m2J)R`(X)x;V1YP|1CGt36{ z)TNcJ;w)WWT55*l(pZychprgaiE$lPPF*o@CQocN%8Ds_*vi->$qq|1%W7?#*g73d zj7^7TYEwIQJen*`;?$Y4$_i()5koU`FJ?-dn!9z$9%keY%^-;f_evNzd)EAxo0%KV zR(0XZrH;99VY|qN^`J6qwz5e!Ub%3=^uhso^JVBN8z<#OlNa$IPRAG7{s6JEVs_Cp zWDodm_v0k4X2uSRtSrs6PO3OhoEg~4jk6+lFrf3cilHl-BcvQ12oD3tqD zoP|fHZ-t2=EDdTYY}jY$2IfQz`zhyP>p*z%Cu;S)8(; zR_@m&&@0PMm37)@*=@nSPCcBUu+n0*AfMO`C-sDnPGZw>Eim`%JkJUbhQ2GXNNeQM z9A-r_JdB6Vc#D9F1OQg9NIjP}X{>6_#aFJT=K)+EusDa@ng`6>6w<9kTfdJY%XlB| zy4xGZ7K2G#xq)26i>O0nIw{Q`?O4F6$=p$cYQfGy41OEvF<}PsN^EtI%lIG| zt0$b6<4(Cg9EGqkGzYOg=FiLEVUX0oN)g-pIEVO`y)SpxU)@+;?{~VpJGb`C#975G z0<8C!dDv;DD`ZQORc8yPeNmHM^BcanCxdkdKDdP=l6Zt0VmcUm-TE)DwPO$FBXt^A z5484<8xg1{4S(%KzqkmWUYl@S`M`Mc#1aq+nu%-~EaJ#XGBZU60)U^)4@htzfr$4J z@Fo<>AEk1aqPYPdd>kUS2XJh>x9`Dl9~erZdy+b@I-8A$&$UP{D|0u9N3)`6-@)TUEg0fE`Cgreq2?mu#M2n$HAl zZ8Ye}fij~Rz0`~{SyAX!Y5`*P(pn8X$avD^K^R*x zuQyK*mZCFf&RpLzx3_l8+O6*Go9nzs-ThKUL|8=46Lp6}bWW@dHlyassg|N{3KA;S zEhy1vLIJ=I*}aNO{FHMQP~U6fJlOk5tCTHu?iZ*?h?@5)In+kV-##BltE9Z5oZUAN_AKeNR!x*nHSiD|!vGb%q71UPCni`J(UTO?^;B1G%=L*O<(vq(et z5VkGw=F@H#S)G^Bt(~21S>gUH3U-QaWrs@5GkB&DIc#gmDXJn2km}_@HqFx6G{bE2 z61Mq3ixz>eP*p|#DYs=weKKs`NcQ1L;-&}?^)30Tb@oP`)Xu}KD4!Ld z>^@PI9|u@g_C8AYAv>X>8_o#OK1unK9#0W>&#E#^sQjt#a3aSZAy7sASy{R1oLR{m z;Iw1!2ZZ>>pomM<;Va`dr!@*#Hk(cyUlv2^Jce2NY-J8DZb0CMfso3?=5n-4TA*ti-Hbxc$X@wvoY*69=u{gIyKKo#+ z0bZA-o$L6-PH6rY)<^j!I4XrL0&nH+DBS&FyY) z-F$Jq*WK8BseAo8yuyOd&e8mo5xO8)ttmJG10pL9*`AkN!{Z&I3RIt@oWo87b= z3478sg+j4|MtrHO9YdoUQ&O6J%Ul#lNXkH5Bl`O`t`c*hw5DbC`(t=rSb!Lva$In= zfk$@0QVA_gl<^pVBl@FttQaUGB>3hgQ2NyyIfL3Rn#q5 zfyD5jY0#eRakrIVDX~Z&@H=ceUQY2_oRp^Rbx-uY#~Bq88ds~68vbfi#J-2NL3DyO zc_Lf~D2N}ZrRuAPl*}zegx^%UBfsHrCgCPYd#Sq}#Hhhfriw`%tRuQ_kWzuwR|-N< z(-DVbRkqV=@!dnBY-SN=1+$`UeKDu12(`NEjpM{e2d@a7zz$x(dLCy2Y>E8zz-%3Q zWY@rZULL(`FDwyg{=l*qLH_OGS;Pmr#5#EUO<_GaH&;Gfh6qo==u;_?44YQiwpH4~ zuju00&9C+Vq%6qE!#0t$Tl<`x5;#z@4irM?6BL&G@hPpQoP;CW!xeF8pIZ|vAmDXk zXiA*Nivzcds3br44fXa$@R@l`3Ni0^SMB?%5e7ozZF8-(jDZfch6@lpf_~pC z(|SHq?~M%mraLhF0UGe9ZdW*@NHa1(*pm}pKh>IZJ1c*9IcUR&7_j*ETiifqWll7g zua-467OlC`u#$kT6ojlrhi-;7liQfjlE!Q_)Ve5))z#BmlM66Fz@5j`y9NdLp;cEn zSXkhRmc2Q^HXS=ziYun+KDXDtY4^dOW)-J*;Iw{9%f87{dD9{>BSKaYceP(qi+wf& zvbh2>M)nc;$>v?k+{rY39{hu!4plGE18|{xGBL{Lxpy8=DGw(8&MN_l)Kn-c%^Eg} zM-NN*D3=rt=j#`%0unvP?bMS^JQ0V^JEn^dQ?ci~oj=vYKYCb?y(v!i@};fS%!e<* zI8SfrpWG|-^-tgIcyr%>^e`1LQDq2kp~Y8LLHX46ZM2ics2ZEeryBmA@ABhgjlU*< z`uA!0>(njzzJUiaDVMRS3}=;=PPhHHcTIoo)<$o&`}of{)b_7UT-@B|HWvVo9@6^L zfPvwR{~};3ARk9tq3xG^4agPaePmZkP*`vCKwj^AJ2GrP$U6S>ghri;xNZNbx)ip7 z3R|dGBXfaQjTG*P#0ih>DsB_p1@IPaVhFC zqKg8g3pWK~SJU_}D58d6yOr}*bs)p81C*0v3TxER2G5eq@aaBGoG97b9ip2>or_nB z_WLuVdxdBLnP^SbzfrktIGdZ8M-Qi5`IPo9&4*6M$B%iaLJ*bu6iF8gWsj#WTa?d8 z#(h8|-(6Uv7cu*PfpB@XLxQ2*s+M^*@ z(%nO}Z7Jey^DIau;hD3J$G={BZVEh0)d}yTntt&pbQ4h*EC{$(4Ww=+ znBcS2(A~A+VuA|*^^N7^=&lJ1`#% zM-YPW%)(5=n7DQc0y~$aDmf;9>(LMS!xEgT=;7188$F zJ?@?%3AvOaMAK4A6eUYmSy9=NmDrW!l7NsXg5nnEmgLfNN|h^>Dj$-QZ@%Q1-~W5B z2ZM!LDqs!2>F)Qw_5UsX=D+U#@XHZ@yZC&D&yRj7iuOUb|1$saxBJ6U^yJ5)==0D| za((sJqUaOQe~11y^gp3npud2A4*Hp2kD}jzjzWJG`UsTm(bu5A0-b{nL9=lEM0mak z{ax-q3x!qmW9V-|--Jruze2VDr%>(xS-Ac=^iR3|1#~xb3&OQOhH761MfK<$^e*TH zsO)$S%9iL2=x3ozQ1LIr{r`aeKG**P{V4Q9F#9<4!g`!UMcTiN1u0b>Czd_GKM_62g-h%!f^yg6d@h-rEOQTOfckz*5sz2Ohco~MukAK8R{?*?{^xx1|l4d=dPh2N+ow>v%kEYW};Tl=J zJD;>VaVO1M!$U*ic3QaDwX-uxKGSWwq{hzqB(Eo~-HbakSw0VsxZ~nxGdokbg{&*K z&A8jD&$+nOaPx61o=y1bvQ{%~C9ddXdE&AeZY{V|DNE9p`+B#4hnq>xxOy|KpDIw` z-h17blLdDmi96jqDTZop+qPqQ*67wdZeQGqo7wEhwry_03uuQYjieK&&0@Q2=V?7{ z&2ESNY0S#5nWcHwOls3{ zku+R8$>-CefPFCRSiB%rD`Rk!_cv!0j3`c`BtWloyCzwI*oRt#}2zVug|5Oq^{I36D35UlhaIe!Um)^`-$pZ z3wBPY;5R^z1q&drAXdi{85NLlFlouLiSzk{M{|1&>|0Jg0{H6^t8#*yPUhm%X_k8t z$CJ2On@XuSC)y1-nl%TLj%y0b+=<1q&&xHF(~0ue(u;7D{e`3{LLsMJo#dL84Js0& zKB2v1e3>{tHaR6X$#Dl10^LykvQW&#l&>wFIZE4_qPNvj{$L)r=N=iawy$!h%AMSS zi`#SGXzn=aootI!RWNo%P0}K6UFxHeFB=VaI*kYNc^Ev@n_Xa~ zifuWL5W6_})!Nvjhxd+6)<#cE9Xjdel2|p10&DrwFFRqmO13Q7o5VTGzMw^q8^bT2 zRKP~-R@}UZW;#O}5;_$7W^7L$ukJnBzte4{ohP;Tcrrtwo(uX_3vF}mA3Z*YxZ+7? zWWyE^3Yw{G87h*<&E|s3GY|m$6n;QL0trN1&j4>qq4H5KPg;1c&I7AM)OHV!!*|X- z6rKcza_C7}-R{)JLx%UgNG~heNj;re@ZO{f&m?({n0_(Xk_^udZ{NUT1dVDZCQoiP zr}iOQZ7az97MVg?b%4idIL_pmnkm}sh}-QQ{gq&?s%FLuII9EHfbn33EPPQKXl8v5 zF6(v#2r-||&U()rPl`6RC2zy62vI_8)aej!wCK zhenSa9OF6~oh~#)_)W|_(P*QA&#AROX3Sh|rln}K1rj=%TX3RvLIEIdz`c_e~qC?pkwdMtMW)L}3&64xDiZVc}R|dtcthF$o5jJHBY~I(V)xu0B`iT z`#Mif;K4bjs>r^z?RXkV}Sx~P0B`kGDX_mugS2<7f;WQPW^$4*S zgFG#8hfT&+PYVthcH@aO-YJFj=F!Mn_jlZxm^7epqkwN^Qgb*uL0y`h95*^OJ}C-1 z@Zr~)qH2d5wUEIh&bL$d;LZpCY#|mD zKe;jD9vd4yUYj^t+dt|K9UYlC{J>uvJu)^l9v7Y3ltxY7m$H1s9XK&Q?v9L3jJYq2 zO^hBMe|U8Ne#Vo@FS69nm$j)Ro*!}Jl!p_e2U#~h{%|uL&hpvSH6t$X*7EMq#Nmmt zRn2z|?;HvvcWr8+jZz)Pz#Y7*rLBiFHRY7sJtw9P)ON3~lWsJ%+E}X&@OTk$yQkC6 z(6MGWXL370DW~$a+ICs&dGH|yNELis4x_nj4dQY=)x%X^&#bLxE zk1xxa66Y1xfUs>Fi*Y-uCaT=aKfB%36C1%+XaE7s~@c#zu$&0gtUkm1tYyn|;~aQ1~@)21p* zG+Rsslrh_0GaxR>@v!2l*U&G+4m9QgqJ^5b(GQTKuem_J6@IUCLnfkt%mI+!!Zijm z+Ym76F~32Su;Rl5?0qOb##YP9?$$tQBmZ5GD|fmU$weuE;n`mFLa8S5fbV zWrNgNl&7WS(z`Jv_19c)(I>2>TJIw1$RR>aqESd5KxOlQu%j(_h&Z7a zPUrtCy=QFMN_j0g>ay@{KG)2QSA6=EZ;F*SZ(}AHBnEfi^wOWP%ra}FoMnNo zNH6oqE#N$uvq42}szxZ<1{^O|D1JALUB+%pVP!PJl$8ow71A4K&l}vmN=52JX>HZ$ zYhaRZ6Z1tX4w5YuDiKOTmAxgj#Qnksx>6}D=@Gv{c2xwe(kc{IR@RoHC2t+aB{ewR zhHr3rNSGG^{ab8Rc&R16yqF}GJ{@it8lOf16byBDgD+JrRNdb$-|C$QSID`-Vo}+# zVwM^9D%&@6lF*ErhC$_{ImuGW+^g2I8nN#aW~!z<1<$K2m*Q$Wa1rd^;-3tDn+Hq% z`atrtu}c1HY{&KMGS&81)%u1ELM*-HJOzaC8Fv-zt7IO+)J3kcM9r^XkG&46Cf1Tv zVG)Ho%33ug^((8C!iC*g2}eT#lHcR8FI^!pfyZj%ged-y{flIyRHT=oNvI3wdKb7U zx2r{-NBEKroj6AAQ=ze^{Y)gpDhtb~ru6oKBkUVGupA=9;tbieY;GBh&I^@w2(SvL z)mD9JWZVmW>Rq(Jyo8DpdCqJ&Uxu()6uGHp7kr@lZ5(>f!Vb;sv62sTs6&M;v!0~3 zV%iHA!lR@x4r~bcY5|jCEcOXuJz!ZS&$kN@?k|WN;nz}2x@B8o(@hA;>pTKysJc`c z;|oM(MtPYsWxAWQ2h~PCjg}T~jr|rO4N6<(g5hfQQ-|*>}2(*-*5!3g$3I z%L)B6#OknclT*d=MMb;3p<1PieN~yTPLkCIg=-*Z`^mFL-nxTG<)-(8vLC=%NmR+v zpc7^rN!FmfX2h^)Qbbm}^*L3ewKn5wo8xSidX%b`hF&&WQmB3Taz}VQCe&D1L-7I5 ze33HNXUsmEFM7|1JbeY!zDGkrdH-93?0a!NSO8IV{5Ej0g= zw-c*=bX=y$(0WOBwKL!FDM`I^?{P4?Cc}MIta!;q{cdWRj~7%+5w15%fUxnT)Pne; ze5@sFrX`w!^pY9UQ7BqcIG_^D=o0$jI)BRphN^3D@aWUNe)0FJt&SP~eL~oVvk$h9 zAKLUCrBH?t{s^C*^Z2lChCJF7|Eu`ujLZP=e)$h3G7MCG2KcQ#xD{iK$@21bGl|6N zT~ga|l+V6e+@u_;7GRNoor81#w0F%JukcT<2=*Gv0N0uWU$z5xH9gfr@e^N^7{%a zYc&b244f}(9fwt$pDR=Q;ZGT$ybhIr0~R?$p_|xnC!mC98tK*_G?zapUv`LnnJ@oT z{x!Q_)^T(B0&mEw%T@Oa_zyisoU|r1S)WFF)mRDQ?Ix{1G@jl#)G|NKImUqu5QtgJAy+w|>U zJ0ru-3dtf+1#P{PsW-igQTZBx8|eE~G)^JTv-BO~aLHE&9jVhuo>%9{geVmPoUshy}s@>CGIM){Wo6{vW7bnL&yzss7YSY%P9!1-Qk zIg0icSMQsFwkef;83%X&e|b1X4Ap(@_{Ji#S|#6Ghkum+Fm+%g5cD>Ei&SKN187#=hfxeifW?rf8w}zg9&25>aDcmHX;HclhDL zXNA3*3P!JcM4-b4n>29xG$mltO9xosM>CwoM9qe9Vw|#dO{wuUmg9r~diH;Z!OW_c zB`aSS`Es4Dn`QvNhuE(iHQs`48m-dAnzGXmBi_B|z>&Xt#m}0X&H>aBzligm3YttT z;Z?QYY(ppaNu^}-?QR+1hGSh5iqck+EK1}o6UH+4s*_$K<`4$k3=GSU|y39?ga zR^J4Rm%Ekd{%xETXo1v%y=n|$*VP8Kq v=+ITaEj%mVK`*Xx5=OrQn|=s!h7XZ`0lLE@{V3$$XmzNA7-MV*U5Wk={-AK; diff --git a/evibes/locale/sv_SE/LC_MESSAGES/django.mo b/evibes/locale/sv_SE/LC_MESSAGES/django.mo deleted file mode 100644 index 63d52c00d7035eac070f3c95bb4354d8db4724e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8355 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 O-kJQD#OU`6?|%WMz(p$n diff --git a/evibes/locale/tr_TR/LC_MESSAGES/django.mo b/evibes/locale/tr_TR/LC_MESSAGES/django.mo deleted file mode 100644 index 38ef1aefca08ee755dc8c02999b6513754e65df3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8723 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 diff --git a/evibes/locale/vi_VN/LC_MESSAGES/django.mo b/evibes/locale/vi_VN/LC_MESSAGES/django.mo deleted file mode 100644 index 60a4df4ebd276093258bb9e41304363ef1eb34d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9309 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 WM_w9f*yI*$^jU7hR`wj4t^Wg=9*}GR diff --git a/evibes/locale/zh_Hans/LC_MESSAGES/django.mo b/evibes/locale/zh_Hans/LC_MESSAGES/django.mo deleted file mode 100644 index d83d8bb456db93884e55b491e781e179ec00c59a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7823 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 Path: - return SCRIPTS_PATH / f"{command}{SCRIPT_EXT}" - - -def run_script(script_name: str, *args) -> int: - script_path = get_script_path(script_name) - - if not script_path.exists(): - click.secho( - f"Error: Script '{script_name}' not found at {script_path}", - fg="red", - err=True, - ) - return 1 - - if OS == "windows": - cmd = ["pwsh", "-File", str(script_path)] - else: - cmd = ["bash", str(script_path)] - - cmd.extend(args) - - try: - result = subprocess.run(cmd, cwd=PROJECT_ROOT) - return result.returncode - except FileNotFoundError: - shell_name = "PowerShell" if OS == "windows" else "bash" - click.secho( - f"Error: {shell_name} not found. Please ensure it's installed.", - fg="red", - err=True, - ) - return 127 - except KeyboardInterrupt: - click.secho("\nOperation cancelled by user.", fg="yellow") - return 130 - - -@click.group( - context_settings={"help_option_names": ["-h", "--help"]}, - invoke_without_command=True, -) -@click.pass_context -def cli(ctx): - if ctx.invoked_subcommand is None: - click.echo(ctx.get_help()) - - -@cli.command() -def install(): - return sys.exit(run_script("install")) - - -@cli.command() -def run(): - return sys.exit(run_script("run")) - - -@cli.command() -def restart(): - return sys.exit(run_script("restart")) - - -@cli.command() -@click.option( - "-r", - "--report", - type=click.Choice(["xml", "html"]), - help="Generate coverage report (xml or html)", -) -def test(report): - args = [] - if report: - args.extend(["-r", report]) - return sys.exit(run_script("test", *args)) - - -@cli.command() -def uninstall(): - if click.confirm( - "This will remove all Docker containers, volumes, and generated files. Continue?" - ): - return sys.exit(run_script("uninstall")) - else: - click.secho("Uninstall cancelled.", fg="yellow") - return 0 - - -@cli.command() -def backup(): - return sys.exit(run_script("backup")) - - -@cli.command(name="generate-env") -def generate_env(): - return sys.exit(run_script("generate-environment-file")) - - -@cli.command(name="export-env") -def export_env(): - return sys.exit(run_script("export-environment-file")) - - -@cli.command(name="make-messages") -def make_messages(): - return sys.exit(run_script("make-messages")) - - -@cli.command(name="compile-messages") -def compile_messages(): - return sys.exit(run_script("compile-messages")) - - -@cli.command() -def info(): - click.echo(f"{'=' * 60}") - click.secho("lessy - eVibes Project CLI", fg="cyan", bold=True) - click.echo(f"{'=' * 60}") - click.echo(f"Operating System: {platform.system()} ({platform.release()})") - click.echo(f"Python Version: {platform.python_version()}") - click.echo(f"Architecture: {platform.machine()}") - click.echo(f"Project Root: {PROJECT_ROOT}") - click.echo(f"Scripts Directory: {SCRIPTS_PATH}") - click.echo(f"Script Extension: {SCRIPT_EXT}") - click.echo(f"{'=' * 60}") - - -if __name__ == "__main__": - cli() diff --git a/manage.py b/manage.py index b47af148..ff562895 100644 --- a/manage.py +++ b/manage.py @@ -7,7 +7,7 @@ import sys def main(): """Run administrative tasks.""" - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "evibes.settings") + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "schon.settings") try: from django.core.management import execute_from_command_line except ImportError as exc: diff --git a/monitoring/web.yml b/monitoring/web.yml index 93429ab9..77702174 100644 --- a/monitoring/web.yml +++ b/monitoring/web.yml @@ -1,2 +1,2 @@ basic_auth_users: - evibes: $2b$12$0HraDYmrZnJ089LcH9Vsn.Wv5V5a8oDlucTNm0.5obhULjPyLiYoy + schon: $2b$12$0HraDYmrZnJ089LcH9Vsn.Wv5V5a8oDlucTNm0.5obhULjPyLiYoy diff --git a/nginx.conf b/nginx.example.conf similarity index 77% rename from nginx.conf rename to nginx.example.conf index 22af2b6c..b6bd9d11 100644 --- a/nginx.conf +++ b/nginx.example.conf @@ -12,10 +12,10 @@ upstream storefront_frontend { server { listen 443 ssl http2; - server_name api.evibes.com; + server_name api.schon.com; - ssl_certificate /etc/letsencrypt/live/evibes.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/evibes.com/privkey.pem; + ssl_certificate /etc/letsencrypt/live/schon.com/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/schon.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; ssl_session_cache shared:SSL:10m; @@ -42,40 +42,40 @@ server { location /favicon.ico { add_header Access-Control-Allow-Origin "*"; - root /var/jenkins/workspace/evibes/static; + root /var/jenkins/workspace/schon/static; } location = /robots.txt { add_header Access-Control-Allow-Origin "*"; - alias /var/jenkins/workspace/evibes/static/robots_backend.txt; + alias /var/jenkins/workspace/schon/static/robots_backend.txt; default_type text/plain; } location /static/ { add_header Access-Control-Allow-Origin "*"; - root /var/jenkins/workspace/evibes; + root /var/jenkins/workspace/schon; } location /media/ { add_header Access-Control-Allow-Origin "*"; - root /var/jenkins/workspace/evibes; + root /var/jenkins/workspace/schon; } error_page 500 502 503 504 /maintenance.html; location = /maintenance.html { add_header Access-Control-Allow-Origin "*"; - root /var/jenkins/workspace/evibes/static; + root /var/jenkins/workspace/schon/static; internal; } } server { listen 443 ssl http2; - server_name evibes.com www.evibes.com; + server_name schon.com www.schon.com; - ssl_certificate /etc/letsencrypt/live/evibes.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/evibes.com/privkey.pem; + ssl_certificate /etc/letsencrypt/live/schon.com/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/schon.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; ssl_session_cache shared:SSL:10m; @@ -87,12 +87,12 @@ server { location /favicon.ico { add_header Access-Control-Allow-Origin "*"; - root /var/jenkins/workspace/evibes/static; + root /var/jenkins/workspace/schon/static; } location = /robots.txt { add_header Access-Control-Allow-Origin "*"; - alias /var/jenkins/workspace/evibes/static/robots_frontend.txt; + alias /var/jenkins/workspace/schon/static/robots_frontend.txt; default_type text/plain; } @@ -121,17 +121,17 @@ server { location = /maintenance.html { add_header Access-Control-Allow-Origin "*"; - root /var/jenkins/workspace/evibes/static; + root /var/jenkins/workspace/schon/static; internal; } } server { listen 443 ssl http2; - server_name prometheus.evibes.com; + server_name prometheus.schon.com; - ssl_certificate /etc/letsencrypt/live/evibes.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/evibes.com/privkey.pem; + ssl_certificate /etc/letsencrypt/live/schon.com/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/schon.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; ssl_session_cache shared:SSL:10m; @@ -153,26 +153,26 @@ server { location = /robots.txt { add_header Access-Control-Allow-Origin "*"; - alias /var/jenkins/workspace/evibes/static/robots_backend.txt; + alias /var/jenkins/workspace/schon/static/robots_backend.txt; default_type text/plain; } location /favicon.ico { add_header Access-Control-Allow-Origin "*"; - root /var/jenkins/workspace/evibes/static; + root /var/jenkins/workspace/schon/static; } error_page 500 502 503 504 /maintenance.html; location = /maintenance.html { add_header Access-Control-Allow-Origin "*"; - root /var/jenkins/workspace/evibes/static; + root /var/jenkins/workspace/schon/static; internal; } } server { listen 80; - server_name api.evibes.com www.evibes.com evibes.com prometheus.evibes.com; + server_name api.schon.com www.schon.com schon.com prometheus.schon.com; return 301 https://$host$request_uri; } diff --git a/pyproject.toml b/pyproject.toml index df7713f7..f4f70256 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] -name = "eVibes" +name = "schon" version = "2026.1" -description = "eVibes — your store without the extra baggage. Everything works out of the box: storefront, product catalog, cart, and orders. Minimal complexity, maximum flexibility — install, adjust to your needs, and start selling." +description = "Schon — your store without the extra baggage. Everything works out of the box: storefront, product catalog, cart, and orders. Minimal complexity, maximum flexibility — install, adjust to your needs, and start selling." authors = [{ name = "fureunoir", email = "contact@fureunoir.com" }] readme = "README.md" requires-python = ">=3.12,<=3.13" @@ -126,7 +126,7 @@ select = ["E4", "E7", "E9", "F", "B", "Q", "I"] ignore = ["RUF012", "A002", "A003"] [tool.ruff.lint.isort] -known-first-party = ["evibes", "engine"] +known-first-party = ["schon", "engine"] [tool.ruff.format] quote-style = "double" @@ -157,4 +157,4 @@ unsupported-base = "warn" [tool.django-stubs] -django_settings_module = "evibes.settings.__init__" +django_settings_module = "schon.settings.__init__" diff --git a/evibes/__init__.py b/schon/__init__.py similarity index 100% rename from evibes/__init__.py rename to schon/__init__.py diff --git a/evibes/asgi.py b/schon/asgi.py similarity index 85% rename from evibes/asgi.py rename to schon/asgi.py index 73f5b7e4..85ac0bef 100644 --- a/evibes/asgi.py +++ b/schon/asgi.py @@ -1,5 +1,5 @@ """ -ASGI config for the eVibes project with Django Channels. +ASGI config for the Schon project with Django Channels. Exposes the ASGI callable as a module-level variable named ``application``. """ @@ -12,7 +12,7 @@ import django from channels.routing import ProtocolTypeRouter, URLRouter from django.core.asgi import get_asgi_application -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "evibes.settings") +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "schon.settings") django.setup() from engine.vibes_auth.messaging.auth import JWTAuthMiddlewareStack # noqa: E402 diff --git a/evibes/celery.py b/schon/celery.py similarity index 51% rename from evibes/celery.py rename to schon/celery.py index b8129c57..7542dae8 100644 --- a/evibes/celery.py +++ b/schon/celery.py @@ -2,11 +2,11 @@ import os from celery import Celery -from evibes.celery_serializers import register_orjson +from schon.celery_serializers import register_orjson -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "evibes.settings") +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "schon.settings") -app = Celery("evibes") +app = Celery("schon") register_orjson() diff --git a/evibes/celery_serializers.py b/schon/celery_serializers.py similarity index 100% rename from evibes/celery_serializers.py rename to schon/celery_serializers.py diff --git a/evibes/i18n.py b/schon/i18n.py similarity index 100% rename from evibes/i18n.py rename to schon/i18n.py diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.po b/schon/locale/ar_AR/LC_MESSAGES/django.po similarity index 81% rename from evibes/locale/ar_AR/LC_MESSAGES/django.po rename to schon/locale/ar_AR/LC_MESSAGES/django.po index 16e841e4..a3d3f01c 100644 --- a/evibes/locale/ar_AR/LC_MESSAGES/django.po +++ b/schon/locale/ar_AR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "اسم الشركة" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "عنوان الشركة" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "رقم هاتف الشركة" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,121 +33,121 @@ msgstr "" "معدل الضريبة في الولاية القضائية لشركتك. اترك 0 إذا كنت لا تريد معالجة " "الضرائب." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "يوضح ما إذا كانت الضرائب مشمولة بالفعل في أسعار بيع المنتج" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "مفتاح API لسعر الصرف" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!، لا تتغير!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "مضيف SMTP" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "منفذ SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "استخدام TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "استخدام SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "اسم مستخدم SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "كلمة مرور SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "البريد من خيار البريد من" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "عدد الأيام التي نخزن فيها الرسائل من المستخدمين المجهولين" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "عدد الأيام التي نخزن فيها الرسائل من المستخدمين الموثقين" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "تعطيل وظيفة الشراء" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "عنوان URL الخاص بواجهة برمجة تطبيقات OpenStreetMap Nominatim" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "مفتاح واجهة برمجة تطبيقات OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "مفتاح واجهة برمجة التطبيقات المجردة" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "وكيل HTTP" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "كيان لتخزين بيانات الإعلانات" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "كيان لتخزين بيانات التحليلات" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "حفظ الاستجابات من واجهات برمجة تطبيقات البائعين" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "قاعدة البيانات الاحتياطية" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "وسائط النسخ الاحتياطي" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "الخيارات القانونية" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "خيارات البريد الإلكتروني" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "خيارات الميزات" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "خيارات تحسين محركات البحث" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "خيارات النظام" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -166,7 +166,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -190,9 +190,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"مرحباً بك في وثائق eVibes.\n" +"مرحباً بك في وثائق Schon.\n" "\n" -"eVibes عبارة عن منصة تجارة إلكترونية قوية تتيح لك إطلاق وإدارة متجر إلكتروني من أي نوع بنقرات قليلة.\n" +"Schon عبارة عن منصة تجارة إلكترونية قوية تتيح لك إطلاق وإدارة متجر إلكتروني من أي نوع بنقرات قليلة.\n" "\n" "## الميزات الرئيسية\n" "- ** كتالوج المنتجات:** إدارة تفاصيل المنتج والتسعير والمخزون والتوافر عبر فئات متعددة.\n" @@ -211,7 +211,7 @@ msgstr "" "- ** واجهة برمجة تطبيقات GraphiQL:** متوفرة على '/graphql/' مع واجهة GraphiQL للاستعلامات التفاعلية\n" "\n" "## المصادقة\n" -"- يتم التعامل مع المصادقة عبر رموز JWT المميزة. قم بتضمين الرمز المميز في رأس \"X-EVIBES-AUTH\" لطلباتك بصيغة \"حامل \".\n" +"- يتم التعامل مع المصادقة عبر رموز JWT المميزة. قم بتضمين الرمز المميز في رأس \"X-SCHON-AUTH\" لطلباتك بصيغة \"حامل \".\n" "- عمر رمز الوصول الرمزي هو {access_lifetime} {access_unit}.\n" "- عمر الرمز المميز للتحديث هو {refresh_hours} ساعة.\n" "- يتم تدوير رموز التحديث تلقائيًا وإبطالها بعد الاستخدام لتعزيز الأمان.\n" @@ -234,66 +234,66 @@ msgstr "" "## الإصدار\n" "إصدار API الحالي: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "موقعي" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "الصحة" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "الدعم" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "قائمة الطعام" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "لوحة التحكم" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "التكوين" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "المهام الدورية" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "لوحة المهام" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "روابط سريعة" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "المستخدمون" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "المجموعات" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "الطلبات" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "المنتجات" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "الفئات" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "العلامات التجارية" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "المدونات" diff --git a/evibes/locale/cs_CZ/LC_MESSAGES/django.po b/schon/locale/cs_CZ/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/cs_CZ/LC_MESSAGES/django.po rename to schon/locale/cs_CZ/LC_MESSAGES/django.po index 2ba01475..a7600838 100644 --- a/evibes/locale/cs_CZ/LC_MESSAGES/django.po +++ b/schon/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Název společnosti" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Adresa společnosti" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Telefonní číslo společnosti" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,121 +33,121 @@ msgstr "" "Sazba daně v jurisdikci vaší společnosti. Pokud nechcete zpracovávat daně, " "ponechte 0." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "Zobrazuje, zda jsou daně již zahrnuty v prodejních cenách produktu." -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Klíč API pro směnný kurz" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!NEMĚŇTE!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP host" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "Port SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Použití protokolu TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Použití protokolu SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "Uživatelské jméno SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "Heslo SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Možnost Pošta z" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Kolik dní uchováváme zprávy od anonymních uživatelů" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Kolik dní uchováváme zprávy od ověřených uživatelů" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Zakázat funkci nákupu" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "URL rozhraní API OpenStreetMap Nominatim" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "Klíč API OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Abstraktní klíč API" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "Proxy server HTTP" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Subjekt pro ukládání dat inzerátů" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Subjekt pro ukládání analytických dat" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Ukládání odpovědí z rozhraní API dodavatelů" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Zálohování databáze" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Záložní média" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Právní možnosti" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Možnosti e-mailu" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Možnosti funkcí" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "Možnosti SEO" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Možnosti systému" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -166,7 +166,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -190,9 +190,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Vítejte v dokumentaci systému eVibes.\n" +"Vítejte v dokumentaci systému Schon.\n" "\n" -"eVibes je výkonná platforma pro elektronické obchodování, která vám umožní spustit a spravovat internetový obchod jakéhokoli druhu na několik kliknutí.\n" +"Schon je výkonná platforma pro elektronické obchodování, která vám umožní spustit a spravovat internetový obchod jakéhokoli druhu na několik kliknutí.\n" "\n" "## Klíčové funkce\n" "- **Katalog produktů:** Správa podrobností o produktech, cen, skladových zásob a dostupnosti v několika kategoriích.\n" @@ -211,7 +211,7 @@ msgstr "" "- **GraphQL API:** K dispozici na adrese `/graphql/` s rozhraním GraphiQL pro interaktivní dotazy.\n" "\n" "## Ověřování\n" -"- Ověřování se provádí pomocí tokenů JWT. Token zahrňte do hlavičky `X-EVIBES-AUTH` svých požadavků ve formátu `Bearer `.\n" +"- Ověřování se provádí pomocí tokenů JWT. Token zahrňte do hlavičky `X-SCHON-AUTH` svých požadavků ve formátu `Bearer `.\n" "- Životnost přístupového tokenu je {access_lifetime}. {access_unit}.\n" "- Životnost tokenu pro obnovení je {refresh_hours} hodin.\n" "- Tokeny pro obnovení jsou po použití automaticky rotovány a zneplatněny z důvodu vyšší bezpečnosti.\n" @@ -234,66 +234,66 @@ msgstr "" "## Verze\n" "Aktuální verze API: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Moje stránky" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Zdraví" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Podpora" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Nabídka" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Přístrojová deska" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Konfigurace" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Pravidelné úkoly" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Taskboard" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Rychlé odkazy" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Uživatelé" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Skupiny" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Objednávky" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Produkty" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Kategorie" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Značky" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogposty" diff --git a/evibes/locale/da_DK/LC_MESSAGES/django.po b/schon/locale/da_DK/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/da_DK/LC_MESSAGES/django.po rename to schon/locale/da_DK/LC_MESSAGES/django.po index 3827df7a..20cb6b0e 100644 --- a/evibes/locale/da_DK/LC_MESSAGES/django.po +++ b/schon/locale/da_DK/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Virksomhedens navn" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Virksomhedens adresse" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Virksomhedens telefonnummer" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,121 +33,121 @@ msgstr "" "Skattesats i din virksomheds jurisdiktion. Lad 0 stå, hvis du ikke ønsker at" " behandle skatter." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "Viser, om afgifterne allerede er inkluderet i produktets salgspris" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "API-nøgle til valutakurs" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!SKIFT IKKE!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP-vært" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTP-port" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Brug TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Brug SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "SMTP-brugernavn" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "SMTP-adgangskode" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Mulighed for mail fra" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Hvor mange dage vi gemmer beskeder fra anonyme brugere" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Hvor mange dage vi gemmer beskeder fra godkendte brugere" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Deaktiver købsfunktionalitet" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "OpenStreetMap Nominatim API URL" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI API-nøgle" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Abstrakt API-nøgle" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP-proxy" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "En enhed til lagring af annonceringsdata" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "En enhed til lagring af analysedata" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Gem svar fra leverandørers API'er" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Backup af database" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Backup-medier" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Juridiske muligheder" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Indstillinger for e-mail" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Funktioner Indstillinger" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "SEO-muligheder" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Systemindstillinger" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -166,7 +166,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -190,9 +190,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Velkommen til eVibes' dokumentation.\n" +"Velkommen til Schon' dokumentation.\n" "\n" -"eVibes er en stærk e-handelsplatform, der giver dig mulighed for at starte og administrere en onlinebutik af enhver art med blot nogle få klik.\n" +"Schon er en stærk e-handelsplatform, der giver dig mulighed for at starte og administrere en onlinebutik af enhver art med blot nogle få klik.\n" "\n" "## Nøglefunktioner\n" "- Produktkatalog:** Administrer produktdetaljer, priser, lagerbeholdning og tilgængelighed på tværs af flere kategorier.\n" @@ -211,7 +211,7 @@ msgstr "" "- GraphQL API:** Tilgængelig på `/graphql/` med GraphiQL-grænseflade til interaktive forespørgsler\n" "\n" "## Autentificering\n" -"- Autentificering håndteres via JWT-tokens. Inkluder tokenet i `X-EVIBES-AUTH`-headeren i dine anmodninger i formatet `Bearer `.\n" +"- Autentificering håndteres via JWT-tokens. Inkluder tokenet i `X-SCHON-AUTH`-headeren i dine anmodninger i formatet `Bearer `.\n" "- Adgangstokenets levetid er {access_lifetime} {access_unit}.\n" "- Opdateringstokenets levetid er {refresh_hours} timer.\n" "- Refresh-tokens bliver automatisk roteret og ugyldiggjort efter brug for at øge sikkerheden.\n" @@ -234,66 +234,66 @@ msgstr "" "## Version\n" "Nuværende API-version: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Min hjemmeside" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Sundhed" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Støtte" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Dashboard" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Konfig" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Periodiske opgaver" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Opgavetavle" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Hurtige links" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Brugere" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Grupper" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Bestillinger" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Produkter" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Kategorier" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Mærker" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogindlæg" diff --git a/evibes/locale/de_DE/LC_MESSAGES/django.po b/schon/locale/de_DE/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/de_DE/LC_MESSAGES/django.po rename to schon/locale/de_DE/LC_MESSAGES/django.po index a0dfe9c5..eb5122ab 100644 --- a/evibes/locale/de_DE/LC_MESSAGES/django.po +++ b/schon/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Name des Unternehmens" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Anschrift des Unternehmens" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Telefonnummer des Unternehmens" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,124 +33,124 @@ msgstr "" "Steuersatz in dem Land, in dem Ihr Unternehmen ansässig ist. Lassen Sie 0 " "stehen, wenn Sie keine Steuern verarbeiten wollen." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "" "Zeigt an, ob die Steuern bereits in den Verkaufspreisen des Produkts " "enthalten sind" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Wechselkurs-API-Schlüssel" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!NICHT ÄNDERN!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP-Host" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTP-Port" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Use TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Use SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "SMTP-Benutzername" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "SMTP-Kennwort" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Option Mail von" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Wie viele Tage wir Nachrichten von anonymen Nutzern speichern" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "" "Wie viele Tage wir Nachrichten von authentifizierten Benutzern speichern" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Kauffunktionalität deaktivieren" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "OpenStreetMap Nominatim API URL" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI API Key" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Abstrakter API-Schlüssel" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP-Proxy" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Eine Einheit zur Speicherung von Werbedaten" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Eine Einheit zur Speicherung von Analysedaten" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Speichern von Antworten aus den APIs von Anbietern" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Datenbank sichern" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Sicherungsmedien" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Rechtliche Optionen" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "E-Mail-Optionen" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Merkmale Optionen" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "SEO-Optionen" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "System Options" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -169,7 +169,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -193,9 +193,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Willkommen bei der eVibes-Dokumentation.\n" +"Willkommen bei der Schon-Dokumentation.\n" "\n" -"eVibes ist eine leistungsstarke E-Commerce-Plattform, die es Ihnen ermöglicht, mit nur wenigen Klicks einen Online-Shop jeglicher Art zu eröffnen und zu verwalten.\n" +"Schon ist eine leistungsstarke E-Commerce-Plattform, die es Ihnen ermöglicht, mit nur wenigen Klicks einen Online-Shop jeglicher Art zu eröffnen und zu verwalten.\n" "\n" "## Hauptmerkmale\n" "- **Produktkatalog:** Verwalten Sie Produktdetails, Preise, Bestand und Verfügbarkeit über mehrere Kategorien hinweg.\n" @@ -214,7 +214,7 @@ msgstr "" "- **GraphQL API:** Verfügbar unter `/graphql/` mit GraphiQL-Schnittstelle für interaktive Abfragen\n" "\n" "## Authentifizierung\n" -"- Die Authentifizierung erfolgt über JWT-Tokens. Fügen Sie das Token in den `X-EVIBES-AUTH`-Header Ihrer Anfragen im Format `Bearer ` ein.\n" +"- Die Authentifizierung erfolgt über JWT-Tokens. Fügen Sie das Token in den `X-SCHON-AUTH`-Header Ihrer Anfragen im Format `Bearer ` ein.\n" "- Die Lebensdauer des Zugangstokens beträgt {access_lifetime} {access_unit}.\n" "- Die Lebensdauer von Auffrischungstoken beträgt {refresh_hours} Stunden.\n" "- Refresh-Tokens werden automatisch rotiert und nach der Verwendung ungültig gemacht, um die Sicherheit zu erhöhen.\n" @@ -237,66 +237,66 @@ msgstr "" "## Version\n" "Aktuelle API-Version: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Mein Standort" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Gesundheit" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Unterstützung" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menü" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Dashboard" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Konfigurieren Sie" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Regelmäßige Aufgaben" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Aufgabentafel" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Schnelle Links" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Benutzer" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Gruppen" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Bestellungen" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Produkte" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Kategorien" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Marken" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/en_GB/LC_MESSAGES/django.po b/schon/locale/en_GB/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/en_GB/LC_MESSAGES/django.po rename to schon/locale/en_GB/LC_MESSAGES/django.po index 6dd34312..0a11428e 100644 --- a/evibes/locale/en_GB/LC_MESSAGES/django.po +++ b/schon/locale/en_GB/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -17,19 +17,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Name of the company" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Address of the company" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Phone number of the company" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -37,121 +37,121 @@ msgstr "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "Shows if the taxes are already included in product's selling prices" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Exchange rate API key" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!DO NOT CHANGE!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP host" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTP port" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Use TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Use SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "SMTP username" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "SMTP password" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Mail from option" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "How many days we store messages from anonymous users" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "How many days we store messages from authenticated users" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Disable buy functionality" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "OpenStreetMap Nominatim API URL" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI API Key" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Abstract API Key" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP Proxy" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "An entity for storing advertisiment data" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "An entity for storing analytics data" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Save responses from vendors' APIs" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Backup database" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Backup media" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Legal Options" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Email Options" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Features Options" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "SEO Options" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "System Options" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -170,7 +170,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -194,9 +194,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -215,7 +215,7 @@ msgstr "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -238,66 +238,66 @@ msgstr "" "## Version\n" "Current API version: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "My site" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Health" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Support" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Dashboard" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Config" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Periodic Tasks" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Taskboard" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Quick Links" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Users" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Groups" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Orders" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Products" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Categories" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Brands" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/en_US/LC_MESSAGES/django.po b/schon/locale/en_US/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/en_US/LC_MESSAGES/django.po rename to schon/locale/en_US/LC_MESSAGES/django.po index 04410821..36366b18 100644 --- a/evibes/locale/en_US/LC_MESSAGES/django.po +++ b/schon/locale/en_US/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Name of the company" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Address of the company" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Phone number of the company" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,121 +33,121 @@ msgstr "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "Shows if the taxes are already included in product's selling prices" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Exchange rate API key" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!DO NOT CHANGE!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP host" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTP port" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Use TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Use SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "SMTP username" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "SMTP password" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Mail from option" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "How many days we store messages from anonymous users" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "How many days we store messages from authenticated users" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Disable buy functionality" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "OpenStreetMap Nominatim API URL" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI API Key" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Abstract API Key" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP Proxy" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "An entity for storing advertisiment data" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "An entity for storing analytics data" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Save responses from vendors' APIs" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Backup database" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Backup media" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Legal Options" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Email Options" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Features Options" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "SEO Options" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "System Options" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -166,7 +166,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -190,9 +190,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -211,7 +211,7 @@ msgstr "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -234,66 +234,66 @@ msgstr "" "## Version\n" "Current API version: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "My site" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Health" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Support" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Dashboard" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Config" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Periodic Tasks" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Taskboard" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Quick Links" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Users" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Groups" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Orders" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Products" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Categories" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Brands" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/es_ES/LC_MESSAGES/django.po b/schon/locale/es_ES/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/es_ES/LC_MESSAGES/django.po rename to schon/locale/es_ES/LC_MESSAGES/django.po index a738eb2e..f06e54ad 100644 --- a/evibes/locale/es_ES/LC_MESSAGES/django.po +++ b/schon/locale/es_ES/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Nombre de la empresa" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Dirección de la empresa" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Número de teléfono de la empresa" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,123 +33,123 @@ msgstr "" "Tipo impositivo en la jurisdicción de su empresa. Deje 0 si no desea " "procesar los impuestos." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "" "Muestra si los impuestos ya están incluidos en los precios de venta del " "producto" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Clave API de tipo de cambio" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!NO CAMBIES!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "Host SMTP" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "Puerto SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Utilizar TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Utilizar SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "Nombre de usuario SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "Contraseña SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Opción Correo de" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Cuántos días almacenamos los mensajes de usuarios anónimos" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Cuántos días almacenamos los mensajes de los usuarios autenticados" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Desactivar la función de compra" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "URL de la API Nominatim de OpenStreetMap" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "Clave API de OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Clave API abstracta" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "Proxy HTTP" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Una entidad para almacenar datos publicitarios" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Una entidad para almacenar datos analíticos" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Guardar las respuestas de las API de los proveedores" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Copia de seguridad de la base de datos" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Medios de copia de seguridad" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Opciones legales" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Opciones de correo electrónico" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Características Opciones" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "Opciones SEO" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Opciones del sistema" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -168,7 +168,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -192,9 +192,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Bienvenido a la documentación de eVibes.\n" +"Bienvenido a la documentación de Schon.\n" "\n" -"eVibes es una potente plataforma de comercio electrónico que le permite lanzar y gestionar una tienda en línea de cualquier tipo en tan sólo unos clics.\n" +"Schon es una potente plataforma de comercio electrónico que le permite lanzar y gestionar una tienda en línea de cualquier tipo en tan sólo unos clics.\n" "\n" "## Características principales\n" "- **Catálogo de productos:** Gestione los detalles de los productos, precios, inventario y disponibilidad en múltiples categorías.\n" @@ -213,7 +213,7 @@ msgstr "" "- API GraphQL:** Disponible en `/graphql/` con interfaz GraphiQL para consultas interactivas\n" "\n" "## Autenticación\n" -"- La autenticación se gestiona mediante tokens JWT. Incluya el token en la cabecera `X-EVIBES-AUTH` de sus peticiones con el formato `Bearer `.\n" +"- La autenticación se gestiona mediante tokens JWT. Incluya el token en la cabecera `X-SCHON-AUTH` de sus peticiones con el formato `Bearer `.\n" "- La duración del token de acceso es {access_lifetime} {access_unit}.\n" "- La duración del token de actualización es de {refresh_hours} horas.\n" "- Los tokens de actualización se rotan automáticamente y se invalidan después de su uso para mejorar la seguridad.\n" @@ -236,66 +236,66 @@ msgstr "" "## Versión\n" "Versión actual de la API: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Mi sitio" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Salud" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Ayuda" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menú" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Cuadro de mandos" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Configurar" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Tareas periódicas" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Taskboard" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Enlaces rápidos" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Usuarios" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Grupos" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Pedidos" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Productos" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Categorías" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Marcas" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/hi_IN/LC_MESSAGES/django.po b/schon/locale/fa_IR/LC_MESSAGES/django.po similarity index 72% rename from evibes/locale/hi_IN/LC_MESSAGES/django.po rename to schon/locale/fa_IR/LC_MESSAGES/django.po index 0908c04b..0fa7dae0 100644 --- a/evibes/locale/hi_IN/LC_MESSAGES/django.po +++ b/schon/locale/fa_IR/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -16,139 +16,139 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." msgstr "" -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and " +"Schon is a powerful e-commerce platform that allows you to launch and " "manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" @@ -180,7 +180,7 @@ msgid "" "\n" "## Authentication\n" "- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for " @@ -206,66 +206,66 @@ msgid "" "Current API version: {version}\n" msgstr "" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "" diff --git a/evibes/locale/fr_FR/LC_MESSAGES/django.po b/schon/locale/fr_FR/LC_MESSAGES/django.po similarity index 79% rename from evibes/locale/fr_FR/LC_MESSAGES/django.po rename to schon/locale/fr_FR/LC_MESSAGES/django.po index 344b8545..0c17eab4 100644 --- a/evibes/locale/fr_FR/LC_MESSAGES/django.po +++ b/schon/locale/fr_FR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Nom de l'entreprise" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Adresse de l'entreprise" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Numéro de téléphone de l'entreprise" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,126 +33,126 @@ msgstr "" "Taux d'imposition dans la juridiction de votre entreprise. Laissez 0 si vous" " ne souhaitez pas traiter les taxes." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "" "Indique si les taxes sont déjà incluses dans le prix de vente du produit." -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Clé API pour le taux de change" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!NE PAS CHANGER !!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "Hôte SMTP" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTP port" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Utiliser TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Use SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "Nom d'utilisateur SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "Mot de passe SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Option Courrier de" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "" "Pendant combien de jours les messages des utilisateurs anonymes sont-ils " "conservés ?" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "" "Pendant combien de jours les messages des utilisateurs authentifiés sont-ils" " conservés ?" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Désactiver la fonctionnalité d'achat" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "URL de l'API OpenStreetMap Nominatim" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI API Key" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Clé API abstraite" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP Proxy" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Une entité pour stocker des données publicitaires" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Une entité pour stocker des données analytiques" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Sauvegarder les réponses des API des fournisseurs" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Sauvegarde de la base de données" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Supports de sauvegarde" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Options juridiques" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Options de courrier électronique" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Caractéristiques Options" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "Options de référencement" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Options du système" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -171,7 +171,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -195,9 +195,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Bienvenue dans la documentation d'eVibes.\n" +"Bienvenue dans la documentation d'Schon.\n" "\n" -"eVibes est une puissante plateforme de commerce électronique qui vous permet de lancer et de gérer une boutique en ligne de tout type en quelques clics.\n" +"Schon est une puissante plateforme de commerce électronique qui vous permet de lancer et de gérer une boutique en ligne de tout type en quelques clics.\n" "\n" "## Fonctionnalités principales\n" "- Catalogue de produits:** Gérer les détails des produits, les prix, l'inventaire et la disponibilité à travers plusieurs catégories.\n" @@ -216,7 +216,7 @@ msgstr "" "- API GraphQL:** Disponible sur `/graphql/` avec l'interface GraphiQL pour les requêtes interactives.\n" "\n" "## Authentification\n" -"- L'authentification est gérée par des jetons JWT. Incluez le jeton dans l'en-tête `X-EVIBES-AUTH` de vos requêtes au format `Bearer `.\n" +"- L'authentification est gérée par des jetons JWT. Incluez le jeton dans l'en-tête `X-SCHON-AUTH` de vos requêtes au format `Bearer `.\n" "- La durée de vie du jeton d'accès est de {access_lifetime} {access_unit}.\n" "- La durée de vie du jeton de rafraîchissement est de {refresh_hours} heures.\n" "- Les jetons de rafraîchissement font l'objet d'une rotation automatique et sont invalidés après utilisation pour une meilleure sécurité.\n" @@ -239,66 +239,66 @@ msgstr "" "## Version\n" "Version actuelle de l'API : {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Mon site" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Santé" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Soutien" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Tableau de bord" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Config" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Tâches périodiques" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Tableau des tâches" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Liens rapides" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Utilisateurs" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Groupes" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Commandes" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Produits" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Catégories" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Marques" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/he_IL/LC_MESSAGES/django.po b/schon/locale/he_IL/LC_MESSAGES/django.po similarity index 76% rename from evibes/locale/he_IL/LC_MESSAGES/django.po rename to schon/locale/he_IL/LC_MESSAGES/django.po index 404984f7..d0194886 100644 --- a/evibes/locale/he_IL/LC_MESSAGES/django.po +++ b/schon/locale/he_IL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,140 +13,140 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "שם החברה" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "כתובת החברה" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "מספר הטלפון של החברה" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." msgstr "" "שיעור המס בתחום השיפוט של החברה שלך. השאר 0 אם אינך מעוניין לעבד מסים." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "מציג אם המסים כבר כלולים במחיר המכירה של המוצר." -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "מפתח API לשער החליפין" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!אין לשנות!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "מארח SMTP" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "יציאת SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "השתמש ב-TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "השתמש ב-SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "שם משתמש SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "סיסמת SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "דואר מאפשרות" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "כמה ימים אנו שומרים הודעות ממשתמשים אנונימיים" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "כמה ימים אנו שומרים הודעות ממשתמשים מאומתים" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "השבת פונקציונליות הרכישה" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "כתובת ה-API של OpenStreetMap Nominatim" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "מפתח API של OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "מפתח API מופשט" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "פרוקסי HTTP" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "ישות לאחסון נתוני פרסום" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "ישות לאחסון נתוני ניתוח" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "שמור תגובות מ-API של ספקים" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "גיבוי מסד נתונים" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "מדיה גיבוי" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "אפשרויות משפטיות" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "אפשרויות דוא\"ל" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "אפשרויות תכונות" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "אפשרויות SEO" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "אפשרויות מערכת" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -165,7 +165,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -188,75 +188,75 @@ msgid "" "## Version\n" "Current API version: {version}\n" msgstr "" -"\nברוכים הבאים לתיעוד של eVibes. eVibes היא פלטפורמת מסחר אלקטרוני עוצמתית המאפשרת לכם להקים ולנהל חנות מקוונת מכל סוג שהוא בכמה לחיצות בלבד. ## תכונות עיקריות - **קטלוג מוצרים:** ניהול פרטי מוצרים, מחירים, מלאי וזמינות בקטגוריות מרובות. - **ניהול הזמנות:** עיבוד הזמנות, מעקב אחר ביצוען וטיפול יעיל בבקשות לקוחות.\n" +"\nברוכים הבאים לתיעוד של Schon. Schon היא פלטפורמת מסחר אלקטרוני עוצמתית המאפשרת לכם להקים ולנהל חנות מקוונת מכל סוג שהוא בכמה לחיצות בלבד. ## תכונות עיקריות - **קטלוג מוצרים:** ניהול פרטי מוצרים, מחירים, מלאי וזמינות בקטגוריות מרובות. - **ניהול הזמנות:** עיבוד הזמנות, מעקב אחר ביצוען וטיפול יעיל בבקשות לקוחות.\n" "- **אימות ואישור:** אימות משתמשים מקיף באמצעות אסימוני JWT והרשאות מבוססות תפקידים. - **עיבוד תשלומים:** שלבו מספר שערי תשלום ונהלו עסקאות בצורה מאובטחת. - **ניהול בלוג ותוכן:** צרו ונהלו פוסטים בבלוג ותוכן שיווקי לחנות שלכם. - **פעולות B2B:** נקודות קצה ייעודיות לעסקאות בין עסקים וניהול סיטונאי.\n" "- **תמיכה בריבוי שפות:** שירות ללקוחות ברחבי העולם עם יכולות בינלאומיות מלאות (i18n). - **אינטגרציות מותאמות אישית:** ארכיטקטורת API ניתנת להרחבה לשילוב עם פלטפורמות ושירותים חיצוניים. - **ניתוח ודיווח:** יצירת דוחות מפורטים על מכירות, מלאי והתנהגות לקוחות. - **עדכונים בזמן אמת:** קבלת נתונים בזמן אמת על רמות המלאי, סטטוס ההזמנות ושינויים במחירים.\n" "\n" -"## ממשקי API זמינים - **REST API:** ממשק RESTful מלא (תיעוד זה) - **GraphQL API:** זמין ב-`/graphql/` עם ממשק GraphiQL לשאילתות אינטראקטיביות ## אימות - האימות מתבצע באמצעות אסימוני JWT. כלול את האסימון בכותרת `X-EVIBES-AUTH` של בקשותיך בפורמט `Bearer `.\n" +"## ממשקי API זמינים - **REST API:** ממשק RESTful מלא (תיעוד זה) - **GraphQL API:** זמין ב-`/graphql/` עם ממשק GraphiQL לשאילתות אינטראקטיביות ## אימות - האימות מתבצע באמצעות אסימוני JWT. כלול את האסימון בכותרת `X-SCHON-AUTH` של בקשותיך בפורמט `Bearer `.\n" "- אורך חיי אסימון הגישה הוא {access_lifetime} {access_unit}. - אורך חיי אסימון הרענון הוא {refresh_hours} שעות. - אסימוני הרענון מסתובבים באופן אוטומטי ומבוטלים לאחר השימוש לשם אבטחה משופרת. ## בינלאומיות (i18n) - הגדר את הכותרת `Accept-Language` כדי לציין את השפה המועדפת עליך (לדוגמה, `Accept-Language: en-US`).\n" "- ניתן לאחזר את השפות הזמינות מנקודת הקצה `/app/languages/`. - כל התוכן המוצג למשתמש תומך במספר שפות באופן מובנה. ## פורמטים של תגובה ה-API תומך במספר פורמטים של תגובה: - **JSON** (ברירת מחדל, בפורמט camelCase) - **XML** (הוסף `?format=xml` או הגדר `Accept: application/xml`)\n" "- **YAML** (הוסף `?format=yaml` או הגדר `Accept: application/x-yaml`) ## תקינות וניטור - בדיקות תקינות: `/health/` - מדדי Prometheus: `/prometheus/metrics/` ## גרסה גרסת ה-API הנוכחית: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "האתר שלי" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "בריאות" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "תמיכה" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "תפריט" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "לוח מחוונים" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "תצורה" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "משימות תקופתיות" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "לוח משימות" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "קישורים מהירים" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "משתמשים" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "קבוצות" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "הזמנות" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "מוצרים" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "קטגוריות" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "מותגים" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "פוסטים בבלוג" diff --git a/evibes/locale/fa_IR/LC_MESSAGES/django.po b/schon/locale/hi_IN/LC_MESSAGES/django.po similarity index 72% rename from evibes/locale/fa_IR/LC_MESSAGES/django.po rename to schon/locale/hi_IN/LC_MESSAGES/django.po index 0908c04b..0fa7dae0 100644 --- a/evibes/locale/fa_IR/LC_MESSAGES/django.po +++ b/schon/locale/hi_IN/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -16,139 +16,139 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." msgstr "" -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and " +"Schon is a powerful e-commerce platform that allows you to launch and " "manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" @@ -180,7 +180,7 @@ msgid "" "\n" "## Authentication\n" "- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for " @@ -206,66 +206,66 @@ msgid "" "Current API version: {version}\n" msgstr "" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "" diff --git a/evibes/locale/hr_HR/LC_MESSAGES/django.po b/schon/locale/hr_HR/LC_MESSAGES/django.po similarity index 72% rename from evibes/locale/hr_HR/LC_MESSAGES/django.po rename to schon/locale/hr_HR/LC_MESSAGES/django.po index 0908c04b..0fa7dae0 100644 --- a/evibes/locale/hr_HR/LC_MESSAGES/django.po +++ b/schon/locale/hr_HR/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -16,139 +16,139 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." msgstr "" -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and " +"Schon is a powerful e-commerce platform that allows you to launch and " "manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" @@ -180,7 +180,7 @@ msgid "" "\n" "## Authentication\n" "- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for " @@ -206,66 +206,66 @@ msgid "" "Current API version: {version}\n" msgstr "" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "" diff --git a/evibes/locale/id_ID/LC_MESSAGES/django.po b/schon/locale/id_ID/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/id_ID/LC_MESSAGES/django.po rename to schon/locale/id_ID/LC_MESSAGES/django.po index a13c4366..f2d965d2 100644 --- a/evibes/locale/id_ID/LC_MESSAGES/django.po +++ b/schon/locale/id_ID/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Nama perusahaan" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Alamat perusahaan" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Nomor telepon perusahaan" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,121 +33,121 @@ msgstr "" "Tarif pajak dalam yurisdiksi perusahaan Anda. Biarkan 0 jika Anda tidak " "ingin memproses pajak." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "Menunjukkan apakah pajak sudah termasuk dalam harga jual produk" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Kunci API nilai tukar" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!JANGAN BERUBAH!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "Host SMTP" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "Port SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Gunakan TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Gunakan SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "Nama pengguna SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "Kata sandi SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Opsi Mail from (Surat dari)" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Berapa hari kami menyimpan pesan dari pengguna anonim" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Berapa hari kami menyimpan pesan dari pengguna yang diautentikasi" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Menonaktifkan fungsionalitas beli" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "URL API OpenStreetMap Nominatim" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "Kunci API OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Kunci API Abstrak" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "Proksi HTTP" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Entitas untuk menyimpan data iklan" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Entitas untuk menyimpan data analitik" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Menyimpan tanggapan dari API vendor" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Mencadangkan basis data" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Media cadangan" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Opsi Hukum" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Opsi Email" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Opsi Fitur" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "Opsi SEO" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Opsi Sistem" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -166,7 +166,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -190,9 +190,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Selamat datang di dokumentasi eVibes.\n" +"Selamat datang di dokumentasi Schon.\n" "\n" -"eVibes adalah platform e-commerce yang kuat yang memungkinkan Anda untuk meluncurkan dan mengelola toko online dalam bentuk apa pun hanya dengan beberapa klik.\n" +"Schon adalah platform e-commerce yang kuat yang memungkinkan Anda untuk meluncurkan dan mengelola toko online dalam bentuk apa pun hanya dengan beberapa klik.\n" "\n" "## Fitur Utama\n" "- Katalog Produk:** Kelola detail produk, harga, inventaris, dan ketersediaan di berbagai kategori.\n" @@ -211,7 +211,7 @@ msgstr "" "- API GraphQL:** Tersedia di `/graphql/` dengan antarmuka GraphiQL untuk kueri interaktif\n" "\n" "## Otentikasi\n" -"- Otentikasi ditangani melalui token JWT. Sertakan token di header `X-EVIBES-AUTH` pada permintaan Anda dalam format `Bearer `.\n" +"- Otentikasi ditangani melalui token JWT. Sertakan token di header `X-SCHON-AUTH` pada permintaan Anda dalam format `Bearer `.\n" "- Masa berlaku token akses adalah {access_lifetime} {access_unit}.\n" "- Masa berlaku token refresh adalah {refresh_hours} jam.\n" "- Refresh token secara otomatis dirotasi dan dibatalkan setelah digunakan untuk meningkatkan keamanan.\n" @@ -234,66 +234,66 @@ msgstr "" "## Versi\n" "Versi API saat ini: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Situs saya" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Kesehatan" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Dukungan" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Dasbor" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Konfigurasi" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Tugas Berkala" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Papan tugas" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Tautan Cepat" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Pengguna" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Grup" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Pesanan" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Produk" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Kategori" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Merek" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Posting blog" diff --git a/evibes/locale/it_IT/LC_MESSAGES/django.po b/schon/locale/it_IT/LC_MESSAGES/django.po similarity index 79% rename from evibes/locale/it_IT/LC_MESSAGES/django.po rename to schon/locale/it_IT/LC_MESSAGES/django.po index 9933aec6..f5abc7ae 100644 --- a/evibes/locale/it_IT/LC_MESSAGES/django.po +++ b/schon/locale/it_IT/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Nome della società" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Indirizzo dell'azienda" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Numero di telefono dell'azienda" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,122 +33,122 @@ msgstr "" "Aliquota fiscale nella giurisdizione della vostra azienda. Lasciare 0 se non" " si desidera elaborare le imposte." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "" "Mostra se le tasse sono già incluse nel prezzo di vendita del prodotto." -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Chiave API del tasso di cambio" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!! NON CAMBIARE!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "Host SMTP" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "Porta SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Utilizzare TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Utilizzare SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "Nome utente SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "Password SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Opzione Posta da" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Per quanti giorni conserviamo i messaggi degli utenti anonimi" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Per quanti giorni conserviamo i messaggi degli utenti autenticati" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Disattivare la funzionalità di acquisto" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "URL dell'API OpenStreetMap Nominatim" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "Chiave API OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Chiave API astratta" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "Proxy HTTP" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Un'entità per la memorizzazione dei dati pubblicitari" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Un'entità per la memorizzazione dei dati analitici" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Salvare le risposte dalle API dei fornitori" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Database di backup" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Supporti di backup" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Opzioni legali" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Opzioni e-mail" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Caratteristiche Opzioni" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "Opzioni SEO" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Opzioni di sistema" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -167,7 +167,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -191,9 +191,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Benvenuti nella documentazione di eVibes.\n" +"Benvenuti nella documentazione di Schon.\n" "\n" -"eVibes è una potente piattaforma di e-commerce che consente di lanciare e gestire un negozio online di qualsiasi tipo in pochi clic.\n" +"Schon è una potente piattaforma di e-commerce che consente di lanciare e gestire un negozio online di qualsiasi tipo in pochi clic.\n" "\n" "## Caratteristiche principali\n" "- **Catalogo dei prodotti:** Gestione dei dettagli dei prodotti, dei prezzi, delle scorte e della disponibilità di più categorie.\n" @@ -212,7 +212,7 @@ msgstr "" "- API **GraphQL:** Disponibile su `/graphql/` con interfaccia GraphiQL per le query interattive.\n" "\n" "## Autenticazione\n" -"- L'autenticazione è gestita tramite token JWT. Includere il token nell'intestazione `X-EVIBES-AUTH` delle richieste nel formato `Bearer `.\n" +"- L'autenticazione è gestita tramite token JWT. Includere il token nell'intestazione `X-SCHON-AUTH` delle richieste nel formato `Bearer `.\n" "- La durata di vita del token di accesso è {access_lifetime} {access_unit}.\n" "- La durata del token di aggiornamento è di {refresh_hours} ore.\n" "- I token di aggiornamento vengono ruotati e invalidati automaticamente dopo l'uso per una maggiore sicurezza.\n" @@ -235,66 +235,66 @@ msgstr "" "## Versione\n" "Versione attuale dell'API: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Il mio sito" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Salute" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Supporto" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Cruscotto" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Configurazione" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Compiti periodici" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Lavagna" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Collegamenti rapidi" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Utenti" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Gruppi" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Ordini" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Prodotti" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Categorie" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Marche" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/ja_JP/LC_MESSAGES/django.po b/schon/locale/ja_JP/LC_MESSAGES/django.po similarity index 79% rename from evibes/locale/ja_JP/LC_MESSAGES/django.po rename to schon/locale/ja_JP/LC_MESSAGES/django.po index 13a6600c..1f845b34 100644 --- a/evibes/locale/ja_JP/LC_MESSAGES/django.po +++ b/schon/locale/ja_JP/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,139 +13,139 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "会社名" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "会社住所" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "会社の電話番号" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." msgstr "貴社管轄の税率。税務処理を行わない場合は「0」のままにしてください。" -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "商品の販売価格に税金が含まれているかどうかを表示します。" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "為替レートAPIキー" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "変えないでくれ" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTPホスト" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTPポート" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "TLSを使用する" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "SSLの使用" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "SMTPユーザー名" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "SMTPパスワード" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "オプションからのメール" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "匿名ユーザーからのメッセージの保存日数" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "認証されたユーザーからのメッセージを何日間保存するか" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "購入機能を無効にする" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "OpenStreetMap Nominatim API URL" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI APIキー" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "抽象APIキー" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTPプロキシ" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "広告データを保存するエンティティ" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "分析データを保存するエンティティ" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "ベンダーのAPIからの応答を保存する" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "データベースのバックアップ" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "バックアップ・メディア" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "法的オプション" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Eメールオプション" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "機能オプション" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "SEOオプション" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "システムオプション" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -164,7 +164,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -188,9 +188,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"eVibes のドキュメントへようこそ。\n" +"Schon のドキュメントへようこそ。\n" "\n" -"eVibesは、数クリックであらゆる種類のオンラインストアを立ち上げ、管理できる強力なeコマースプラットフォームです。\n" +"Schonは、数クリックであらゆる種類のオンラインストアを立ち上げ、管理できる強力なeコマースプラットフォームです。\n" "\n" "## 主な機能\n" "- 商品カタログ:** 複数のカテゴリにまたがる商品の詳細、価格、在庫、在庫状況を管理します。\n" @@ -209,7 +209,7 @@ msgstr "" "- **GraphQL API:** `/graphql/` で利用可能で、対話的なクエリのための GraphiQL インターフェースがある。\n" "\n" "## 認証\n" -"- 認証はJWTトークンで行われる。リクエストの `X-EVIBES-AUTH` ヘッダーに `Bearer ` という形式でトークンを含めてください。\n" +"- 認証はJWTトークンで行われる。リクエストの `X-SCHON-AUTH` ヘッダーに `Bearer ` という形式でトークンを含めてください。\n" "- アクセストークンの有効期限は {access_lifetime} です。{access_unit}です。\n" "- リフレッシュ・トークンの有効期限は {refresh_hours} 時間です。\n" "- リフレッシュ・トークンはセキュリティ強化のため、使用後に自動的にローテーションされ無効化されます。\n" @@ -232,66 +232,66 @@ msgstr "" "## バージョン\n" "現在のAPIバージョン:現在のAPIバージョン: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "私のサイト" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "健康" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "サポート" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "メニュー" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "ダッシュボード" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "コンフィグ" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "定期的なタスク" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "タスクボード" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "クイックリンク" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "ユーザー" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "グループ" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "受注状況" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "製品紹介" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "カテゴリー" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "ブランド" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "ブログ記事" diff --git a/evibes/locale/kk_KZ/LC_MESSAGES/django.po b/schon/locale/kk_KZ/LC_MESSAGES/django.po similarity index 72% rename from evibes/locale/kk_KZ/LC_MESSAGES/django.po rename to schon/locale/kk_KZ/LC_MESSAGES/django.po index 0908c04b..0fa7dae0 100644 --- a/evibes/locale/kk_KZ/LC_MESSAGES/django.po +++ b/schon/locale/kk_KZ/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -16,139 +16,139 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." msgstr "" -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and " +"Schon is a powerful e-commerce platform that allows you to launch and " "manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" @@ -180,7 +180,7 @@ msgid "" "\n" "## Authentication\n" "- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for " @@ -206,66 +206,66 @@ msgid "" "Current API version: {version}\n" msgstr "" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "" diff --git a/evibes/locale/ko_KR/LC_MESSAGES/django.po b/schon/locale/ko_KR/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/ko_KR/LC_MESSAGES/django.po rename to schon/locale/ko_KR/LC_MESSAGES/django.po index 7067bc7f..fc478179 100644 --- a/evibes/locale/ko_KR/LC_MESSAGES/django.po +++ b/schon/locale/ko_KR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,139 +13,139 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "회사 이름" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "회사 주소" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "회사 전화번호" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." msgstr "회사 관할 지역의 세율입니다. 세금을 처리하지 않으려면 0을 그대로 둡니다." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "제품 판매 가격에 세금이 이미 포함되어 있는지 표시합니다." -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "환율 API 키" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!변경하지 마세요!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP 호스트" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTP 포트" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "TLS 사용" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "SSL 사용" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "SMTP 사용자 이름" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "SMTP 비밀번호" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "메일 발신자 옵션" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "익명 사용자의 메시지를 보관하는 일수" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "인증된 사용자의 메시지를 보관하는 일수" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "구매 기능 비활성화" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "오픈스트리트맵 노미나팀 API URL" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI API 키" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "추상 API 키" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP 프록시" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "광고 데이터를 저장하는 엔티티" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "분석 데이터를 저장하는 엔티티" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "공급업체 API의 응답 저장하기" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "백업 데이터베이스" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "백업 미디어" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "법적 옵션" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "이메일 옵션" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "기능 옵션" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "SEO 옵션" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "시스템 옵션" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -164,7 +164,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -188,9 +188,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"eVibes 문서에 오신 것을 환영합니다.\n" +"Schon 문서에 오신 것을 환영합니다.\n" "\n" -"eVibes는 클릭 몇 번으로 모든 종류의 온라인 스토어를 시작하고 관리할 수 있는 강력한 전자상거래 플랫폼입니다.\n" +"Schon는 클릭 몇 번으로 모든 종류의 온라인 스토어를 시작하고 관리할 수 있는 강력한 전자상거래 플랫폼입니다.\n" "\n" "주요 기능 ## 주요 기능\n" "- **제품 카탈로그:** 여러 카테고리에서 제품 세부 정보, 가격, 재고 및 가용성을 관리합니다.\n" @@ -209,7 +209,7 @@ msgstr "" "- GraphQL API:** 대화형 쿼리를 위한 GraphiQL 인터페이스로 `/graphql/`에서 사용 가능\n" "\n" "## 인증\n" -"- 인증은 JWT 토큰을 통해 처리됩니다. 토큰을 요청의 `X-EVIBES-AUTH` 헤더에 `Bearer ` 형식으로 포함하세요.\n" +"- 인증은 JWT 토큰을 통해 처리됩니다. 토큰을 요청의 `X-SCHON-AUTH` 헤더에 `Bearer ` 형식으로 포함하세요.\n" "- 액세스 토큰 수명은 {access_lifetime}입니다. {access_unit}입니다.\n" "- 새로 고침 토큰 수명은 {refresh_hours} 시간입니다.\n" "- 새로 고침 토큰은 보안 강화를 위해 사용 후 자동으로 교체되고 무효화됩니다.\n" @@ -232,66 +232,66 @@ msgstr "" "## 버전\n" "현재 API 버전입니다: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "내 사이트" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "건강" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "지원" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "메뉴" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "대시보드" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "구성" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "정기 작업" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "작업 보드" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "빠른 링크" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "사용자" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "그룹" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "주문" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "제품" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "카테고리" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "브랜드" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "블로그 게시물" diff --git a/evibes/locale/nl_NL/LC_MESSAGES/django.po b/schon/locale/nl_NL/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/nl_NL/LC_MESSAGES/django.po rename to schon/locale/nl_NL/LC_MESSAGES/django.po index 815c86ae..9c099a00 100644 --- a/evibes/locale/nl_NL/LC_MESSAGES/django.po +++ b/schon/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Naam van het bedrijf" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Adres van het bedrijf" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Telefoonnummer van het bedrijf" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,123 +33,123 @@ msgstr "" "Belastingtarief in het rechtsgebied van je bedrijf. Laat 0 staan als je geen" " belastingen wilt verwerken." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "" "Geeft aan of de belastingen al zijn opgenomen in de verkoopprijzen van het " "product" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Wisselkoers API sleutel" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "NIET VERANDEREN!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP host" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTP poort" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "TLS gebruiken" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "SSL gebruiken" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "SMTP gebruikersnaam" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "SMTP wachtwoord" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Mail van optie" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Hoeveel dagen we berichten van anonieme gebruikers bewaren" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Hoeveel dagen we berichten van geverifieerde gebruikers bewaren" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Koopfunctie uitschakelen" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "OpenStreetMap Nominatim API URL" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI API sleutel" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Abstracte API-sleutel" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP-proxy" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Een entiteit voor het opslaan van adverteerdersgegevens" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Een entiteit voor het opslaan van analytische gegevens" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Reacties opslaan van API's van leveranciers" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Back-up database" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Back-up media" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Juridische opties" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "E-mailopties" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Functies Opties" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "SEO Opties" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Systeemopties" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -168,7 +168,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -192,9 +192,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Welkom bij de eVibes documentatie.\n" +"Welkom bij de Schon documentatie.\n" "\n" -"eVibes is een krachtig e-commerce platform waarmee je in een paar klikken een online winkel van elk type kunt starten en beheren.\n" +"Schon is een krachtig e-commerce platform waarmee je in een paar klikken een online winkel van elk type kunt starten en beheren.\n" "\n" "## Belangrijkste functies\n" "- **Productcatalogus:**Beheer productgegevens, prijzen, voorraad en beschikbaarheid in meerdere categorieën.\n" @@ -213,7 +213,7 @@ msgstr "" "- **GraphQL API:** Beschikbaar op `/graphql/` met GraphiQL interface voor interactieve queries\n" "\n" "## Authenticatie\n" -"- Authenticatie wordt afgehandeld via JWT tokens. Neem het token op in de `X-EVIBES-AUTH` header van je verzoeken in het formaat `Bearer `.\n" +"- Authenticatie wordt afgehandeld via JWT tokens. Neem het token op in de `X-SCHON-AUTH` header van je verzoeken in het formaat `Bearer `.\n" "- De levensduur van het toegangstoken is {access_lifetime} {access_unit}.\n" "- De levensduur van een verversingstoken is {refresh_hours} uur.\n" "- Refresh tokens worden automatisch geroteerd en ongeldig gemaakt na gebruik voor een betere beveiliging.\n" @@ -236,66 +236,66 @@ msgstr "" "## Versie\n" "Huidige API versie: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Mijn site" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Gezondheid" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Ondersteuning" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Dashboard" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Config" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Periodieke taken" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Taakbord" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Snelle links" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Gebruikers" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Groepen" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Bestellingen" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Producten" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Categorieën" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Merken" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/no_NO/LC_MESSAGES/django.po b/schon/locale/no_NO/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/no_NO/LC_MESSAGES/django.po rename to schon/locale/no_NO/LC_MESSAGES/django.po index cbde92f2..9894d3a7 100644 --- a/evibes/locale/no_NO/LC_MESSAGES/django.po +++ b/schon/locale/no_NO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Selskapets navn" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Selskapets adresse" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Telefonnummer til selskapet" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,121 +33,121 @@ msgstr "" "Skattesats i jurisdiksjonen til selskapet ditt. La 0 stå hvis du ikke ønsker" " å behandle skatter." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "Viser om avgiftene allerede er inkludert i produktets salgspris" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "API-nøkkel for valutakurs" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!! IKKE ENDRE !!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP-vert" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTP-port" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Bruk TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Bruk SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "SMTP-brukernavn" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "SMTP-passord" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Alternativet Mail fra" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Hvor mange dager vi lagrer meldinger fra anonyme brukere" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Hvor mange dager vi lagrer meldinger fra autentiserte brukere" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Deaktiver kjøpsfunksjonalitet" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "OpenStreetMap Nominatim API URL" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI API-nøkkel" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Abstrakt API-nøkkel" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP-proxy" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "En enhet for lagring av annonseringsdata" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "En enhet for lagring av analysedata" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Lagre svar fra leverandørers API-er" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Sikkerhetskopiering av database" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Backup-medier" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Juridiske alternativer" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "E-postalternativer" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Funksjoner Alternativer" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "SEO-alternativer" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Systemalternativer" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -166,7 +166,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -190,9 +190,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Velkommen til eVibes-dokumentasjonen.\n" +"Velkommen til Schon-dokumentasjonen.\n" "\n" -"eVibes er en kraftig e-handelsplattform som lar deg starte og administrere en hvilken som helst type nettbutikk med bare noen få klikk.\n" +"Schon er en kraftig e-handelsplattform som lar deg starte og administrere en hvilken som helst type nettbutikk med bare noen få klikk.\n" "\n" "## Nøkkelfunksjoner\n" "- Produktkatalog:** Administrer produktdetaljer, priser, lagerbeholdning og tilgjengelighet på tvers av flere kategorier.\n" @@ -211,7 +211,7 @@ msgstr "" "- GraphiQL API:** Tilgjengelig på `/graphql/` med GraphiQL-grensesnitt for interaktive spørringer\n" "\n" "## Autentisering\n" -"- Autentisering håndteres via JWT-tokens. Inkluder tokenet i `X-EVIBES-AUTH`-overskriften i forespørslene dine i formatet `Bearer `.\n" +"- Autentisering håndteres via JWT-tokens. Inkluder tokenet i `X-SCHON-AUTH`-overskriften i forespørslene dine i formatet `Bearer `.\n" "- Levetiden for tilgangstoken er {access_lifetime}. {access_unit}.\n" "- Levetiden for oppdateringstoken er {refresh_hours} timer.\n" "- Oppdateringstokener roteres automatisk og ugyldiggjøres etter bruk for økt sikkerhet.\n" @@ -234,66 +234,66 @@ msgstr "" "## Versjon\n" "Gjeldende API-versjon: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Min side" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Helse" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Støtte" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Meny" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Dashbord" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Konfigurer" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Periodiske oppgaver" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Oppgavetavle" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Hurtigkoblinger" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Brukere" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Grupper" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Bestillinger" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Produkter" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Kategorier" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Merkevarer" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogginnlegg" diff --git a/evibes/locale/pl_PL/LC_MESSAGES/django.po b/schon/locale/pl_PL/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/pl_PL/LC_MESSAGES/django.po rename to schon/locale/pl_PL/LC_MESSAGES/django.po index 16e48b03..7f909ded 100644 --- a/evibes/locale/pl_PL/LC_MESSAGES/django.po +++ b/schon/locale/pl_PL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Nazwa firmy" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Adres spółki" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Numer telefonu firmy" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,121 +33,121 @@ msgstr "" "Stawka podatku w jurysdykcji Twojej firmy. Pozostaw 0, jeśli nie chcesz " "przetwarzać podatków." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "Pokazuje, czy podatki są już uwzględnione w cenie sprzedaży produktu." -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Klucz API kursu wymiany" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!! NIE ZMIENIAJ !!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "Host SMTP" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "Port SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Używanie TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Używanie protokołu SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "Nazwa użytkownika SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "Hasło SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Poczta z opcji" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Ile dni przechowujemy wiadomości od anonimowych użytkowników?" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Ile dni przechowujemy wiadomości od uwierzytelnionych użytkowników?" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Wyłączenie funkcji kupowania" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "Adres URL interfejsu API OpenStreetMap Nominatim" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "Klucz API OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Abstrakcyjny klucz API" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "Serwer proxy HTTP" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Jednostka do przechowywania danych reklamowych" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Jednostka do przechowywania danych analitycznych" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Zapisywanie odpowiedzi z interfejsów API dostawców" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Kopia zapasowa bazy danych" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Nośniki kopii zapasowych" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Opcje prawne" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Opcje e-mail" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Opcje funkcji" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "Opcje SEO" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Opcje systemowe" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -166,7 +166,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -190,9 +190,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Witamy w dokumentacji eVibes.\n" +"Witamy w dokumentacji Schon.\n" "\n" -"eVibes to potężna platforma e-commerce, która umożliwia uruchomienie i zarządzanie sklepem internetowym dowolnego rodzaju za pomocą zaledwie kilku kliknięć.\n" +"Schon to potężna platforma e-commerce, która umożliwia uruchomienie i zarządzanie sklepem internetowym dowolnego rodzaju za pomocą zaledwie kilku kliknięć.\n" "\n" "## Kluczowe funkcje\n" "- Katalog produktów:** Zarządzanie szczegółami produktów, cenami, zapasami i dostępnością w wielu kategoriach.\n" @@ -211,7 +211,7 @@ msgstr "" "- API GraphQL:** Dostępne pod adresem `/graphql/` z interfejsem GraphiQL do interaktywnych zapytań.\n" "\n" "## Uwierzytelnianie\n" -"- Uwierzytelnianie jest obsługiwane za pomocą tokenów JWT. Dołącz token w nagłówku `X-EVIBES-AUTH` swoich żądań w formacie `Bearer `.\n" +"- Uwierzytelnianie jest obsługiwane za pomocą tokenów JWT. Dołącz token w nagłówku `X-SCHON-AUTH` swoich żądań w formacie `Bearer `.\n" "- Okres ważności tokenu dostępu wynosi {access_lifetime} {access_unit}.\n" "- Okres ważności tokenu odświeżania wynosi {refresh_hours} godzin.\n" "- Tokeny odświeżania są automatycznie obracane i unieważniane po użyciu w celu zwiększenia bezpieczeństwa.\n" @@ -234,66 +234,66 @@ msgstr "" "## Wersja\n" "Aktualna wersja API: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Moja strona" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Zdrowie" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Wsparcie" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Pulpit nawigacyjny" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Konfiguracja" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Zadania okresowe" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Tablica zadań" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Szybkie łącza" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Użytkownicy" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Grupy" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Zamówienia" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Produkty" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Kategorie" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Marki" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/pt_BR/LC_MESSAGES/django.po b/schon/locale/pt_BR/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/pt_BR/LC_MESSAGES/django.po rename to schon/locale/pt_BR/LC_MESSAGES/django.po index c45ad2b6..0a33dace 100644 --- a/evibes/locale/pt_BR/LC_MESSAGES/django.po +++ b/schon/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Nome da empresa" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Endereço da empresa" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Número de telefone da empresa" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,122 +33,122 @@ msgstr "" "Taxa de imposto na jurisdição de sua empresa. Deixe 0 se você não quiser " "processar impostos." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "" "Mostra se os impostos já estão incluídos nos preços de venda do produto" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Chave da API de taxa de câmbio" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!NÃO MUDE!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "Host SMTP" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "Porta SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Usar TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Usar SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "Nome de usuário SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "Senha SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Opção de correio eletrônico de" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Por quantos dias armazenamos mensagens de usuários anônimos" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Por quantos dias armazenamos mensagens de usuários autenticados" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Desativar a funcionalidade de compra" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "URL da API do OpenStreetMap Nominatim" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "Chave da API da OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Chave abstrata da API" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "Proxy HTTP" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Uma entidade para armazenar dados de propaganda" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Uma entidade para armazenar dados analíticos" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Salvar respostas das APIs dos fornecedores" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Banco de dados de backup" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Mídia de backup" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Opções legais" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Opções de e-mail" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Opções de recursos" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "Opções de SEO" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Opções do sistema" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -167,7 +167,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -191,9 +191,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Bem-vindo à documentação do eVibes.\n" +"Bem-vindo à documentação do Schon.\n" "\n" -"O eVibes é uma poderosa plataforma de comércio eletrônico que lhe permite lançar e gerenciar uma loja on-line de qualquer tipo com apenas alguns cliques.\n" +"O Schon é uma poderosa plataforma de comércio eletrônico que lhe permite lançar e gerenciar uma loja on-line de qualquer tipo com apenas alguns cliques.\n" "\n" "## Principais recursos\n" "- Catálogo de produtos:** Gerencie detalhes, preços, estoque e disponibilidade de produtos em várias categorias.\n" @@ -212,7 +212,7 @@ msgstr "" "- API GraphQL:** Disponível em `/graphql/` com interface GraphiQL para consultas interativas\n" "\n" "## Autenticação\n" -"- A autenticação é tratada por meio de tokens JWT. Inclua o token no cabeçalho `X-EVIBES-AUTH` de suas solicitações no formato `Bearer `.\n" +"- A autenticação é tratada por meio de tokens JWT. Inclua o token no cabeçalho `X-SCHON-AUTH` de suas solicitações no formato `Bearer `.\n" "- O tempo de vida do token de acesso é {access_lifetime} {access_unit}.\n" "- A vida útil do token de atualização é de {refresh_hours} horas.\n" "- Os tokens de atualização são automaticamente girados e invalidados após o uso para aumentar a segurança.\n" @@ -235,66 +235,66 @@ msgstr "" "## Versão\n" "Versão atual da API: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Meu site" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Saúde" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Suporte" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Painel de controle" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Configuração" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Tarefas periódicas" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Quadro de tarefas" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Links rápidos" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Usuários" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Grupos" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Pedidos" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Produtos" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Categorias" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Marcas" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Postagens em blogs" diff --git a/evibes/locale/ro_RO/LC_MESSAGES/django.po b/schon/locale/ro_RO/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/ro_RO/LC_MESSAGES/django.po rename to schon/locale/ro_RO/LC_MESSAGES/django.po index 30834bdd..18295028 100644 --- a/evibes/locale/ro_RO/LC_MESSAGES/django.po +++ b/schon/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Denumirea societății" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Adresa societății" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Numărul de telefon al societății" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,122 +33,122 @@ msgstr "" "Cota de impozitare în jurisdicția companiei dumneavoastră. Lăsați 0 dacă nu " "doriți să procesați taxele." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "" "Arată dacă taxele sunt deja incluse în prețurile de vânzare ale produsului" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Cheie API pentru rata de schimb" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!NU SCHIMBAȚI!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "Gazdă SMTP" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "Portul SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Utilizați TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Utilizați SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "Nume utilizator SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "Parola SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Posta de la opțiune" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Câte zile păstrăm mesajele de la utilizatorii anonimi" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Câte zile stocăm mesajele de la utilizatorii autentificați" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Dezactivați funcționalitatea de cumpărare" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "OpenStreetMap Nominatim API URL" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "Cheie API OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Cheie API abstractă" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "Proxy HTTP" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "O entitate pentru stocarea datelor privind publicitatea" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "O entitate pentru stocarea datelor analitice" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Salvați răspunsurile de la API-urile furnizorilor" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Backup bază de date" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Suporturi de rezervă" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Opțiuni juridice" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Opțiuni de e-mail" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Caracteristici Opțiuni" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "Opțiuni SEO" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Opțiuni de sistem" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -167,7 +167,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -191,9 +191,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Bine ați venit la documentația eVibes.\n" +"Bine ați venit la documentația Schon.\n" "\n" -"eVibes este o platformă puternică de comerț electronic care vă permite să lansați și să gestionați un magazin online de orice tip în doar câteva clicuri.\n" +"Schon este o platformă puternică de comerț electronic care vă permite să lansați și să gestionați un magazin online de orice tip în doar câteva clicuri.\n" "\n" "## Caracteristici principale\n" "- **Product Catalog:** Gestionați detaliile produselor, prețurile, inventarul și disponibilitatea în mai multe categorii.\n" @@ -212,7 +212,7 @@ msgstr "" "- **GraphQL API:** Disponibil la `/graphql/` cu interfața GraphiQL pentru interogări interactive\n" "\n" "## Autentificare\n" -"- Autentificarea este gestionată prin jetoane JWT. Includeți tokenul în antetul `X-EVIBES-AUTH` al cererilor dvs. în formatul `Bearer `.\n" +"- Autentificarea este gestionată prin jetoane JWT. Includeți tokenul în antetul `X-SCHON-AUTH` al cererilor dvs. în formatul `Bearer `.\n" "- Durata de viață a jetonului de acces este {access_lifetime} {access_unit}.\n" "- Durata de viață a jetonului de reînnoire este de {refresh_hours} ore.\n" "- Jetoanele de reîmprospătare sunt rotite automat și invalidate după utilizare pentru o securitate sporită.\n" @@ -235,66 +235,66 @@ msgstr "" "## Versiune\n" "Versiunea curentă a API: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Site-ul meu" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Sănătate" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Sprijin" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Meniu" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Tablou de bord" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Configurare" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Sarcini periodice" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Tablou de sarcini" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Linkuri rapide" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Utilizatori" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Grupuri" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Ordine" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Produse" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Categorii" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Mărci" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogposturi" diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.po b/schon/locale/ru_RU/LC_MESSAGES/django.po similarity index 81% rename from evibes/locale/ru_RU/LC_MESSAGES/django.po rename to schon/locale/ru_RU/LC_MESSAGES/django.po index 7bad368e..29346ff2 100644 --- a/evibes/locale/ru_RU/LC_MESSAGES/django.po +++ b/schon/locale/ru_RU/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Название компании" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Адрес компании" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Номер телефона компании" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,121 +33,121 @@ msgstr "" "Ставка налога в юрисдикции вашей компании. Оставьте 0, если вы не хотите " "обрабатывать налоги." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "Показывает, включены ли налоги в отпускную цену продукта." -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Ключ API обменного курса" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!НЕ МЕНЯЙТЕ!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP-хост" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "Порт SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Используйте TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Используйте SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "Имя пользователя SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "Пароль SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Почта из опции" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Сколько дней мы храним сообщения от анонимных пользователей" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Сколько дней мы храним сообщения от аутентифицированных пользователей" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Отключить функцию покупки" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "URL-адрес API OpenStreetMap Nominatim" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "Ключ API OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Абстрактный ключ API" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP-прокси" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Сущность для хранения данных о рекламе" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Сущность для хранения аналитических данных" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Сохраняйте ответы от API поставщиков" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Резервная копия базы данных" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Резервные носители" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Юридические возможности" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Параметры электронной почты" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Характеристики Опции" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "Параметры SEO" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Параметры системы" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -166,7 +166,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -190,9 +190,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Добро пожаловать в документацию eVibes.\n" +"Добро пожаловать в документацию Schon.\n" "\n" -"eVibes - это мощная платформа для электронной коммерции, которая позволяет запустить и управлять интернет-магазином любого типа всего за несколько кликов.\n" +"Schon - это мощная платформа для электронной коммерции, которая позволяет запустить и управлять интернет-магазином любого типа всего за несколько кликов.\n" "\n" "## Ключевые особенности.\n" "- **Каталог товаров:** Управление информацией о товарах, ценами, запасами и наличием товаров в нескольких категориях.\n" @@ -211,7 +211,7 @@ msgstr "" "- **GraphQL API:** Доступен по адресу `/graphql/` с интерфейсом GraphiQL для интерактивных запросов\n" "\n" "## Аутентификация\n" -"- Аутентификация осуществляется с помощью JWT-токенов. Включите токен в заголовок `X-EVIBES-AUTH` ваших запросов в формате `Bearer <ваш_токен>`.\n" +"- Аутентификация осуществляется с помощью JWT-токенов. Включите токен в заголовок `X-SCHON-AUTH` ваших запросов в формате `Bearer <ваш_токен>`.\n" "- Срок действия токена доступа составляет {access_lifetime} {access_unit}.\n" "- Время жизни токена обновления составляет {refresh_hours} часов.\n" "- Для повышения безопасности маркеры доступа автоматически аннулируются после использования.\n" @@ -234,66 +234,66 @@ msgstr "" "## Версия\n" "Текущая версия API: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Мой сайт" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Здоровье" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Поддержка" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Меню" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" -msgstr "Приборная панель" +msgstr "Панель" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Конфигурация" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Периодические задания" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Доска задач" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Быстрые ссылки" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Пользователи" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Группы" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Заказы" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Продукция" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Категории" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Бренды" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Записи в блогах" diff --git a/evibes/locale/sv_SE/LC_MESSAGES/django.po b/schon/locale/sv_SE/LC_MESSAGES/django.po similarity index 77% rename from evibes/locale/sv_SE/LC_MESSAGES/django.po rename to schon/locale/sv_SE/LC_MESSAGES/django.po index 0b3b1ace..204c903e 100644 --- a/evibes/locale/sv_SE/LC_MESSAGES/django.po +++ b/schon/locale/sv_SE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Företagets namn" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Företagets adress" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Telefonnummer till företaget" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,121 +33,121 @@ msgstr "" "Skattesats i ditt företags jurisdiktion. Lämna 0 om du inte vill behandla " "skatter." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "Visar om skatterna redan är inkluderade i produktens försäljningspris" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "API-nyckel för växelkurs" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!ÄNDRA INTE!!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP-värd" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTP-port" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Använd TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Använd SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "SMTP-användarnamn" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "SMTP-lösenord" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Mail från alternativ" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Hur många dagar vi lagrar meddelanden från anonyma användare" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "Hur många dagar vi lagrar meddelanden från autentiserade användare" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Inaktivera köpfunktionalitet" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "OpenStreetMap Nominatim API URL" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI API-nyckel" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Abstrakt API-nyckel" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP-proxy" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "En enhet för lagring av annonseringsdata" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "En enhet för lagring av analysdata" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Spara svar från leverantörers API:er" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Säkerhetskopiera databas" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Backup media" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Juridiska alternativ" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Alternativ för e-post" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Funktioner Alternativ" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "SEO-alternativ" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Systemalternativ" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -166,7 +166,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -190,9 +190,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"Välkommen till eVibes dokumentation.\n" +"Välkommen till Schon dokumentation.\n" "\n" -"eVibes är en kraftfull e-handelsplattform som gör att du kan starta och hantera en onlinebutik av alla slag med bara några få klick.\n" +"Schon är en kraftfull e-handelsplattform som gör att du kan starta och hantera en onlinebutik av alla slag med bara några få klick.\n" "\n" "## Viktiga funktioner\n" "- Produktkatalog:** Hantera produktinformation, priser, lager och tillgänglighet i flera kategorier.\n" @@ -211,7 +211,7 @@ msgstr "" "- **GraphQL API:** Tillgängligt på `/graphql/` med GraphiQL-gränssnitt för interaktiva frågor\n" "\n" "## Autentisering\n" -"- Autentisering hanteras via JWT-tokens. Inkludera token i `X-EVIBES-AUTH`-huvudet för dina förfrågningar i formatet `Bearer `.\n" +"- Autentisering hanteras via JWT-tokens. Inkludera token i `X-SCHON-AUTH`-huvudet för dina förfrågningar i formatet `Bearer `.\n" "- Åtkomsttokenens livstid är {access_lifetime} {access_unit}.\n" "- Uppdateringstokenens livslängd är {refresh_hours} timmar.\n" "- Uppdateringstokens roteras automatiskt och ogiltigförklaras efter användning för ökad säkerhet.\n" @@ -234,66 +234,66 @@ msgstr "" "## Version\n" "Aktuell API-version: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Min webbplats" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Hälsa" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Stöd" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Meny" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Instrumentpanel" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Konfig" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Periodiska uppgifter" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Uppgiftstavla" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Snabblänkar" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Användare" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Grupper" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Beställningar" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Produkter" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Kategorier" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Brands" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blogginlägg" diff --git a/evibes/locale/th_TH/LC_MESSAGES/django.po b/schon/locale/th_TH/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/th_TH/LC_MESSAGES/django.po rename to schon/locale/th_TH/LC_MESSAGES/django.po index 5059f2e1..a11bd3a5 100644 --- a/evibes/locale/th_TH/LC_MESSAGES/django.po +++ b/schon/locale/th_TH/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "ชื่อบริษัท" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "ที่อยู่ของบริษัท" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "หมายเลขโทรศัพท์ของบริษัท" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,121 +33,121 @@ msgstr "" "อัตราภาษีในเขตอำนาจศาลของบริษัทของคุณ. ให้เป็น 0 " "หากคุณไม่ต้องการดำเนินการภาษี." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "แสดงว่าภาษีรวมอยู่ในราคาขายของสินค้าแล้วหรือไม่" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "คีย์ API อัตราแลกเปลี่ยน" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!ห้ามเปลี่ยนแปลง!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "โฮสต์ SMTP" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "พอร์ต SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "ใช้ TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "ใช้ SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "ชื่อผู้ใช้ SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "รหัสผ่าน SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "จดหมายจากตัวเลือก" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "เราเก็บข้อความจากผู้ใช้ที่ไม่ระบุตัวตนไว้กี่วัน" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "เราเก็บข้อความจากผู้ใช้ที่ผ่านการยืนยันตัวตนไว้กี่วัน" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "ปิดการใช้งานฟังก์ชันการซื้อ" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "URL ของ API OpenStreetMap Nominatim" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "คีย์ API ของ OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "คีย์ API แบบนามธรรม" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP พร็อกซี" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "หน่วยงานสำหรับเก็บข้อมูลโฆษณา" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "หน่วยงานสำหรับเก็บข้อมูลการวิเคราะห์" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "บันทึกการตอบกลับจาก API ของผู้ขาย" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "ฐานข้อมูลสำรอง" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "สื่อสำรองข้อมูล" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "ทางเลือกทางกฎหมาย" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "ตัวเลือกอีเมล" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "คุณสมบัติ ตัวเลือก" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "ตัวเลือก SEO" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "ตัวเลือกระบบ" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -166,7 +166,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -189,75 +189,75 @@ msgid "" "## Version\n" "Current API version: {version}\n" msgstr "" -"\nยินดีต้อนรับสู่เอกสารคู่มือของ eVibes eVibes เป็นแพลตฟอร์มอีคอมเมิร์ซที่ทรงพลังซึ่งช่วยให้คุณสามารถเปิดตัวและจัดการร้านค้าออนไลน์ได้ทุกประเภทเพียงแค่ไม่กี่คลิก ## คุณสมบัติหลัก - **แคตตาล็อกสินค้า:** จัดการรายละเอียดสินค้า ราคาสินค้า สินค้าคงคลัง และความพร้อมจำหน่ายในหลายหมวดหมู่ - **การจัดการคำสั่งซื้อ:** ประมวลผลคำสั่งซื้อ ติดตามการจัดส่ง และจัดการคำขอของลูกค้าอย่างมีประสิทธิภาพ\n" +"\nยินดีต้อนรับสู่เอกสารคู่มือของ Schon Schon เป็นแพลตฟอร์มอีคอมเมิร์ซที่ทรงพลังซึ่งช่วยให้คุณสามารถเปิดตัวและจัดการร้านค้าออนไลน์ได้ทุกประเภทเพียงแค่ไม่กี่คลิก ## คุณสมบัติหลัก - **แคตตาล็อกสินค้า:** จัดการรายละเอียดสินค้า ราคาสินค้า สินค้าคงคลัง และความพร้อมจำหน่ายในหลายหมวดหมู่ - **การจัดการคำสั่งซื้อ:** ประมวลผลคำสั่งซื้อ ติดตามการจัดส่ง และจัดการคำขอของลูกค้าอย่างมีประสิทธิภาพ\n" "- **การตรวจสอบสิทธิ์และการอนุญาต:** การตรวจสอบสิทธิ์ผู้ใช้อย่างครอบคลุมด้วยโทเค็น JWT และสิทธิ์ตามบทบาท - **การประมวลผลการชำระเงิน:** ผสานรวมเกตเวย์การชำระเงินหลายช่องทางและจัดการธุรกรรมอย่างปลอดภัย - **การจัดการบล็อกและเนื้อหา:** สร้างและจัดการโพสต์บล็อกและเนื้อหาการตลาดสำหรับร้านค้าของคุณ - **การดำเนินงาน B2B:** จุดสิ้นสุดเฉพาะสำหรับการทำธุรกรรมระหว่างธุรกิจและการจัดการขายส่ง\n" "- **รองรับหลายภาษา:** ให้บริการลูกค้าทั่วโลกด้วยความสามารถในการรองรับภาษาสากลอย่างเต็มรูปแบบ (i18n) - **การผสานระบบแบบกำหนดเอง:** สถาปัตยกรรม API ที่สามารถขยายได้สำหรับการผสานกับแพลตฟอร์มและบริการภายนอก - **การวิเคราะห์และรายงาน:** สร้างรายงานละเอียดเกี่ยวกับยอดขาย, สินค้าคงคลัง, และพฤติกรรมของลูกค้า - **การอัปเดตแบบเรียลไทม์:** รับข้อมูลสดเกี่ยวกับระดับสินค้าคงคลัง, สถานะการสั่งซื้อ, และการเปลี่ยนแปลงราคา\n" "\n" -"## API ที่มีให้บริการ - **REST API:** อินเทอร์เฟซ RESTful แบบเต็มรูปแบบ (เอกสารนี้) - **GraphQL API:** สามารถใช้งานได้ที่ `/graphql/` พร้อมอินเทอร์เฟซ GraphiQL สำหรับการสืบค้นแบบโต้ตอบ ## การยืนยันตัวตน - การยืนยันตัวตนดำเนินการผ่านโทเค็น JWT โปรดใส่โทเค็นในหัวข้อ `X-EVIBES-AUTH` ของคำขอของคุณในรูปแบบ `Bearer `\n" +"## API ที่มีให้บริการ - **REST API:** อินเทอร์เฟซ RESTful แบบเต็มรูปแบบ (เอกสารนี้) - **GraphQL API:** สามารถใช้งานได้ที่ `/graphql/` พร้อมอินเทอร์เฟซ GraphiQL สำหรับการสืบค้นแบบโต้ตอบ ## การยืนยันตัวตน - การยืนยันตัวตนดำเนินการผ่านโทเค็น JWT โปรดใส่โทเค็นในหัวข้อ `X-SCHON-AUTH` ของคำขอของคุณในรูปแบบ `Bearer `\n" "- ระยะเวลาการใช้งานของโทเค็นการเข้าถึงคือ {access_lifetime} {access_unit}. - ระยะเวลาการใช้งานของโทเค็นการรีเฟรชคือ {refresh_hours} ชั่วโมง. - โทเค็นการรีเฟรชจะถูกหมุนเวียนและยกเลิกการใช้งานโดยอัตโนมัติหลังการใช้งานเพื่อเพิ่มความปลอดภัย. ## การแปลภาษา (i18n) - ตั้งค่าหัวข้อ `Accept-Language` เพื่อระบุภาษาที่คุณต้องการ (เช่น `Accept-Language: en-US`).\n" "- ภาษาที่มีให้บริการสามารถดึงข้อมูลได้จากจุดสิ้นสุด `/app/languages/` - เนื้อหาที่แสดงต่อผู้ใช้ทั้งหมดรองรับหลายภาษาโดยอัตโนมัติ ## รูปแบบการตอบกลับ API รองรับรูปแบบการตอบกลับหลายรูปแบบ: - **JSON** (ค่าเริ่มต้น, รูปแบบ camelCase) - **XML** (เพิ่ม `?format=xml` หรือตั้งค่า `Accept: application/xml`)\n" "- **YAML** (เพิ่ม `?format=yaml` หรือตั้งค่า `Accept: application/x-yaml`) ## สุขภาพและการตรวจสอบ - การตรวจสอบสุขภาพ: `/health/` - เมตริก Prometheus: `/prometheus/metrics/` ## เวอร์ชัน เวอร์ชัน API ปัจจุบัน: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "เว็บไซต์ของฉัน" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "สุขภาพ" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "การสนับสนุน" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "เมนู" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "แดชบอร์ด" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "การกำหนดค่า" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "งานประจำ" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "กระดานงาน" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "ลิงก์ด่วน" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "ผู้ใช้" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "กลุ่ม" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "คำสั่ง" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "ผลิตภัณฑ์" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "หมวดหมู่" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "แบรนด์" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "บทความบล็อก" diff --git a/evibes/locale/tr_TR/LC_MESSAGES/django.po b/schon/locale/tr_TR/LC_MESSAGES/django.po similarity index 78% rename from evibes/locale/tr_TR/LC_MESSAGES/django.po rename to schon/locale/tr_TR/LC_MESSAGES/django.po index 129e2522..4b319503 100644 --- a/evibes/locale/tr_TR/LC_MESSAGES/django.po +++ b/schon/locale/tr_TR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Şirketin adı" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Şirketin adresi" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Şirketin telefon numarası" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,122 +33,122 @@ msgstr "" "Şirketinizin yetki alanındaki vergi oranı. Vergi işlemek istemiyorsanız 0 " "bırakın." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "Vergilerin ürünün satış fiyatına dahil edilip edilmediğini gösterir" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Döviz kuru API anahtarı" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!! DEĞIŞTIRMEYIN!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP ana bilgisayarı" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTP bağlantı noktası" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "TLS kullanın" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "SSL kullanın" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "SMTP kullanıcı adı" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "SMTP şifresi" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Posta seçeneği" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "Anonim kullanıcılardan gelen mesajları kaç gün saklıyoruz" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "" "Kimliği doğrulanmış kullanıcılardan gelen mesajları kaç gün saklıyoruz" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Satın alma işlevini devre dışı bırakın" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "OpenStreetMap Nominatim API URL'si" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI API Anahtarı" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Soyut API Anahtarı" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP Proxy" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Reklam verilerini depolamak için bir varlık" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Analitik verileri depolamak için bir varlık" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Satıcıların API'lerinden gelen yanıtları kaydedin" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Yedek veritabanı" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Yedekleme ortamı" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Yasal Seçenekler" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "E-posta Seçenekleri" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Özellikler Seçenekler" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "SEO Seçenekleri" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Sistem Seçenekleri" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -167,7 +167,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -191,9 +191,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"eVibes belgelerine hoş geldiniz.\n" +"Schon belgelerine hoş geldiniz.\n" "\n" -"eVibes, sadece birkaç tıklamayla her türlü çevrimiçi mağazayı açmanıza ve yönetmenize olanak tanıyan güçlü bir e-ticaret platformudur.\n" +"Schon, sadece birkaç tıklamayla her türlü çevrimiçi mağazayı açmanıza ve yönetmenize olanak tanıyan güçlü bir e-ticaret platformudur.\n" "\n" "## Temel Özellikler\n" "- Ürün Kataloğu:** Birden fazla kategoride ürün ayrıntılarını, fiyatlandırmayı, envanteri ve kullanılabilirliği yönetin.\n" @@ -212,7 +212,7 @@ msgstr "" "- **GraphQL API:** Etkileşimli sorgular için GraphiQL arayüzü ile `/graphql/` adresinde mevcuttur\n" "\n" "## Kimlik Doğrulama\n" -"- Kimlik doğrulama JWT belirteçleri aracılığıyla gerçekleştirilir. Belirteci, isteklerinizin `X-EVIBES-AUTH` başlığına `Bearer ` biçiminde ekleyin.\n" +"- Kimlik doğrulama JWT belirteçleri aracılığıyla gerçekleştirilir. Belirteci, isteklerinizin `X-SCHON-AUTH` başlığına `Bearer ` biçiminde ekleyin.\n" "- Erişim belirteci ömrü {access_lifetime} {access_unit}.\n" "- Yenileme belirteci ömrü {refresh_hours} saattir.\n" "- Yenileme belirteçleri, gelişmiş güvenlik için kullanımdan sonra otomatik olarak döndürülür ve geçersiz kılınır.\n" @@ -235,66 +235,66 @@ msgstr "" "## Sürüm\n" "Geçerli API sürümü: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Benim sitem" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Sağlık" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Destek" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Menü" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Gösterge Tablosu" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Konfigürasyon" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Periyodik Görevler" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Görev Panosu" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Hızlı Bağlantılar" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Kullanıcılar" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Gruplar" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Siparişler" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Ürünler" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Kategoriler" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Markalar" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Blog Yazıları" diff --git a/evibes/locale/vi_VN/LC_MESSAGES/django.po b/schon/locale/vi_VN/LC_MESSAGES/django.po similarity index 75% rename from evibes/locale/vi_VN/LC_MESSAGES/django.po rename to schon/locale/vi_VN/LC_MESSAGES/django.po index 8d971774..2d342714 100644 --- a/evibes/locale/vi_VN/LC_MESSAGES/django.po +++ b/schon/locale/vi_VN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,19 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "Tên công ty" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "Địa chỉ của công ty" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "Số điện thoại của công ty" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." @@ -33,123 +33,123 @@ msgstr "" "Tỷ lệ thuế tại khu vực pháp lý của công ty bạn. Để trống ô này nếu bạn không" " muốn xử lý thuế." -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "Hiển thị xem thuế đã được tính vào giá bán của sản phẩm hay chưa." -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "Khóa API tỷ giá hối đoái" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "!!!KHÔNG THAY ĐỔI!!!" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "Máy chủ SMTP" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "Cổng SMTP" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "Sử dụng TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "Sử dụng SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "Tên người dùng SMTP" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "Mật khẩu SMTP" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "Thư từ tùy chọn" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "" "Chúng tôi lưu trữ tin nhắn từ người dùng ẩn danh trong bao nhiêu ngày?" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "" "Chúng tôi lưu trữ tin nhắn từ người dùng đã xác thực trong bao nhiêu ngày?" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "Vô hiệu hóa chức năng mua hàng" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "Địa chỉ URL API Nominatim của OpenStreetMap" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "Khóa API OpenAI" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "Tóm tắt Khóa API" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "Proxy HTTP" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "Một thực thể dùng để lưu trữ dữ liệu quảng cáo" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "Một thực thể dùng để lưu trữ dữ liệu phân tích." -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "Lưu trữ các phản hồi từ API của nhà cung cấp" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "Sao lưu cơ sở dữ liệu" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "Phương tiện sao lưu" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "Các lựa chọn pháp lý" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "Tùy chọn email" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "Tính năng và tùy chọn" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "Các tùy chọn SEO" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "Tùy chọn hệ thống" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -168,7 +168,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -191,75 +191,75 @@ msgid "" "## Version\n" "Current API version: {version}\n" msgstr "" -"\nChào mừng đến với tài liệu hướng dẫn của eVibes. eVibes là một nền tảng thương mại điện tử mạnh mẽ cho phép bạn khởi chạy và quản lý cửa hàng trực tuyến bất kỳ loại nào chỉ với vài cú nhấp chuột. ## Tính năng chính - **Danh mục sản phẩm:** Quản lý chi tiết sản phẩm, giá cả, tồn kho và tình trạng sẵn có trên nhiều danh mục. - **Quản lý đơn hàng:** Xử lý đơn hàng, theo dõi quá trình giao hàng và xử lý yêu cầu của khách hàng một cách hiệu quả.\n" +"\nChào mừng đến với tài liệu hướng dẫn của Schon. Schon là một nền tảng thương mại điện tử mạnh mẽ cho phép bạn khởi chạy và quản lý cửa hàng trực tuyến bất kỳ loại nào chỉ với vài cú nhấp chuột. ## Tính năng chính - **Danh mục sản phẩm:** Quản lý chi tiết sản phẩm, giá cả, tồn kho và tình trạng sẵn có trên nhiều danh mục. - **Quản lý đơn hàng:** Xử lý đơn hàng, theo dõi quá trình giao hàng và xử lý yêu cầu của khách hàng một cách hiệu quả.\n" "- **Xác thực & Quyền truy cập:** Hệ thống xác thực người dùng toàn diện với token JWT và quyền truy cập dựa trên vai trò. - **Xử lý thanh toán:** Tích hợp nhiều cổng thanh toán và quản lý giao dịch an toàn. - **Quản lý blog và nội dung:** Tạo và quản lý bài viết blog và nội dung tiếp thị cho cửa hàng của bạn. - **Hoạt động B2B:** Các điểm cuối chuyên dụng cho giao dịch giữa doanh nghiệp và quản lý bán buôn.\n" "- **Hỗ trợ đa ngôn ngữ:** Phục vụ khách hàng toàn cầu với khả năng quốc tế hóa (i18n) đầy đủ. - **Tích hợp tùy chỉnh:** Kiến trúc API mở rộng để tích hợp với các nền tảng và dịch vụ bên ngoài. - **Phân tích & Báo cáo:** Tạo báo cáo chi tiết về doanh số, hàng tồn kho và hành vi khách hàng. - **Cập nhật thời gian thực:** Nhận dữ liệu trực tiếp về mức tồn kho, trạng thái đơn hàng và thay đổi giá cả.\n" "\n" -"## Các API có sẵn - **REST API:** Giao diện RESTful đầy đủ (tài liệu này) - **GraphQL API:** Có sẵn tại `/graphql/` với giao diện GraphiQL cho các truy vấn tương tác ## Xác thực - Xác thực được xử lý thông qua token JWT. Bao gồm token trong tiêu đề `X-EVIBES-AUTH` của yêu cầu của bạn theo định dạng `Bearer `.\n" +"## Các API có sẵn - **REST API:** Giao diện RESTful đầy đủ (tài liệu này) - **GraphQL API:** Có sẵn tại `/graphql/` với giao diện GraphiQL cho các truy vấn tương tác ## Xác thực - Xác thực được xử lý thông qua token JWT. Bao gồm token trong tiêu đề `X-SCHON-AUTH` của yêu cầu của bạn theo định dạng `Bearer `.\n" "- Thời hạn sử dụng của token truy cập là {access_lifetime} {access_unit}. - Thời hạn sử dụng của token làm mới là {refresh_hours} giờ. - Token làm mới được tự động xoay vòng và vô hiệu hóa sau khi sử dụng để tăng cường bảo mật. ## Quốc tế hóa (i18n) - Đặt tiêu đề `Accept-Language` để chỉ định ngôn ngữ ưa thích của bạn (ví dụ: `Accept-Language: en-US`).\n" "- Các ngôn ngữ có sẵn có thể được lấy từ điểm cuối `/app/languages/`. - Tất cả nội dung hiển thị cho người dùng đều hỗ trợ nhiều ngôn ngữ ngay từ đầu. ## Định dạng phản hồi API hỗ trợ nhiều định dạng phản hồi: - **JSON** (mặc định, định dạng camelCase) - **XML** (thêm `?format=xml` hoặc đặt `Accept: application/xml`)\n" "- **YAML** (thêm `?format=yaml` hoặc đặt `Accept: application/x-yaml`) ## Sức khỏe & Giám sát - Kiểm tra sức khỏe: `/health/` - Chỉ số Prometheus: `/prometheus/metrics/` ## Phiên bản Phiên bản API hiện tại: {version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "Trang web của tôi" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "Sức khỏe" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "Hỗ trợ" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "Thực đơn" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "Bảng điều khiển" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "Cấu hình" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "Các tác vụ định kỳ" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "Bảng nhiệm vụ" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "Liên kết nhanh" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "Người dùng" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "Nhóm" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "Đơn hàng" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "Sản phẩm" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "Các danh mục" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "Thương hiệu" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "Bài viết trên blog" diff --git a/evibes/locale/zh_Hans/LC_MESSAGES/django.po b/schon/locale/zh_Hans/LC_MESSAGES/django.po similarity index 76% rename from evibes/locale/zh_Hans/LC_MESSAGES/django.po rename to schon/locale/zh_Hans/LC_MESSAGES/django.po index b8c0506f..0851be1e 100644 --- a/evibes/locale/zh_Hans/LC_MESSAGES/django.po +++ b/schon/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-21 00:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -13,139 +13,139 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: evibes/settings/constance.py:24 +#: schon/settings/constance.py:24 msgid "Name of the company" msgstr "公司名称" -#: evibes/settings/constance.py:25 +#: schon/settings/constance.py:25 msgid "Address of the company" msgstr "公司地址" -#: evibes/settings/constance.py:28 +#: schon/settings/constance.py:28 msgid "Phone number of the company" msgstr "公司电话号码" -#: evibes/settings/constance.py:35 +#: schon/settings/constance.py:35 msgid "" "Tax rate in jurisdiction of your company. Leave 0 if you don't want to " "process taxes." msgstr "贵公司所在地区的税率。如果不想处理税款,请留下 0。" -#: evibes/settings/constance.py:44 +#: schon/settings/constance.py:44 msgid "Shows if the taxes are already included in product's selling prices" msgstr "显示税费是否已包含在产品售价中" -#: evibes/settings/constance.py:52 +#: schon/settings/constance.py:52 msgid "Exchange rate API key" msgstr "汇率 API 密钥" -#: evibes/settings/constance.py:58 +#: schon/settings/constance.py:58 msgid "!!!DO NOT CHANGE!!!" msgstr "不要换" -#: evibes/settings/constance.py:60 +#: schon/settings/constance.py:60 msgid "SMTP host" msgstr "SMTP 主机" -#: evibes/settings/constance.py:61 +#: schon/settings/constance.py:61 msgid "SMTP port" msgstr "SMTP 端口" -#: evibes/settings/constance.py:62 +#: schon/settings/constance.py:62 msgid "Use TLS" msgstr "使用 TLS" -#: evibes/settings/constance.py:63 +#: schon/settings/constance.py:63 msgid "Use SSL" msgstr "使用 SSL" -#: evibes/settings/constance.py:66 +#: schon/settings/constance.py:66 msgid "SMTP username" msgstr "SMTP 用户名" -#: evibes/settings/constance.py:70 +#: schon/settings/constance.py:70 msgid "SMTP password" msgstr "SMTP 密码" -#: evibes/settings/constance.py:72 +#: schon/settings/constance.py:72 msgid "Mail from option" msgstr "从选项发送邮件" -#: evibes/settings/constance.py:76 +#: schon/settings/constance.py:76 msgid "How many days we store messages from anonymous users" msgstr "我们将匿名用户的信息保存多少天" -#: evibes/settings/constance.py:80 +#: schon/settings/constance.py:80 msgid "How many days we store messages from authenticated users" msgstr "我们会将已验证用户的信息保存多少天" -#: evibes/settings/constance.py:84 +#: schon/settings/constance.py:84 msgid "Disable buy functionality" msgstr "禁用购买功能" -#: evibes/settings/constance.py:88 +#: schon/settings/constance.py:88 msgid "OpenStreetMap Nominatim API URL" msgstr "OpenStreetMap Nominatim API URL" -#: evibes/settings/constance.py:92 +#: schon/settings/constance.py:92 msgid "OpenAI API Key" msgstr "OpenAI API 密钥" -#: evibes/settings/constance.py:96 +#: schon/settings/constance.py:96 msgid "Abstract API Key" msgstr "抽象应用程序接口密钥" -#: evibes/settings/constance.py:104 +#: schon/settings/constance.py:104 msgid "HTTP Proxy" msgstr "HTTP 代理服务器" -#: evibes/settings/constance.py:112 +#: schon/settings/constance.py:112 msgid "An entity for storing advertisiment data" msgstr "存储广告数据的实体" -#: evibes/settings/constance.py:120 +#: schon/settings/constance.py:120 msgid "An entity for storing analytics data" msgstr "存储分析数据的实体" -#: evibes/settings/constance.py:125 +#: schon/settings/constance.py:125 msgid "Save responses from vendors' APIs" msgstr "保存来自供应商应用程序接口的响应" -#: evibes/settings/constance.py:126 +#: schon/settings/constance.py:126 msgid "Backup database" msgstr "备份数据库" -#: evibes/settings/constance.py:127 +#: schon/settings/constance.py:127 msgid "Backup media" msgstr "备份介质" -#: evibes/settings/constance.py:133 +#: schon/settings/constance.py:133 msgid "Legal Options" msgstr "法律选择" -#: evibes/settings/constance.py:141 +#: schon/settings/constance.py:141 msgid "Email Options" msgstr "电子邮件选项" -#: evibes/settings/constance.py:151 +#: schon/settings/constance.py:151 msgid "Features Options" msgstr "功能选项" -#: evibes/settings/constance.py:160 +#: schon/settings/constance.py:160 msgid "SEO Options" msgstr "搜索引擎优化选项" -#: evibes/settings/constance.py:164 +#: schon/settings/constance.py:164 msgid "System Options" msgstr "系统选项" -#: evibes/settings/drf.py:51 +#: schon/settings/drf.py:51 #, python-brace-format msgid "" "\n" -"Welcome to the eVibes documentation.\n" +"Welcome to the Schon documentation.\n" "\n" -"eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" +"Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories.\n" @@ -164,7 +164,7 @@ msgid "" "- **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `.\n" "- Access token lifetime is {access_lifetime} {access_unit}.\n" "- Refresh token lifetime is {refresh_hours} hours.\n" "- Refresh tokens are automatically rotated and invalidated after usage for enhanced security.\n" @@ -188,9 +188,9 @@ msgid "" "Current API version: {version}\n" msgstr "" "\n" -"欢迎使用 eVibes 文档。\n" +"欢迎使用 Schon 文档。\n" "\n" -"eVibes 是一个功能强大的电子商务平台,只需点击几下,您就可以创建和管理任何类型的网上商店。\n" +"Schon 是一个功能强大的电子商务平台,只需点击几下,您就可以创建和管理任何类型的网上商店。\n" "\n" "## 关键功能\n" "- 产品目录:** 管理多个类别的产品详情、定价、库存和可用性。\n" @@ -209,7 +209,7 @@ msgstr "" "- **GraphQL 应用程序接口:** 可在 `/graphql/`使用 GraphiQL 接口进行交互式查询\n" "\n" "## 验证\n" -"- 通过 JWT 标记进行身份验证。在请求的 `X-EVIBES-AUTH` 头中包含令牌,格式为 `Bearer `。\n" +"- 通过 JWT 标记进行身份验证。在请求的 `X-SCHON-AUTH` 头中包含令牌,格式为 `Bearer `。\n" "- 访问令牌的有效期为 {access_lifetime} {access_unit}。\n" "- 刷新令牌的有效期为 {refresh_hours} 小时。\n" "- 刷新令牌在使用后会自动轮换和失效,以增强安全性。\n" @@ -232,66 +232,66 @@ msgstr "" "## 版本\n" "当前的 API 版本:{version}\n" -#: evibes/settings/unfold.py:28 +#: schon/settings/unfold.py:28 msgid "My site" msgstr "我的网站" -#: evibes/settings/unfold.py:36 +#: schon/settings/unfold.py:36 msgid "Health" msgstr "健康" -#: evibes/settings/unfold.py:40 +#: schon/settings/unfold.py:40 msgid "Support" msgstr "支持" -#: evibes/settings/unfold.py:77 +#: schon/settings/unfold.py:77 msgid "Menu" msgstr "菜单" -#: evibes/settings/unfold.py:82 +#: schon/settings/unfold.py:82 msgid "Dashboard" msgstr "仪表板" -#: evibes/settings/unfold.py:87 +#: schon/settings/unfold.py:87 msgid "Config" msgstr "配置" -#: evibes/settings/unfold.py:92 +#: schon/settings/unfold.py:92 msgid "Periodic Tasks" msgstr "定期任务" -#: evibes/settings/unfold.py:119 +#: schon/settings/unfold.py:119 msgid "Taskboard" msgstr "任务板" -#: evibes/settings/unfold.py:131 +#: schon/settings/unfold.py:131 msgid "Quick Links" msgstr "快速链接" -#: evibes/settings/unfold.py:136 +#: schon/settings/unfold.py:136 msgid "Users" msgstr "用户" -#: evibes/settings/unfold.py:141 +#: schon/settings/unfold.py:141 msgid "Groups" msgstr "组别" -#: evibes/settings/unfold.py:146 +#: schon/settings/unfold.py:146 msgid "Orders" msgstr "订单" -#: evibes/settings/unfold.py:151 +#: schon/settings/unfold.py:151 msgid "Products" msgstr "产品" -#: evibes/settings/unfold.py:156 +#: schon/settings/unfold.py:156 msgid "Categories" msgstr "类别" -#: evibes/settings/unfold.py:161 +#: schon/settings/unfold.py:161 msgid "Brands" msgstr "品牌" -#: evibes/settings/unfold.py:166 +#: schon/settings/unfold.py:166 msgid "Blogposts" msgstr "博客文章" diff --git a/evibes/middleware.py b/schon/middleware.py similarity index 96% rename from evibes/middleware.py rename to schon/middleware.py index c2d01e0e..ffe03697 100644 --- a/evibes/middleware.py +++ b/schon/middleware.py @@ -29,9 +29,9 @@ from rest_framework_simplejwt.exceptions import InvalidToken from sentry_sdk import capture_exception from engine.vibes_auth.models import User -from evibes.settings.drf import JSON_UNDERSCOREIZE -from evibes.utils.misc import RatelimitedError -from evibes.utils.parsers import underscoreize +from schon.settings.drf import JSON_UNDERSCOREIZE +from schon.utils.misc import RatelimitedError +from schon.utils.parsers import underscoreize logger = logging.getLogger(__name__) @@ -45,7 +45,7 @@ class CustomCommonMiddleware(CommonMiddleware): except DisallowedHost: # Return a permanent redirect to match the base class return type return HttpResponsePermanentRedirect( - f"https://api.{getenv('EVIBES_BASE_DOMAIN', 'localhost')}" + f"https://api.{getenv('SCHON_BASE_DOMAIN', 'localhost')}" ) diff --git a/evibes/pagination.py b/schon/pagination.py similarity index 100% rename from evibes/pagination.py rename to schon/pagination.py diff --git a/evibes/settings/__init__.py b/schon/settings/__init__.py similarity index 100% rename from evibes/settings/__init__.py rename to schon/settings/__init__.py diff --git a/evibes/settings/base.py b/schon/settings/base.py similarity index 93% rename from evibes/settings/base.py rename to schon/settings/base.py index 01cb7cfa..8ad33e96 100644 --- a/evibes/settings/base.py +++ b/schon/settings/base.py @@ -6,15 +6,15 @@ from typing import Any from django.core.exceptions import ImproperlyConfigured -EVIBES_VERSION = "2026.1" +SCHON_VERSION = "2026.1" RELEASE_DATE = datetime(2026, 1, 5) -PROJECT_NAME = getenv("EVIBES_PROJECT_NAME", "eVibes") +PROJECT_NAME = getenv("SCHON_PROJECT_NAME", "Schon") TASKBOARD_URL = getenv( - "EVIBES_TASKBOARD_URL", + "SCHON_TASKBOARD_URL", "https://plane.wiseless.xyz/spaces/issues/dd33cb0ab9b04ef08a10f7eefae6d90c/?board=kanban", ) -SUPPORT_CONTACT = getenv("EVIBES_SUPPORT_CONTACT", "https://t.me/fureunoir") +SUPPORT_CONTACT = getenv("SCHON_SUPPORT_CONTACT", "https://t.me/fureunoir") BASE_DIR: Path = Path(__file__).resolve().parent.parent.parent INITIALIZED: bool = (BASE_DIR / ".initialized").exists() @@ -24,10 +24,10 @@ DEBUG: bool = bool(int(getenv("DEBUG", "1"))) DEBUG_DATABASE: bool = bool(int(getenv("DEBUG_DATABASE", "0"))) DEBUG_CELERY: bool = bool(int(getenv("DEBUG_DATABASE", "0"))) -BASE_DOMAIN: str = getenv("EVIBES_BASE_DOMAIN", "localhost") -STOREFRONT_DOMAIN: str = getenv("EVIBES_STOREFRONT_DOMAIN", "localhost") +BASE_DOMAIN: str = getenv("SCHON_BASE_DOMAIN", "localhost") +STOREFRONT_DOMAIN: str = getenv("SCHON_STOREFRONT_DOMAIN", "localhost") -ALLOW_MESSAGING: bool = bool(int(getenv("EVIBES_ALLOW_MESSAGING", "0"))) +ALLOW_MESSAGING: bool = bool(int(getenv("SCHON_ALLOW_MESSAGING", "0"))) ALLOWED_HOSTS: set[str] = { "app", @@ -95,7 +95,7 @@ CORS_ALLOW_HEADERS = ( "sentry-trace", "user-agent", "x-csrftoken", - "x-evibes-auth", + "x-schon-auth", "x-requested-with", ) @@ -173,21 +173,21 @@ if DEBUG: INSTALLED_APPS.insert(wn_app_index, "whitenoise.runserver_nostatic") MIDDLEWARE: list[str] = [ - "evibes.middleware.BlockInvalidHostMiddleware", - "evibes.middleware.RateLimitMiddleware", + "schon.middleware.BlockInvalidHostMiddleware", + "schon.middleware.RateLimitMiddleware", "django_prometheus.middleware.PrometheusBeforeMiddleware", "django.middleware.security.SecurityMiddleware", "whitenoise.middleware.WhiteNoiseMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "corsheaders.middleware.CorsMiddleware", - "evibes.middleware.CustomCommonMiddleware", + "schon.middleware.CustomCommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.contrib.admindocs.middleware.XViewMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", - "evibes.middleware.CustomLocaleMiddleware", - "evibes.middleware.CamelCaseMiddleWare", + "schon.middleware.CustomLocaleMiddleware", + "schon.middleware.CamelCaseMiddleWare", "django_prometheus.middleware.PrometheusAfterMiddleware", ] @@ -216,7 +216,7 @@ TEMPLATES: list[ USE_I18N: bool = True LOCALE_PATHS: tuple[Path, ...] = ( - (BASE_DIR / "evibes/locale"), + (BASE_DIR / "schon/locale"), (BASE_DIR / "engine/blog/locale"), (BASE_DIR / "engine/core/locale"), (BASE_DIR / "engine/payments/locale"), @@ -352,11 +352,11 @@ CURRENCY_CODE: str = dict(CURRENCIES_BY_LANGUAGES).get(LANGUAGE_CODE, "") MODELTRANSLATION_FALLBACK_LANGUAGES: tuple[str, ...] = (LANGUAGE_CODE, "en-us", "de-de") -ROOT_URLCONF: str = "evibes.urls" +ROOT_URLCONF: str = "schon.urls" -WSGI_APPLICATION: str = "evibes.wsgi.application" +WSGI_APPLICATION: str = "schon.wsgi.application" -ASGI_APPLICATION: str = "evibes.asgi.application" +ASGI_APPLICATION: str = "schon.asgi.application" DEFAULT_AUTO_FIELD: str = "django.db.models.BigAutoField" @@ -450,7 +450,7 @@ if getenv("SENTRY_DSN"): RedisIntegration(), ], environment="development" if DEBUG else "production", - release=f"evibes@{EVIBES_VERSION}", + release=f"schon@{SCHON_VERSION}", traces_sample_rate=1.0 if DEBUG else 0.2, profiles_sample_rate=1.0 if DEBUG else 0.1, max_request_body_size="always", @@ -465,7 +465,7 @@ LANGUAGE_COOKIE_HTTPONLY: bool = True DATA_UPLOAD_MAX_NUMBER_FIELDS: int = 8888 -RATELIMIT_EXCEPTION_CLASS: str = "evibes.utils.misc.RatelimitedError" +RATELIMIT_EXCEPTION_CLASS: str = "schon.utils.misc.RatelimitedError" ADMINS: list[tuple[str, ...]] = [("Egor Gorbunov", "contact@fureunoir.com")] @@ -483,7 +483,7 @@ STORAGES: dict[str, Any] = { if getenv("DBBACKUP_HOST") and getenv("DBBACKUP_USER") and getenv("DBBACKUP_PASS"): dbbackup_server_type = getenv("DBBACKUP_TYPE", "sftp") project_name = ( - getenv("EVIBES_PROJECT_NAME", "evibes_common").lower().replace(" ", "_") + getenv("SCHON_PROJECT_NAME", "schon_common").lower().replace(" ", "_") ) raw_path = getenv("DBBACKUP_PATH", f"/backups/{project_name}/") diff --git a/evibes/settings/caches.py b/schon/settings/caches.py similarity index 95% rename from evibes/settings/caches.py rename to schon/settings/caches.py index 2d3409c3..024c2e7a 100644 --- a/evibes/settings/caches.py +++ b/schon/settings/caches.py @@ -1,7 +1,7 @@ import sys from os import getenv -from evibes.settings.base import REDIS_PASSWORD +from schon.settings.base import REDIS_PASSWORD CACHES = { "default": { diff --git a/evibes/settings/celery.py b/schon/settings/celery.py similarity index 98% rename from evibes/settings/celery.py rename to schon/settings/celery.py index a57a85c5..5086d3b3 100644 --- a/evibes/settings/celery.py +++ b/schon/settings/celery.py @@ -1,6 +1,6 @@ from datetime import timedelta -from evibes.settings.base import REDIS_PASSWORD, TIME_ZONE +from schon.settings.base import REDIS_PASSWORD, TIME_ZONE CELERY_ENABLE_UTC = False CELERY_TIMEZONE = TIME_ZONE diff --git a/evibes/settings/constance.py b/schon/settings/constance.py similarity index 96% rename from evibes/settings/constance.py rename to schon/settings/constance.py index d0de3e53..ad1b5b86 100644 --- a/evibes/settings/constance.py +++ b/schon/settings/constance.py @@ -69,7 +69,7 @@ CONSTANCE_CONFIG = OrderedDict( "EMAIL_HOST_PASSWORD", (getenv("EMAIL_HOST_PASSWORD", "SUPERsecretPASSWORD"), _("SMTP password")), ), - ("EMAIL_FROM", (getenv("EMAIL_FROM", "eVibes"), _("Mail from option"))), + ("EMAIL_FROM", (getenv("EMAIL_FROM", "Schon"), _("Mail from option"))), ### Features Options ### ( "DAYS_TO_STORE_ANON_MSGS", @@ -108,7 +108,7 @@ CONSTANCE_CONFIG = OrderedDict( ( "ADVERTSIMENT", ( - getenv("EVIBES_ADVERTISIMENT", ""), + getenv("SCHON_ADVERTISIMENT", ""), _("An entity for storing advertisiment data"), "json", ), @@ -116,7 +116,7 @@ CONSTANCE_CONFIG = OrderedDict( ( "ANALYTICS", ( - getenv("EVIBES_ANALYTICS", ""), + getenv("SCHON_ANALYTICS", ""), _("An entity for storing analytics data"), "json", ), diff --git a/evibes/settings/csp.py b/schon/settings/csp.py similarity index 100% rename from evibes/settings/csp.py rename to schon/settings/csp.py diff --git a/evibes/settings/database.py b/schon/settings/database.py similarity index 100% rename from evibes/settings/database.py rename to schon/settings/database.py diff --git a/evibes/settings/dbbackup.py b/schon/settings/dbbackup.py similarity index 100% rename from evibes/settings/dbbackup.py rename to schon/settings/dbbackup.py diff --git a/evibes/settings/drf.py b/schon/settings/drf.py similarity index 88% rename from evibes/settings/drf.py rename to schon/settings/drf.py index 99e79b09..84727a4f 100644 --- a/evibes/settings/drf.py +++ b/schon/settings/drf.py @@ -5,25 +5,25 @@ from typing import Any from django.utils.text import format_lazy from django.utils.translation import gettext_lazy as _ -from evibes.settings.base import ( +from schon.settings.base import ( BASE_DOMAIN, DEBUG, - EVIBES_VERSION, PROJECT_NAME, + SCHON_VERSION, SECRET_KEY, ) REST_FRAMEWORK: dict[str, Any] = { - "DEFAULT_PAGINATION_CLASS": "evibes.pagination.CustomPagination", + "DEFAULT_PAGINATION_CLASS": "schon.pagination.CustomPagination", "PAGE_SIZE": 30, "DEFAULT_AUTHENTICATION_CLASSES": [ "rest_framework_simplejwt.authentication.JWTAuthentication", ], "DEFAULT_RENDERER_CLASSES": ( - "evibes.utils.renderers.CamelCaseRenderer", + "schon.utils.renderers.CamelCaseRenderer", "rest_framework.renderers.BrowsableAPIRenderer", ), - "DEFAULT_PARSER_CLASSES": ("evibes.utils.parsers.CamelCaseParser",), + "DEFAULT_PARSER_CLASSES": ("schon.utils.parsers.CamelCaseParser",), "DEFAULT_SCHEMA_CLASS": "drf_spectacular.generators.AutoSchema", "DEFAULT_PERMISSION_CLASSES": ("rest_framework.permissions.AllowAny",), "JSON_UNDERSCOREIZE": { @@ -45,13 +45,13 @@ SIMPLE_JWT: dict[str, timedelta | str | bool] = { "SIGNING_KEY": getenv("JWT_SIGNING_KEY", SECRET_KEY), # noqa: F405 "USER_ID_FIELD": "uuid", "USER_ID_CLAIM": "user_uuid", - "AUTH_HEADER_NAME": "HTTP_X_EVIBES_AUTH", + "AUTH_HEADER_NAME": "HTTP_X_SCHON_AUTH", } _SPECTACULAR_DESCRIPTION_TEMPLATE = _(""" -Welcome to the eVibes documentation. +Welcome to the Schon documentation. -eVibes is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks. +Schon is a powerful e-commerce platform that allows you to launch and manage an online store of any kind in just a few clicks. ## Key Features - **Product Catalog:** Manage product details, pricing, inventory, and availability across multiple categories. @@ -70,7 +70,7 @@ eVibes is a powerful e-commerce platform that allows you to launch and manage an - **GraphQL API:** Available at `/graphql/` with GraphiQL interface for interactive queries ## Authentication -- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `. +- Authentication is handled via JWT tokens. Include the token in the `X-SCHON-AUTH` header of your requests in the format `Bearer `. - Access token lifetime is {access_lifetime} {access_unit}. - Refresh token lifetime is {refresh_hours} hours. - Refresh tokens are automatically rotated and invalidated after usage for enhanced security. @@ -108,7 +108,7 @@ SPECTACULAR_DESCRIPTION = format_lazy( access_lifetime=_access_lifetime, access_unit=_access_unit, refresh_hours=_refresh_hours, - version=EVIBES_VERSION, + version=SCHON_VERSION, ) SPECTACULAR_SETTINGS = { @@ -116,12 +116,12 @@ SPECTACULAR_SETTINGS = { "DEFAULT_GENERATOR_CLASS": "drf_spectacular_websocket.schemas.WsSchemaGenerator", "TITLE": f"{PROJECT_NAME} API", "DESCRIPTION": SPECTACULAR_DESCRIPTION, - "VERSION": EVIBES_VERSION, # noqa: F405 - "TOS": "https://evibes.wiseless.xyz/terms-of-service", + "VERSION": SCHON_VERSION, # noqa: F405 + "TOS": "https://schon.wiseless.xyz/terms-of-service", "SWAGGER_UI_DIST": "SIDECAR", "CAMELIZE_NAMES": True, "POSTPROCESSING_HOOKS": [ - "evibes.utils.renderers.camelize_serializer_fields", + "schon.utils.renderers.camelize_serializer_fields", "drf_spectacular.hooks.postprocess_schema_enums", ], "REDOC_DIST": "SIDECAR", diff --git a/evibes/settings/elasticsearch.py b/schon/settings/elasticsearch.py similarity index 92% rename from evibes/settings/elasticsearch.py rename to schon/settings/elasticsearch.py index eb842c8c..4de5590e 100644 --- a/evibes/settings/elasticsearch.py +++ b/schon/settings/elasticsearch.py @@ -1,6 +1,6 @@ from os import getenv -from evibes.settings.base import DEBUG +from schon.settings.base import DEBUG ELASTICSEARCH_DSL = { "default": { diff --git a/evibes/settings/emailing.py b/schon/settings/emailing.py similarity index 90% rename from evibes/settings/emailing.py rename to schon/settings/emailing.py index fac159f2..89b5fcf6 100644 --- a/evibes/settings/emailing.py +++ b/schon/settings/emailing.py @@ -7,4 +7,4 @@ EMAIL_USE_TLS = bool(int(getenv("EMAIL_USE_TLS", 0))) EMAIL_USE_SSL = bool(int(getenv("EMAIL_USE_SSL", 1))) EMAIL_HOST_USER = getenv("EMAIL_HOST_USER", "no-user@fix.this") EMAIL_HOST_PASSWORD = getenv("EMAIL_HOST_PASSWORD", "SUPERsecretPASSWORD") -EMAIL_FROM = getenv("EMAIL_FROM", "eVibes") +EMAIL_FROM = getenv("EMAIL_FROM", "Schon") diff --git a/evibes/settings/extensions.py b/schon/settings/extensions.py similarity index 85% rename from evibes/settings/extensions.py rename to schon/settings/extensions.py index c3f74482..729c1c14 100644 --- a/evibes/settings/extensions.py +++ b/schon/settings/extensions.py @@ -1,5 +1,5 @@ # noinspection PyUnresolvedReferences -from evibes.settings.base import * # noqa: F403 +from schon.settings.base import * # noqa: F403 GRAPH_MODELS = { "all_applications": True, diff --git a/schon/settings/graphene.py b/schon/settings/graphene.py new file mode 100644 index 00000000..02eb378c --- /dev/null +++ b/schon/settings/graphene.py @@ -0,0 +1,13 @@ +from schon.settings.base import DEBUG + +GRAPHENE = { + "MIDDLEWARE": [ + "schon.middleware.GrapheneLoggingErrorsDebugMiddleware", + "schon.middleware.GrapheneJWTAuthorizationMiddleware", + ] + if DEBUG + else [ + "schon.middleware.GrapheneJWTAuthorizationMiddleware", + ], + "CAMELCASE_ERRORS": True, +} diff --git a/evibes/settings/logconfig.py b/schon/settings/logconfig.py similarity index 96% rename from evibes/settings/logconfig.py rename to schon/settings/logconfig.py index feeeb738..6d860141 100644 --- a/evibes/settings/logconfig.py +++ b/schon/settings/logconfig.py @@ -1,6 +1,6 @@ import logging -from evibes.settings.base import DEBUG, DEBUG_CELERY, DEBUG_DATABASE +from schon.settings.base import DEBUG, DEBUG_CELERY, DEBUG_DATABASE class SkipVariableDoesNotExistFilter(logging.Filter): @@ -40,7 +40,7 @@ LOGGING = { "require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}, "require_debug_true": {"()": "django.utils.log.RequireDebugTrue"}, "skip_variable_doesnotexist": { - "()": "evibes.settings.logconfig.SkipVariableDoesNotExistFilter" + "()": "schon.settings.logconfig.SkipVariableDoesNotExistFilter" }, }, "handlers": { @@ -106,7 +106,7 @@ LOGGING = { "level": "ERROR", "propagate": True, }, - "evibes": { + "schon": { "handlers": ["console"], "level": "DEBUG" if DEBUG else "INFO", "propagate": True, diff --git a/evibes/settings/summernote.py b/schon/settings/summernote.py similarity index 83% rename from evibes/settings/summernote.py rename to schon/settings/summernote.py index f7f4edf0..0e614f9a 100644 --- a/evibes/settings/summernote.py +++ b/schon/settings/summernote.py @@ -1,4 +1,4 @@ -from evibes.utils import evibes_summernote_upload_to_func +from schon.utils import schon_summernote_upload_to_func SUMMERNOTE_THEME = "bs4" SUMMERNOTE_CONFIG = { @@ -16,7 +16,7 @@ SUMMERNOTE_CONFIG = { ["view", ["fullscreen", "codeview", "help"]], ], }, - "attachment_upload_to": evibes_summernote_upload_to_func, + "attachment_upload_to": schon_summernote_upload_to_func, "attachment_require_authentication": True, "disable_attachment": False, "attachment_absolute_uri": True, diff --git a/evibes/settings/unfold.py b/schon/settings/unfold.py similarity index 92% rename from evibes/settings/unfold.py rename to schon/settings/unfold.py index 21ba4e1b..3e6387a9 100644 --- a/evibes/settings/unfold.py +++ b/schon/settings/unfold.py @@ -4,10 +4,10 @@ from django.templatetags.static import static from django.urls import reverse_lazy from django.utils.translation import gettext_lazy as _ -from evibes.settings.base import ( +from schon.settings.base import ( LANGUAGES as BASE_LANGUAGES, ) -from evibes.settings.base import ( +from schon.settings.base import ( LANGUAGES_FLAGS, PROJECT_NAME, STOREFRONT_DOMAIN, @@ -16,6 +16,21 @@ from evibes.settings.base import ( ) UNFOLD: dict[str, Any] = { + "COLORS": { + "primary": { + "50": "#f4f6f7", + "100": "#e2e7ea", + "200": "#c8d1d7", + "300": "#a1b0bb", + "400": "#7f909e", + "500": "#5c7182", + "600": "#4e5f6f", + "700": "#44515d", + "800": "#3c464f", + "900": "#353d44", + "950": "#22282d", + }, + }, "SITE_URL": STOREFRONT_DOMAIN, "SITE_TITLE": f"{PROJECT_NAME} Dashboard", "SITE_HEADER": PROJECT_NAME, diff --git a/evibes/signal_processors.py b/schon/signal_processors.py similarity index 100% rename from evibes/signal_processors.py rename to schon/signal_processors.py diff --git a/evibes/urls.py b/schon/urls.py similarity index 95% rename from evibes/urls.py rename to schon/urls.py index a7e0f82a..55c1dd11 100644 --- a/evibes/urls.py +++ b/schon/urls.py @@ -11,7 +11,7 @@ from engine.core.views import ( favicon_view, index, ) -from evibes.i18n import set_language +from schon.i18n import set_language urlpatterns = [ ### COMMON URLS ### @@ -57,7 +57,7 @@ urlpatterns = [ ### DOCUMENTATION URLS ### path( r"docs/", - CustomSpectacularAPIView.as_view(urlconf="evibes.urls"), + CustomSpectacularAPIView.as_view(urlconf="schon.urls"), name="schema-platform", ), path( diff --git a/evibes/utils/__init__.py b/schon/utils/__init__.py similarity index 79% rename from evibes/utils/__init__.py rename to schon/utils/__init__.py index 3b87e0bb..bbf63a6d 100644 --- a/evibes/utils/__init__.py +++ b/schon/utils/__init__.py @@ -3,7 +3,7 @@ import uuid from datetime import datetime from typing import Any -from evibes.settings.base import LANGUAGE_CODE, LANGUAGES +from schon.settings.base import LANGUAGE_CODE, LANGUAGES def get_language_from_header(accept_language: str | None = None) -> str: @@ -30,18 +30,18 @@ def get_language_from_header(accept_language: str | None = None) -> str: return LANGUAGE_CODE.lower() -def evibes_summernote_upload_to_func(instance: Any, filename: str) -> str: +def schon_summernote_upload_to_func(instance: Any, filename: str) -> str: ext = filename.split(".")[-1] filename = f"{uuid.uuid4()}.{ext}" today = datetime.now().strftime("%Y-%m-%d") if instance: - return os.path.join("evibes-summernote", today, filename) - return os.path.join("evibes-summernote", today) + return os.path.join("schon-summernote", today, filename) + return os.path.join("schon-summernote", today) __all__ = [ "get_language_from_header", - "evibes_summernote_upload_to_func", + "schon_summernote_upload_to_func", "renderers", "parsers", "misc", diff --git a/evibes/utils/misc.py b/schon/utils/misc.py similarity index 100% rename from evibes/utils/misc.py rename to schon/utils/misc.py diff --git a/evibes/utils/parsers.py b/schon/utils/parsers.py similarity index 100% rename from evibes/utils/parsers.py rename to schon/utils/parsers.py diff --git a/evibes/utils/renderers.py b/schon/utils/renderers.py similarity index 95% rename from evibes/utils/renderers.py rename to schon/utils/renderers.py index af26e05b..1a3a9921 100644 --- a/evibes/utils/renderers.py +++ b/schon/utils/renderers.py @@ -4,8 +4,8 @@ from typing import Any, Collection, MutableMapping from django.utils.module_loading import import_string from drf_orjson_renderer.renderers import ORJSONRenderer -from evibes.settings.base import MIDDLEWARE -from evibes.settings.drf import JSON_UNDERSCOREIZE +from schon.settings.base import MIDDLEWARE +from schon.settings.drf import JSON_UNDERSCOREIZE camelize_re = re.compile(r"[a-z0-9]?_[a-z0-9]") @@ -48,7 +48,7 @@ def camelize_serializer_fields(result, generator, request, public): def has_middleware_installed(): try: - from evibes.middleware import CamelCaseMiddleWare + from schon.middleware import CamelCaseMiddleWare except ImportError: return False diff --git a/evibes/wsgi.py b/schon/wsgi.py similarity index 73% rename from evibes/wsgi.py rename to schon/wsgi.py index dc47d3ed..ed51a3e0 100644 --- a/evibes/wsgi.py +++ b/schon/wsgi.py @@ -1,5 +1,5 @@ """ -WSGI config for the eVibes project. +WSGI config for the Schon project. It exposes the WSGI callable as a module-level variable named ``application``. @@ -11,6 +11,6 @@ import os from django.core.wsgi import get_wsgi_application -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "evibes.settings") +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "schon.settings") application = get_wsgi_application() diff --git a/scripts/ASCII_ART_EVIBES b/scripts/ASCII_ART_EVIBES deleted file mode 100644 index 5c849d69..00000000 --- a/scripts/ASCII_ART_EVIBES +++ /dev/null @@ -1,12 +0,0 @@ - - .=== ==. === - ==== ==: *=* === - ==== ==: === - ==== ==: === - =. ==== ==: .=. === .====. .=====. .===. - .=.= == = ===: ==: === ====. :===. ==== === .==: - .=::=== -= ===. ==: === === === ====::::::==. ===- - :== === ==: === === === === ====. - .. === ==: === === === === ==== - = ====: === === === .===. . :=== - .= == ==. .=. =:========. :========. ======. diff --git a/scripts/ASCII_ART_SCHON b/scripts/ASCII_ART_SCHON new file mode 100644 index 00000000..922abaed --- /dev/null +++ b/scripts/ASCII_ART_SCHON @@ -0,0 +1,11 @@ + +╔═══════════════════════════════════════════════════════════════════════════╗ +║ ║ +║ ███████╗ ██████╗██╗ ██╗ ██████╗ ███╗ ██╗ ║ +║ ██╔════╝██╔════╝██║ ██║██╔═══██╗████╗ ██║ ║ +║ ███████╗██║ ███████║██║ ██║██╔██╗ ██║ ║ +║ ╚════██║██║ ██╔══██║██║ ██║██║╚██╗██║ ║ +║ ███████║╚██████╗██║ ██║╚██████╔╝██║ ╚████║ ║ +║ ╚══════╝ ╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ by WISELESS TEAM ║ +║ ║ +╚═══════════════════════════════════════════════════════════════════════════╝ diff --git a/scripts/Docker/app-entrypoint.sh b/scripts/Docker/app-entrypoint.sh index f4bd28fe..07a8c203 100644 --- a/scripts/Docker/app-entrypoint.sh +++ b/scripts/Docker/app-entrypoint.sh @@ -4,8 +4,8 @@ set -e uv run manage.py await_services if [ "${DEBUG:-0}" = "1" ]; then - uv run uvicorn --host 0.0.0.0 --port 8000 --reload --log-level debug --ws-ping-interval 20 --ws-ping-timeout 20 evibes.asgi:application + uv run uvicorn --host 0.0.0.0 --port 8000 --reload --log-level debug --ws-ping-interval 20 --ws-ping-timeout 20 schon.asgi:application else UVICORN_WORKERS=${UVICORN_WORKERS:-4} - uv run uvicorn --host 0.0.0.0 --port 8000 --workers "$UVICORN_WORKERS" --proxy-headers --forwarded-allow-ips='*' --ws-ping-interval 20 --ws-ping-timeout 20 evibes.asgi:application + uv run uvicorn --host 0.0.0.0 --port 8000 --workers "$UVICORN_WORKERS" --proxy-headers --forwarded-allow-ips='*' --ws-ping-interval 20 --ws-ping-timeout 20 schon.asgi:application fi diff --git a/scripts/Docker/beat-entrypoint.sh b/scripts/Docker/beat-entrypoint.sh index 5dbfd4e7..626174ba 100644 --- a/scripts/Docker/beat-entrypoint.sh +++ b/scripts/Docker/beat-entrypoint.sh @@ -3,4 +3,4 @@ set -e uv run manage.py await_services -uv run celery -A evibes beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler +uv run celery -A schon beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler diff --git a/scripts/Docker/stock-updater-entrypoint.sh b/scripts/Docker/stock-updater-entrypoint.sh index 942ccbf7..a4b4dcff 100644 --- a/scripts/Docker/stock-updater-entrypoint.sh +++ b/scripts/Docker/stock-updater-entrypoint.sh @@ -3,4 +3,4 @@ set -e uv run manage.py await_services -uv run celery -A evibes worker --pool=prefork --concurrency=1 --queues=stock_updater --prefetch-multiplier=1 --max-tasks-per-child=5 --max-memory-per-child=1024000 -E +uv run celery -A schon worker --pool=prefork --concurrency=1 --queues=stock_updater --prefetch-multiplier=1 --max-tasks-per-child=5 --max-memory-per-child=1024000 -E diff --git a/scripts/Docker/worker-entrypoint.sh b/scripts/Docker/worker-entrypoint.sh index 6edf6d5b..1e46c1b4 100644 --- a/scripts/Docker/worker-entrypoint.sh +++ b/scripts/Docker/worker-entrypoint.sh @@ -3,4 +3,4 @@ set -e uv run manage.py await_services -uv run celery -A evibes worker --pool=prefork --concurrency=8 --queues=default --prefetch-multiplier=2 --max-tasks-per-child=100 --max-memory-per-child=512000 -E & /opt/evibes-python/bin/celery-prometheus-exporter +uv run celery -A schon worker --pool=prefork --concurrency=8 --queues=default --prefetch-multiplier=2 --max-tasks-per-child=100 --max-memory-per-child=512000 -E & /opt/schon-python/bin/celery-prometheus-exporter diff --git a/scripts/Unix/generate-environment-file.sh b/scripts/Unix/generate-environment-file.sh index fafc8dcb..2ad4c04a 100755 --- a/scripts/Unix/generate-environment-file.sh +++ b/scripts/Unix/generate-environment-file.sh @@ -43,9 +43,9 @@ if [ -f .env ]; then fi fi -EVIBES_PROJECT_NAME=$(prompt_default EVIBES_PROJECT_NAME eVibes) -EVIBES_STOREFRONT_DOMAIN=$(prompt_default EVIBES_STOREFRONT_DOMAIN evibes.com) -EVIBES_BASE_DOMAIN=$(prompt_default EVIBES_BASE_DOMAIN evibes.com) +SCHON_PROJECT_NAME=$(prompt_default SCHON_PROJECT_NAME Schon) +SCHON_STOREFRONT_DOMAIN=$(prompt_default SCHON_STOREFRONT_DOMAIN schon.com) +SCHON_BASE_DOMAIN=$(prompt_default SCHON_BASE_DOMAIN schon.com) SENTRY_DSN=$(prompt_default SENTRY_DSN "") DEBUG=$(prompt_default DEBUG 1) TIME_ZONE=$(prompt_default TIME_ZONE "Europe/London") @@ -53,12 +53,12 @@ TIME_ZONE=$(prompt_default TIME_ZONE "Europe/London") SECRET_KEY=$(prompt_autogen SECRET_KEY 32) JWT_SIGNING_KEY=$(prompt_autogen JWT_SIGNING_KEY 64) -ALLOWED_HOSTS=$(prompt_default ALLOWED_HOSTS "evibes.com api.evibes.com") -CSRF_TRUSTED_ORIGINS=$(prompt_default CSRF_TRUSTED_ORIGINS "https://evibes.com https://api.evibes.com https://www.evibes.com") +ALLOWED_HOSTS=$(prompt_default ALLOWED_HOSTS "schon.com api.schon.com") +CSRF_TRUSTED_ORIGINS=$(prompt_default CSRF_TRUSTED_ORIGINS "https://schon.com https://api.schon.com https://www.schon.com") CORS_ALLOWED_ORIGINS=$(prompt_default CORS_ALLOWED_ORIGINS "$CSRF_TRUSTED_ORIGINS") -POSTGRES_DB=$(prompt_default POSTGRES_DB evibes) -POSTGRES_USER=$(prompt_default POSTGRES_USER evibes_user) +POSTGRES_DB=$(prompt_default POSTGRES_DB schon) +POSTGRES_USER=$(prompt_default POSTGRES_USER schon_user) POSTGRES_PASSWORD=$(prompt_autogen POSTGRES_PASSWORD 16) DBBACKUP_TYPE=$(prompt_default DBBACKUP_TYPE "Your backup connection type") @@ -69,19 +69,19 @@ DBBACKUP_PASS=$(prompt_default DBBACKUP_PASS "The password to use to log in to t ELASTIC_PASSWORD=$(prompt_autogen ELASTIC_PASSWORD 16) REDIS_PASSWORD=$(prompt_autogen REDIS_PASSWORD 16) -PROMETHEUS_USER=$(prompt_default PROMETHEUS_USER evibes) +PROMETHEUS_USER=$(prompt_default PROMETHEUS_USER schon) PROMETHEUS_PASSWORD=$(prompt_autogen PROMETHEUS_PASSWORD 16) EMAIL_BACKEND=$(prompt_default EMAIL_BACKEND django.core.mail.backends.smtp.EmailBackend) -EMAIL_HOST=$(prompt_default EMAIL_HOST smtp.whatever.evibes.com) +EMAIL_HOST=$(prompt_default EMAIL_HOST smtp.whatever.schon.com) EMAIL_PORT=$(prompt_default EMAIL_PORT 465) EMAIL_USE_TLS=$(prompt_default EMAIL_USE_TLS 0) EMAIL_USE_SSL=$(prompt_default EMAIL_USE_SSL 1) -EMAIL_HOST_USER=$(prompt_default EMAIL_HOST_USER your-email-user@whatever.evibes.com) +EMAIL_HOST_USER=$(prompt_default EMAIL_HOST_USER your-email-user@whatever.schon.com) EMAIL_FROM=$EMAIL_HOST_USER EMAIL_HOST_PASSWORD=$(prompt_default EMAIL_HOST_PASSWORD SUPERSECRETEMAILHOSTPASSWORD) -COMPANY_NAME=$(prompt_default COMPANY_NAME "eVibes, Inc.") +COMPANY_NAME=$(prompt_default COMPANY_NAME "Schon, Inc.") COMPANY_PHONE_NUMBER=$(prompt_default COMPANY_PHONE_NUMBER "+888888888888") COMPANY_ADDRESS=$(prompt_default COMPANY_ADDRESS "The place that does not exist") @@ -90,9 +90,9 @@ ABSTRACT_API_KEY=$(prompt_default ABSTRACT_API_KEY "Haha, really? x2") DEEPL_AUTH_KEY=$(prompt_default DEEPL_AUTH_KEY "Haha, really? x3") cat > .env </dev/null; then + log_info "User '$SCHON_USER' already exists" +else + useradd --system --shell /usr/sbin/nologin --home-dir "$INSTALL_DIR" "$SCHON_USER" + log_success "Created system user '$SCHON_USER'" +fi + +# ───────────────────────────────────────────────────────────────────────────── +# Check for .env file +# ───────────────────────────────────────────────────────────────────────────── +if [ ! -f "$INSTALL_DIR/.env" ]; then + log_error ".env file not found" + log_info "Run 'make generate-env' first, then configure your .env file" + exit 1 +fi + +# ───────────────────────────────────────────────────────────────────────────── +# Install Python dependencies +# ───────────────────────────────────────────────────────────────────────────── +log_step "Installing Python dependencies with uv..." + +cd "$INSTALL_DIR" + +# Create virtual environment if it doesn't exist +if [ ! -d "$INSTALL_DIR/.venv" ]; then + uv venv "$INSTALL_DIR/.venv" + log_success "Created virtual environment" +fi + +# Sync dependencies +uv sync --extra worker --extra openai +log_success "Dependencies installed" + +# ───────────────────────────────────────────────────────────────────────────── +# Set ownership +# ───────────────────────────────────────────────────────────────────────────── +log_step "Setting file ownership..." + +chown -R "$SCHON_USER:$SCHON_GROUP" "$INSTALL_DIR" +log_success "Ownership set to $SCHON_USER:$SCHON_GROUP" + +# ───────────────────────────────────────────────────────────────────────────── +# Install systemd services +# ───────────────────────────────────────────────────────────────────────────── +log_step "Installing systemd services..." + +SYSTEMD_DIR="/etc/systemd/system" +SERVICES=("schon-web" "schon-worker" "schon-beat" "schon-stock-updater") + +for service in "${SERVICES[@]}"; do + src="$INSTALL_DIR/systemd/${service}.service" + dst="$SYSTEMD_DIR/${service}.service" + + if [ -f "$src" ]; then + ln -sf "$src" "$dst" + log_info " Linked ${service}.service" + else + log_warning " Service file not found: $src" + fi +done + +# Reload systemd +systemctl daemon-reload +log_success "Systemd services installed" + +# ───────────────────────────────────────────────────────────────────────────── +# Enable services +# ───────────────────────────────────────────────────────────────────────────── +log_step "Enabling services..." + +for service in "${SERVICES[@]}"; do + systemctl enable "$service" 2>/dev/null || true + log_info " Enabled ${service}" +done + +log_success "Services enabled" + +# ───────────────────────────────────────────────────────────────────────────── +# Summary +# ───────────────────────────────────────────────────────────────────────────── +echo +log_result "Installation complete!" +echo +log_info "Next steps:" +log_info " 1. Configure your .env file: nano $INSTALL_DIR/.env" +log_info " 2. Ensure PostgreSQL, Redis, and Elasticsearch are running" +log_info " 3. Run migrations: sudo -u $SCHON_USER $INSTALL_DIR/.venv/bin/python manage.py migrate" +log_info " 4. Create superuser: sudo -u $SCHON_USER $INSTALL_DIR/.venv/bin/python manage.py createsuperuser" +log_info " 5. Start services: systemctl start schon-web schon-worker schon-beat schon-stock-updater" +log_info " 6. Configure nginx with nginx.example.conf" +echo +log_info "View service status: systemctl status schon-web" +log_info "View logs: journalctl -u schon-web -f" diff --git a/scripts/Unix/install.sh b/scripts/Unix/install.sh index c9fb9025..7ef3e258 100755 --- a/scripts/Unix/install.sh +++ b/scripts/Unix/install.sh @@ -4,30 +4,85 @@ set -euo pipefail source ./scripts/Unix/starter.sh if [ ! -f .env ]; then - log_warning ".env file not found. Exiting without running Docker steps." + log_warning ".env file not found." + log_info "Run 'make generate-env' first to create your environment file." exit 0 fi -# Check system requirements -if ! check_system_requirements 4 6 20; then - exit 1 -fi - -# Pull Docker images -log_step "Pulling images..." -if ! docker compose pull; then - log_error "Failed to pull Docker images" - exit 1 -fi -log_success "Images pulled successfully" - -# Build Docker images -log_step "Building images..." -if ! docker compose build; then - log_error "Failed to build Docker images" - exit 1 -fi -log_success "Images built successfully" - +# ───────────────────────────────────────────────────────────────────────────── +# Installation type selection +# ───────────────────────────────────────────────────────────────────────────── echo -log_result "You can now use run.sh script or run: ./lessy.py run" +log_info "Select installation type:" +echo +echo " 1) Docker (recommended for development)" +echo " - Uses Docker Compose to run all services" +echo " - Includes database, Redis, Elasticsearch" +echo +echo " 2) Native Linux (production with systemd)" +echo " - Installs directly on your system" +echo " - Requires existing PostgreSQL, Redis, Elasticsearch" +echo " - Configures systemd services" +echo + +if is_interactive; then + read -r -p "Choice [1/2]: " install_choice +else + # Non-interactive mode defaults to Docker + install_choice="1" + log_info "Non-interactive mode: defaulting to Docker installation" +fi + +case "$install_choice" in + 2) + log_step "Starting native Linux installation..." + source ./scripts/Unix/install-native.sh + ;; + 1|*) + # ───────────────────────────────────────────────────────────────────────── + # Docker installation (original behavior) + # ───────────────────────────────────────────────────────────────────────── + log_step "Starting Docker installation..." + + # Check system requirements + if ! check_system_requirements 4 6 20; then + exit 1 + fi + + # Check Docker is available + if ! command_exists docker; then + log_error "Docker is not installed. Please install Docker first." + log_info "Visit: https://docs.docker.com/get-docker/" + exit 1 + fi + + if ! docker info >/dev/null 2>&1; then + log_error "Docker daemon is not running or you don't have permission." + log_info "Try: sudo systemctl start docker" + log_info "Or add yourself to the docker group: sudo usermod -aG docker \$USER" + exit 1 + fi + + # Pull Docker images + log_step "Pulling images..." + if ! output=$(docker compose pull --quiet 2>&1); then + log_error "Failed to pull Docker images" + echo "$output" + exit 1 + fi + log_success "Images pulled successfully" + + # Build Docker images + log_step "Building images..." + if ! output=$(docker compose build 2>&1); then + log_error "Failed to build Docker images" + echo "$output" + exit 1 + fi + log_success "Images built successfully" + + echo + log_result "Docker installation complete!" + log_info "You can now use: make run" + ;; +esac diff --git a/scripts/Unix/make-messages.sh b/scripts/Unix/make-messages.sh index 3303ac67..8c2d1f56 100755 --- a/scripts/Unix/make-messages.sh +++ b/scripts/Unix/make-messages.sh @@ -41,4 +41,4 @@ fi log_success "Translated successfully!" echo -log_result "You can now use compile-messages.sh script or run: ./lessy.py compile-messages" +log_result "You can now use compile-messages.sh script or run: make compile-messages" diff --git a/scripts/Unix/restart.sh b/scripts/Unix/restart.sh index 1fa17c97..5c5b94dc 100755 --- a/scripts/Unix/restart.sh +++ b/scripts/Unix/restart.sh @@ -5,16 +5,18 @@ source ./scripts/Unix/starter.sh # Shutdown services log_step "Shutting down..." -if ! docker compose down; then +if ! output=$(docker compose down 2>&1); then log_error "Failed to shut down services" + echo "$output" exit 1 fi log_success "Services were shut down successfully!" # Rebuild and start services log_step "Spinning services up with rebuild..." -if ! docker compose up -d --build --wait; then +if ! output=$(docker compose up -d --build --wait 2>&1); then log_error "Failed to start services" + echo "$output" exit 1 fi log_success "Services are up and healthy!" @@ -23,32 +25,37 @@ log_success "Services are up and healthy!" log_step "Completing pre-run tasks..." log_info " → Running migrations..." -if ! docker compose exec app uv run manage.py migrate --no-input --verbosity 0; then +if ! output=$(docker compose exec -T app uv run manage.py migrate --no-input --verbosity 0 2>&1); then log_error "Migrations failed" + echo "$output" exit 1 fi log_info " → Initializing..." -if ! docker compose exec app uv run manage.py initialize; then +if ! output=$(docker compose exec -T app uv run manage.py initialize 2>&1); then log_error "Initialization failed" + echo "$output" exit 1 fi log_info " → Setting default caches..." -if ! docker compose exec app uv run manage.py set_default_caches; then +if ! output=$(docker compose exec -T app uv run manage.py set_default_caches 2>&1); then log_error "Cache setup failed" + echo "$output" exit 1 fi log_info " → Rebuilding search index..." -if ! docker compose exec app uv run manage.py search_index --rebuild -f; then +if ! output=$(docker compose exec -T app uv run manage.py search_index --rebuild -f 2>&1); then log_error "Search index rebuild failed" + echo "$output" exit 1 fi log_info " → Collecting static files..." -if ! docker compose exec app uv run manage.py collectstatic --clear --no-input --verbosity 0; then +if ! output=$(docker compose exec -T app uv run manage.py collectstatic --clear --no-input --verbosity 0 2>&1); then log_error "Static files collection failed" + echo "$output" exit 1 fi @@ -56,10 +63,8 @@ log_success "Pre-run tasks completed successfully!" # Cleanup log_step "Cleaning up unused Docker data..." -if ! docker system prune -f; then - log_warning "Docker cleanup had issues, but continuing..." -fi +docker system prune -f >/dev/null 2>&1 || log_warning "Docker cleanup had issues, but continuing..." log_success "Unused Docker data cleaned successfully!" echo -log_result "All done! eVibes is up and running!" +log_result "All done! Schon is up and running!" diff --git a/scripts/Unix/run.sh b/scripts/Unix/run.sh index 358e2d3a..26cc9161 100755 --- a/scripts/Unix/run.sh +++ b/scripts/Unix/run.sh @@ -22,8 +22,9 @@ fi # Start services log_step "Spinning services up..." -if ! docker compose up --no-build --detach --wait; then +if ! output=$(docker compose up --no-build --detach --wait 2>&1); then log_error "Failed to start services" + echo "$output" exit 1 fi log_success "Services are up and healthy!" @@ -32,32 +33,37 @@ log_success "Services are up and healthy!" log_step "Completing pre-run tasks..." log_info " → Running migrations..." -if ! docker compose exec app uv run manage.py migrate --no-input --verbosity 0; then +if ! output=$(docker compose exec -T app uv run manage.py migrate --no-input --verbosity 0 2>&1); then log_error "Migrations failed" + echo "$output" exit 1 fi log_info " → Initializing..." -if ! docker compose exec app uv run manage.py initialize; then +if ! output=$(docker compose exec -T app uv run manage.py initialize 2>&1); then log_error "Initialization failed" + echo "$output" exit 1 fi log_info " → Setting default caches..." -if ! docker compose exec app uv run manage.py set_default_caches; then +if ! output=$(docker compose exec -T app uv run manage.py set_default_caches 2>&1); then log_error "Cache setup failed" + echo "$output" exit 1 fi log_info " → Rebuilding search index..." -if ! docker compose exec app uv run manage.py search_index --rebuild -f; then +if ! output=$(docker compose exec -T app uv run manage.py search_index --rebuild -f 2>&1); then log_error "Search index rebuild failed" + echo "$output" exit 1 fi log_info " → Collecting static files..." -if ! docker compose exec app uv run manage.py collectstatic --clear --no-input --verbosity 0; then +if ! output=$(docker compose exec -T app uv run manage.py collectstatic --clear --no-input --verbosity 0 2>&1); then log_error "Static files collection failed" + echo "$output" exit 1 fi @@ -65,10 +71,8 @@ log_success "Pre-run tasks completed successfully!" # Cleanup log_step "Cleaning unused Docker data..." -if ! docker system prune -f; then - log_warning "Docker cleanup had issues, but continuing..." -fi +docker system prune -f >/dev/null 2>&1 || log_warning "Docker cleanup had issues, but continuing..." log_success "Unused Docker data cleaned successfully!" echo -log_result "All done! eVibes is up and running!" +log_result "All done! Schon is up and running!" diff --git a/scripts/Unix/starter.sh b/scripts/Unix/starter.sh index 840bc2ac..caf1cab1 100644 --- a/scripts/Unix/starter.sh +++ b/scripts/Unix/starter.sh @@ -11,26 +11,26 @@ script_dir="$(cd "$(dirname "$script_path")" && pwd -P)" # shellcheck source=../lib/utils.sh source "$script_dir/../lib/utils.sh" -if [ ! -d "./evibes" ]; then - log_error "❌ Please run this script from the project's root (where the 'evibes' directory lives)." +if [ ! -d "./schon" ]; then + log_error "❌ Please run this script from the project's root (where the 'schon' directory lives)." exit 1 fi -art_path="$script_dir/../ASCII_ART_EVIBES" +art_path="$script_dir/../ASCII_ART_SCHON" if [ ! -f "$art_path" ]; then log_error "❌ Could not find ASCII art at $art_path" exit 1 fi +clear + if is_interactive; then # In interactive mode, show colorful banner - purple='\033[38;2;121;101;209m' + royal_grey='\033[38;2;127;144;158m' reset='\033[0m' - echo -e "${purple}$(cat "$art_path")${reset}" - echo - echo -e "${COLOR_GRAY} by WISELESS TEAM${COLOR_RESET}" + echo -e "${royal_grey}$(cat "$art_path")${reset}" echo else # In non-interactive mode, show simple banner - echo "eVibes by WISELESS TEAM" + echo "Schon by WISELESS TEAM" fi diff --git a/scripts/Unix/test.sh b/scripts/Unix/test.sh index f029c08a..08128ae5 100644 --- a/scripts/Unix/test.sh +++ b/scripts/Unix/test.sh @@ -4,7 +4,7 @@ set -euo pipefail source ./scripts/Unix/starter.sh report="" -omit_pattern='storefront/*,monitoring/*,Dockerfiles/*,*/__init__.py,*/tests/*,*/migrations/*,manage.py,evibes/*' +omit_pattern='storefront/*,monitoring/*,Dockerfiles/*,*/__init__.py,*/tests/*,*/migrations/*,manage.py,schon/*' while [ "$#" -gt 0 ]; do case "$1" in diff --git a/scripts/Unix/uninstall.sh b/scripts/Unix/uninstall.sh index 8e57da6c..125b8e41 100644 --- a/scripts/Unix/uninstall.sh +++ b/scripts/Unix/uninstall.sh @@ -13,8 +13,8 @@ log_success "Services were shut down successfully!" # Remove volumes log_step "Removing volumes..." -docker volume rm -f evibes_prometheus-data || log_warning "Failed to remove prometheus-data volume" -docker volume rm -f evibes_es-data || log_warning "Failed to remove es-data volume" +docker volume rm -f schon_prometheus-data || log_warning "Failed to remove prometheus-data volume" +docker volume rm -f schon_es-data || log_warning "Failed to remove es-data volume" log_success "Volumes were removed successfully!" # Cleanup Docker diff --git a/scripts/Windows/generate-environment-file.ps1 b/scripts/Windows/generate-environment-file.ps1 index 10921e9b..bc26ea73 100644 --- a/scripts/Windows/generate-environment-file.ps1 +++ b/scripts/Windows/generate-environment-file.ps1 @@ -49,9 +49,9 @@ if (Test-Path '.env') Read-Host "Press Enter to continue or Ctrl+C to abort" } -$EVIBES_PROJECT_NAME = Prompt-Default 'EVIBES_PROJECT_NAME' 'eVibes' -$EVIBES_STOREFRONT_DOMAIN = Prompt-Default 'EVIBES_STOREFRONT_DOMAIN' 'evibes.com' -$EVIBES_BASE_DOMAIN = Prompt-Default 'EVIBES_BASE_DOMAIN' 'evibes.com' +$SCHON_PROJECT_NAME = Prompt-Default 'SCHON_PROJECT_NAME' 'Schon' +$SCHON_STOREFRONT_DOMAIN = Prompt-Default 'SCHON_STOREFRONT_DOMAIN' 'schon.com' +$SCHON_BASE_DOMAIN = Prompt-Default 'SCHON_BASE_DOMAIN' 'schon.com' $SENTRY_DSN = Prompt-Default 'SENTRY_DSN' '' $DEBUG = Prompt-Default 'DEBUG' '1' $TIME_ZONE = Prompt-Default 'TIME_ZONE' 'Europe/London' @@ -59,12 +59,12 @@ $TIME_ZONE = Prompt-Default 'TIME_ZONE' 'Europe/London' $SECRET_KEY = Prompt-AutoGen 'SECRET_KEY' 32 $JWT_SIGNING_KEY = Prompt-AutoGen 'JWT_SIGNING_KEY' 64 -$ALLOWED_HOSTS = Prompt-Default 'ALLOWED_HOSTS' 'evibes.com api.evibes.com' -$CSRF_TRUSTED_ORIGINS = Prompt-Default 'CSRF_TRUSTED_ORIGINS' 'https://evibes.com https://api.evibes.com https://www.evibes.com' +$ALLOWED_HOSTS = Prompt-Default 'ALLOWED_HOSTS' 'schon.com api.schon.com' +$CSRF_TRUSTED_ORIGINS = Prompt-Default 'CSRF_TRUSTED_ORIGINS' 'https://schon.com https://api.schon.com https://www.schon.com' $CORS_ALLOWED_ORIGINS = Prompt-Default 'CORS_ALLOWED_ORIGINS' $CSRF_TRUSTED_ORIGINS -$POSTGRES_DB = Prompt-Default 'POSTGRES_DB' 'evibes' -$POSTGRES_USER = Prompt-Default 'POSTGRES_USER' 'evibes_user' +$POSTGRES_DB = Prompt-Default 'POSTGRES_DB' 'schon' +$POSTGRES_USER = Prompt-Default 'POSTGRES_USER' 'schon_user' $POSTGRES_PASSWORD = Prompt-AutoGen 'POSTGRES_PASSWORD' 16 $DBBACKUP_TYPE = Prompt-Default 'DBBACKUP_TYPE' 'Your backup connection type' @@ -76,19 +76,19 @@ $ELASTIC_PASSWORD = Prompt-AutoGen 'ELASTIC_PASSWORD' 16 $REDIS_PASSWORD = Prompt-AutoGen 'REDIS_PASSWORD' 16 -$PROMETHEUS_USER = Prompt-Default 'PROMETHEUS_USER' 'evibes' +$PROMETHEUS_USER = Prompt-Default 'PROMETHEUS_USER' 'schon' $PROMETHEUS_PASSWORD = Prompt-AutoGen 'PROMETHEUS_PASSWORD' 16 $EMAIL_BACKEND = Prompt-Default 'EMAIL_BACKEND' 'django.core.mail.backends.smtp.EmailBackend' -$EMAIL_HOST = Prompt-Default 'EMAIL_HOST' 'smtp.whatever.evibes.com' +$EMAIL_HOST = Prompt-Default 'EMAIL_HOST' 'smtp.whatever.schon.com' $EMAIL_PORT = Prompt-Default 'EMAIL_PORT' '465' $EMAIL_USE_TLS = Prompt-Default 'EMAIL_USE_TLS' '0' $EMAIL_USE_SSL = Prompt-Default 'EMAIL_USE_SSL' '1' -$EMAIL_HOST_USER = Prompt-Default 'EMAIL_HOST_USER' 'your-email-user@whatever.evibes.com' +$EMAIL_HOST_USER = Prompt-Default 'EMAIL_HOST_USER' 'your-email-user@whatever.schon.com' $EMAIL_FROM = Prompt-Default 'EMAIL_FROM' $EMAIL_HOST_USER $EMAIL_HOST_PASSWORD = Prompt-Default 'EMAIL_HOST_PASSWORD' 'SUPERSECRETEMAILHOSTPASSWORD' -$COMPANY_NAME = Prompt-Default 'COMPANY_NAME' 'eVibes, Inc.' +$COMPANY_NAME = Prompt-Default 'COMPANY_NAME' 'Schon, Inc.' $COMPANY_PHONE_NUMBER = Prompt-Default 'COMPANY_PHONE_NUMBER' '+888888888888' $COMPANY_ADDRESS = Prompt-Default 'COMPANY_ADDRESS' 'The place that does not exist' @@ -97,9 +97,9 @@ $ABSTRACT_API_KEY = Prompt-Default 'ABSTRACT_API_KEY' 'Haha, really? x2 $DEEPL_AUTH_KEY = Prompt-Default 'DEEPL_AUTH_KEY' 'Haha, really? x3' $lines = @( - "EVIBES_PROJECT_NAME=""$EVIBES_PROJECT_NAME""" - "EVIBES_STOREFRONT_DOMAIN=""$EVIBES_STOREFRONT_DOMAIN""" - "EVIBES_BASE_DOMAIN=""$EVIBES_BASE_DOMAIN""" + "SCHON_PROJECT_NAME=""$SCHON_PROJECT_NAME""" + "SCHON_STOREFRONT_DOMAIN=""$SCHON_STOREFRONT_DOMAIN""" + "SCHON_BASE_DOMAIN=""$SCHON_BASE_DOMAIN""" "SENTRY_DSN=""$SENTRY_DSN""" "DEBUG=$DEBUG" "" diff --git a/scripts/Windows/install.ps1 b/scripts/Windows/install.ps1 index fae13ba5..12a59948 100644 --- a/scripts/Windows/install.ps1 +++ b/scripts/Windows/install.ps1 @@ -24,21 +24,23 @@ if (-not (Test-SystemRequirements -MinCpu 4 -MinRamGB 6 -MinDiskGB 20)) # Pull Docker images Write-Step "Pulling images..." -docker compose pull +$output = docker compose pull --quiet 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Failed to pull Docker images" + Write-Host $output exit $LASTEXITCODE } Write-Success "Images pulled successfully" # Build Docker images Write-Step "Building images..." -docker compose build +$output = docker compose build 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Failed to build Docker images" + Write-Host $output exit $LASTEXITCODE } Write-Success "Images built successfully" Write-Result "" -Write-Result "You can now use run.ps1 script or run: lessy.py run" +Write-Result "You can now use run.ps1 script or run: make run" diff --git a/scripts/Windows/make-messages.ps1 b/scripts/Windows/make-messages.ps1 index 4249ad42..f3ff2026 100644 --- a/scripts/Windows/make-messages.ps1 +++ b/scripts/Windows/make-messages.ps1 @@ -53,4 +53,4 @@ if ($LASTEXITCODE -ne 0) { Write-Success "Translated successfully!" Write-Result "" -Write-Result "You can now use compile-messages.ps1 script or run: lessy.py compile-messages" +Write-Result "You can now use compile-messages.ps1 script or run: make compile-messages" diff --git a/scripts/Windows/restart.ps1 b/scripts/Windows/restart.ps1 index 420a6d44..b16493f7 100644 --- a/scripts/Windows/restart.ps1 +++ b/scripts/Windows/restart.ps1 @@ -12,18 +12,20 @@ if ($LASTEXITCODE -ne 0) { # Shutdown services Write-Step "Shutting down..." -docker compose down +$output = docker compose down 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Failed to shut down services" + Write-Host $output exit $LASTEXITCODE } Write-Success "Services were shut down successfully!" # Rebuild and start services Write-Step "Spinning services up with rebuild..." -docker compose up -d --build --wait +$output = docker compose up -d --build --wait 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Failed to start services" + Write-Host $output exit $LASTEXITCODE } Write-Success "Services are up and healthy!" @@ -31,38 +33,43 @@ Write-Success "Services are up and healthy!" # Run pre-run tasks Write-Step "Completing pre-run tasks..." -Write-Info " → Running migrations..." -docker compose exec app uv run manage.py migrate --no-input +Write-Info " Running migrations..." +$output = docker compose exec -T app uv run manage.py migrate --no-input --verbosity 0 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Migrations failed" + Write-Host $output exit $LASTEXITCODE } -Write-Info " → Initializing..." -docker compose exec app uv run manage.py initialize +Write-Info " Initializing..." +$output = docker compose exec -T app uv run manage.py initialize 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Initialization failed" + Write-Host $output exit $LASTEXITCODE } -Write-Info " → Setting default caches..." -docker compose exec app uv run manage.py set_default_caches +Write-Info " Setting default caches..." +$output = docker compose exec -T app uv run manage.py set_default_caches 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Cache setup failed" + Write-Host $output exit $LASTEXITCODE } -Write-Info " → Rebuilding search index..." -docker compose exec app uv run manage.py search_index --rebuild -f +Write-Info " Rebuilding search index..." +$output = docker compose exec -T app uv run manage.py search_index --rebuild -f 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Search index rebuild failed" + Write-Host $output exit $LASTEXITCODE } -Write-Info " → Collecting static files..." -docker compose exec app uv run manage.py collectstatic --clear --no-input +Write-Info " Collecting static files..." +$output = docker compose exec -T app uv run manage.py collectstatic --clear --no-input --verbosity 0 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Static files collection failed" + Write-Host $output exit $LASTEXITCODE } @@ -70,11 +77,11 @@ Write-Success "Pre-run tasks completed successfully!" # Cleanup Write-Step "Cleaning up unused Docker data..." -docker system prune -f +docker system prune -f *>$null if ($LASTEXITCODE -ne 0) { Write-Warning-Custom "Docker cleanup had issues, but continuing..." } Write-Success "Unused Docker data cleaned successfully!" Write-Result "" -Write-Result "All done! eVibes is up and running!" +Write-Result "All done! Schon is up and running!" diff --git a/scripts/Windows/run.ps1 b/scripts/Windows/run.ps1 index b5d310a0..53e08b91 100644 --- a/scripts/Windows/run.ps1 +++ b/scripts/Windows/run.ps1 @@ -11,9 +11,9 @@ if ($LASTEXITCODE -ne 0) { } # Verify Docker images -Write-Step "Verifying all images are present…" +Write-Step "Verifying all images are present..." -$config = docker compose config --format json | ConvertFrom-Json +$config = docker compose config --format json 2>$null | ConvertFrom-Json foreach ($prop in $config.services.PSObject.Properties) { @@ -32,14 +32,15 @@ foreach ($prop in $config.services.PSObject.Properties) exit 1 } - Write-Info " • Found image: $image" + Write-Info " Found image: $image" } # Start services Write-Step "Spinning services up..." -docker compose up --no-build --detach --wait +$output = docker compose up --no-build --detach --wait 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Failed to start services" + Write-Host $output exit $LASTEXITCODE } Write-Success "Services are up and healthy!" @@ -47,38 +48,43 @@ Write-Success "Services are up and healthy!" # Run pre-run tasks Write-Step "Completing pre-run tasks..." -Write-Info " → Running migrations..." -docker compose exec app uv run manage.py migrate --no-input +Write-Info " Running migrations..." +$output = docker compose exec -T app uv run manage.py migrate --no-input --verbosity 0 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Migrations failed" + Write-Host $output exit $LASTEXITCODE } -Write-Info " → Initializing..." -docker compose exec app uv run manage.py initialize +Write-Info " Initializing..." +$output = docker compose exec -T app uv run manage.py initialize 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Initialization failed" + Write-Host $output exit $LASTEXITCODE } -Write-Info " → Setting default caches..." -docker compose exec app uv run manage.py set_default_caches +Write-Info " Setting default caches..." +$output = docker compose exec -T app uv run manage.py set_default_caches 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Cache setup failed" + Write-Host $output exit $LASTEXITCODE } -Write-Info " → Rebuilding search index..." -docker compose exec app uv run manage.py search_index --rebuild -f +Write-Info " Rebuilding search index..." +$output = docker compose exec -T app uv run manage.py search_index --rebuild -f 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Search index rebuild failed" + Write-Host $output exit $LASTEXITCODE } -Write-Info " → Collecting static files..." -docker compose exec app uv run manage.py collectstatic --clear --no-input +Write-Info " Collecting static files..." +$output = docker compose exec -T app uv run manage.py collectstatic --clear --no-input --verbosity 0 2>&1 if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Static files collection failed" + Write-Host $output exit $LASTEXITCODE } @@ -86,11 +92,11 @@ Write-Success "Pre-run tasks completed successfully!" # Cleanup Write-Step "Cleaning unused Docker data..." -docker system prune -f +docker system prune -f *>$null if ($LASTEXITCODE -ne 0) { Write-Warning-Custom "Docker cleanup had issues, but continuing..." } Write-Success "Unused Docker data cleaned successfully!" Write-Result "" -Write-Result "All done! eVibes is up and running!" +Write-Result "All done! Schon is up and running!" diff --git a/scripts/Windows/starter.ps1 b/scripts/Windows/starter.ps1 index 01a517ba..3712c7a5 100644 --- a/scripts/Windows/starter.ps1 +++ b/scripts/Windows/starter.ps1 @@ -5,13 +5,13 @@ $ErrorActionPreference = 'Stop' $utilsPath = Join-Path (Split-Path -Parent $MyInvocation.MyCommand.Definition) '..\lib\utils.ps1' . $utilsPath -if (-not (Test-Path -Path ".\evibes" -PathType Container)) +if (-not (Test-Path -Path ".\schon" -PathType Container)) { - Write-Error-Custom "❌ Please run this script from the project's root (where the 'evibes' directory lives)." + Write-Error-Custom "❌ Please run this script from the project's root (where the 'schon' directory lives)." exit 1 } -$artPath = Join-Path (Split-Path -Parent $MyInvocation.MyCommand.Definition) '..\ASCII_ART_EVIBES' +$artPath = Join-Path (Split-Path -Parent $MyInvocation.MyCommand.Definition) '..\ASCII_ART_SCHON' if (-not (Test-Path $artPath)) { @@ -19,17 +19,18 @@ if (-not (Test-Path $artPath)) exit 1 } +clear + if (Test-Interactive) { - $purple = "`e[38;2;121;101;209m" + $royal_grey = "`e[38;2;127;144;158m" $reset = "`e[0m" - Get-Content -Raw -Path $artPath | ForEach-Object { Write-Host "$purple$_$reset" } - Write-Host "`n by WISELESS TEAM`n" -ForegroundColor Gray + Get-Content -Raw -Path $artPath | ForEach-Object { Write-Host "$royal_grey$_$reset" } } else { # In non-interactive mode, just show simple banner - Write-Output "eVibes by WISELESS TEAM" + Write-Output "Schon by WISELESS TEAM" } exit 0 \ No newline at end of file diff --git a/scripts/Windows/test.ps1 b/scripts/Windows/test.ps1 index 19f96791..e8897524 100644 --- a/scripts/Windows/test.ps1 +++ b/scripts/Windows/test.ps1 @@ -15,7 +15,7 @@ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } -$omitPattern = 'storefront/*,monitoring/*,Dockerfiles/*,*/__init__.py,*/tests/*,*/migrations/*,manage.py,evibes/*' +$omitPattern = 'storefront/*,monitoring/*,Dockerfiles/*,*/__init__.py,*/tests/*,*/migrations/*,manage.py,schon/*' if (-not $PSBoundParameters.ContainsKey('Report') -or [string]::IsNullOrWhiteSpace($Report)) { Write-Step "Running tests with coverage..." diff --git a/scripts/Windows/uninstall.ps1 b/scripts/Windows/uninstall.ps1 index 645060a1..db1658e6 100644 --- a/scripts/Windows/uninstall.ps1 +++ b/scripts/Windows/uninstall.ps1 @@ -21,11 +21,11 @@ Write-Success "Services were shut down successfully!" # Remove volumes Write-Step "Removing volumes..." -docker volume remove -f evibes_prometheus-data +docker volume remove -f schon_prometheus-data if ($LASTEXITCODE -ne 0) { Write-Warning-Custom "Failed to remove prometheus-data volume" } -docker volume remove -f evibes_es-data +docker volume remove -f schon_es-data if ($LASTEXITCODE -ne 0) { Write-Warning-Custom "Failed to remove es-data volume" } diff --git a/scripts/lib/utils.ps1 b/scripts/lib/utils.ps1 index b0923bc0..bc332c52 100644 --- a/scripts/lib/utils.ps1 +++ b/scripts/lib/utils.ps1 @@ -293,6 +293,8 @@ function Confirm-Action } # Ensure spinner cleanup on exit -$MyInvocation.MyCommand.ScriptBlock.Module.OnRemove = { - Stop-Spinner +if ($MyInvocation.MyCommand.ScriptBlock.Module) { + $MyInvocation.MyCommand.ScriptBlock.Module.OnRemove = { + Stop-Spinner + } } diff --git a/systemd/schon-beat.service b/systemd/schon-beat.service new file mode 100644 index 00000000..410508ec --- /dev/null +++ b/systemd/schon-beat.service @@ -0,0 +1,23 @@ +[Unit] +Description=Schon Celery Beat Scheduler +Documentation=https://gitlab.com/wiseless.xyz/schon +After=network.target postgresql.service redis.service schon-worker.service +Wants=postgresql.service redis.service schon-worker.service + +[Service] +Type=simple +User=schon +Group=schon +WorkingDirectory=/opt/schon +EnvironmentFile=/opt/schon/.env +ExecStart=/opt/schon/.venv/bin/celery \ + -A schon beat \ + -l info \ + --scheduler django_celery_beat.schedulers:DatabaseScheduler +Restart=always +RestartSec=5 +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=multi-user.target diff --git a/systemd/schon-stock-updater.service b/systemd/schon-stock-updater.service new file mode 100644 index 00000000..cae7213d --- /dev/null +++ b/systemd/schon-stock-updater.service @@ -0,0 +1,28 @@ +[Unit] +Description=Schon Celery Worker (Stock Updater Queue) +Documentation=https://gitlab.com/wiseless.xyz/schon +After=network.target postgresql.service redis.service elasticsearch.service +Wants=postgresql.service redis.service + +[Service] +Type=simple +User=schon +Group=schon +WorkingDirectory=/opt/schon +EnvironmentFile=/opt/schon/.env +ExecStart=/opt/schon/.venv/bin/celery \ + -A schon worker \ + --pool=prefork \ + --concurrency=1 \ + --queues=stock_updater \ + --prefetch-multiplier=1 \ + --max-tasks-per-child=5 \ + --max-memory-per-child=1024000 \ + -E +Restart=always +RestartSec=5 +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=multi-user.target diff --git a/systemd/schon-web.service b/systemd/schon-web.service new file mode 100644 index 00000000..8916aeb8 --- /dev/null +++ b/systemd/schon-web.service @@ -0,0 +1,28 @@ +[Unit] +Description=Schon Web Server (Uvicorn) +Documentation=https://gitlab.com/wiseless.xyz/schon +After=network.target postgresql.service redis.service elasticsearch.service +Wants=postgresql.service redis.service + +[Service] +Type=simple +User=schon +Group=schon +WorkingDirectory=/opt/schon +EnvironmentFile=/opt/schon/.env +ExecStart=/opt/schon/.venv/bin/uvicorn \ + --host 127.0.0.1 \ + --port 8000 \ + --workers 4 \ + --proxy-headers \ + --forwarded-allow-ips='*' \ + --ws-ping-interval 20 \ + --ws-ping-timeout 20 \ + schon.asgi:application +Restart=always +RestartSec=5 +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=multi-user.target diff --git a/systemd/schon-worker.service b/systemd/schon-worker.service new file mode 100644 index 00000000..d7806997 --- /dev/null +++ b/systemd/schon-worker.service @@ -0,0 +1,28 @@ +[Unit] +Description=Schon Celery Worker (Default Queue) +Documentation=https://gitlab.com/wiseless.xyz/schon +After=network.target postgresql.service redis.service elasticsearch.service +Wants=postgresql.service redis.service + +[Service] +Type=simple +User=schon +Group=schon +WorkingDirectory=/opt/schon +EnvironmentFile=/opt/schon/.env +ExecStart=/opt/schon/.venv/bin/celery \ + -A schon worker \ + --pool=prefork \ + --concurrency=8 \ + --queues=default \ + --prefetch-multiplier=2 \ + --max-tasks-per-child=100 \ + --max-memory-per-child=512000 \ + -E +Restart=always +RestartSec=5 +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=multi-user.target diff --git a/uv.lock b/uv.lock index 9b7b9bf9..5c96e0e2 100644 --- a/uv.lock +++ b/uv.lock @@ -1325,7 +1325,7 @@ wheels = [ ] [[package]] -name = "evibes" +name = "schon" version = "2026.1" source = { virtual = "." } dependencies = [ From efb56cf09bb6b43176616863dfaf0e331ba4fdb2 Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Sun, 25 Jan 2026 23:18:04 +0300 Subject: [PATCH 02/16] 2026.1 --- README.md | 6 +++--- systemd/schon-beat.service | 2 +- systemd/schon-stock-updater.service | 2 +- systemd/schon-web.service | 2 +- systemd/schon-worker.service | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 01d690d7..4997f176 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ Schon is a complete backend solution for online stores. Whether you're launching ```bash # Clone the repository -git clone https://gitlab.com/wiseless.xyz/schon.git +git clone https://git.wiseless.xyz/fureunoir/schon cd schon # Generate environment file @@ -69,7 +69,7 @@ make run ```bash # Clone to /opt/schon -sudo git clone https://gitlab.com/wiseless.xyz/schon.git /opt/schon +sudo git clone https://git.wiseless.xyz/fureunoir/schon /opt/schon cd /opt/schon # Generate environment file @@ -232,7 +232,7 @@ We value your feedback. Please open issues for: - Feature suggestions - Questions about usage -**Issue Tracker:** [GitLab Issues](https://gitlab.com/wiseless.xyz/schon/-/issues) +**Issue Tracker:** [Plane](https://plane.wiseless.xyz/spaces/issues/dd33cb0ab9b04ef08a10f7eefae6d90c/?board=kanban) Due to licensing restrictions, we cannot accept pull requests. See the LICENSE file for details. diff --git a/systemd/schon-beat.service b/systemd/schon-beat.service index 410508ec..09ff705f 100644 --- a/systemd/schon-beat.service +++ b/systemd/schon-beat.service @@ -1,6 +1,6 @@ [Unit] Description=Schon Celery Beat Scheduler -Documentation=https://gitlab.com/wiseless.xyz/schon +Documentation=https://git.wiseless.xyz/fureunoir/schon After=network.target postgresql.service redis.service schon-worker.service Wants=postgresql.service redis.service schon-worker.service diff --git a/systemd/schon-stock-updater.service b/systemd/schon-stock-updater.service index cae7213d..d72bb8f4 100644 --- a/systemd/schon-stock-updater.service +++ b/systemd/schon-stock-updater.service @@ -1,6 +1,6 @@ [Unit] Description=Schon Celery Worker (Stock Updater Queue) -Documentation=https://gitlab.com/wiseless.xyz/schon +Documentation=https://git.wiseless.xyz/fureunoir/schon After=network.target postgresql.service redis.service elasticsearch.service Wants=postgresql.service redis.service diff --git a/systemd/schon-web.service b/systemd/schon-web.service index 8916aeb8..ca756e03 100644 --- a/systemd/schon-web.service +++ b/systemd/schon-web.service @@ -1,6 +1,6 @@ [Unit] Description=Schon Web Server (Uvicorn) -Documentation=https://gitlab.com/wiseless.xyz/schon +Documentation=https://git.wiseless.xyz/fureunoir/schon After=network.target postgresql.service redis.service elasticsearch.service Wants=postgresql.service redis.service diff --git a/systemd/schon-worker.service b/systemd/schon-worker.service index d7806997..d1dfe975 100644 --- a/systemd/schon-worker.service +++ b/systemd/schon-worker.service @@ -1,6 +1,6 @@ [Unit] Description=Schon Celery Worker (Default Queue) -Documentation=https://gitlab.com/wiseless.xyz/schon +Documentation=https://git.wiseless.xyz/fureunoir/schon After=network.target postgresql.service redis.service elasticsearch.service Wants=postgresql.service redis.service From 28622cec904f0e33bf8262ea2d0cd337ab44a2ef Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Mon, 26 Jan 2026 03:23:41 +0300 Subject: [PATCH 03/16] 2026.1 --- Makefile | 44 +- engine/blog/admin.py | 12 +- .../blog/locale/ar_AR/LC_MESSAGES/django.mo | Bin 0 -> 4011 bytes .../blog/locale/ar_AR/LC_MESSAGES/django.po | 58 +- .../blog/locale/cs_CZ/LC_MESSAGES/django.mo | Bin 0 -> 3517 bytes .../blog/locale/cs_CZ/LC_MESSAGES/django.po | 63 +- .../blog/locale/da_DK/LC_MESSAGES/django.mo | Bin 0 -> 3435 bytes .../blog/locale/da_DK/LC_MESSAGES/django.po | 62 +- .../blog/locale/de_DE/LC_MESSAGES/django.mo | Bin 0 -> 3593 bytes .../blog/locale/de_DE/LC_MESSAGES/django.po | 59 +- .../blog/locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 3275 bytes .../blog/locale/en_GB/LC_MESSAGES/django.po | 61 +- .../blog/locale/en_US/LC_MESSAGES/django.mo | Bin 0 -> 3280 bytes .../blog/locale/en_US/LC_MESSAGES/django.po | 57 +- .../blog/locale/es_ES/LC_MESSAGES/django.mo | Bin 0 -> 3545 bytes .../blog/locale/es_ES/LC_MESSAGES/django.po | 59 +- .../blog/locale/fa_IR/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes .../blog/locale/fa_IR/LC_MESSAGES/django.po | 47 +- .../blog/locale/fr_FR/LC_MESSAGES/django.mo | Bin 0 -> 3610 bytes .../blog/locale/fr_FR/LC_MESSAGES/django.po | 63 +- .../blog/locale/he_IL/LC_MESSAGES/django.mo | Bin 0 -> 3765 bytes .../blog/locale/he_IL/LC_MESSAGES/django.po | 61 +- .../blog/locale/hi_IN/LC_MESSAGES/django.mo | Bin 0 -> 358 bytes .../blog/locale/hi_IN/LC_MESSAGES/django.po | 53 +- .../blog/locale/hr_HR/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes .../blog/locale/hr_HR/LC_MESSAGES/django.po | 47 +- .../blog/locale/id_ID/LC_MESSAGES/django.mo | Bin 0 -> 3420 bytes .../blog/locale/id_ID/LC_MESSAGES/django.po | 71 +- .../blog/locale/it_IT/LC_MESSAGES/django.mo | Bin 0 -> 3499 bytes .../blog/locale/it_IT/LC_MESSAGES/django.po | 67 +- .../blog/locale/ja_JP/LC_MESSAGES/django.mo | Bin 0 -> 3834 bytes .../blog/locale/ja_JP/LC_MESSAGES/django.po | 76 +- .../blog/locale/kk_KZ/LC_MESSAGES/django.mo | Bin 0 -> 358 bytes .../blog/locale/kk_KZ/LC_MESSAGES/django.po | 53 +- .../blog/locale/ko_KR/LC_MESSAGES/django.mo | Bin 0 -> 3647 bytes .../blog/locale/ko_KR/LC_MESSAGES/django.po | 72 +- .../blog/locale/nl_NL/LC_MESSAGES/django.mo | Bin 0 -> 3436 bytes .../blog/locale/nl_NL/LC_MESSAGES/django.po | 59 +- .../blog/locale/no_NO/LC_MESSAGES/django.mo | Bin 0 -> 3430 bytes .../blog/locale/no_NO/LC_MESSAGES/django.po | 57 +- .../blog/locale/pl_PL/LC_MESSAGES/django.mo | Bin 0 -> 3446 bytes .../blog/locale/pl_PL/LC_MESSAGES/django.po | 58 +- .../blog/locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 3592 bytes .../blog/locale/pt_BR/LC_MESSAGES/django.po | 62 +- .../blog/locale/ro_RO/LC_MESSAGES/django.mo | Bin 0 -> 3581 bytes .../blog/locale/ro_RO/LC_MESSAGES/django.po | 62 +- .../blog/locale/ru_RU/LC_MESSAGES/django.mo | Bin 0 -> 4673 bytes .../blog/locale/ru_RU/LC_MESSAGES/django.po | 55 +- .../blog/locale/sv_SE/LC_MESSAGES/django.mo | Bin 0 -> 3472 bytes .../blog/locale/sv_SE/LC_MESSAGES/django.po | 57 +- .../blog/locale/th_TH/LC_MESSAGES/django.mo | Bin 0 -> 5312 bytes .../blog/locale/th_TH/LC_MESSAGES/django.po | 79 +- .../blog/locale/tr_TR/LC_MESSAGES/django.mo | Bin 0 -> 3496 bytes .../blog/locale/tr_TR/LC_MESSAGES/django.po | 58 +- .../blog/locale/vi_VN/LC_MESSAGES/django.mo | Bin 0 -> 3747 bytes .../blog/locale/vi_VN/LC_MESSAGES/django.po | 58 +- .../blog/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 3169 bytes .../blog/locale/zh_Hans/LC_MESSAGES/django.po | 64 +- engine/blog/models.py | 46 +- engine/core/admin.py | 12 +- engine/core/graphene/mutations.py | 6 +- .../core/locale/ar_AR/LC_MESSAGES/django.mo | Bin 0 -> 109420 bytes .../core/locale/ar_AR/LC_MESSAGES/django.po | 714 +++++------ .../core/locale/cs_CZ/LC_MESSAGES/django.mo | Bin 0 -> 93752 bytes .../core/locale/cs_CZ/LC_MESSAGES/django.po | 673 ++++++----- .../core/locale/da_DK/LC_MESSAGES/django.mo | Bin 0 -> 91501 bytes .../core/locale/da_DK/LC_MESSAGES/django.po | 714 +++++------ .../core/locale/de_DE/LC_MESSAGES/django.mo | Bin 0 -> 96835 bytes .../core/locale/de_DE/LC_MESSAGES/django.po | 825 ++++++------- .../core/locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 88179 bytes .../core/locale/en_GB/LC_MESSAGES/django.po | 681 ++++++----- .../core/locale/en_US/LC_MESSAGES/django.mo | Bin 0 -> 88170 bytes .../core/locale/en_US/LC_MESSAGES/django.po | 678 ++++++----- .../core/locale/es_ES/LC_MESSAGES/django.mo | Bin 0 -> 94808 bytes .../core/locale/es_ES/LC_MESSAGES/django.po | 732 ++++++------ .../core/locale/fa_IR/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes .../core/locale/fa_IR/LC_MESSAGES/django.po | 396 +++--- .../core/locale/fr_FR/LC_MESSAGES/django.mo | Bin 0 -> 97694 bytes .../core/locale/fr_FR/LC_MESSAGES/django.po | 804 +++++++------ .../core/locale/he_IL/LC_MESSAGES/django.mo | Bin 0 -> 101953 bytes .../core/locale/he_IL/LC_MESSAGES/django.po | 664 ++++++----- .../core/locale/hi_IN/LC_MESSAGES/django.mo | Bin 0 -> 358 bytes .../core/locale/hi_IN/LC_MESSAGES/django.po | 398 ++++--- .../core/locale/hr_HR/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes .../core/locale/hr_HR/LC_MESSAGES/django.po | 396 +++--- .../core/locale/id_ID/LC_MESSAGES/django.mo | Bin 0 -> 91792 bytes .../core/locale/id_ID/LC_MESSAGES/django.po | 723 +++++------ .../core/locale/it_IT/LC_MESSAGES/django.mo | Bin 0 -> 95084 bytes .../core/locale/it_IT/LC_MESSAGES/django.po | 797 +++++++------ .../core/locale/ja_JP/LC_MESSAGES/django.mo | Bin 0 -> 100489 bytes .../core/locale/ja_JP/LC_MESSAGES/django.po | 996 +++++++--------- .../core/locale/kk_KZ/LC_MESSAGES/django.mo | Bin 0 -> 358 bytes .../core/locale/kk_KZ/LC_MESSAGES/django.po | 402 ++++--- .../core/locale/ko_KR/LC_MESSAGES/django.mo | Bin 0 -> 95036 bytes .../core/locale/ko_KR/LC_MESSAGES/django.po | 938 +++++++-------- .../core/locale/nl_NL/LC_MESSAGES/django.mo | Bin 0 -> 94636 bytes .../core/locale/nl_NL/LC_MESSAGES/django.po | 733 ++++++------ .../core/locale/no_NO/LC_MESSAGES/django.mo | Bin 0 -> 92147 bytes .../core/locale/no_NO/LC_MESSAGES/django.po | 753 ++++++------ .../core/locale/pl_PL/LC_MESSAGES/django.mo | Bin 0 -> 93904 bytes .../core/locale/pl_PL/LC_MESSAGES/django.po | 682 ++++++----- .../core/locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 94504 bytes .../core/locale/pt_BR/LC_MESSAGES/django.po | 730 ++++++------ .../core/locale/ro_RO/LC_MESSAGES/django.mo | Bin 0 -> 96380 bytes .../core/locale/ro_RO/LC_MESSAGES/django.po | 738 ++++++------ .../core/locale/ru_RU/LC_MESSAGES/django.mo | Bin 0 -> 124741 bytes .../core/locale/ru_RU/LC_MESSAGES/django.po | 696 +++++------ .../core/locale/sv_SE/LC_MESSAGES/django.mo | Bin 0 -> 92231 bytes .../core/locale/sv_SE/LC_MESSAGES/django.po | 723 +++++------ .../core/locale/th_TH/LC_MESSAGES/django.mo | Bin 0 -> 148848 bytes .../core/locale/th_TH/LC_MESSAGES/django.po | 1015 +++++++++------- .../core/locale/tr_TR/LC_MESSAGES/django.mo | Bin 0 -> 94604 bytes .../core/locale/tr_TR/LC_MESSAGES/django.po | 729 +++++------ .../core/locale/vi_VN/LC_MESSAGES/django.mo | Bin 0 -> 106688 bytes .../core/locale/vi_VN/LC_MESSAGES/django.po | 833 ++++++------- .../core/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 83035 bytes .../core/locale/zh_Hans/LC_MESSAGES/django.po | 400 ++++--- engine/core/models.py | 4 +- engine/core/serializers/detail.py | 4 +- engine/core/utils/db.py | 2 +- engine/core/views.py | 10 +- engine/core/viewsets.py | 2 +- .../locale/ar_AR/LC_MESSAGES/django.mo | Bin 0 -> 7760 bytes .../locale/ar_AR/LC_MESSAGES/django.po | 2 +- .../locale/cs_CZ/LC_MESSAGES/django.mo | Bin 0 -> 6704 bytes .../locale/cs_CZ/LC_MESSAGES/django.po | 2 +- .../locale/da_DK/LC_MESSAGES/django.mo | Bin 0 -> 6680 bytes .../locale/da_DK/LC_MESSAGES/django.po | 2 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 0 -> 6926 bytes .../locale/de_DE/LC_MESSAGES/django.po | 2 +- .../locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 6449 bytes .../locale/en_GB/LC_MESSAGES/django.po | 2 +- .../locale/en_US/LC_MESSAGES/django.mo | Bin 0 -> 6437 bytes .../locale/en_US/LC_MESSAGES/django.po | 2 +- .../locale/es_ES/LC_MESSAGES/django.mo | Bin 0 -> 6917 bytes .../locale/es_ES/LC_MESSAGES/django.po | 2 +- .../locale/fa_IR/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes .../locale/fa_IR/LC_MESSAGES/django.po | 2 +- .../locale/fr_FR/LC_MESSAGES/django.mo | Bin 0 -> 7017 bytes .../locale/fr_FR/LC_MESSAGES/django.po | 2 +- .../locale/he_IL/LC_MESSAGES/django.mo | Bin 0 -> 7193 bytes .../locale/he_IL/LC_MESSAGES/django.po | 2 +- .../locale/hi_IN/LC_MESSAGES/django.mo | Bin 0 -> 358 bytes .../locale/hi_IN/LC_MESSAGES/django.po | 8 +- .../locale/hr_HR/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes .../locale/hr_HR/LC_MESSAGES/django.po | 2 +- .../locale/id_ID/LC_MESSAGES/django.mo | Bin 0 -> 6714 bytes .../locale/id_ID/LC_MESSAGES/django.po | 2 +- .../locale/it_IT/LC_MESSAGES/django.mo | Bin 0 -> 6826 bytes .../locale/it_IT/LC_MESSAGES/django.po | 2 +- .../locale/ja_JP/LC_MESSAGES/django.mo | Bin 0 -> 7273 bytes .../locale/ja_JP/LC_MESSAGES/django.po | 2 +- .../locale/kk_KZ/LC_MESSAGES/django.mo | Bin 0 -> 358 bytes .../locale/kk_KZ/LC_MESSAGES/django.po | 8 +- .../locale/ko_KR/LC_MESSAGES/django.mo | Bin 0 -> 6928 bytes .../locale/ko_KR/LC_MESSAGES/django.po | 2 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 0 -> 6688 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 2 +- .../locale/no_NO/LC_MESSAGES/django.mo | Bin 0 -> 6651 bytes .../locale/no_NO/LC_MESSAGES/django.po | 2 +- .../locale/pl_PL/LC_MESSAGES/django.mo | Bin 0 -> 6726 bytes .../locale/pl_PL/LC_MESSAGES/django.po | 2 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 6857 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 2 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 0 -> 6813 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 2 +- .../locale/ru_RU/LC_MESSAGES/django.mo | Bin 0 -> 8649 bytes .../locale/ru_RU/LC_MESSAGES/django.po | 2 +- .../locale/sv_SE/LC_MESSAGES/django.mo | Bin 0 -> 6749 bytes .../locale/sv_SE/LC_MESSAGES/django.po | 2 +- .../locale/th_TH/LC_MESSAGES/django.mo | Bin 0 -> 10166 bytes .../locale/th_TH/LC_MESSAGES/django.po | 2 +- .../locale/tr_TR/LC_MESSAGES/django.mo | Bin 0 -> 6715 bytes .../locale/tr_TR/LC_MESSAGES/django.po | 2 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 0 -> 7377 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 2 +- .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 6011 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 2 +- engine/vibes_auth/admin.py | 244 +++- engine/vibes_auth/apps.py | 2 +- engine/vibes_auth/emailing/__init__.py | 13 + engine/vibes_auth/emailing/choices.py | 18 + engine/vibes_auth/emailing/models.py | 248 ++++ engine/vibes_auth/emailing/tasks.py | 316 +++++ .../vibes_auth/emailing/templates/__init__.py | 0 .../emailing/templates/campaign_base.html | 146 +++ engine/vibes_auth/emailing/urls.py | 10 + engine/vibes_auth/emailing/views.py | 173 +++ engine/vibes_auth/graphene/mutations.py | 18 +- .../locale/ar_AR/LC_MESSAGES/django.mo | Bin 0 -> 24128 bytes .../locale/ar_AR/LC_MESSAGES/django.po | 461 ++++++- .../locale/cs_CZ/LC_MESSAGES/django.mo | Bin 0 -> 20181 bytes .../locale/cs_CZ/LC_MESSAGES/django.po | 462 ++++++- .../locale/da_DK/LC_MESSAGES/django.mo | Bin 0 -> 19650 bytes .../locale/da_DK/LC_MESSAGES/django.po | 456 ++++++- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 0 -> 20875 bytes .../locale/de_DE/LC_MESSAGES/django.po | 485 ++++++-- .../locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 19009 bytes .../locale/en_GB/LC_MESSAGES/django.po | 460 ++++++- .../locale/en_US/LC_MESSAGES/django.mo | Bin 0 -> 19006 bytes .../locale/en_US/LC_MESSAGES/django.po | 460 ++++++- .../locale/es_ES/LC_MESSAGES/django.mo | Bin 0 -> 20985 bytes .../locale/es_ES/LC_MESSAGES/django.po | 461 ++++++- .../locale/fa_IR/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes .../locale/fa_IR/LC_MESSAGES/django.po | 400 ++++++- .../locale/fr_FR/LC_MESSAGES/django.mo | Bin 0 -> 21446 bytes .../locale/fr_FR/LC_MESSAGES/django.po | 468 +++++++- .../locale/he_IL/LC_MESSAGES/django.mo | Bin 0 -> 21834 bytes .../locale/he_IL/LC_MESSAGES/django.po | 449 ++++++- .../locale/hi_IN/LC_MESSAGES/django.mo | Bin 0 -> 358 bytes .../locale/hi_IN/LC_MESSAGES/django.po | 404 ++++++- .../locale/hr_HR/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes .../locale/hr_HR/LC_MESSAGES/django.po | 400 ++++++- .../locale/id_ID/LC_MESSAGES/django.mo | Bin 0 -> 19837 bytes .../locale/id_ID/LC_MESSAGES/django.po | 456 ++++++- .../locale/it_IT/LC_MESSAGES/django.mo | Bin 0 -> 20631 bytes .../locale/it_IT/LC_MESSAGES/django.po | 467 ++++++-- .../locale/ja_JP/LC_MESSAGES/django.mo | Bin 0 -> 22810 bytes .../locale/ja_JP/LC_MESSAGES/django.po | 499 ++++++-- .../locale/kk_KZ/LC_MESSAGES/django.mo | Bin 0 -> 358 bytes .../locale/kk_KZ/LC_MESSAGES/django.po | 404 ++++++- .../locale/ko_KR/LC_MESSAGES/django.mo | Bin 0 -> 20823 bytes .../locale/ko_KR/LC_MESSAGES/django.po | 495 ++++++-- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 0 -> 20191 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 463 ++++++- .../locale/no_NO/LC_MESSAGES/django.mo | Bin 0 -> 19564 bytes .../locale/no_NO/LC_MESSAGES/django.po | 468 ++++++-- .../locale/pl_PL/LC_MESSAGES/django.mo | Bin 0 -> 20544 bytes .../locale/pl_PL/LC_MESSAGES/django.po | 462 ++++++- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 20424 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 461 ++++++- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 0 -> 20882 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 460 ++++++- .../locale/ru_RU/LC_MESSAGES/django.mo | Bin 0 -> 27104 bytes .../locale/ru_RU/LC_MESSAGES/django.po | 480 ++++++-- .../locale/sv_SE/LC_MESSAGES/django.mo | Bin 0 -> 20003 bytes .../locale/sv_SE/LC_MESSAGES/django.po | 463 ++++++- .../locale/th_TH/LC_MESSAGES/django.mo | Bin 0 -> 30493 bytes .../locale/th_TH/LC_MESSAGES/django.po | 501 ++++++-- .../locale/tr_TR/LC_MESSAGES/django.mo | Bin 0 -> 20592 bytes .../locale/tr_TR/LC_MESSAGES/django.po | 459 ++++++- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 0 -> 22384 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 483 ++++++-- .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 18367 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 463 +++++-- engine/vibes_auth/models.py | 5 + engine/vibes_auth/urls.py | 3 + pyproject.toml | 43 +- schon/locale/ar_AR/LC_MESSAGES/django.mo | Bin 0 -> 10155 bytes schon/locale/ar_AR/LC_MESSAGES/django.po | 120 +- schon/locale/cs_CZ/LC_MESSAGES/django.mo | Bin 0 -> 8543 bytes schon/locale/cs_CZ/LC_MESSAGES/django.po | 133 ++- schon/locale/da_DK/LC_MESSAGES/django.mo | Bin 0 -> 8231 bytes schon/locale/da_DK/LC_MESSAGES/django.po | 133 ++- schon/locale/de_DE/LC_MESSAGES/django.mo | Bin 0 -> 8687 bytes schon/locale/de_DE/LC_MESSAGES/django.po | 140 ++- schon/locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 8077 bytes schon/locale/en_GB/LC_MESSAGES/django.po | 126 +- schon/locale/en_US/LC_MESSAGES/django.mo | Bin 0 -> 8082 bytes schon/locale/en_US/LC_MESSAGES/django.po | 126 +- schon/locale/es_ES/LC_MESSAGES/django.mo | Bin 0 -> 8719 bytes schon/locale/es_ES/LC_MESSAGES/django.po | 134 ++- schon/locale/fa_IR/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes schon/locale/fa_IR/LC_MESSAGES/django.po | 40 +- schon/locale/fr_FR/LC_MESSAGES/django.mo | Bin 0 -> 8965 bytes schon/locale/fr_FR/LC_MESSAGES/django.po | 146 ++- schon/locale/he_IL/LC_MESSAGES/django.mo | Bin 0 -> 9336 bytes schon/locale/he_IL/LC_MESSAGES/django.po | 123 +- schon/locale/hi_IN/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes schon/locale/hi_IN/LC_MESSAGES/django.po | 40 +- schon/locale/hr_HR/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes schon/locale/hr_HR/LC_MESSAGES/django.po | 40 +- schon/locale/id_ID/LC_MESSAGES/django.mo | Bin 0 -> 8274 bytes schon/locale/id_ID/LC_MESSAGES/django.po | 133 ++- schon/locale/it_IT/LC_MESSAGES/django.mo | Bin 0 -> 8652 bytes schon/locale/it_IT/LC_MESSAGES/django.po | 140 ++- schon/locale/ja_JP/LC_MESSAGES/django.mo | Bin 0 -> 9124 bytes schon/locale/ja_JP/LC_MESSAGES/django.po | 114 +- schon/locale/kk_KZ/LC_MESSAGES/django.mo | Bin 0 -> 334 bytes schon/locale/kk_KZ/LC_MESSAGES/django.po | 40 +- schon/locale/ko_KR/LC_MESSAGES/django.mo | Bin 0 -> 8472 bytes schon/locale/ko_KR/LC_MESSAGES/django.po | 120 +- schon/locale/nl_NL/LC_MESSAGES/django.mo | Bin 0 -> 8352 bytes schon/locale/nl_NL/LC_MESSAGES/django.po | 136 ++- schon/locale/no_NO/LC_MESSAGES/django.mo | Bin 0 -> 8287 bytes schon/locale/no_NO/LC_MESSAGES/django.po | 133 ++- schon/locale/pl_PL/LC_MESSAGES/django.mo | Bin 0 -> 8599 bytes schon/locale/pl_PL/LC_MESSAGES/django.po | 130 +- schon/locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 8662 bytes schon/locale/pt_BR/LC_MESSAGES/django.po | 134 ++- schon/locale/ro_RO/LC_MESSAGES/django.mo | Bin 0 -> 8736 bytes schon/locale/ro_RO/LC_MESSAGES/django.po | 139 ++- schon/locale/ru_RU/LC_MESSAGES/django.mo | Bin 0 -> 11092 bytes schon/locale/ru_RU/LC_MESSAGES/django.po | 133 ++- schon/locale/sv_SE/LC_MESSAGES/django.mo | Bin 0 -> 8348 bytes schon/locale/sv_SE/LC_MESSAGES/django.po | 132 +- schon/locale/th_TH/LC_MESSAGES/django.mo | Bin 0 -> 12914 bytes schon/locale/th_TH/LC_MESSAGES/django.po | 127 +- schon/locale/tr_TR/LC_MESSAGES/django.mo | Bin 0 -> 8716 bytes schon/locale/tr_TR/LC_MESSAGES/django.po | 139 ++- schon/locale/vi_VN/LC_MESSAGES/django.mo | Bin 0 -> 9302 bytes schon/locale/vi_VN/LC_MESSAGES/django.po | 131 +- schon/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 7816 bytes schon/locale/zh_Hans/LC_MESSAGES/django.po | 93 +- schon/settings/__init__.py | 1 - schon/settings/base.py | 3 - schon/settings/celery.py | 5 + schon/settings/summernote.py | 23 - schon/urls.py | 4 - schon/utils/__init__.py | 15 - schon/utils/renderers.py | 2 +- uv.lock | 1061 ++++++++--------- 312 files changed, 25866 insertions(+), 14083 deletions(-) create mode 100644 engine/blog/locale/ar_AR/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/cs_CZ/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/da_DK/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/de_DE/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/en_US/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/es_ES/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/fa_IR/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/fr_FR/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/he_IL/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/hi_IN/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/hr_HR/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/id_ID/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/it_IT/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/ja_JP/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/kk_KZ/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/ko_KR/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/nl_NL/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/no_NO/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/pl_PL/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/ro_RO/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/ru_RU/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/sv_SE/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/th_TH/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/tr_TR/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/vi_VN/LC_MESSAGES/django.mo create mode 100644 engine/blog/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/ar_AR/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/cs_CZ/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/da_DK/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/de_DE/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/en_US/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/es_ES/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/fa_IR/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/fr_FR/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/he_IL/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/hi_IN/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/hr_HR/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/id_ID/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/it_IT/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/ja_JP/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/kk_KZ/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/ko_KR/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/nl_NL/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/no_NO/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/pl_PL/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/ro_RO/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/ru_RU/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/sv_SE/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/th_TH/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/tr_TR/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/vi_VN/LC_MESSAGES/django.mo create mode 100644 engine/core/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/ar_AR/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/cs_CZ/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/da_DK/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/de_DE/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/en_US/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/es_ES/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/fa_IR/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/fr_FR/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/he_IL/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/hi_IN/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/hr_HR/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/id_ID/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/it_IT/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/ja_JP/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/kk_KZ/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/ko_KR/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/nl_NL/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/no_NO/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/pl_PL/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/ro_RO/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/ru_RU/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/sv_SE/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/th_TH/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/tr_TR/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/vi_VN/LC_MESSAGES/django.mo create mode 100644 engine/payments/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/emailing/__init__.py create mode 100644 engine/vibes_auth/emailing/choices.py create mode 100644 engine/vibes_auth/emailing/models.py create mode 100644 engine/vibes_auth/emailing/tasks.py create mode 100644 engine/vibes_auth/emailing/templates/__init__.py create mode 100644 engine/vibes_auth/emailing/templates/campaign_base.html create mode 100644 engine/vibes_auth/emailing/urls.py create mode 100644 engine/vibes_auth/emailing/views.py create mode 100644 engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/en_US/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.mo create mode 100644 engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 schon/locale/ar_AR/LC_MESSAGES/django.mo create mode 100644 schon/locale/cs_CZ/LC_MESSAGES/django.mo create mode 100644 schon/locale/da_DK/LC_MESSAGES/django.mo create mode 100644 schon/locale/de_DE/LC_MESSAGES/django.mo create mode 100644 schon/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 schon/locale/en_US/LC_MESSAGES/django.mo create mode 100644 schon/locale/es_ES/LC_MESSAGES/django.mo create mode 100644 schon/locale/fa_IR/LC_MESSAGES/django.mo create mode 100644 schon/locale/fr_FR/LC_MESSAGES/django.mo create mode 100644 schon/locale/he_IL/LC_MESSAGES/django.mo create mode 100644 schon/locale/hi_IN/LC_MESSAGES/django.mo create mode 100644 schon/locale/hr_HR/LC_MESSAGES/django.mo create mode 100644 schon/locale/id_ID/LC_MESSAGES/django.mo create mode 100644 schon/locale/it_IT/LC_MESSAGES/django.mo create mode 100644 schon/locale/ja_JP/LC_MESSAGES/django.mo create mode 100644 schon/locale/kk_KZ/LC_MESSAGES/django.mo create mode 100644 schon/locale/ko_KR/LC_MESSAGES/django.mo create mode 100644 schon/locale/nl_NL/LC_MESSAGES/django.mo create mode 100644 schon/locale/no_NO/LC_MESSAGES/django.mo create mode 100644 schon/locale/pl_PL/LC_MESSAGES/django.mo create mode 100644 schon/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 schon/locale/ro_RO/LC_MESSAGES/django.mo create mode 100644 schon/locale/ru_RU/LC_MESSAGES/django.mo create mode 100644 schon/locale/sv_SE/LC_MESSAGES/django.mo create mode 100644 schon/locale/th_TH/LC_MESSAGES/django.mo create mode 100644 schon/locale/tr_TR/LC_MESSAGES/django.mo create mode 100644 schon/locale/vi_VN/LC_MESSAGES/django.mo create mode 100644 schon/locale/zh_Hans/LC_MESSAGES/django.mo delete mode 100644 schon/settings/summernote.py diff --git a/Makefile b/Makefile index 38650eb8..cd5607d1 100644 --- a/Makefile +++ b/Makefile @@ -1,19 +1,24 @@ .PHONY: help install run restart test test-xml test-html uninstall backup \ generate-env export-env make-messages compile-messages \ - format check typecheck precommit + format check typecheck precommit clear # Detect OS and set script paths ifeq ($(OS),Windows_NT) SCRIPT_DIR := scripts/Windows SCRIPT_EXT := .ps1 RUN_SCRIPT = pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/$(1)$(SCRIPT_EXT) + CLEAR_CMD := cls else SCRIPT_DIR := scripts/Unix SCRIPT_EXT := .sh RUN_SCRIPT = bash ./$(SCRIPT_DIR)/$(1)$(SCRIPT_EXT) + CLEAR_CMD := clear endif -help: +clear: + @$(CLEAR_CMD) + +help: clear @echo "Schon Project Management" @echo "" @echo "Usage: make [target]" @@ -39,33 +44,33 @@ help: @echo "Detected OS: $(if $(filter Windows_NT,$(OS)),Windows,Unix)" @echo "Scripts directory: $(SCRIPT_DIR)" -install: +install: clear @$(call RUN_SCRIPT,install) -run: +run: clear @$(call RUN_SCRIPT,run) -restart: +restart: clear @$(call RUN_SCRIPT,restart) -test: +test: clear @$(call RUN_SCRIPT,test) -test-xml: +test-xml: clear ifeq ($(OS),Windows_NT) @pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) -r xml else @bash ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) --report xml endif -test-html: +test-html: clear ifeq ($(OS),Windows_NT) @pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) -r html else @bash ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) --report html endif -uninstall: +uninstall: clear @echo "This will remove all Docker containers, volumes, and generated files." ifeq ($(OS),Windows_NT) @pwsh -Command "$$confirm = Read-Host 'Continue? [y/N]'; if ($$confirm -eq 'y') { pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/uninstall$(SCRIPT_EXT) } else { Write-Host 'Uninstall cancelled.' }" @@ -73,28 +78,31 @@ else @read -p "Continue? [y/N] " confirm && [ "$$confirm" = "y" ] && bash ./$(SCRIPT_DIR)/uninstall$(SCRIPT_EXT) || echo "Uninstall cancelled." endif -backup: +backup: clear @$(call RUN_SCRIPT,backup) -generate-env: +generate-env: clear @$(call RUN_SCRIPT,generate-environment-file) -export-env: +export-env: clear @$(call RUN_SCRIPT,export-environment-file) -make-messages: +make-messages: clear @$(call RUN_SCRIPT,make-messages) -compile-messages: +compile-messages: clear @$(call RUN_SCRIPT,compile-messages) -format: +format: clear @ruff format -check: +check: clear @ruff check -typecheck: +typecheck: clear @ty check -precommit: format check typecheck +precommit: clear + @ruff format + @ruff check + @ty check diff --git a/engine/blog/admin.py b/engine/blog/admin.py index 1c7eb0a8..c858a761 100644 --- a/engine/blog/admin.py +++ b/engine/blog/admin.py @@ -1,26 +1,21 @@ from django.contrib.admin import register from django.db.models import TextField -from django_summernote.admin import ( - SummernoteModelAdminMixin, -) from unfold.admin import ModelAdmin -from unfold_markdown import MarkdownWidget +from unfold.contrib.forms.widgets import WysiwygWidget from engine.blog.models import Post, PostTag from engine.core.admin import ActivationActionsMixin, FieldsetsMixin @register(Post) -class PostAdmin( - SummernoteModelAdminMixin, FieldsetsMixin, ActivationActionsMixin, ModelAdmin -): +class PostAdmin(FieldsetsMixin, ActivationActionsMixin, ModelAdmin): list_display = ("title", "author", "slug", "created", "modified") list_filter = ("author", "tags", "created", "modified") search_fields = ("title", "content", "slug") filter_horizontal = ("tags",) date_hierarchy = "created" autocomplete_fields = ("tags",) - formfield_overrides = {TextField: {"widget": MarkdownWidget}} + formfield_overrides = {TextField: {"widget": WysiwygWidget}} readonly_fields = ( "uuid", "slug", @@ -28,7 +23,6 @@ class PostAdmin( "created", ) - summernote_fields = ("content",) general_fields = [ "title", "content", diff --git a/engine/blog/locale/ar_AR/LC_MESSAGES/django.mo b/engine/blog/locale/ar_AR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ac6cf41d479bdb271027a22b2fddb1c0d4822e6d GIT binary patch literal 4011 zcmai$-)|gO6~_lC6kL9k0u{e1-3F<4sAp|QZ3vqLNE|0vByr^0m5`9gc=vjD%IwTC zcgBe&R5gu%;qU+tyn?FI_(zj$EawM?*FK^C0W&ZC8`>vc`J6kmKTIlEdG^e`_x$*t z?>XnLKYH$|KRbM$=lMR*hdeLv{O&V+@%b3}2cA!OuJgS4Imh`C`~QB*arkq_KJPeB zBVR$DK%PR5AXDU5k$*v+Mczez7x^(#?4J38<9r$UEb@!U7m!~Isb~| zd>i>kr0nk?tH>W>BzBswZy^)p_mG=N;psN=JID`^&mliTirptj;dAtBh21ogE$7$B zQ^*hrT<4oSz;u9ZKWsZtY`G|Q3ZCR$;tO|Q=aE>?@JQW+fB68}euO{aO8Aq{H+Uqr z@a9Z~HLq>bz)Q4IQCr7e;zyxTi&3mvUg$Oau%W!Lu40|UzFv~$mB=JYhl!u~82O>{ zIQ8mo6b8$x71ed1mVA9p8J$$rT+=tI7I+3tqY}>#qFC2e5~(I`16_EF7T(acg!87C zC@ zY(&EbtJ-fg{t9JD#4MXcw`>p{nlwI4ffx9Vu<(&IbuShiwR~fQCCN_ras{Y~2ww}* zI-Wdusn_8s3cWxLm;C8r)pww3QMl+g(ju*jGppNRfLW~7LJ&1nTd1~_7O^b#1)D|g zLYY=3iPKs_0ydWg-Sn1x3K%U8`YGAz!b_;WrXqw-qek_I1 z6iUb4s7mlinFa$Yu&OXh)Ivm2jo(Ux#0zzlnqb*xX4yAsyB)>CUz$WMdby?qr)uc1 zZ0&yY2yr&uic>}-Zkf1hr4YZMRXdKB{5qMrY$YkZxUBSbI5f1UBQf$XHf};z_lyA~A_SHDuHV2fUvXsy&4?31C>%M6R-m(h4mUd*Lc(IP4D0UaQY`7i@ zjVGD75=U}jxYKp_bq1dqtE$%~e?D_r9UDJ(yfQJwDA5P*CDZWh?%A|q+_|W#hOW%G zvs_|g;GUyntD^s^JAT}qIIhM|RA2q^%i|N{<3krclelxS7aDHHD6Xoh3p2Bd=j{CD znb*~+$(hS@XC~)VRQQR_B6}IitoIZ9^6|bj9LiOTlHF5Ohkdtp_|HxPJ8!9`<)Vy*#YK! z?PZTtzGipsXLl3^EBV{(Ze{O?{~IhGS5&^9-Otw*o|Go0R<_kmRq_!Og5W)zuc;#dFX}BV&^aRe zk1Vpy3he@x_oV~_1?|`0X1&4{*E(k5C2oK(Yne7uNEd!v27Q za5>=77IL@CnN(Ez6&=y~8{an|)lzkUXL(yIH#ombwi`M1-C(iT<60<_2@syPvU@1W z6zoYW7q0e!xoPqCe4|;$7Bg{2uG_ZPP+rfrq*=&Xn%_Ep2pq7z&F%&SNeQqLDznGL z-G*jyD4SiFRBJ=l1=12F*jFeSS;?^O%Qy;_^}^WBAAvZqxHcHBU7*~w$2eRQY*Lqw zbeIH{5n&V+Mek+_12UpAUbdf~7!aFLk6>vFE(cN&dZo*`2}(|P>3rFNg)*C7cKst) zvK0F0HzA}bgf!u{%zV~yY%;wz=q^iFP7w@6Zmzyp>tXGjUT~ zo=(1wf?Ohi!0>&Hwn=A44j4G@N827kAnlbQOl8*6#^Udaiez-kDACaA14do$~*Rba*NBfW_9DRCw#y3U+_Dm~&X~{Esx`*8_t4 m1Kq2m^(%*f>!Af&u`J>Bl=k!W!!1thp-S@&7+YTht??gRk5mo- literal 0 HcmV?d00001 diff --git a/engine/blog/locale/ar_AR/LC_MESSAGES/django.po b/engine/blog/locale/ar_AR/LC_MESSAGES/django.po index a9aaf7e8..3c9f7093 100644 --- a/engine/blog/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/blog/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,76 +25,84 @@ msgstr "سرد جميع المشاركات (للقراءة فقط)" msgid "retrieve a single post (read-only)" msgstr "استرداد منشور واحد (للقراءة فقط)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "يمثل نموذج منشور المدونة. تحدد فئة المشاركة بنية وسلوك مشاركة المدونة. " "وتتضمن سمات للمؤلف والعنوان والمحتوى ومرفق الملف الاختياري والسبيكة " -"والعلامات المرتبطة بها. يفرض الصنف قيودًا مثل طلب إما محتوى أو مرفق ملف ولكن " -"ليس كلاهما في نفس الوقت. كما أنها تدعم إنشاء سبيكة تلقائية بناءً على العنوان." +"والعلامات المرتبطة بها. يفرض الصنف قيودًا مثل طلب إما محتوى أو مرفق ملف ولكن" +" ليس كلاهما في نفس الوقت. كما أنها تدعم إنشاء سبيكة تلقائية بناءً على " +"العنوان." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "عنوان المنشور" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "العنوان" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "المحتوى" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "نشر المحتوى" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "هي صفحة ثابتة" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" "هل هذا منشور لصفحة ذات عنوان URL ثابت (على سبيل المثال '/مساعدة/التسليم'؟)" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "المنشور" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "المنشورات" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" "ملفات تخفيض السعر غير مدعومة Yer - استخدم محتوى تخفيض السعر بدلاً من ذلك!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" -msgstr "يجب توفير ملف ترميز أو محتوى ترميز مخفض - متنافيان" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" +msgstr "يجب توفير ملف تخفيض أو محتوى تخفيض - متبادل الاستبعاد" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "معرّف العلامة الداخلي لعلامة المنشور" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "اسم العلامة" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "اسم سهل الاستخدام لعلامة المنشور" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "اسم عرض العلامة" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "علامة المشاركة" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "علامات المشاركة" diff --git a/engine/blog/locale/cs_CZ/LC_MESSAGES/django.mo b/engine/blog/locale/cs_CZ/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ebfe198d55c41fb5202ad8780ca0f035b6938947 GIT binary patch literal 3517 zcmai0&5s;M6)zy+V*@0ZF9{{mi;?hJY|ri*V$3)O?9JL(@_uM{HV2DCYPxG@db+!6 z=&EXaCQ%NELk{c-aj+~Q_JD*XRu-p-gL9dkTmA;bfj=OeIB?GEI zz2E!2SMTlLEyz7^uVtIe-FF`JOh3Q_z{rzz3_P^3HTS_^H}sY@O>EV;QbF?sQtbNWVUe6&)DRq?EOt{jH$57%)IrkPSCGC|vyPo5Q)FG~ zV}}4jEM3)?Rf+_f<7GRIIx~6>`Rsa@iE}Nz>zi_okknkQF);@oYbc2(0H_A*&dIo6 zgf}+#y|p?))|xnl;z+CPHLBDkm4@*cK41_eC6Z&w`nXThqG*2U(~=XRkSJBoyb|-_ zG%Y(Ma3yUVbq$hg)57OYYGu65M87+7#lymda9g7B z2ER?$EQoyD?%EH-_%9h zEIm57N2{vUYtdWleU%T_aX!Jl9KChYw6^wkeu8bf=aGP@qh!&hdpCFQ9NoOL{eRcDDYj8OUfH?3v%Lstv$e6Z zRUgEtGa7=dQxDxbgiG~xiu{A6V~9osc!YYf3niXhIrB zx@N$sG5-8STI8aI3QEu=7P`-e1}7nmjF}WXM1qWqlHx!s-x8P&Bw{~A%cOX>A-Q&$ijTK1`iL}J7Pn|`F3KdXLH9b{0qYK;F^eL@=qJ3QE zqHii(Wwlnzo4nWy1r>VGk})r)e{g7B8OnBU04~ICDBR_Te#u2P68GT^B5+R|s6+>$ z7Z&`da=gFjgLS>o^fY+)Gk^c}TO1*C6;6MSQmV;R=a13*CeNCq6@;$ON^_=~Q!f4k DXiUa# literal 0 HcmV?d00001 diff --git a/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po b/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po index 495c9428..0f6ebb84 100644 --- a/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po +++ b/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,80 +25,87 @@ msgstr "Seznam všech příspěvků (pouze pro čtení)" msgid "retrieve a single post (read-only)" msgstr "Získání jednoho příspěvku (pouze pro čtení)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Představuje model příspěvku na blogu. Třída Post definuje strukturu a " "chování příspěvku na blogu. Obsahuje atributy pro autora, název, obsah, " "volitelnou přílohu, slug a přidružené značky. Třída vynucuje omezení, jako " -"je požadavek na obsah nebo přílohu souboru, ale ne obojí současně. Podporuje " -"také automatické generování slugu na základě názvu." +"je požadavek na obsah nebo přílohu souboru, ale ne obojí současně. Podporuje" +" také automatické generování slugu na základě názvu." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Název příspěvku" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Název" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "obsah" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "obsah příspěvku" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "je statická stránka" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -"je to příspěvek pro stránku se statickou adresou URL (např. `/help/" -"delivery`)?" +"je to příspěvek pro stránku se statickou adresou URL (např. " +"`/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Příspěvek" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Příspěvky" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" "Soubory Markdown nejsou podporovány - místo toho použijte obsah Markdown!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "musí být poskytnut soubor markdown nebo obsah markdown - vzájemně se " "vylučují." -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "interní identifikátor tagu pro tag příspěvku" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Název štítku" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Uživatelsky přívětivý název pro značku příspěvku" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Zobrazení názvu štítku" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Označení příspěvku" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Štítky příspěvků" @@ -111,8 +118,8 @@ msgid "" "defined permissions. The view set also includes an additional 'retrieve' " "permission configuration." msgstr "" -"Zapouzdřuje operace pro správu a načítání entit Post v sadě zobrazení modelu " -"pouze pro čtení. Tato třída je přizpůsobena pro práci s aktivními objekty " +"Zapouzdřuje operace pro správu a načítání entit Post v sadě zobrazení modelu" +" pouze pro čtení. Tato třída je přizpůsobena pro práci s aktivními objekty " "Post a umožňuje filtrování na základě definovaných filtrů. Integruje se s " "backendovým systémem filtrování Djanga a zajišťuje soulad operací s " "definovanými oprávněními. Sada zobrazení obsahuje také dodatečnou " diff --git a/engine/blog/locale/da_DK/LC_MESSAGES/django.mo b/engine/blog/locale/da_DK/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c8cb24e2fafeec2793534a76e64fe996141d5543 GIT binary patch literal 3435 zcmai0zmFV67Vg7_gEha-zy%1T2k36sy6N$(1;&hRz`I_XJ?!1p-mD`6YNl&?ims`e ztEwJ*B!n)w5Ro8KGFBu6h{R;TBm|f64-oh-0O=$W0=`$(GrI>!H*)*yA64&t?|ZM_ z+wV`G{3yfk&$yn!^&ec%;(GTF_z%AyfbZk_5!W4D@14l9m+}6mlUas;+1dNE?2o_~ zffs<6fNQ`S_$csW;0EwB;M2e#fV}V216lSk@NwXSz-NIE0sjhI0d{~`nq34w54-|= z99RH(ecgP25BLI}{|$T#{5}PK1H2!LJ_ddZqi^DSc`Et+0?2&t0-4uWz!vZX$eadt zfPV*W0@?2eKwkfOgI@w4!}Hfb=JOr!Pr!T4_x}Pp{-1$Q0{`+z;@bssJe$DhfZIUO zi)-!!f_D6|ZAcuoNNc`!-xIhv7pz;hWd>s6 zYb}EGWGB*zpsevUw2sEYh*Fu7gel0$;FO&5j>f~676YMHFr{yTCI@O>l#2`5Pmf|>&0S!iunxQRIkRh4#G%V zdp(PhMfH6>nOMjA)xnNY%L8JbR7%s7_EGV$a53C=)_8;8CU6?p5WX*I;_Orvh%Cpe zP@@)SB=0~&kMhhoM_IEai-hZmwxWQ43fw@U0e%MBynF7jJA_&8%-`p4!QyE}BQbMAb5 zeFaAeb&%imr7H4`y7YO^c4=jAH{VAS;|=*$RBV^mzm#{*=j-RGbD{gvD}U>(cRDLK zgb#Vo3FFZjt?Sa(_1%5KwQ;bsdy6h@?(X!iZ1!HicCf#NH{1K|&E1=?Vw)*zBp~le zG49fhD?8T@u3X>xzw5hHh`gv)Zf@V)ItpmL-C5a82Qlx>CLkN+op2VyDRYqqBjM0t zFCX--5s^NPvjD0+pW+V%&RfKByl|!NRrLSfo z;5qg&h|fE`pC4j6T$RR1s(3s|!ai)79~Q9S`M9u0%!7r~G%IqR6%{zN(2^Z*5*5!1 z^s16~Xu+?!$-Bgprv=KACi734CXN9ln-!5lGc&Nt(-=oJjf~~Q$d8QqW@NyXR}~zf z1A-t=G6aQF9HUTValkNAc)X0IMr>>rPE*s4{u`?J=-PDam?|ulGKCyj&5_vBgSa## zEAF6F9iJI2{E;C;tDKS5G)d-%JW9X=BAGZ&U{%i#OWzEXJ)H17X}=hyyqJec#lys~ zqM{hi4;`9P$|-le#>_&xB~wg?I8xv(-bA>Oe_=(AF{I4q8;MN^?m9C4b;Vl+P- za>x+5m6~SMCXF;ULb*>U!-Vj9H#HBZ!-*xf)9_Q;3cVX%j=DmM?NPUONsE}`{97~RK15*giuV@lyC zR#1-5r3_gTGfo\n" "Language-Team: LANGUAGE \n" @@ -25,78 +25,85 @@ msgstr "Vis alle indlæg (skrivebeskyttet)" msgid "retrieve a single post (read-only)" msgstr "Hent et enkelt indlæg (skrivebeskyttet)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Repræsenterer en blogindlægsmodel. Post-klassen definerer strukturen og " "adfærden i et blogindlæg. Den indeholder attributter for forfatter, titel, " "indhold, valgfri vedhæftet fil, slug og tilknyttede tags. Klassen håndhæver " "begrænsninger som f.eks. at kræve enten indhold eller en vedhæftet fil, men " -"ikke begge dele på samme tid. Den understøtter også automatisk generering af " -"slugs baseret på titlen." +"ikke begge dele på samme tid. Den understøtter også automatisk generering af" +" slugs baseret på titlen." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Indlæggets titel" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Titel" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "indhold" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "indhold" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "er en statisk side" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" "Er dette et indlæg til en side med statisk URL (f.eks. `/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Indlæg" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Indlæg" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" -msgstr "Markdown-filer understøttes ikke - brug markdown-indhold i stedet!" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "filoverførsler understøttes endnu ikke – brug i stedet indhold" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "en markdown-fil eller markdown-indhold skal leveres - gensidigt udelukkende" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "intern tag-identifikator for indlægs-tagget" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Tag-navn" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Brugervenligt navn til posttagget" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Navn på tag-visning" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Tag til indlæg" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Tags til indlæg" @@ -113,5 +120,6 @@ msgstr "" "skrivebeskyttet modelvisningssæt. Denne klasse er skræddersyet til at " "håndtere Post-objekter, der er aktive, og tillader filtrering baseret på " "definerede filtre. Den integreres med Djangos backend-filtreringssystem og " -"sikrer, at handlingerne er i overensstemmelse med de definerede tilladelser. " -"Visningssættet indeholder også en ekstra konfiguration af tilladelsen 'hent'." +"sikrer, at handlingerne er i overensstemmelse med de definerede tilladelser." +" Visningssættet indeholder også en ekstra konfiguration af tilladelsen " +"'hent'." diff --git a/engine/blog/locale/de_DE/LC_MESSAGES/django.mo b/engine/blog/locale/de_DE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ce19a1287bcc196770b1b0fae7b24fde3f97e193 GIT binary patch literal 3593 zcmai$O>87r5yu-yAb9ym0z?S0QUxT|R@}4pLKfrALTspo@VA^Fb3WpH_j6hHL!N)~OqTJN-F!C7z5xCJ zTmfGL=fMX23ix|)9sCRUE$|~yzq|JNEc+7pJop@V9sDBrJ#Y?O0$G~f0lx#TfzN|I zP}eup_wRz=<^I>;&*1lG@I&xf7X20cH%2So|LI!t`vOi`lD!1J1zraiz!UJB;2*)C zf`0=S!E0Ym@vVSg<^FY$zigj>8sE>s7r_yz{C@?0AN&od>;Dca-+zD_&p*Lez<+_z z%f8O}Sx)7ohkk>^(U#up0hM@sga4}C3!LhckYe6ce?2f657ke#Qh$1UjZ?WQk8HE- znz3&R6RekNY-pbd1MDRZ7qHUCE`sv$b!@c7RW?0~SK<)PW1g5?y<#QTC9Qi zGau|IIZc_zg&UN~Mi|-)UuZOP-m6L)oxO+^qQ1g?w`h7;GU(Flp;1+uLT*g; zvp3|@fOM;}?*>f@tCbztF&t2quccE|0~xE-QPSiqN}tqBv8!ZOe5jjlAb=Q4#}3Vj zBY{=_s-3AiGkSr1b{dsQb8VV1tm;J}sfArsVgVkDl*BXuRKt1*raK(PH@;{Fizz|g zS6zqVq}2?jsw9%O#CR7U7=)xDIbM9z9g6W3%`X~PYa%R(vh~cXC?8GJRfhssDXSoz zilllsYKmY=TQ$Boi;+e3eKQ_cwd&V|YD6t}MS04=mebO{EFKjuhTF=f-tapOTt*GT zcdU%->csVkEay>ZsKqm}kI>Llo|)z-n|_i-!p*p-Ob`F$LfK9UVc^ULj5OX}_;5(V zzR9#=Yb_Gg6P&TL`VKiXFG?~N0q-(4kPk7au^Cvs4Z6EbS`pJI`X&|abm`H-1DUt2 zK}+7gIkd(2Ci@fa_1W7CKgkM5m;@Cqc$vT0#|xQyjsIqR(~a_&5%SY3t(kb~vssx# z%9B}A7#CkPtWoxy9~b6KN;9&VK1dhQ5E9jSpJqdQNGtwZiT%3LhLLag@`r4E_SmW% zZoIL#E4P+z-EJ+i}2Q+hgMRjlj8^5r+V0lT+Sca(UB60q$$NHgXM1P!GN9$w(%eSchL4B22G zg_{WH$~)2>nwk!K_o#h8U%6bTocjn!W3PH-U{zK+F3jy0beST*U)3YOD&;ud`n$L8 zNV>c`U&_mOWqIMwT=pgt!4^UGX5+w?a^8#trB4lwwv>i8y4IWYecYth_<{ zADT|1Bj{M?L7hD9F)faRg;X?Lx-cU}Z=Sq2C|q|KqJ{f$Fhm1t69Zc{jS~?va8hjcsQ4{uafpGenrJ3@Xk2J0-IdV`# zhD-OQtlQc`nNd*Esbun`!vk#(ZbY+1A^fXef?jkbR}M7~Dir)wX{7K-f3A_+tHb81 zWqMXo4>p$CwV8ImgVL7`O^Vc|=+%_XvhfY}561 zCaAJ>w&CP40IfbeE$CL3FD+!}F4nbEpknD^SxvoV-^% zlG%<I z6E06?d(3p%1_DCvYyQ*XxSJ|zNO=diu+%M>XSCU zmBGu(j;W7()oE&B?vn7u^JyduF@E-FDFrr4%J!)xjFL%28TI((&>a@ePX557SnLB! z0s0sMJbk7~%#yk6!hB2zUrcQ!5uS=Q7dGoD9h_B~d7VW8jrehM$v&C2FHZ*`a+1Y- z-J)Q3h#;vr)I{trykz9@%TpzY!z~F2S(|NZed^CqP24(hqc7X zn2O<3M&nw+@QRiuk0~&Ek`7DA%xgJ4)zlWUsmB>I`r=l|;H-?4jV<*q5}e&?y;FH? zl|&f1^+Nq+n?xCR(zz}4YPy87OKtblSg3q!CGz1+2djEd7wQS)WfRV+\n" "Language-Team: LANGUAGE \n" @@ -25,14 +25,14 @@ msgstr "Alle Beiträge auflisten (schreibgeschützt)" msgid "retrieve a single post (read-only)" msgstr "Einen einzelnen Beitrag abrufen (schreibgeschützt)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Stellt ein Blogpost-Modell dar. Die Klasse Post definiert die Struktur und " "das Verhalten eines Blogeintrags. Sie enthält Attribute für Autor, Titel, " @@ -42,66 +42,73 @@ msgstr "" "unterstützt auch die automatische Slug-Generierung auf der Grundlage des " "Titels." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Titel des Beitrags" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Titel" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "Inhalt" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "Beitragsinhalte" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "ist eine statische Seite" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -"Ist dies ein Beitrag für eine Seite mit statischer URL (z. B. `/help/" -"delivery`)?" +"Ist dies ein Beitrag für eine Seite mit statischer URL (z. B. " +"`/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Beitrag" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Beiträge" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" "Markdown-Dateien werden nicht unterstützt - verwenden Sie stattdessen " "Markdown-Inhalte!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "eine Markdown-Datei oder ein Markdown-Inhalt muss bereitgestellt werden - " "beide schließen sich gegenseitig aus" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "interner Tag-Bezeichner für den Post-Tag" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Tag name" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Benutzerfreundlicher Name für das Post-Tag" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Tag-Anzeigename" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Tag eintragen" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Tags eintragen" @@ -119,5 +126,5 @@ msgstr "" "aktiver Post-Objekte zugeschnitten und ermöglicht die Filterung auf der " "Grundlage definierter Filter. Sie integriert sich in das Backend-" "Filtersystem von Django und stellt sicher, dass die Operationen mit den " -"definierten Berechtigungen übereinstimmen. Das View Set beinhaltet auch eine " -"zusätzliche 'retrieve' Berechtigungskonfiguration." +"definierten Berechtigungen übereinstimmen. Das View Set beinhaltet auch eine" +" zusätzliche 'retrieve' Berechtigungskonfiguration." diff --git a/engine/blog/locale/en_GB/LC_MESSAGES/django.mo b/engine/blog/locale/en_GB/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..06cf23823c17d9d28f38a609918364753ef0a1eb GIT binary patch literal 3275 zcmeHJO>Z1U5FH={*zl2rj{_o70TOnEXT56?W7cuNc5GwG_AX{OoIvTF>7DIlrhAy~ zvAq(?35g3FL7b2{!G+(zA3*#BenU8MZ$zl z^NVQAc{uC?tuX*;z#Q+f{h9F{B-=US9*Y>GKT zQd2p{#2k3cVM){hKs8u*PDJC(kJz+K=Bfl)Ya#{3kyeq^s#GMUhVckKU=Sn)l4Hr1 z(U^qAqWQE`1t&rxQL>nNCFa9vI_;3am9%j*G)SsdS(!Sar73MX@sWA;ZJFn$VEsyG zGOXo@m?tGt*Gv0k@vv|{+-6XFgWo!E%1Q`7l$00dK*fkGM3*bE7AGW+prOU`3^+$Y z{Yl^nmw9SL4FAXlv#kliz(hJ2DXl#Ap&$wNO~5O*;6(!U2+pvxMhbFpUYMj`1Q-jj zfvodEUejFYKBiE@kq63>#2kN9h#NRq)E5u$1=_5u|L7RnB2blZjdU3iJ-g% zOS8xO_-epj{cXy(dSM<@LbiV5HRB&`FkR*#WszB=&`&;Xn4^r9%~LTUEixH!NA=(h zL82lY;jqE+P|bKyiC$s&zzDbF@D?^c_E?8LTz|j2M+>cm#b&#Kt%P+D?%G7f;aZv4 zux~ol=yk(=9Af-IcoQqO!}G6&t;MjtNUf#LwRhfZwOg&mj<7E57eZT{jHc+&##VQq z(AEZf-CJ~hy}Q?6UGKlQIoRJo&-Q+Ey}Nq@pXsDT0>Zu&S%-F3_qGPBTO0p4AIx^Q zcQ;OAX*XMq^=c1>{Yeg7~*$mX{cPI zm*Rj)!%b6UwnIAiuXbf&nX1Q?Sxv95Q2Xj~9>7j{hf#;{MPQ(f@mi;0|9R`o2UA I{zZxS6Sp7!ZvX%Q literal 0 HcmV?d00001 diff --git a/engine/blog/locale/en_GB/LC_MESSAGES/django.po b/engine/blog/locale/en_GB/LC_MESSAGES/django.po index e9e2e20b..c673d15e 100644 --- a/engine/blog/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/blog/locale/en_GB/LC_MESSAGES/django.po @@ -1,13 +1,9 @@ -# SCHON GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the SCHON package. -# EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -29,77 +25,84 @@ msgstr "List all posts (read-only)" msgid "retrieve a single post (read-only)" msgstr "Retrieve a single post (read-only)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Post's title" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Title" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "content" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "post content" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "is static page" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "is this a post for a page with static URL (e.g. `/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Post" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Posts" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" -msgstr "Markdown files are not supported yer - use markdown content instead!" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "file uploads are not supported yet - use content instead" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "a markdown file or markdown content must be provided - mutually exclusive" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "internal tag identifier for the post tag" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Tag name" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "User-friendly name for the post tag" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Tag display name" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Post tag" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Post tags" diff --git a/engine/blog/locale/en_US/LC_MESSAGES/django.mo b/engine/blog/locale/en_US/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a336cf3dd5f3654a30fb06cf63a0b9006e7b25e4 GIT binary patch literal 3280 zcmeHJO>Z1U5N#mgW6ehhkOLx80TQ-_XT7$FG3ywx9oty4y_VVa0dYw0Oz&(bv)#jV zkL{IEP8@SW;)LLcIKaQ)$c;O{A)L7Ks%QKWq6j!5d9*!mrn{%=)vNBV{r&2tZv?Ju zXm6nXigq3C%O`Nd^#FJu?GLnLw0lnp@jm+hyd(sEV)n8S&j8;8E&^`?r+_8!Md0_q zRp8IS*MSd!{N2RULOc(=0(=&D9rzsZ9bg040%EFI0=@-Y0bT(nK%QULhy|%{Dz!o%;MyA@N zBuzqv@`YB1{JLkICuO|$8Xsvx5~DJStjWeSvWd#*P^%+y$~UPy)Q;jzI?QzBrOs@j z67rUYFq^5$n(g0FvB&sOdXj}A8GC&QfM=Oy_6Ur0<|}s8mkuVZp+pU|!6T2U!Zm5j zgO67!CW6|L_CvaLN1D`5I(!x1Rj^l0=0M!oc{K`7lyPP8umm#Gsi|!Ep*r;ijYirz zR*9oir?G;lvv410WdchQx+DoSvPNb!S?i}J>C6Dd)(mu7R$(>8zRJM?%HnJ4XEvpr zr4Eu-zJm0XnpNy9nIh+lGWG}{#L`zod8m;rK8AA$(s^Uf4sOAhHNuzQkG_lRAcm4$D(;jzs;5 z2!zW#voe8y85RM?1U8WK zA*fuYieEkNE?Lb8X(S%07HvJXx4%tOs+l(F_Uuq)`7HJ)xEJHw(;taUBTNJpEI67v z-N(~{y@uNf-|B^VoDg#L6R(-@=)}n~2PuclB86e{dBYrKqFtWJF&Q~hf;*~*U}O(qYoZh3x*s>kIiLvJqA-1Ji8q9$C_go~PhnlO^Z-NYW5subZc zKJEB#Rbuu3UM034UnTY)sS@17l}wyGxbTEOV4>KC7l*$(;qN3W{A24x_wRLrJ3^i4 LhC0#v7j@z literal 0 HcmV?d00001 diff --git a/engine/blog/locale/en_US/LC_MESSAGES/django.po b/engine/blog/locale/en_US/LC_MESSAGES/django.po index b9ab79e4..3252e8b0 100644 --- a/engine/blog/locale/en_US/LC_MESSAGES/django.po +++ b/engine/blog/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,77 +25,84 @@ msgstr "List all posts (read-only)" msgid "retrieve a single post (read-only)" msgstr "Retrieve a single post (read-only)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Post's title" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Title" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "content" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "post content" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "is static page" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "is this a post for a page with static URL (e.g. `/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Post" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Posts" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" -msgstr "Markdown files are not supported yer - use markdown content instead!" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "file uploads are not supported yet - use content instead" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "a markdown file or markdown content must be provided - mutually exclusive" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "internal tag identifier for the post tag" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Tag name" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "User-friendly name for the post tag" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Tag display name" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Post tag" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Post tags" diff --git a/engine/blog/locale/es_ES/LC_MESSAGES/django.mo b/engine/blog/locale/es_ES/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7f86818ed13c531640f31c0e0a6291de72afab00 GIT binary patch literal 3545 zcmai0&u=8f6|MwGz=VWfiBOc49*e}LP_rCYN zSMSXiPe1%ef#YX5e}VH~I4|J*{rB(>$5+5V;QTMn`#9fwNQhtJ`Trgk0)OK2BSQQT z_%iSs@HOBvumS!U_!rlQy~-~So- zGM@hx2zugKoZrU@+VNo9kT`NoPm)f2&GuNkr*JYC=EZqqzkI-CJXk;0iuL1z`Ef2- zH?d`MS^K7xL3y&Zax!RZJdLcQN*X!VW=zr)~kyoKdgNgQ(m(pXUryzA{ohm3;n!s$Sk~KR#R(Zhti3}v2BAEw$0)S^( zmi8VP=`tjCG?X4Dtf4}Uw8166Q_lBjJAhA6V=M%Mh*oWmCYCgf2w^jjWL+U264H zm*~s@<<^Y!xJhC4#G$Ie0m|ZQ8kTlUHA@{OO}?V^NzD{HOQy&N*W>{K#8`%EB2P3D zXh(~7T6H>l0r?y@EEDHiHeq7jDj}(*T4iDZJXTQ>Z2(XW)68R*^F0Hg1oo6 zhT=%89Ji_@lFGn%4j(WGk`l@BbavCFx>iedytz-R~U@O#ePRx_W%Cx0@Ry-_R47Vp*Z}8g&PE`Zphl*-v zPjrFEGCT?mYH>>HJ~Z?wPr*47?I$7DuL$-U|8;!R4fE&-`SyxyCSH2cl{rXxWELrm zix&-Zl!f+nDW_y)r361n7ts(Ta@h#Y2JIoO__h)U&T_-Zwu|fzHa_-PpWfVjV}FmX ztX;XR%hrP}H-CyA| zGj5Q8Y@lS-r=1&nw~ubz-ulknnSB_V(sr{3xxh4W`2=Z1Y^ii?okCnqT^!DX zhS*$7GR~YrB7t+-8nlc;VS=yDQ{A%t3UwC4iEV+^V?*Lk#_c01!4eR|pi zUFzS(GHcz;U*j9!5ay_K&x>wA<=9a!?i>f9P=j13ZF*wU7w89E7xnBEzanE5B}v4m zpMVW&4?7;;E!Ivfkj0O9@9+eRJt6A344p_Fs|u5L^+7Xjhno#1r^W7$`wsGWc?>qo z=X%bHIB13?Qp62R)ZO)5X0f#xjV$N)UJO$0##FY}VGJCt$B($KEpi;Qj|~?=w>Q4Y oV9!=V{8Bit9@6!or>)cO?PzwI>$v$Fj}W4Aiz#SrradnH59O\n" "Language-Team: LANGUAGE \n" @@ -25,14 +25,14 @@ msgstr "Listar todos los mensajes (sólo lectura)" msgid "retrieve a single post (read-only)" msgstr "Recuperar una única entrada (sólo lectura)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Representa un modelo de entrada de blog. La clase Post define la estructura " "y el comportamiento de una entrada de blog. Incluye atributos para autor, " @@ -41,65 +41,72 @@ msgstr "" "adjunto, pero no ambos simultáneamente. También admite la generación " "automática de slug a partir del título." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Título del mensaje" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Título" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "contenido" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "publicar contenido" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "es una página estática" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -"¿se trata de una entrada para una página con URL estática (por ejemplo, `/" -"help/delivery`)?" +"¿se trata de una entrada para una página con URL estática (por ejemplo, " +"`/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Publicar en" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Puestos" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" "No se admiten archivos Markdown - ¡utiliza contenido Markdown en su lugar!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "se debe proporcionar un archivo markdown o contenido markdown - mutuamente " "excluyentes" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "identificador interno de la etiqueta post" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Nombre de la etiqueta" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Nombre fácil de usar para la etiqueta de la entrada" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Nombre de la etiqueta" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Etiqueta postal" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Etiquetas" @@ -115,7 +122,7 @@ msgstr "" "Encapsula operaciones para gestionar y recuperar entidades Post en un " "conjunto de vistas de modelo de sólo lectura. Esta clase está adaptada para " "manejar objetos Post que están activos y permite el filtrado basado en " -"filtros definidos. Se integra con el sistema de filtrado backend de Django y " -"asegura que las operaciones se alinean con los permisos definidos. El " +"filtros definidos. Se integra con el sistema de filtrado backend de Django y" +" asegura que las operaciones se alinean con los permisos definidos. El " "conjunto de vistas también incluye una configuración adicional de permisos " "de \"recuperación\"." diff --git a/engine/blog/locale/fa_IR/LC_MESSAGES/django.mo b/engine/blog/locale/fa_IR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..582b5dd4dcd0f41a41ecd855c98623798fc8d305 GIT binary patch literal 334 zcmYL@Jx{|h5Qd9j%7_>lJg~u)wgU?0Lp6=tMzWJCO_5+Ti3vuvk;bGsjP&!JYRSt#zG~EFtDriccI4eNrkT9~$sZ7tG^NdGAwE;@6 zY`ay#c}nIRAxOp~C%0U(R7_ct6nwqDN7Xia)o3WS`k+LxY_VYr^n{ph&CvO#cd&s> zCGR_rhoflbY|s|peebYO&|l$lw^hd8km^nOR)@PyIfuCSx>~Q=1Gkl{jcq82UrdMw Ee=3$*MgRZ+ literal 0 HcmV?d00001 diff --git a/engine/blog/locale/fa_IR/LC_MESSAGES/django.po b/engine/blog/locale/fa_IR/LC_MESSAGES/django.po index 92b36319..09f58f69 100644 --- a/engine/blog/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/blog/locale/fa_IR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -28,7 +28,7 @@ msgstr "" msgid "retrieve a single post (read-only)" msgstr "" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " @@ -38,60 +38,67 @@ msgid "" "title." msgstr "" -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "" + +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" #: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" -msgstr "" - -#: engine/blog/models.py:144 msgid "internal tag identifier for the post tag" msgstr "" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "" diff --git a/engine/blog/locale/fr_FR/LC_MESSAGES/django.mo b/engine/blog/locale/fr_FR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5a04d3d31980d1f4975ab9384b49cec5185e9f63 GIT binary patch literal 3610 zcmai$O^h5z8HNi;_}Ksnf#eVoQ8t2Ei=FYVMT}X;1be+UM*F8_HWCP=)O6SMl+)8a zbXBdrC<+&j9JnBE9JsK9#Ek>uIua+&+~9)5IphLIp0B!R)`^j5ZSUJZ)nC2e`~A(| zUwr15isNO@FLM5c^Ht7wKEgka_rRZX{)_W5=er+M>Ki=&_cKcIr>;J$)F;5NgEzp} z!F4c#p9Oyn-T{9Pz5>1n%6HFwT&YikFMyu}Uj;t}eid8;H$j%Fo8V>eHuwUVgR(w$ z@81Q#%>B>6AHwe({2TZzi~b7!1EW9S{hyv|_kD>?h3_li_rc5HSHO3`m%!hEKLY;< z_Q97w)AG0ribmfBd8G^}e5wwA3bM8O1vmhI1%3(qGsxEJpP=~jK6nZI4+uT=1SiFTjke34V^3McVL4os#)^b>BfpB$g(lvs#vYPZVF%*WCM z>vcV|jR~%yR>1|wN3PO_wg*%!Z5Zg`#Ce^S#&jwN{TF+AQ#XVuCh})g}w>6kumlmh~eT zxiYlu^vHNj)RoTd*i~H0JKOkyeh}ajY{5dPJ#t~9?>;nDQTIGwWp7*TwTs0Of98Xo zrcG?+WAi}?OzDcMwGk$EwHF#qo%f=WcxP9>Le$r6pOrDkl0la|N29tjrS5h5*`B^I zptHIfyCSx34b-un!2xCYT93-Q&@+)bN!sp}q;J)1eHY2B_MwScz=7n;$WF|uBY^ez zNjsf7OL~ELj-tpUu{JSG>SjX|)Y5JUu>g+^QlfJJ)vz9d$tKhE#+R|!XanSZojDXI ztfuHxX-V1&;~9Hk5R!)Ac%nxJ|& zjb$*Et)nl`l4nVMA7`_=5&dGQr{r>`g{LlT)ur}D@`!NB-GSSU8Y@;!l>mKgj!UQux%^w*KDEcMcEq zwashS2U}~D5_!>TcY zi_fYe5`g~Dn(4OQyM1u~q2yE*cBNx_=O1ezhzgIU?zpblTy7jlN-PG;n zt@TP@x}~?S++17D1gp!`5f}62RLCur$>n8PUT%jBG2)dKb(WF9z{nv0VdaXx z1`)H2LlU_YD(I5hUJV>RKs6yry|wJ}9(F%$EQ!1FB@M`K0wIKiw(QZfZDa;v4;356 zP_itOC~{4kbBpr~b!zFDdTcV80rEQ`y&WO2S8O^Ks`ZeYMQt6`cWlZdAwx4dYsqf z=;C)MjG@?6j=AJYW(zJe*(AYa)`=F9LF&%Ml#6N)|2p5j-e2wnyHtOoz^p-v3%{6o z!3pu7NUI5pKagQ@MQUZ?l3GqaYAF4PYcNVKqD$wvOcEt6LBvRNE{!+@QdC#rLf@5b zaHiIKsrZywtJS%5h_WXGQLHRK*6TCVFx2gIM!r2YB=s9=k13hB1b%L$2zMJWF+beF zt|%!MtCp%uVa8GEvh>4R4Q2QVFV}fq?E^`Bk*BlY+VbjnG0)\n" "Language-Team: LANGUAGE \n" @@ -25,14 +25,14 @@ msgstr "Liste de tous les messages (en lecture seule)" msgid "retrieve a single post (read-only)" msgstr "Récupérer un seul message (en lecture seule)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Représente un modèle de billet de blog. La classe Post définit la structure " "et le comportement d'un billet de blog. Elle comprend des attributs pour " @@ -42,66 +42,73 @@ msgstr "" "simultanément. Elle prend également en charge la génération automatique " "d'une balise en fonction du titre." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Titre du message" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Titre" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "contenu" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "contenu de publication" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "est une page statique" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -"s'agit-il d'un message pour une page dont l'URL est statique (par exemple `/" -"help/delivery`) ?" +"s'agit-il d'un message pour une page dont l'URL est statique (par exemple " +"`/help/delivery`) ?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Poste" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Postes" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" "Les fichiers Markdown ne sont pas pris en charge - utilisez plutôt du " "contenu Markdown !" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" -"un fichier markdown ou un contenu markdown doit être fourni - ils s'excluent " -"mutuellement" +"un fichier markdown ou un contenu markdown doit être fourni - ils s'excluent" +" mutuellement" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "identifiant interne de la balise post" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Nom du jour" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Nom convivial pour la balise post" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Nom d'affichage de l'étiquette" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Tag de poste" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Tags de la poste" @@ -114,8 +121,8 @@ msgid "" "defined permissions. The view set also includes an additional 'retrieve' " "permission configuration." msgstr "" -"Encapsule les opérations de gestion et d'extraction des entités Post dans un " -"ensemble de vues de modèle en lecture seule. Cette classe est conçue pour " +"Encapsule les opérations de gestion et d'extraction des entités Post dans un" +" ensemble de vues de modèle en lecture seule. Cette classe est conçue pour " "gérer les objets Post qui sont actifs et permet un filtrage basé sur des " "filtres définis. Elle s'intègre au système de filtrage du backend de Django " "et garantit que les opérations s'alignent sur les permissions définies. Le " diff --git a/engine/blog/locale/he_IL/LC_MESSAGES/django.mo b/engine/blog/locale/he_IL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a33245c7b79a362bfe18301b995a9c78728343ac GIT binary patch literal 3765 zcmai$&u?5;6~|wpP;mHBT3`WGx`2co;Wx3PHiSt{o48Jhl-QB6E08MG>zV7Bm%e## zc=tUgmQYtLS=fo4)Og~=t{eZ5;BP=(cZu|NtXY;7tSUa|-Zwu=shH%>xj)W5=X<{A zoIC#e3(sx`e7?*00plaaON`$?!xx{Ak$+_TlW~{v?iYjLXYBv$*&yJ5aPCV%@Er1G z^9Amr^l#SBVQijraVGZ`D*0>VZ&_>P4DzqYZzDfJ z{s#Ht*L|EFq}=-e`6BW!$ZsJ(tk!=+euwoxkX#KuLB5PUL-5~6zK&!ocnc|U-A2BK zEReu+K7ktm+kL*tHxxTA{EoLPbMYhGiT@WEXBd(<;a@)DM?T_5xDx*4Be-$r;t1xF zhVI%T*154N?V3#IQJPq_nr5n_6WxlEmeNU6WhT!evnI=1sm+y1@+gnE6eUV?s+(b& z#Otb)HchP7B6CMslh@QzJF=<~Ym25;xsKvAGfkDJs*Ty$cx&m(ZPUm(Z|hv?%qZQ+ zqcsGcbsVR6KorHfN2gY_#YCE@rdf>=rgCO7TT|C_@Z_e2BGB$cd0V}4TPLk_+;Xe& zj=`Q+mO$*f%}vKSF^Mg*Pg9`dsFipddD{$p!BHo&R#=kg%pg{P+7$PVxM*TY!%MRX zM`@yCHD2*&#?{b(YNW|()GB;fwP4Y7!2q+|Rx5GZQeC0iQR;m;>OGr2cA?BDn`cEM zCjb}AifQY$hykis7YiYTX{h(t}AmF4lU&wNREQ)O5gw&-8j`v{F4hoTLHqr zy2&w8STpbuK?!{mNX2GSB(SG&MrW-?&>?vdkgf>OweuK}}t(zw+~+PEAiujor{T50^5XSYF07tE;(d3yX?zWqE$#P4(*R!u-r?$p(d%k$TkFJGJczxs96HenQx-MoHtZWz#X zZE9@RH)6Q7-UV!K?&jwpE=n$`Mq6jRurtd`SHp`#J;A&RfjsPKlMK|=#g!-@yA|`w z#NpL6>)5(Vx^8J_&RLM{o$d!Q6}kHEBr+>q@P!V#cY>W8>1i>*<^TR41(1-Z?cMD2fs zJeo~`ih?6#>(d;ca!o>Ygl~AuTNpZVp*lxHY$!RtDx$YWsoupzPXfFr@%S7#0{YhQ zE>F;xbw=M2V#85`!X=U*(WpOm5t)sJdn(3XS0$=gUABfd<*l)%| zX)Gy>1A^ZP+>{y#`q2ltqwjoC9C2JxCJegjc!FjXku$;mV}3TdCap&Uiut~Orh6{6 zQ1n1-O5r|07s5wUc<5-Oq(=&7xS+)jdX{aGwZVMxEM$ z&$vL6XF+~#`&U^`5Uaczz5n&&i)Ghgu0wXES*0_)1L+I7{Mje+Y%s(-AYvp29~tQ$ zL^TrYU~iCfaXQ$oCXoIpAZn@xI6UyxzHl$_?tebCli_nSeDbB;sR4H;9lb5)2MDTz X9jO?G)FPSkyj3Y5^!Z3AL)iZThi8%o literal 0 HcmV?d00001 diff --git a/engine/blog/locale/he_IL/LC_MESSAGES/django.po b/engine/blog/locale/he_IL/LC_MESSAGES/django.po index 9bc6fe4e..c537d769 100644 --- a/engine/blog/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/blog/locale/he_IL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,74 +25,81 @@ msgstr "הצג את כל ההודעות (לקריאה בלבד)" msgid "retrieve a single post (read-only)" msgstr "איתור פוסט בודד (לקריאה בלבד)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "מייצג מודל של פוסט בבלוג. מחלקת Post מגדירה את המבנה וההתנהגות של פוסט " "בבלוג. היא כוללת תכונות עבור מחבר, כותרת, תוכן, קובץ מצורף אופציונלי, slug " "ותגיות נלוות. המחלקה אוכפת אילוצים כגון דרישה לתוכן או לקובץ מצורף, אך לא " "לשניהם בו-זמנית. היא תומכת גם ביצירה אוטומטית של slug על סמך הכותרת." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "כותרת הפוסט" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "כותרת" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "תוכן" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "תוכן הפוסט" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "הוא דף סטטי" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "האם זו הודעה לדף עם כתובת URL סטטית (למשל `/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "פוסט" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "פוסטים" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" -msgstr "קובצי Markdown אינם נתמכים עדיין - השתמש בתוכן Markdown במקום!" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "העלאת קבצים אינה נתמכת עדיין - השתמש בתוכן במקום זאת" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "יש לספק קובץ markdown או תוכן markdown - באופן בלעדי" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "מזהה תגיות פנימי עבור תגיות הפוסט" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "שם היום" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "שם ידידותי למשתמש עבור תגיות הפוסט" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "שם תצוגה של התג" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "תגית פוסט" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "תגיות פוסט" @@ -105,7 +112,7 @@ msgid "" "defined permissions. The view set also includes an additional 'retrieve' " "permission configuration." msgstr "" -"מכיל פעולות לניהול ואחזור ישויות Post במערך תצוגה של מודל לקריאה בלבד. מחלקה " -"זו מותאמת לטיפול באובייקטי Post פעילים ומאפשרת סינון על בסיס מסננים מוגדרים. " -"היא משתלבת במערכת הסינון האחורית של Django ומבטיחה שהפעולות תואמות את " -"ההרשאות המוגדרות. מערך התצוגה כולל גם תצורת הרשאה נוספת ל'אחזור'." +"מכיל פעולות לניהול ואחזור ישויות Post במערך תצוגה של מודל לקריאה בלבד. מחלקה" +" זו מותאמת לטיפול באובייקטי Post פעילים ומאפשרת סינון על בסיס מסננים " +"מוגדרים. היא משתלבת במערכת הסינון האחורית של Django ומבטיחה שהפעולות תואמות " +"את ההרשאות המוגדרות. מערך התצוגה כולל גם תצורת הרשאה נוספת ל'אחזור'." diff --git a/engine/blog/locale/hi_IN/LC_MESSAGES/django.mo b/engine/blog/locale/hi_IN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6cc44c8c5901a79fda3b034713704baadc22b52f GIT binary patch literal 358 zcmaivPfvqD5XEcs#L=^dJ$SQ&OOq11{)rSRk`%T<=zWD1F?E+L+eSZ#U(e6taIr^U z^2;PM?_ve(8!Hnd#>%Y8dQsTpxL913~p#sEADE7|Cu1NFi42@TkMaYa2!owXP<!pw zC#*J%#0f75vaE8xCASgJ%P=Y*R#g$>CN12EXZILW?OwDJN+~`VS%-O2g-QIcADd-q z79W4{TmWm(Dtq EUqPc^dH?_b literal 0 HcmV?d00001 diff --git a/engine/blog/locale/hi_IN/LC_MESSAGES/django.po b/engine/blog/locale/hi_IN/LC_MESSAGES/django.po index 434a4314..43351be5 100644 --- a/engine/blog/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/blog/locale/hi_IN/LC_MESSAGES/django.po @@ -1,13 +1,9 @@ -# SCHON GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the SCHON package. -# EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:26+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -28,7 +24,7 @@ msgstr "" msgid "retrieve a single post (read-only)" msgstr "" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " @@ -38,60 +34,67 @@ msgid "" "title." msgstr "" -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "" + +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" #: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" -msgstr "" - -#: engine/blog/models.py:144 msgid "internal tag identifier for the post tag" msgstr "" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "" diff --git a/engine/blog/locale/hr_HR/LC_MESSAGES/django.mo b/engine/blog/locale/hr_HR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..582b5dd4dcd0f41a41ecd855c98623798fc8d305 GIT binary patch literal 334 zcmYL@Jx{|h5Qd9j%7_>lJg~u)wgU?0Lp6=tMzWJCO_5+Ti3vuvk;bGsjP&!JYRSt#zG~EFtDriccI4eNrkT9~$sZ7tG^NdGAwE;@6 zY`ay#c}nIRAxOp~C%0U(R7_ct6nwqDN7Xia)o3WS`k+LxY_VYr^n{ph&CvO#cd&s> zCGR_rhoflbY|s|peebYO&|l$lw^hd8km^nOR)@PyIfuCSx>~Q=1Gkl{jcq82UrdMw Ee=3$*MgRZ+ literal 0 HcmV?d00001 diff --git a/engine/blog/locale/hr_HR/LC_MESSAGES/django.po b/engine/blog/locale/hr_HR/LC_MESSAGES/django.po index 92b36319..09f58f69 100644 --- a/engine/blog/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/blog/locale/hr_HR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -28,7 +28,7 @@ msgstr "" msgid "retrieve a single post (read-only)" msgstr "" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " @@ -38,60 +38,67 @@ msgid "" "title." msgstr "" -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "" + +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" #: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" -msgstr "" - -#: engine/blog/models.py:144 msgid "internal tag identifier for the post tag" msgstr "" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "" diff --git a/engine/blog/locale/id_ID/LC_MESSAGES/django.mo b/engine/blog/locale/id_ID/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..9d51cba8d69f2878e81eddfe68617825ee9946c3 GIT binary patch literal 3420 zcmai0&5s;M6)#A_$A&-%UlJnX1q5D`?eVTfj2Xv(ybD*`ozwWN8_kQnt{`Jzc ze^9u-iu)V5-^2Yf?%#X@|8RW>{4MVP;(mhr?Prww0lxq5S*7r&t~{sIr-9!GUI)Go z+yqA8=Yf9&-Uj{+_;uiiKsopPrg!>J9z&O@Qc6~UdVjE2^4!afdy~` z1U>a-+@HiPoa7Q&qECFWydWxF!cTlBa$mv?$|-KbM=pp=m-tV7CHmz05^muxep7pG z$(@gugZAV)-E%Om^>pfbYPjXvv^8;CQLjU9^qIUKIUh*3!32XtrX|KISA}csf*Mz8 zOJ_zuCa=SYCNtxywCu6dQ($9VuPX|UW)N$2mgc69bQ!Qd<3QYN;xd>s05r3;?lBk{ z8!|hZvWE!QQl(E#i$_`0y&uv206sz2*a&KmO_4C4}r^BlUBTq^;Qm$_pUVXIKs;H z;FU~Lw-8=J2Lys7BRHOXEN8?XN%N~{dI^L^pme{~O2S9Nw62iAm0A~Q>JU_KnrH*J z+C^^{$+F~qAG^-=;=dSNgIq32cv7v~A+=Y@BaTbvj?|zHdI!U)iE#W>Q`fsQQ^B$V zpF%_~E=WIt4?WUTNsQERL?yzpvyLn1M=XTxKnMaBIzUMD`do*BOHemTGPai_f%gc? zP+6x2?vS_$$&>_GQz#%Gl2IMkT3&-x7v~)*j3g^LX@{*R#}8;zkLnSYPr!$KIDfa2rlZ2Q#2d2hrHwCo;d2AG>qbYRXjxDqsGScv)wli59sRl)oY`j z4U`h{pxF1dsfydN_Qk}FY2)ayI7Snb1H~O=>{#}{R%~A@cCOL(_3>*ze06(gdwb&n z`%p}JZaq4q>&LWr@9>y#-#$4wd`PeF9v)0??M{Aj_vCmFU+y1|b`SS|gkxU+D;~pLM z=E>x4aecK+1jclIYQn~mMVGO~UDr2$Ol_B5{mrX4C_moZZ0VJov~&5! zhT7LH>Sdnif;V|A0Am~CoKXF>w$3tDXmRq!&D7XD5Kz@e(y}VH+{gexPB)#gvNH_^ zH2nn^XvI9DpK6Q+G)#kZ0PPaaTj{_HV?_qTJj-0jI?quYgXSi-_1u7Hi=GOx(n|0= z)qTaDd-`lK5jAOW;=I>B z^0^rEYs|)vtBy^FdE4f>@hH|TPAqvIJDM-&0c54qYhweBoHE=uLVOR* zs5GOcWhn>{n}!6^T}aB1m}5vJ@)$yh$~>m>9Q?L+UV?JYiu0rxVgs*4w2du#6su^r zgfslQMF@B&Va$!&by8!D^*kpeSESC9JK*y<8~iv}Wk91F#7!6p)hP!=5R^4|2BFfR z{l}TCWqlY$953p`@X~=hgQi~boaVZUl57xCa*uh6KEVxNjQ-O7Rh%Q45OL^%WN4PD z;qnZ@PlvUXN@kC8w-;aZvBiEABLbO74FsQF!;a{s@#)I27*Y&Gr_O53!-}(WgrvGH zgCz@6cV!ShEiKzvnSppgHE684=jr`kPq{{FBE69;3w}jm2YO>3HgiV8NqEjjQLc6Q zg!ED%XL$xA5oB?W3?Y2&pmCN8c-SzcBDUo7%L7AQ$tcQaX%oMp*h+YYsg&sS2I6Hd z-Qm-~Jwn&SJl%4NZm!zLWrZA1Lq~FdaMfhsyTmsoMOP^\n" "Language-Team: LANGUAGE \n" @@ -25,82 +25,89 @@ msgstr "Daftar semua postingan (hanya-baca)" msgid "retrieve a single post (read-only)" msgstr "Mengambil satu postingan (hanya-baca)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" -"Mewakili model posting blog. Kelas Post mendefinisikan struktur dan perilaku " -"postingan blog. Kelas ini mencakup atribut untuk penulis, judul, konten, " +"Mewakili model posting blog. Kelas Post mendefinisikan struktur dan perilaku" +" postingan blog. Kelas ini mencakup atribut untuk penulis, judul, konten, " "lampiran file opsional, slug, dan tag yang terkait. Kelas ini memberlakukan " -"batasan seperti membutuhkan konten atau lampiran file, tetapi tidak keduanya " -"secara bersamaan. Kelas ini juga mendukung pembuatan slug otomatis " +"batasan seperti membutuhkan konten atau lampiran file, tetapi tidak keduanya" +" secara bersamaan. Kelas ini juga mendukung pembuatan slug otomatis " "berdasarkan judul." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Judul postingan" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Judul" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "konten" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "posting konten" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "adalah halaman statis" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -"apakah ini adalah postingan untuk halaman dengan URL statis (misalnya `/help/" -"pengiriman`)?" +"apakah ini adalah postingan untuk halaman dengan URL statis (misalnya " +"`/help/pengiriman`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Pos" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Posting" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" -"File penurunan harga tidak didukung - gunakan konten penurunan harga sebagai " -"gantinya!" +"File penurunan harga tidak didukung - gunakan konten penurunan harga sebagai" +" gantinya!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "file penurunan harga atau konten penurunan harga harus disediakan - tidak " "boleh ada yang sama" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "pengidentifikasi tag internal untuk tag pos" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Nama tag" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Nama yang mudah digunakan untuk tag postingan" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Nama tampilan tag" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Tag pos" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Tag pos" @@ -113,8 +120,8 @@ msgid "" "defined permissions. The view set also includes an additional 'retrieve' " "permission configuration." msgstr "" -"Mengenkapsulasi operasi untuk mengelola dan mengambil entitas Post dalam set " -"tampilan model hanya-baca. Kelas ini dirancang untuk menangani objek Post " +"Mengenkapsulasi operasi untuk mengelola dan mengambil entitas Post dalam set" +" tampilan model hanya-baca. Kelas ini dirancang untuk menangani objek Post " "yang aktif dan memungkinkan penyaringan berdasarkan filter yang ditentukan. " "Kelas ini terintegrasi dengan sistem penyaringan backend Django dan " "memastikan operasi sesuai dengan izin yang ditentukan. Kumpulan view juga " diff --git a/engine/blog/locale/it_IT/LC_MESSAGES/django.mo b/engine/blog/locale/it_IT/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..51222dab47503173e4bf217edbc3333c0d24d27f GIT binary patch literal 3499 zcmai$&u=706~`M$2sjWz_$47CJ$?w=!ZT~Hl4Y4)1G|oQvE*NI#yN4=nx1k`B|Tk3 zSG9M&LXnUV;=q+F;+PBk6FDJq;lu?Yapn@l0deE=s(NfML89gMo9?Q5@B6;*SO4{u z=YCyqeVO}f+<)YLmHVe3;~&?D$X{{)gZl~hd!HzZ@ACd%&lLrK#f|5S;sxYu$lJ)f z$Teh#dmABmaO@9REaq5&3VV+JEV@8UI(1pX2#kNPYhrQqOJo>s2o!5@^NGkm}Dbk-$qj zKaSKjy;K(zCye^67berC_>{ZPbHBn3^b|McUoTXqOZii-6t`Yq;MQ0uzGAm2%_4NQ zi8hE|*w#enn;>VtmAPq5<(f)NGnLlH*4cA?JoX`qZK8{gL#`3Ss+kUaQ(ws3Pi-yd z&OVl4<50#k7o@CBU}unMTO@n!6B`CH2l;`U=qCF<;i*6io(Rrc*fbjj3g|=g+Rnl>#Y! zbLOfpyEQCM>;eoh%W0X^zLJGfohZ$=67`wQ?7LECCB(KXBMu~ACU$1d9Rc)b*Y))5 zEa64sIq8%pjkW3G%(ojtP;0xPz#=#{NQvG7SVMb^rku^wN~pVPBL^r1Upg2ktfuN& z$slcm@)8>;1f(H2K|)u~!~~M&C!K3G5SBpMc4<`@2YKFY)s)Zpe_9Zh3> z7wU`TSz_KwTEgZPP+MeEPq6wd~{ ziXFLlA@&Iz2GX<87#01IA_49ewKr4j6AMM#146-tjVS4Yy|m$=gt{p-V_QuU*b|IV zS!WJ9G%gA`&%1r%a(YGEp?k5Q}3m%Z`?6+-)leSYnAv)9gZcz} zd+})f2Sx306Q`1fAZwR(yk4l)^lynbKPZkRpwR!)oJl`Ju}pJ71tLob)8^}n)yt_1 zi`raBW9GKd7x_n01V!!OjAlc7$U8pD#BuAjVGQ=BgSRPsYHTEL?fmHIP;PGCyfxff zp_Isj!9l3pba20`!eH!2vT}ShIH8H@fx#PO>`3>&KG?i9*t#W~w@0sk?>n1Yo0}{9 zCd9$GHBF#1`gSC{506fS`~KJZ)g0&2d5{yyxBV$?i?L_pJPqc5rDzi zn)yif?;Sooz4vhU|Lz}&ivt%|4)zXquN>MMZm#U)LL7`Q7J!ZRNxT7ZuDK)S%(Qga z?bGpt!R@PkiunuzY3zPV1V(aug689zE>jO4_;wyf(k#+r*uHs3^3UzHM!vo+TkCgL zioNAb5W<&c!c+Ki+PEmB5FNQ~sot{FdBFqQG-=}pzs=p8kan@yvr8Ys|cxUJ);yG$~^E zi>A`gwa%#GhKZh)WPQp}(ndDvKopG`(Mdxm=Tg0@UAkr5po#SHwNF3chT+4~hOnis zZAA@|i0Y%!=>+uD)q#+DCLb4R01?A0><(l~iPiL@7;2|ujeNw5)|E59UC6Ht`O=~+ zoygOtx4prq5Z#>b4Kk}C4dxT45hOS8o+*_4w`5QrKc){Amh#}q(Yc&Sn6-S=WG5~& za>>E4m|8x42%;szboB;mG&%{>+_djb{o@9tyt)E@`F=pwa#%@E1%dY^t<)6vuZ9)e z7JEd`K*Tb3@RSUwpOhcThHK0DMF2+9MOVA0PqpG*b8boVo&{p%hQ)GnmD(|Ni%vE8 zBonm5Yg!a2?iy-YzbiGFbeNff!h=*T_iGuX-R9a}JQW>f`HYt}GsQ~+KvDmX!M0ml z98i6ce5J5Ot3rE#tkHP\n" "Language-Team: LANGUAGE \n" @@ -25,80 +25,89 @@ msgstr "Elenco di tutti i messaggi (solo lettura)" msgid "retrieve a single post (read-only)" msgstr "Recuperare un singolo post (solo lettura)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Rappresenta il modello di un post di un blog. La classe Post definisce la " "struttura e il comportamento di un post del blog. Include gli attributi per " "l'autore, il titolo, il contenuto, l'allegato opzionale, lo slug e i tag " -"associati. La classe impone dei vincoli, come la richiesta di un contenuto o " -"di un file allegato, ma non di entrambi contemporaneamente. Supporta anche " +"associati. La classe impone dei vincoli, come la richiesta di un contenuto o" +" di un file allegato, ma non di entrambi contemporaneamente. Supporta anche " "la generazione automatica dello slug in base al titolo." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Titolo del post" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Titolo" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "contenuto" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "pubblicare contenuti" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "è una pagina statica" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -"Si tratta di un post per una pagina con URL statico (ad esempio `/help/" -"delivery`)?" +"Si tratta di un post per una pagina con URL statico (ad esempio " +"`/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Posta" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Messaggi" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" -msgstr "I file Markdown non sono supportati: usa invece i contenuti Markdown!" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "" +"Il caricamento dei file non è ancora supportato: utilizzare invece i " +"contenuti." -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "deve essere fornito un file markdown o un contenuto markdown - si escludono " "a vicenda" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "identificatore interno del tag post" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Nome del tag" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Nome intuitivo per il tag del post" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Nome del tag" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Post tag" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Tag dei post" @@ -113,8 +122,8 @@ msgid "" msgstr "" "Incapsula le operazioni per gestire e recuperare le entità Post in un " "insieme di viste del modello di sola lettura. Questa classe è fatta su " -"misura per gestire gli oggetti Post che sono attivi e consente il filtraggio " -"in base ai filtri definiti. Si integra con il sistema di filtraggio del " +"misura per gestire gli oggetti Post che sono attivi e consente il filtraggio" +" in base ai filtri definiti. Si integra con il sistema di filtraggio del " "backend di Django e garantisce che le operazioni siano in linea con i " "permessi definiti. L'insieme di viste include anche un'ulteriore " "configurazione di permessi 'retrieve'." diff --git a/engine/blog/locale/ja_JP/LC_MESSAGES/django.mo b/engine/blog/locale/ja_JP/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..cd343eee742ca97601f0653b036a488d8f16f57d GIT binary patch literal 3834 zcmah~OK=p&8J;B0OU}b~9tT%k)k$0d%B+y6m|$V-fGmhAfK;;NQ!3@rZfkeQ?966* zMxd&cOEUvlAgNf8B@i|!0t1U=$>0abAf!XCIp&;8?@N_~oKvp({+`*@DyW>P?fqt^ z|NbA}|8>tlpL=Rj!}U{)pJDtR;{}Yrd<}oNz66e8{2SvW#yj88wBO+Uf1c7b{Ip%) z)Ubo~T_xO*0ZVm^&QeIx$qLaOQ_{)j8$kFFnK zAe`b&>#&k~PI#v7a>48zcXZdVEx`tChh=q3Pa9U6=~jw4+;t2-NRQpNa2dB;!!@wT zu$YcnJ(aL6bBJZ_6gSzR!A~&3-DcLCF$7DRx`3r%u5OsN!&A()Sq5%R9(l9-kMpF9 z`Hb!|-Qi46y2c;?k#*CwPaq@1bffH8zb@dywpfY}7#416jys~6b-KvMDntwkmuFQFZVAuXOo471X)E&KW_UdoILaDA5KB}Yuh)u1 zg^ln@(@VjV4qj3zaAaG$$+pG(@oj9w0ZZD}fRXm1vYNFXoyd! zVlML72}#5SfHin`T|Jq}su^K=>77x7gs_ta7)M+6bj(VWB)8x^i5PH*By}`LFySRL zOcxN%pFP8&MsPHWJGH2c@}V|024u*US+>jiZ8TLFSP^R-VhHFr^;>C;%JB)7tXRCi0|ht=h%Zr3Y8`B%JrbdA;wRFLjiee z)FUlkqN#+voN4PR#78eE+c+UO7~(FRc!Jks7@!3EMkB>KBoeU45DYtOzyKZ87fMoz z0CO5PkZ@H|IX%tk(WTv`M;5A$jAkOy#-@EeN7#1WoNi`s@5*p9w+s6dxjRE|?|5A^ z4U~zZln24K*Z1)bjiRc*TE5W(O;)Z zvs|MW(T#Ehik!p%4jUW~k;RitbUQX37>UkQ;w@}^?6EfXX8Z5DjyZ1D=HeoA4 z2Z^I1ZKM(hy|hU5+HI_n-+bd)Kkv1MR)PJ=E9Jfj6B!&Fx)BU&Ash?V$mQ zUan``*pUOr4)+~6-0^?y+t_hEaXi;_wDV}kMnSF3EluswMojb$<&dn)PrAE6oMG)_ z$&Bvcgx%lQdnmDY!;W$u0D(Bz?G!rD#`g9bZd133Q^rgjvYo7GV^&T*iv7FyvFLXH zc8mRdKWp8wuSu)UEl7X0bbd+(=Sp{j%6kRrFUs(`4BwUEybLE~cvFVUGI%7zP=+JY zpO^kQ>0gk+Xmp&*pdiCfWq3vgH{ySPv9dT@$)Aya0iH`Mm&m6-BLg2d<%#j);}2wT zQ3mjTNqL?xjZH}(W-HR4mcxPcCum9Vu?+9X;0x)0EQfs=TvuyB`_yLyXIWL1%)KZ#x$fSRhO#NG%=0Z6AR0emY ze_Q(Fs8$9j9wp6J=T^&;pVd6xQfuS9qwfzqg2Frzh6-YO&Z?IU!RrBn2UH^X3;znj zDxcpg}*F5ezq8zu%yqmz+9YOULFQ@wDhI(%AbVO0hnk{;1XH2KWw(&88DJ=z9M)yY{b zKX_DpbXm1_RxKfWMfe>><6S(iOB%2M=;G3Bd5Q#H%8!+&F*RSaLDh3gTObnZr2dvh?pHoL zMTspxzNZN zHFXGJKMu!D~02GPC1bY+I&nc!< z*~7tx!nBBFyx7Y5rZlkM8Y_u*eZ83XWiWvcbMXC&AJBvaglTO;!qEy(XVCr`N(l^jKZETpGDqTF7hQX6@>9<;p1;UQt{w;njpH zJf6VETWz9vdVP7MxH7uFeC2;Xtrg6~XsG$=E z=OQ*JPH_}L3Pgk_kAHXv&sU=bacMFAjdgA+y73|2l<_OAG=90bG~Ad??Thf$87MMw vh*Um&SjvxU5u5e9%|YtS%MjAUx9YwU@}vwuQnEWs1mL|t2M49I literal 0 HcmV?d00001 diff --git a/engine/blog/locale/ja_JP/LC_MESSAGES/django.po b/engine/blog/locale/ja_JP/LC_MESSAGES/django.po index 0a67698b..e684b04e 100644 --- a/engine/blog/locale/ja_JP/LC_MESSAGES/django.po +++ b/engine/blog/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,79 +25,79 @@ msgstr "すべての投稿をリストアップする(読み取り専用)" msgid "retrieve a single post (read-only)" msgstr "単一の投稿を取得する(読み取り専用)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" -"ブログ記事のモデルを表します。Post クラスはブログ記事の構造と動作を定義しま" -"す。著者、タイトル、内容、オプションの添付ファイル、スラッグ、関連タグの属性" -"を含みます。このクラスは、内容か添付ファイルのどちらかを要求するが、両方は同" -"時に要求しないといった制約を強制します。また、タイトルに基づくスラッグの自動" -"生成もサポートしています。" +"ブログ記事のモデルを表します。Post " +"クラスはブログ記事の構造と動作を定義します。著者、タイトル、内容、オプションの添付ファイル、スラッグ、関連タグの属性を含みます。このクラスは、内容か添付ファイルのどちらかを要求するが、両方は同時に要求しないといった制約を強制します。また、タイトルに基づくスラッグの自動生成もサポートしています。" -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "投稿タイトル" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "タイトル" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "内容" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "投稿内容" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "は静的ページ" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "これは静的URLのページ(例:`/help/delivery`)への投稿ですか?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "ポスト" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "投稿" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" -msgstr "" -"マークダウン・ファイルはサポートされていません - 代わりにマークダウン・コンテ" -"ンツを使用してください!" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "マークダウン・ファイルはサポートされていません - 代わりにマークダウン・コンテンツを使用してください!" + +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" +msgstr "マークダウン・ファイルまたはマークダウン・コンテンツを提供しなければならない。" #: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" -msgstr "" -"マークダウン・ファイルまたはマークダウン・コンテンツを提供しなければならな" -"い。" - -#: engine/blog/models.py:144 msgid "internal tag identifier for the post tag" msgstr "投稿タグの内部タグ識別子" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "タグ名" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "投稿タグのユーザーフレンドリーな名前" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "タグ表示名" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "投稿タグ" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "投稿タグ" @@ -110,9 +110,7 @@ msgid "" "defined permissions. The view set also includes an additional 'retrieve' " "permission configuration." msgstr "" -"読み取り専用のモデルビューセットにおける Post エンティティの管理と取得のため" -"の操作をカプセル化します。このクラスは、アクティブな Post オブジェクトを扱" -"い、定義されたフィルタに基 づいてフィルタリングできるように調整されています。" -"Django のバックエンドのフィルタリングシステムと統合し、定義されたパーミッショ" -"ンに沿った操作を保証します。ビューセットには、追加の 'retrieve' 権限設定も含" -"まれます。" +"読み取り専用のモデルビューセットにおける Post エンティティの管理と取得のための操作をカプセル化します。このクラスは、アクティブな Post " +"オブジェクトを扱い、定義されたフィルタに基 づいてフィルタリングできるように調整されています。Django " +"のバックエンドのフィルタリングシステムと統合し、定義されたパーミッションに沿った操作を保証します。ビューセットには、追加の 'retrieve' " +"権限設定も含まれます。" diff --git a/engine/blog/locale/kk_KZ/LC_MESSAGES/django.mo b/engine/blog/locale/kk_KZ/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6cc44c8c5901a79fda3b034713704baadc22b52f GIT binary patch literal 358 zcmaivPfvqD5XEcs#L=^dJ$SQ&OOq11{)rSRk`%T<=zWD1F?E+L+eSZ#U(e6taIr^U z^2;PM?_ve(8!Hnd#>%Y8dQsTpxL913~p#sEADE7|Cu1NFi42@TkMaYa2!owXP<!pw zC#*J%#0f75vaE8xCASgJ%P=Y*R#g$>CN12EXZILW?OwDJN+~`VS%-O2g-QIcADd-q z79W4{TmWm(Dtq EUqPc^dH?_b literal 0 HcmV?d00001 diff --git a/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po b/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po index 434a4314..087286ae 100644 --- a/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po @@ -1,13 +1,9 @@ -# SCHON GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the SCHON package. -# EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:13+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -28,7 +24,7 @@ msgstr "" msgid "retrieve a single post (read-only)" msgstr "" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " @@ -38,60 +34,67 @@ msgid "" "title." msgstr "" -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "" + +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" #: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" -msgstr "" - -#: engine/blog/models.py:144 msgid "internal tag identifier for the post tag" msgstr "" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "" diff --git a/engine/blog/locale/ko_KR/LC_MESSAGES/django.mo b/engine/blog/locale/ko_KR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ad997dbfc5a587e1b3a1478ffc1ae3fe24530b4f GIT binary patch literal 3647 zcmah~-)|gO6&|2Jz@<>ij|W82DM+=WdL28WAviH5ah(t;i7jLI389X6uXm@JomuA2 zII)C^9d9aQyTn#(ya~I;R-M|ZjI?n!VL{0sfW!;pofqDA?uhV!;F0g#nO(12D5Jgm z?c5*deCIpo-2Ll|PpuhvzJ~D)j6Y$#gz>Xa;S0|b;1b3^Fs@>}^BKeVF6RIBlwsgw z9DUj_o&|mfcmj9|*aZxLUjS|Z&j5c5{5tRnkk38$jA48p_yX{=z?XoZ1HJ<60QLg0 z)i??K7VtFi1z-lq`-5ct9pJa|UIhLa{C0tV2R@BWe*yjzMt_3!KRy@R?}AhIa}1aR zo&vrKyaW6u@Xx>tz$d_0fCJCR`!hiH?<*RP^&ze6x06!gvt_A?dua{`{~Xepo-|%KGv1 zWem;*>t+l&X|o^$+w_Gbw;(*zw_Hckr0Y@Mbj+;fWXW_gcyo=w|!uYi$d`!PG3FeOa54rRoo<=`i;2~YOWc^`ayk;O((yJGn{ zdgE==$-12qr_z@N?8Tco5IHSC5?S) z>0>qH*jX|`()WV2j{tNm6C!6$SxBHe*={FMr%BI8J|_Z}iF0iRe$Mr}2}!j@Hxu*0 zqZ=iW1OU}w-S^FOF0WUl9b~)X1WDFb~hW>)a4&)sFlJ9HX}SK^{gwvLZppf1sq?V-1h=7e21iv9$5Z~CnxuN$_7FcFlt zAgQa>$43nIs=u0i;}_=9BqWnxTr>KoG@4}&QWBX(3ial8!yIMCk_FqGCdbSRgD2u2 z+7Kl2Qj@rBa6QC3KCZ-w=kkS-I-g0siN;5d_0x|Ae>i-Jj`bcp-qY8CRze-5F3PNx zNu3F@GBxJ*Q^&|~Y800kA4t7{itXq9ucdmAr}~al?}`4`zV~WxUvF>61ylN|G0$`) zZbsMZr=fGhql9s0{L=87bZT(;(%9+2u^*frA05KX`O%)i;fvqLF((@!0jV)z=KJZw z=}YIvPoEq5zx(^?vYWc>bzD4uap)kRzMkHW!MG7qW77qY^~F{HD1@_|la$Vx9&Xry z@v*b169@a4^CSes#qMU1fqptMVfh^+Hf|X^b=LLrvY(uSew72qPE!1Hpv$3`2dMAJ z$qqwR9yjV$Qkz9}`!0na?uPHxDZF3PlRGQX+FiB2tcvCM>Q?Kk(P9;!@XjM@)MmmD z_M){?N3Mlsx~P`I<99&W>ExLi`d zs=?j7DnAPEax`nIQVN&L6s;AbV$8N)4XY*Iu+^I0nPqa(`aEL)BxY*k4q}8!3aj^^ zL3p#x1gXU`B8aY+8}}bk^zH+;v|KvOqw#PFia<&VSF2$K!6e#%cBK}+zl#9W&P)eH8*UepjbP zeJ05_ix6HbMRPOZ-1TO9M)=?8P<{>_Wii;{R#n}Cog23}AkMUwzAXT?zK4=%GRLOk zJ+-mijg95-!@I!8rRe&ys&C?FaWk5$sLff5mX;KYw7(lZoWa7vUih0mCLLC9=(^k7 zB@_u}w4_Tjy4>DWQ_bj%aA!W6-2*9g8?ndIC1D*}Y6Y#kX%qE|TCJ%yRBh83{PvV=llIvdT3Hn=pgg#XAcu<8H! zUnG|fE)jhfwa#;$H#y)^LgRtg>jvMHH~HFY(nGDN^;*}V`}D{G{exdjA2GH~#F2f{ zMBFR~JB)B~mmB23eS8;u)O~E3qLng4)HlrsMI)Kydk1eHHQlDO(#e3bq<&w\n" "Language-Team: LANGUAGE \n" @@ -25,76 +25,80 @@ msgstr "모든 게시물 나열(읽기 전용)" msgid "retrieve a single post (read-only)" msgstr "단일 게시물 검색(읽기 전용)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" -"블로그 글 모델을 나타냅니다. Post 클래스는 블로그 글의 구조와 동작을 정의합니" -"다. 여기에는 작성자, 제목, 콘텐츠, 선택적 파일 첨부, 슬러그 및 관련 태그에 대" -"한 속성이 포함됩니다. 이 클래스는 콘텐츠 또는 파일 첨부 중 하나만 요구하고 " -"둘 다 동시에 요구하지 않는 등의 제약 조건을 적용합니다. 또한 제목에 따른 자" -"동 슬러그 생성도 지원합니다." +"블로그 글 모델을 나타냅니다. Post 클래스는 블로그 글의 구조와 동작을 정의합니다. 여기에는 작성자, 제목, 콘텐츠, 선택적 파일 " +"첨부, 슬러그 및 관련 태그에 대한 속성이 포함됩니다. 이 클래스는 콘텐츠 또는 파일 첨부 중 하나만 요구하고 둘 다 동시에 요구하지 " +"않는 등의 제약 조건을 적용합니다. 또한 제목에 따른 자동 슬러그 생성도 지원합니다." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "게시물 제목" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "제목" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "콘텐츠" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "게시물 내용" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "는 정적 페이지입니다." -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "정적 URL(예: `/help/delivery`)이 있는 페이지의 게시물인가요?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "게시물" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "게시물" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" -msgstr "" -"마크다운 파일은 지원되지 않습니다 예 - 대신 마크다운 콘텐츠를 사용하세요!" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "마크다운 파일은 지원되지 않습니다 예 - 대신 마크다운 콘텐츠를 사용하세요!" + +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" +msgstr "마크다운 파일 또는 마크다운 콘텐츠를 제공해야 합니다 - 상호 배타적" #: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" -msgstr "마크다운 파일 또는 마크다운 콘텐츠가 제공되어야 합니다." - -#: engine/blog/models.py:144 msgid "internal tag identifier for the post tag" msgstr "게시물 태그의 내부 태그 식별자" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "태그 이름" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "게시물 태그의 사용자 친화적인 이름" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "태그 표시 이름" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "게시물 태그" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "게시물 태그" @@ -107,8 +111,6 @@ msgid "" "defined permissions. The view set also includes an additional 'retrieve' " "permission configuration." msgstr "" -"읽기 전용 모델 보기 집합에서 Post 엔티티를 관리하고 검색하기 위한 작업을 캡슐" -"화합니다. 이 클래스는 활성 상태인 Post 개체를 처리하도록 맞춤화되어 있으며 정" -"의된 필터를 기반으로 필터링을 허용합니다. 이 클래스는 장고의 백엔드 필터링 시" -"스템과 통합되며 정의된 권한에 따라 작업이 이루어지도록 합니다. 보기 세트에는 " -"추가 '검색' 권한 구성도 포함되어 있습니다." +"읽기 전용 모델 보기 집합에서 Post 엔티티를 관리하고 검색하기 위한 작업을 캡슐화합니다. 이 클래스는 활성 상태인 Post 개체를 " +"처리하도록 맞춤화되어 있으며 정의된 필터를 기반으로 필터링을 허용합니다. 이 클래스는 장고의 백엔드 필터링 시스템과 통합되며 정의된 " +"권한에 따라 작업이 이루어지도록 합니다. 보기 세트에는 추가 '검색' 권한 구성도 포함되어 있습니다." diff --git a/engine/blog/locale/nl_NL/LC_MESSAGES/django.mo b/engine/blog/locale/nl_NL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0b36d5fe9d4fbfc6c9bb0bbfcf8b76338993e0c0 GIT binary patch literal 3436 zcmai$%Wot}5ylhP<>BSAERO?XrQAiVZQ<&%2X+`dGl1>!%vy}cmT3FTnp zE1S%$_IQQ%#1T%28$#l?65_yt8-D@f#u@$vmJ{N}FEXobuK`hV^;eIqh%df~jPT!H zdEu9eB349-v?_T<-QlA8020sqI3Vs5716%^vL6)j};OpQP_%c|6vcBuz zzYBha`=5e8g5P`KZ^0K?^b7F!7=6b3-Iuc8Ux6%9zX5*$z6X946f&O!-T;rlO>i0f zIVkJ@0DcPmBPjm=1Pb53fS(2b+TZ^jT;cv-pzwX2k7WJVL5b%+xC(BA&{Lo1{4l5Z zkmEC)NStiTy&RZI#~1h&?Zn?JoKR1B6aD4DWI9AY@h$%3khmll!b9!0V>1g~W1(G>tolQQgGM zPLE8$gllzaPwJLSd1rkX=)DM^Xe$;%?Yxc?{qWSZm0J#cH9oW0%ZnwDa1o-NCMUKH zo&TT&rm3qo+lUi;=?jgfbqJ!8L}xE!g=lcNA2(fzC4(+yiAJt9jb85cv&;I*fF8T{ zq^`Og)<7NE85~fSul1;Lm7a;zNz&{qNuSlsv5RC@hv>U;B!Cpl$WF|>CV}qcx}9E~ z1-(cla?N@R2lKcc|g2TNm}nktLMZYe(DYZP-!c$ka?MwTrctp4q?m+e4@Y@HjryatNte$x{uS+5; zcoaKo@j~0@Xc#C@B{@?4Cn^!{W{oo?{>g=~?FnJv!bXgA!Cv~Pk%WDtq+-1k3F>K_ zv9nHUbAcq|Bo{z_^lT?Vx%b4Ud;OA6EC>xL!D zvJSJxTy*Kgk$ zY%H;rsDolZRCQTwcU35cZc{HE9u!A3G5Mf)NX2f-`ZtU9JH^Hwy?%G|&2N2eePexn z>4^!k7<$tNI-~QOdiU|ck>=b!etPgs-`_cSI^5bBe)rMw(JoK+js`mi``_lXw(3Yg zF|=m7sh?~;eSEz2c=!LV-_&hWw9V4~-u~`YKpTVgrJcMHi{Zr#ve7<|w-Byw@9FWx zcslHZ9c2|;tO?`J%$ECxDF4Gi`oSz1~&C+dnaQmLlmk(B2{n`V) zv3hSweUFJ?o46PU>|T2O+)<4aYMAa~y=@r)ESQ)EoYU(LDVIV@H?o;|#wQk_wt%9s z?{IT-Haz61K9kvCWjMGQBZvN9S>O!+v}VSDWez0kc}QR2+<>iAq(OpQM)-FaK|0tmayXFcI_QkRry zD0MHR=A3f%ln{fYA2#+xZOgF9pQ!yCX8F9gk^;O6MyyqK!2X*N+3 z^Zz=Ww&)$?D%G9@NQqP^)asS%U1e1rrl3^6vR5dTx{zI51T~cOq)H)IvOm=J!noSS xtZmPD-\n" "Language-Team: LANGUAGE \n" @@ -25,14 +25,14 @@ msgstr "Alle berichten weergeven (alleen-lezen)" msgid "retrieve a single post (read-only)" msgstr "Een enkel bericht ophalen (alleen-lezen)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Vertegenwoordigt een blogpostmodel. De klasse Post definieert de structuur " "en het gedrag van een blogbericht. Ze bevat attributen voor auteur, titel, " @@ -41,66 +41,73 @@ msgstr "" "maar niet beide tegelijk. Het ondersteunt ook het automatisch genereren van " "slugs op basis van de titel." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Titel van de post" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Titel" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "inhoud" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "berichtinhoud" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "is statische pagina" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -"Is dit een bericht voor een pagina met een statische URL (bijv. `/help/" -"delivery`)?" +"Is dit een bericht voor een pagina met een statische URL (bijv. " +"`/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Plaats" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Berichten" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" "Markdown-bestanden worden niet ondersteund - gebruik in plaats daarvan " "markdown-inhoud!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" -"er moet een markdown-bestand of markdown-inhoud worden geleverd - wederzijds " -"exclusief" +"er moet een markdown-bestand of markdown-inhoud worden geleverd - wederzijds" +" exclusief" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "interne tagidentifier voor de posttag" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Tag naam" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Gebruiksvriendelijke naam voor de posttag" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Tag weergavenaam" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Post tag" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Post tags" diff --git a/engine/blog/locale/no_NO/LC_MESSAGES/django.mo b/engine/blog/locale/no_NO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..72f737bc02a7c00569da667d03e40e0a2cb27d19 GIT binary patch literal 3430 zcmai0J#ZXJ6>i{;A02SV@mmyEJWPS5LbF=AIAd04I7^m&0^3rFl_QF}-krCz?V0T! zrhC?2in<~oB%??v0!$qNgm45TC?zE&Ai0o(gp}`f&q&K(v8B;BJJbE%_rCY~z5Vlx z&-_H;^9fv^!SzR6FX8(ByYLU6cYr^_^*3BkaJ}&!rM`ma|9D0z{HdL1m3klW%fK7J zSAd(q7WiS{Pl5ZuUjaW2dOZMIb3g2G?_kh0vZUg@gd>;5& zkopF22e<|N9#HuH94PO92^9ao1HK6S1MnljKLN$=+rUlWUxA+le(FOht|3t383Dfl zd=&_K>SMUxjSIBnM|?oys6~2`bdvjz;}S07Pke)N%$xX?4@}07=qFlV55zW@V6e$p(s--$%-L#1 z3zu_6OT&-Ja~RNgZahsZ?Xl8R(57+?=M)^xVYcFA%}pNhG~oSQ2ht6bo(8i7z_YF@ z_ZW;!6%sp|Xb%(4QqD7DaVzh*@dG*v;1jsOLQs2b!klhD(zb9{J$6k?hP|{{0`V&! zcoChj^=U9(L{YQ@_^EP%&0N}>w@s=;~)dOBakH@<3%?UW$z-PAyF zq*WK4Dv2ap7@xui41%OaayG~aDaBZ*)niksdm2_H$*xvOD72`>74Z{j=uw_Za-_N~DiUt%%IO^bkqcql5rTmg2N-ERU-&SP1m{Lc#WqqT zP>_#v;Hwg#+Y6464=z%hw>MOQ#hvjU;bU(RNGEPVdns4~hZ3zBA{l z-og0<_h$9_*4I^K5GI0(7CdcUoZ~GeUgN)>Z~7uUdP2UtlbVUQUiD=TQXZK_3ghB+ z!xCj~d|l}kS-oH-57JFE1c{n#hGv8IkXHPs5+{w5hLIiR*+U$BoUsvo>)^HH2Xt+C z?fPJM14jvUklpu%$+P{o@Y&dnXyfEKJ4F+d4cTo}>`2zXoDHvMyVq%WWAyS@zckz( z4ma*;AF^?ytw(2c&4>=~9-k7f{j&$h59yVI;|Jqg2jf@ooSh!x$>f?$ zx4OxQT7&}FLZj%yYk-sGtNPrO(}@ z-L1V1b!2Ucp-`a&<3#X}98OP6!unc=2u_ zTXZR-0{ z{P|l=A%3J)g*BNF4IUc`&H2+j+ROXVA$~i86{6(v z*$)cIMf7?_w7-&F8eAJ6(F8V2d%^&>6&Hn1@()s?dc`|M;88|MDI>&+kW15)yf}Y~ zAt0P3o$JPW;VjQx1;#QM;xvicLlfvS!!u43C2+Nk=&UT>rlqb59Pbb$3rogtfC7Ug zw&|3@(n`TVH#7!_JfLrO^$`nU&S+j}%>}5&QW7VU2S~+>8b3ae5NHGDolD|MY8f$H zIwS-~%ky8LO(W^s_=n|X$zm7{6g^Tj(TiYmQ>1WxIDbn*>XOq>7+_fbBrR$3iz{?jBnytB%*jqn@r%b9G&ywP#d3LYP8=FsrK;6m8CGUoxw@4GOlf z9wNoV*zv^gEr|yQ4CemwgCElb3BHiTAmNZWzy?A>k|A~0&z@3xUepvGV)4XGSS6as z07A^*#PS_BP}i|~EFbG#emG|8)}G!z5yIl3UCp7NX*rHvg@SY^f6& zOg*t)0(mGwsBx^Bb@I~B#1zZ#%b1J)iFyrnBHY=QT*(3aUq1VjYV|T5zfKVGhS{~W aY8+?RJ~ZZL3DNQ6F}_%50x3Yls(%9FluyC{ literal 0 HcmV?d00001 diff --git a/engine/blog/locale/no_NO/LC_MESSAGES/django.po b/engine/blog/locale/no_NO/LC_MESSAGES/django.po index 01326e85..bf2e7048 100644 --- a/engine/blog/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/blog/locale/no_NO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,14 +25,14 @@ msgstr "Liste over alle innlegg (skrivebeskyttet)" msgid "retrieve a single post (read-only)" msgstr "Hent et enkelt innlegg (skrivebeskyttet)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Representerer en blogginnleggsmodell. Post-klassen definerer strukturen og " "virkemåten til et blogginnlegg. Den inneholder attributter for forfatter, " @@ -41,62 +41,69 @@ msgstr "" "må være med, men ikke begge deler samtidig. Den støtter også automatisk " "generering av slug basert på tittelen." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Innleggets tittel" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Title" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "innhold" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "innleggsinnhold" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "er statisk side" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" "er dette et innlegg for en side med statisk URL (f.eks. `/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Post" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Innlegg" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" -msgstr "Markdown-filer støttes ikke - bruk markdown-innhold i stedet!" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "filopplasting støttes ikke ennå – bruk innhold i stedet" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "en markdown-fil eller markdown-innhold må oppgis - gjensidig utelukkende" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "intern tagg-identifikator for innleggstaggen" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Tagg navn" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Brukervennlig navn for innleggstaggen" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Visningsnavn for taggen" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Post tag" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Tagger for innlegg" @@ -114,5 +121,5 @@ msgstr "" "håndtere Post-objekter som er aktive, og tillater filtrering basert på " "definerte filtre. Den integreres med Djangos backend-filtreringssystem og " "sørger for at operasjonene er i tråd med de definerte tillatelsene. " -"Visningssettet inkluderer også en ekstra konfigurasjon for \"hent\"-" -"tillatelse." +"Visningssettet inkluderer også en ekstra konfigurasjon for " +"\"hent\"-tillatelse." diff --git a/engine/blog/locale/pl_PL/LC_MESSAGES/django.mo b/engine/blog/locale/pl_PL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d49ea28f8bb5d5d32f1d30f40df6f49e3b558937 GIT binary patch literal 3446 zcmai0O^h5z6)qs*XTwhje-a_mi$Qp;Y>#IRG0QlH*qgO6cz?9a1`%;cO?Pci&Gb|? zT~*ue7K%iaRW4jP1WRy)OD@0(aX@1Bg1B?z#EDb5z?JV+_v|_$60NEEy1T00&-Y%v z*MEQNv7ZZEpU3zT#$Pd>!T8As@Q3Ri;LkArh4BF6wGRpL4ZQ!)V?y93u0AfrM}S`k zZUJ8at^)(`lfYjBZv)>3ei8T%koP_DVIe*ad=mIk;4{FF0lx}d0}g>$DsBKT0dE1H z1ZF^9ANu*%fM3S*8^9mIzTW_U4}2VpPJw@b&>v#{#V0zwzW}nmzXI+7e+~Q!@ZZ2M z0H20YyTGpjp9B6B$o9Ss`~>i~K(_NwK>WmCdi)!Z?fnOE2>d6I`Ft9i*q<#ROcUEc zmit{G%oCr*_#g()@%1STP#kseGhYxDug~G1ZTU3DQy4Hg#*O{q3nJsi`j{)Whp*3I za4eWNv13wMx=={39NAJ;(rarR9ovc)(#Tw!oTSO9QohpagdY#A^Q4T|USpFsBrz+q z#G0a^h0Rn!CtB6ylpoM|svV_;bXe)gOI_GXW#lbQA+}JRG&`B8)MI`sJ;_RuOuaq< zK(j0gTf-t<_|7_-NCy$tP^ONx!7b0J$_?nAhdo~9SP0WGA>l_ra%@tH=PVWRp+|E(Ly`NEU|a$+*cUtEYzn($RJ6Amn;KE*2sb` z_x!2LbRmFJYmRjuI=2SmP?fL&%wji93Y$~OR7XlXU6J~Z&CYkGOp)_dNIe{gzD(3q zo@fNn9zQClXJ=)eM?5EiY2sMR;HS3QAOy8g8*G?|9UDlA-T|-%>E6q9x`;Eb2>C`A zAm?nV!8pPy^PZK?NM#^Ag$@XWkrKgi5w!(4!Yt%C5cxjXku4tlXk$o4+(pJo0@OFV*PKoWLT$w(#FOr9ei|!6YuMK*8$7vBj z{6tY%*%O_?vjnevKrS|<9)LrK^b{N;(Qgsa;7}G;X3&pVu(iEG5YQ+OA;GD09U7G2 z+z8ItijxHF5tQL%9c$3RabY845@1f?068C>DrK(t(evq&-HI4S;+ZaK`=v*R_i0@X z@&Ubib*hT;D$XZtubNk{d|MP6Zo;W3!O{BpIldxTYy4Z;+dZ%yD}!8r$2k*komizg zjB&5?ft#+t?luPca9Es@aEp( zV0(Y}Ti9mufB+<8B^M*Qe{1jV(XG2X|9Aa}$|5O?wcUHWI~NXZ4u)&n-9b#oO$lSY zdf=~uIBjlFI+YbF?9HR`on-4`9ou{i0#Vp)h6s#kYoh(yL4hh$BzJ7Ja3eBhd~`Rj z-GFAExw&rW*_*U^<;EI%!aVkbFjHMiNO9B3s$HIDtu$JaMpP$A(fFWDI@4Vluc=i? zyIOM!W_JGP-_>393gnw&ZYi^5v$Sn|7|{376eMzA8nuewA!gOMvqXK&D@)oHub_l_2|gT3jR za9wH_m=i8j=Y%tjT{F|sakP#(S_dSvQ|WZY-Fr5_(pxBf)u0qNvBFjo9RtBcsBlxM zvxlkXo{`SD=^2%ScX{^u@-%IYo=XITtAR|BKZTxSPb|)yO|@R0BDWfJ29yJ^u*wfa zBDhwPMNc<6g@>Az$~odYlXJqn%wx2B{Zxd>yS4VZB#IGdg`EVX9AXAxXAkjaK>J;` zF&`HZ=vznw+f~;-={NTz(>hIAhd33=jLe45QQvVleN>0f_u0l6YL zlUJ0)bwP~LN@9xf9p_ctEXFZM`!&3+!REezafd=WGzRGap1MQxKH7fJoIS)L^#xZb nBT;auHL^==u@|42tzMTnsM=;Gv4WTnW}i=UJO$n6N2vWT7m;jg literal 0 HcmV?d00001 diff --git a/engine/blog/locale/pl_PL/LC_MESSAGES/django.po b/engine/blog/locale/pl_PL/LC_MESSAGES/django.po index 64bbab4c..4d84be41 100644 --- a/engine/blog/locale/pl_PL/LC_MESSAGES/django.po +++ b/engine/blog/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,14 +25,14 @@ msgstr "Lista wszystkich postów (tylko do odczytu)" msgid "retrieve a single post (read-only)" msgstr "Pobieranie pojedynczego wpisu (tylko do odczytu)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Reprezentuje model wpisu na blogu. Klasa Post definiuje strukturę i " "zachowanie wpisu na blogu. Zawiera atrybuty autora, tytułu, treści, " @@ -41,64 +41,72 @@ msgstr "" "nie obu jednocześnie. Obsługuje również automatyczne generowanie slug na " "podstawie tytułu." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Tytuł postu" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Tytuł" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "treść" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "treść postu" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "jest stroną statyczną" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -"Czy jest to post dla strony ze statycznym adresem URL (np. `/help/delivery`)?" +"Czy jest to post dla strony ze statycznym adresem URL (np. " +"`/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Post" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Posty" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" "Pliki Markdown nie są obsługiwane - zamiast tego użyj zawartości Markdown!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "należy dostarczyć plik markdown lub zawartość markdown - wzajemnie się " "wykluczające" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "wewnętrzny identyfikator tagu posta" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Nazwa tagu" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Przyjazna dla użytkownika nazwa tagu posta" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Wyświetlana nazwa znacznika" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Tag posta" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Tagi postów" @@ -112,8 +120,8 @@ msgid "" "permission configuration." msgstr "" "Enkapsuluje operacje zarządzania i pobierania encji Post w zestawie widoków " -"modelu tylko do odczytu. Klasa ta jest dostosowana do obsługi obiektów Post, " -"które są aktywne i pozwala na filtrowanie w oparciu o zdefiniowane filtry. " +"modelu tylko do odczytu. Klasa ta jest dostosowana do obsługi obiektów Post," +" które są aktywne i pozwala na filtrowanie w oparciu o zdefiniowane filtry. " "Integruje się z backendowym systemem filtrowania Django i zapewnia zgodność " "operacji ze zdefiniowanymi uprawnieniami. Zestaw widoków zawiera również " "dodatkową konfigurację uprawnień \"retrieve\"." diff --git a/engine/blog/locale/pt_BR/LC_MESSAGES/django.mo b/engine/blog/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5575a82231feb4cf60e74dc4578f312068f9c3d9 GIT binary patch literal 3592 zcmai0JB-{!7#<+uaX@$m0V2{*kjMqjdk;tmn;dX=*@Q^BhmJi&LBXs&=bek~F`n@~ zB9w{-2~i-?A_4_aP|`$n+d@f)kf5c30#VTL{WJF71rS*4{rs5uAK(A-j}IRDNZ@z` z=My-;#d!?pJGbBu$FIQmasGyL7w5Ixgm?kZ|2QNBeq#Et5O)Bd2c7|*15N^K;1S@* zz(wF!z{i2V0(sxvw+nF(@P6Q(z+=F>fKLM_fHOcW6=#9RfeXOavzpMel5 zj@&E6W5A=phk?^Tw&y(XA>alOKcVsW3~&d?>punZx^IBY(|5o*;P*h7=VjdrWF36m zhZ7Wg8~L6OnBb42_-F1O!1*9fnC|1oa`}Kre=vWnllkL=?c-Q5Z=zSkvb1$3ow8&~ zRY|8!VQJG;l*>Y~nz4>l;k47(qzjUGE0f3+*&gL4Q5kJ(wL@09 z4)urHQk+SPm6n{;nWC4hvPjJdi(T;*1$kjHJ7V{&Q@K~73R_n< zQy?>)7D0v^siVbtHV+twJH~`il-8mT#bN|L>bvhLSWUYxc7)MxT+OQIg zR0V{`&;fxkQX)8(Y#k3tS|rWewXQf23V~8ptCiRu4%0z}1Y4;vjs^xnwK}geCkth2 zo9%heJo~mTOH(m_wKF+#IVQG~QdKmmy`MZxoOib)8g0XZsD2vDOGVce*n> zfl@*qM9VhSNwip}HtL%$O{}d(>u6%UAv%wY?eh9l(ah;+_B73$>7IJ=*_qjynTgBN zx~N~t!lE;ps!P3#tLubwabsombvn1Sy3$`*>c4VfW4(tbm)1K=tIIE8TanfXK-5<< z@6zRkm5Un-7kmG^zDuQx2Gzv!rRCnfL$jTkiKS48QGc(5u}9bYy1}p&e zs3Coow=_b1cQa%SOI4Ji7r@jG^{ka)a3~smiC!v8hd(5EB`Jd%F4mlQayZi{e7lAX z*0D7xlWjak{&ByCU|-{CK`A;uZ{#6DxaM(CVWsbVJ~w zWIh;unTL_1K{fbl2TBNuOmrOP4{UAbP7|u*HwEwbf#D-LXiZdj8%L5|MX&47LK_kv z;4p(gEgY-R9uXNuhMnT-Yw`qpA@F7~%&?!78iDe22odm+<;Kl(X!Mn(TxO` zX!pB5i)4ktv28$Y@NOzJd9-tkAJFN?ktc9$uFgx4i;RV#Iz)qI=SbsSo$99XvmP=v z+xvHAQ}`URRQS}&2e5WLg1nn5WKA0qgA!CR26N3sAb~&O;%N%S&!*9J3@4vZen5>g zvM{ah9l>U_uGSn|r@Vz=G?&$t#O&}V5I&R8F}X(;DnJFJXY91klNB35}w zc^>V)H1D5fCxhh@^>A=%dG%x6sGeDQk7#4PyO4(yNpUk>u`pv zk1H<-$0zUP-&)W~!8tA~ae#Q3S`RV=&exadIgKiJK8$0Z`kaIZo$QBPCT?D><7;Cv zXoL9h3yrkm%p2V(*b`p*FE*{9PqK8R?SK;*p@LknDZ(3&*cc@mz0C`BuF>^aXH+}g NbYScaHTRFW`~`)0nScNQ literal 0 HcmV?d00001 diff --git a/engine/blog/locale/pt_BR/LC_MESSAGES/django.po b/engine/blog/locale/pt_BR/LC_MESSAGES/django.po index 8feaac9c..8400e87b 100644 --- a/engine/blog/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/blog/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,80 +25,88 @@ msgstr "Listar todas as postagens (somente leitura)" msgid "retrieve a single post (read-only)" msgstr "Recuperar um único post (somente leitura)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Representa um modelo de post de blog. A classe Post define a estrutura e o " "comportamento de um post de blog. Ela inclui atributos para autor, título, " "conteúdo, anexo de arquivo opcional, slug e tags associadas. A classe impõe " "restrições, como exigir conteúdo ou um anexo de arquivo, mas não ambos " -"simultaneamente. Ela também oferece suporte à geração automática de slug com " -"base no título." +"simultaneamente. Ela também oferece suporte à geração automática de slug com" +" base no título." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Título da postagem" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Título" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "conteúdo" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "conteúdo da publicação" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "é uma página estática" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -"Essa é uma postagem para uma página com URL estático (por exemplo, `/help/" -"delivery`)?" +"Essa é uma postagem para uma página com URL estático (por exemplo, " +"`/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Postar" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Publicações" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" -"Os arquivos markdown não são suportados - use conteúdo markdown em vez disso!" +"Os arquivos markdown não são suportados - use conteúdo markdown em vez " +"disso!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "um arquivo ou conteúdo de markdown deve ser fornecido - mutuamente exclusivo" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "identificador de tag interno para a tag de postagem" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Nome da etiqueta" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Nome de fácil utilização para a tag de postagem" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Nome de exibição da tag" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Etiqueta de postagem" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Tags de postagem" diff --git a/engine/blog/locale/ro_RO/LC_MESSAGES/django.mo b/engine/blog/locale/ro_RO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..bc034e02fcf7467cc523dc3abe5ba2322a647bab GIT binary patch literal 3581 zcmai0%WoV-8ZVv;26lNPA&@?@f;hrGwj&5(OaRAmLQwozGv>sBn(msJ3f)yrSCtc6 zh)XykZXiWSAR(=^m)$FWKqBPB@-OTa32_LQ<;w4?>K;!3iI&U1epG#r-}jpTJ$m=& z0@ssR&tUx*>shRi?!Z4>w}78w{fu=L>*KqGcm?l&xmyVQiN$+__zUnQ;A!A%z z;NS853GhAG_b=d&za1HK1@YEc4T1Uewg`x?mmziq#N2V}Y517V(c9P3Uj zKFb%&0>#lre&!1%#EbQ_Ev)xZESMhS#{BaIk?~^wm@DRwug9?12Iftyn_Si|l+r6l zwpNYw+8ReA+fXHq9BVTsX$oqTZ?xLu$8GC8DdV-*IHV0pe3eCJO}S5%EmTQ+T3sQh ze2)eb?Ie4o(pQx!Wa8zmMm?id3O?`!-&O&`&h60i#cqs~SWQ{E8c*~zUPDcVLw`Qcr zA-UBPJF12aU>2uoSlThwOm(C*>59}RHk0p6nIh+#kb5`~eHp5W+|vl49nH#V+3C#l zi03dcO&n_({KPg3grJscferJpV*x4AIsn!n-Ful&s`$l~VZ4w6jtUX_O7F z+>f3`_FbrJ+c1B@+X}gy6Wd8+W!ls}N**RIy4w@2Ht1~~rz(K>p`yC6d%A#U8D9B- zT-+yh6&yOGr{EZg_K1iEhq|<~fPTb+t!)j0fPLj5BsewIp+O1iMsUV9oFrh6pbV8Y z(x8Lm!bZj7V(y46u6fK?Zzx?WpOUp}3bC;y^ z*`Sfep)=a1PwN-9b_nb2?&j9J^xE3i=3sSg@aFm5oprpqxYJwP+IStu%s3zb*+9vv zPnT9VFYK;fSpU=geQIph*tw018|z07E%%n@)>0v6gZ&!DdUe$=f;eqfD4)m%9rn!b z;Cy!aXdl}=0)c4kwm<~>bb6@$+;)jBQ)cIFQ@K8wIzGBHCs!!lo|!lF+!eU`ZnXK-+Hd^F_$CX6 z#{r+-(+4Oc4atq>=QJ=(sH8?~#NI$Tx@Mz#w3;i#0VZ%W0YER56tYGU;IZ8;rv{N7 zYGj3incLhrbFM-c3{pIe6E-)tU&!Gx&|m|qN1-Vk#2(-q#fHb;sy$42N3{bbaghh4 zH4lwYvhAG=gy_afqEU01rePADu1n2*T1M3~3N#(-YV=q;aSqUcU?4)2Vgb2av`ijTgC5tT zHAFxrR@2})ybcb#xg(>ixvjY9P|}9&4n~1(2#S%ON=iYM-JrxwNplFgV(__hw}U9e zK?J5uz$hANgb!^|dU<#qKNDkx|oF(l@>MYk)4SSd)*nHy~gM8JH z9x(mUXf-)oYNTDv2Q*)#GPWkop$yoXUIr8NZw)~pAj1Tb)sR!Kn@v4BHya?C=c;C& z(=6gdXonOhM|2@$RgrT}N1jdmq9>4*!vLd3p)vXZt|L?(8Aj2{0VOn(p)qTY z4xpTPh#rlzJ zys3R;kth|30Xc~Aj3=U_8_LPcO6;gSpeMDxHcrjhFIX~{;Oyw!3>8v}L(gBPWQzFy Y=rL(ZZ^PmB*wDJ*`Oc+w`wa8H0+oxHnE(I) literal 0 HcmV?d00001 diff --git a/engine/blog/locale/ro_RO/LC_MESSAGES/django.po b/engine/blog/locale/ro_RO/LC_MESSAGES/django.po index be389aff..1c04321c 100644 --- a/engine/blog/locale/ro_RO/LC_MESSAGES/django.po +++ b/engine/blog/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,14 +25,14 @@ msgstr "Listează toate postările (doar pentru citire)" msgid "retrieve a single post (read-only)" msgstr "Recuperează o singură postare (read-only)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Reprezintă un model de postare pe blog. Clasa Post definește structura și " "comportamentul unei postări pe blog. Aceasta include atribute pentru autor, " @@ -41,65 +41,73 @@ msgstr "" "fișier atașat, dar nu ambele simultan. De asemenea, acceptă generarea " "automată a slug-ului pe baza titlului." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Titlul postului" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Titlul" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "conținut" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "conținutul postării" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "este o pagină statică" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" -"este aceasta o postare pentru o pagină cu URL static (de exemplu `/help/" -"delivery`)?" +"este aceasta o postare pentru o pagină cu URL static (de exemplu " +"`/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Post" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Mesaje" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" -"Fișierele Markdown nu sunt acceptate - utilizați în schimb conținut Markdown!" +"Fișierele Markdown nu sunt acceptate - utilizați în schimb conținut " +"Markdown!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "trebuie furnizat un fișier markdown sau conținut markdown - se exclud " "reciproc" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "identificator intern de etichetă pentru eticheta postului" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Nume etichetă" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Nume ușor de utilizat pentru eticheta postului" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Nume afișare etichetă" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Etichetă post" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Etichete poștale" @@ -112,8 +120,8 @@ msgid "" "defined permissions. The view set also includes an additional 'retrieve' " "permission configuration." msgstr "" -"Încapsulează operațiunile de gestionare și extragere a entităților Post într-" -"un set de vizualizări de model numai pentru citire. Această clasă este " +"Încapsulează operațiunile de gestionare și extragere a entităților Post " +"într-un set de vizualizări de model numai pentru citire. Această clasă este " "adaptată pentru a gestiona obiectele Post care sunt active și permite " "filtrarea pe baza filtrelor definite. Se integrează cu sistemul de filtrare " "din backend al Django și asigură alinierea operațiunilor cu permisiunile " diff --git a/engine/blog/locale/ru_RU/LC_MESSAGES/django.mo b/engine/blog/locale/ru_RU/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f8c23f5123264ed4c94778865988ef6592e17adb GIT binary patch literal 4673 zcma);-)|gO6~`~oQgHcE!Vd{VrCSih5#Egx(GZ*lNZd3;#Bt=>ed3|x-SO@;vop*5 zaAFBnN!&J+q_ucJKqZ3sB_X6r8^_yhet3frk38Jr8Sw`oArUC&i8!J_uQGk?0Mveir=TWKFjq-t|z&^`yT%Bdl!3+>+f6_xL$srQeR>GpN}ZT zpW6SZQjcN3j6IBf20Mw(u^+)+#~#PNjr|PvU99YT{QXLO2>S%~1K20AAH;qUJAs|X zvQ!2liXoa|D%rx3K%Lzr%hE`&aBIvH!w;0lSAm!F?FJgq_7s zVt<1DH1_vcma0EvpU3_U3tWo@m>o{UrAg+U{7KC-4ij0H!n zAWelO$<80<3eYqrd@aoDc=F(-UWcPN@!$cO2+i9IXV6+@)1j3w|36Fw1Ve z9L5dZ7OE|!E|#UNnXoHz~-{-H@($>0>&$&eoA%*@G|PToC{4-YcJ25 zaWbVTYUoc1unZhiNTN&t*6^NXUai@(GijJNrd)y2G_D0OPFcN1$%+H%M>ww$1BZb0 zC{C)=yw=oSifF!*2ZSsAsFe1Oc!W5cZdH}hh+8JETRFrp`?{UPt3jR2Dhy>gT3plq z1vpHRr;-|}a*MKn^L7|}b>dSCL0baC!J41pBv1Wei~vgL8zqWOL?p1M2}WnF1kfRM z5s+2{%qbcu&1_O_ui?vMCf((^6}F68W}IltrArH^^`u{IRP~Gdn||2dPk(|vS$lEc z*HsvhCP`Tjsh%A6@jfL{?Y{wD_aHb1fYS0#G-Gd5HIO-=QYuRc?c!0#l4U(e+o89n zBd_Hv8E`k&5fmkr6%HGY2e;xuCe9|Y92k{T^~wu0K0P+0pP&8a{26_4`rx7JfeBg( z9aQGhMo_OD&l_oFF`m&AXXh&m9AdJe@+^v-k@ZhkrVmvP9MaQ=XP*A*m!=O)Pfwio z(yX$Wcu~s97$-CO#L4*u&2@a~%=`=bnc4X>i^paczwzAC!U;xBEmUXc=f1|asF72E z%A)VJX7uS}XHG61J9*-NuAk9KUPbkw$w>CuBnw7Wez z8R@5v>I3_ZOephXvu*B}j=5i4D%QJ`Xd&Qf&oHTcf_2SCTXy4o@zR%;G;xf)Q-SLlQSI68ief)IsD#mOP|MI9?b6cBx zY};ZISW}w2zAO?1c<7sZ+WNg)TqA?N%-=0Gba91I2W+FN&D*j@vblqo4*M?+BU%`@ z`z6V6yVr^gGluQb_#p^ssk}y|n z;QX2{UV&Kf^H9<(WCDl)#U-2MrciVX2wPm+0-$(xd>_n`=XJA9bmk@bo46Yml9;e^ zi9g09e%JDPd)&*g$Tx~N;7SN2V);h3d6BXtU`26-P@4b}oiNlFvKZj8%&;f0#|1<^ z$MTT+3DdXu-z~m3sF}G(Ha}(D3S?L;>vu$T$b*nn#=Ik;Hl@DBn-tQ460wM0DY{5h zk`|q8QwA7DF5C+FHyPNWem6WLuk)%hKNGN{VjYxtC{@a8^Sm!?iyqMX4Pf-mP17Z{ zw}v`&iUFqcX(2knNV2vM=^O!AtPhn1$>e7BJy6EOB3Vg1KupJqtw(FFb9YtLy$L_k zj2)UxN_5lmhOQurF?Ph0hIEZi7PFU_acfgDIV+UN!}PXZ(( zt=5(7MXef7P$B19oQle2Ai((g%2aaB)TSAyRWpOQ#I`mo9#taof}# zTRO@rQdQ;$grL%DtXQ__rmM`a@Q1)e)0$#q`rIlle zzLO}$MNx-z0fj7IZ-Zy~)>6eA7K|&B-CYWU{c`BrIIb&RGacpLh7Po}E^j1@fZR&& zV>|5Y&-Mnc$8-n8d)j_&ipa)0Y?n_@^K~PZ^a5oC$ww{!9EbR|@qwnJg zcB0%>1R~sZd)zt>?T3ppzu=vAlevMM%MnrSV2tim=11hR(;foWVjjU*YzzU2Ai)CK z;YZJCv*Tx%-TzmH*DVV-q@V4H>t5It3D%{or393HP0FW6*#ZxrQRbIam^>(#J(66x WcSO!8Zmehdh_Y4P&GQan9rbVP3^YUl literal 0 HcmV?d00001 diff --git a/engine/blog/locale/ru_RU/LC_MESSAGES/django.po b/engine/blog/locale/ru_RU/LC_MESSAGES/django.po index 87715426..25319683 100644 --- a/engine/blog/locale/ru_RU/LC_MESSAGES/django.po +++ b/engine/blog/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,14 +25,14 @@ msgstr "Список всех сообщений (только для чтени msgid "retrieve a single post (read-only)" msgstr "Получение одного сообщения (только для чтения)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Представляет модель записи в блоге. Класс Post определяет структуру и " "поведение записи в блоге. Он включает атрибуты автора, заголовка, " @@ -41,65 +41,72 @@ msgstr "" "вложение файла, но не то и другое одновременно. Он также поддерживает " "автоматическую генерацию slug на основе заголовка." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Заголовок сообщения" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Название" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "содержание" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "содержание публикации" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "это статическая страница" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" "Это сообщение для страницы со статическим URL (например, `/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Пост" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Посты" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" "Файлы в формате Markdown не поддерживаются - используйте вместо них " "содержимое в формате Markdown!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "необходимо предоставить файл разметки или содержимое разметки - " "взаимоисключающие варианты" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "внутренний идентификатор тега для тега post" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Название тега" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Удобное для пользователя название тега поста" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Отображаемое имя тега" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Тэг поста" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Тэги постов" @@ -114,8 +121,8 @@ msgid "" msgstr "" "Инкапсулирует операции по управлению и получению объектов Post в наборе " "представлений модели, доступном только для чтения. Этот класс предназначен " -"для работы с активными объектами Post и позволяет осуществлять фильтрацию на " -"основе заданных фильтров. Он интегрируется с системой фильтрации бэкенда " +"для работы с активными объектами Post и позволяет осуществлять фильтрацию на" +" основе заданных фильтров. Он интегрируется с системой фильтрации бэкенда " "Django и обеспечивает соответствие операций заданным разрешениям. Набор " "представлений также включает дополнительную конфигурацию разрешения " "'retrieve'." diff --git a/engine/blog/locale/sv_SE/LC_MESSAGES/django.mo b/engine/blog/locale/sv_SE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1f0afa37d4cfa7a3bec7ff5acbf1dd6777aa738f GIT binary patch literal 3472 zcmai0&5s<#6|e9WvJM1D;sXiN!$|QinI7+2vEz*Gzy>wE?oT&%mpMquACBy8#i*w2`Rr<)ibk;k!Wr2uc!Le`}noo4);{FWx3%LLG6a2&VE%2YX|BL%R?sp#*;*VJW-(y1HPn>&Ph@S%g z0K5de0$c{xz^8#90IvZ*20jn`7RdWfJt4%;fzJS+1ik?L8Sr<&CEzL$qT({}3~(Lz z3@`_>eBHc%7x)r>{{#3J`1cX;Q{dwedLQ^Dl)j1g<*B6a6Cm690?2-S1#AI-17}$O zE#Nlr4d9Ew4}t9OC%|Wcp96XSe}KOPegouv-vOD2r=JpH1$Y|xE8wd@mfr_*Jbwkg z3{*h47iAs+!tHqd0{=mA+>=%kPyGCA-0Tbc@f>cr9`nX_`GU%LF@Nk6+vAJ<&<;jgyC4+X>(}Am~lvWnn79?#>l?s(sWB$48d?00m4jP-ZC5g8(&zvbUCM0Agyw>HEw+)`12coELU776IM~93UTJP$O9={u%gm$s`feNc<)hZ6mtBw@u5cU9{<~ za|2~Y=WssZdo_7$W=h?No@LAV&XlZvR+d~uM4cT>6Y=`A9WUCjmwTrZRsdM2^ zzh7NjU0vFiK4jfWT93}?st#@5+}R`C*Y@x1+@&iUJ9oP48{JoL?C))2Woxg!v2**+ z*k+3w3COximL1w&zjJec{pRM6%6G_*Gq09zZ{6Np1hm#(UD`+oG3!o7a5kv>;T(w5 z_A>PcvObYriPta@jI6k`&nE(x)J3Gq$~N7dpl3mK2o~uAbJ|+S z97P+hKlBI#tCN5*F_E~j9Mj>4$45va@Jvd|nPUS5kyflFjuMl^xOri`o9SUuwCOcY z2_%^Dg~Lb?M$3>#3yJ|8^pIg3O!Tr?4hkHc)Pn?{hyX0bIg{jh(*aMB3PT3XSDDsA zxie$s{xn<(I9Qzhh$ngY_K0V6O)MOcSt_ytGaHPoegB*!&@-&+|ei$8( zQ|IBLjB(qx!2VKJ!`$7oTyc#T^QCzmP&qxqq(~GXei_3=>1L?7(kmYwBA(@@#!$?a zxW>5^a}5IO!I8lS$&3^OHIJ8pAeqd^C!z;;SOU^Yd zAMZCSf~y!F$J)jmY7SIfjuD7%te_LVi>)ND_&bzKbG9IEr6$Lo<8%+vYJSjeScz&O kf^WiDdmdxW#zh`*c#3M*6U(wyGU4xe=e3|k1f7gJ2m;e9( literal 0 HcmV?d00001 diff --git a/engine/blog/locale/sv_SE/LC_MESSAGES/django.po b/engine/blog/locale/sv_SE/LC_MESSAGES/django.po index 3e215ff3..6b46d2f7 100644 --- a/engine/blog/locale/sv_SE/LC_MESSAGES/django.po +++ b/engine/blog/locale/sv_SE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,14 +25,14 @@ msgstr "Lista alla inlägg (skrivskyddad)" msgid "retrieve a single post (read-only)" msgstr "Hämta ett enskilt inlägg (skrivskyddat)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Representerar en modell för blogginlägg. Klassen Post definierar strukturen " "och beteendet för ett blogginlägg. Den innehåller attribut för författare, " @@ -41,63 +41,70 @@ msgstr "" "filbilaga krävs, men inte båda samtidigt. Den stöder också automatisk " "sluggenerering baserat på titeln." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Inläggets titel" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Titel" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "innehåll" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "inläggsinnehåll" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "är statisk sida" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" "är detta ett inlägg för en sida med statisk URL (t.ex. `/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Post" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Inlägg" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" -msgstr "Markdown-filer stöds inte - använd markdown-innehåll istället!" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "filuppladdningar stöds ännu inte – använd innehåll istället" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "en markdown-fil eller markdown-innehåll måste tillhandahållas - ömsesidigt " "uteslutande" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "intern taggidentifierare för inläggstaggen" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Tagg namn" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Användarvänligt namn för inläggstaggen" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Taggens visningsnamn" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Post tagg" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Taggar för inlägg" @@ -115,5 +122,5 @@ msgstr "" "objekt som är aktiva och tillåter filtrering baserat på definierade filter. " "Den integreras med Djangos backend-filtreringssystem och säkerställer att " "operationerna överensstämmer med de definierade behörigheterna. " -"Vyuppsättningen innehåller också en ytterligare behörighetskonfiguration för " -"\"hämta\"." +"Vyuppsättningen innehåller också en ytterligare behörighetskonfiguration för" +" \"hämta\"." diff --git a/engine/blog/locale/th_TH/LC_MESSAGES/django.mo b/engine/blog/locale/th_TH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..283fc508f1754eeb93aa42c411bc0353a3549eec GIT binary patch literal 5312 zcmb7{+m9Sa6~+sbaM=I};qm|kRRFOz?5x*T;+S;|*p6*1*G>N#Jn_Us)PI7J5WFD4@0{wnt=A4&P0#7B zI(5$Xedkp5?E4SibJg(oMXs-K{e|lxuBSi37k{^~m%0AIb)M^)j~eqB~-vyu(z|!hRC_P3#nQ4vVYV zhy5D%0QLcF3oHIbJ^u{$>pVY?{So+nkG%!PdvW?3_FwlIvyJgT-){^b^H+j=0sB7o z684|iA7h{XtTEHrzhf_Bw>@Y~iv0yv*8Laz4eb4&Gv>?KN3h?*o~oaJh84eS*d^=+ zR{Z~im3$9>-k7gqAHzo2Ggx35jM>HoZ2glMz*a5%h}TK(C5~tZL<1ZHHLaWIFMpr* zM)eb|L_hfhg4RNGGl!FA&~rr`)BxpxT+XhL?W?`O1;aPb+ zmAc%9Ngm}9i=xB^%m%GSn#8NNo3_H(o{hqD)`j`3UFt;6HsiqI>1-ZEahioKo2Rxz z*f{jj(&eYZX3l&k$Ze2?HfZM2SqzzjI8M)jD2j8B&MpUz5NTpt;YyTnD|2DyX6>;Y zJbBp05oqV4yknnuDoEPtv}0BCCn52?vk-BsE)Tn!Bure9O-c~NQ9JQ5@=iF+g+|@T zIZ;X2g+s0Ybt&naanT}DfG({T8l_1P+v!@raN3Rn*k+onMD4=Unl+1I4-6>FYP%e# zZQB#6RZ^czrT1!j?jl)eU7i)q90JN^IqU>yBMO+VjK`_f8Nkb_=W-!3Nv(q-@1)s` zrKoW@BfxTS%+L}w0aPP;o(IiNS7%&Yv}b&QoJ*S#ic{90U8~|jh6%x&y~HTsq8Fz@i~Q6=(AIzmuo~tBDO@m)#Y34=tmW8Q-+E>*>Ygc6&J6p0!Wz?1XV|C;JoZ+3J%!zGvbH znvl{6&Tb#>;~hq_>em3Te-Io4K(4-%p3z%p25k-~M`bCYI*$hymaWM3;$YP#K{qrq z;BPb#5@n4Q4jYaK?{T{lr?ONIjK;B6;|v?0JvMKDc<2WUC++UJ-Fs$tO|g~egT@Kh zj#`a_McXx&(s?^|YN4^nAtnnNPtdXR;{Rx4Zck&^9y_;p{?YGzdv4d<+|=>F<&C8* zNE|0)n$6q8M;8_?*TK^#7tYwn4=tQrI&f&|`$tYM9%kg&;_RV?6W?W7(k>`KV<`-} z^Y-|GlSfYp~0&=jYEh;c?_bx~I)Tx+LCT<)_v#y)BNlzc${@wemzumt*u@CRJ zyLRlGGFAC{Rc=(}%Y&Qss=Qd0H}vsJRsN~!U#QBps(eSkhf{x$sq!s#ds~+er(UQ^ zMp!!->2vdDRsK;2->u3^Rrzeyf3YgBSLJ$D_GMPG@JOO-n(Jy+-mLo1R^_WzNv^9^ z|8muTP90vV%2GqImK(nLu=Y|Vi6Fw~desL8EC|TdYlBC8NCdWL?_&O+Yng1FqkhnVGNO2U?mFDSQ{G&Sms;YJ;q zC7M@|T!4i3&(#fG5algh2ryXT>5In=rNy6sWM>cuZU6(M@!0_e8T3UZ#g(d$G8;rj zBUZAE(ch>{9-nUyhtPPr>H`QthXp6oW$6gTTED{W7-itmg#(%r zV{M=qvV+i9dYJI;U5g+%XwmByR5&#Qdf**x!C%Xb;QC;3?%a>kVkkp`p;k13-vL9o z+>D71vYO9kD0W(r`_-HG&oqJ|C@l$U^jOzNstucUEhbI9LC+f%7E)+PW?w570D%Vc z-BOogbFWGXXaSb6UEzfD#fkmnf8J?7j4_f;jNB-|8c4ma%}Q_h{p#Bq;BRPmf)`jg z^8xsWgYt?lqXh{8I*`&^HF2fOAez9Q=w!lyZ)DNqMZkI7%=(6=-PwOHs+d5zsfWhe z46G^oVDpRctQb6&mzb9^v|`L3a~za6WEdfStNL-80aE0&+jW?VQ3eqChQU!F?3nSt zY1CV#l4aLaf4!+s57P0dCyAbGV<+q-&=QTsXbwek;s>nFxvKti!b_%x?d3az(15w( zY2m@>8c|Wrv!k%<8g&cSgO|j6Qj)FsYpKQ$Xi!|)JScA(fWND`VI(S$o|6%3UOK2j z5FGy4VWTM~srK6n)VH5+alXe=%D(Y!$vCSB4qtW%!KH)XN^<6yfIA7e8S40&dJ~-{ z@X@)E;;EZQ1GrJ&4@yc$L6qgJ!XG}25EcabD9t%ccejQ!6T%KPkmC!W_&J1UV;#G``=Nwy$|*PvRX#<@$`d|_VE!k`;_2qM6)_b|Wl6$ue|BmYw5 z8lv4QeI?q`k89vS3kX1l#r~zqj{}|V(@Na@PSvMN;ZIZ0L6e8mxU)14J&X@kx$L=v znn0}7ts^^?VuGDPAlyVtQ1~WBRVI8(Ohnou?L@dbkXGcTmH$4JgKwXSTyn}?&_a@I zZL5DzbR`UES0JJaa48l__$J&0jMT$z4a0R7l0(iI60ibhRBvpPOL}7a?%UXbND~n^ zKi{E$CKoB@`ZPvOB=<6V+|x*sN&;X1yZ?}`IoQ0rTNGKc~k5&E#?K{gb791PT4Oc< literal 0 HcmV?d00001 diff --git a/engine/blog/locale/th_TH/LC_MESSAGES/django.po b/engine/blog/locale/th_TH/LC_MESSAGES/django.po index df679b19..7aa0df81 100644 --- a/engine/blog/locale/th_TH/LC_MESSAGES/django.po +++ b/engine/blog/locale/th_TH/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,74 +25,86 @@ msgstr "แสดงรายการโพสต์ทั้งหมด (อ msgid "retrieve a single post (read-only)" msgstr "ดึงโพสต์เดียว (อ่านอย่างเดียว)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" -"แทนแบบจำลองของโพสต์ในบล็อก คลาส Post กำหนดโครงสร้างและพฤติกรรมของโพสต์ในบล็อก " -"ประกอบด้วยแอตทริบิวต์สำหรับผู้เขียน, ชื่อเรื่อง, เนื้อหา, ไฟล์แนบ (ไม่บังคับ), slug " -"และแท็กที่เกี่ยวข้อง คลาสนี้บังคับใช้ข้อจำกัด เช่น ต้องมีเนื้อหาหรือไฟล์แนบอย่างใดอย่างหนึ่ง " -"แต่ไม่สามารถมีทั้งสองอย่างพร้อมกันได้ นอกจากนี้ยังรองรับการสร้าง slug โดยอัตโนมัติจากชื่อเรื่อง" +"แทนแบบจำลองของโพสต์ในบล็อก คลาส Post " +"กำหนดโครงสร้างและพฤติกรรมของโพสต์ในบล็อก " +"ประกอบด้วยแอตทริบิวต์สำหรับผู้เขียน, ชื่อเรื่อง, เนื้อหา, ไฟล์แนบ " +"(ไม่บังคับ), slug และแท็กที่เกี่ยวข้อง คลาสนี้บังคับใช้ข้อจำกัด เช่น " +"ต้องมีเนื้อหาหรือไฟล์แนบอย่างใดอย่างหนึ่ง " +"แต่ไม่สามารถมีทั้งสองอย่างพร้อมกันได้ นอกจากนี้ยังรองรับการสร้าง slug " +"โดยอัตโนมัติจากชื่อเรื่อง" -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "ชื่อโพสต์" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "ชื่อเรื่อง" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "เนื้อหา" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "โพสต์เนื้อหา" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "เป็นหน้าคงที่" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "นี่คือโพสต์สำหรับหน้าที่มี URL แบบคงที่ (เช่น `/help/delivery`)?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "โพสต์" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "โพสต์" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" -msgstr "ไฟล์มาร์กดาวน์ยังไม่รองรับในตอนนี้ - กรุณาใช้เนื้อหาแบบมาร์กดาวน์แทน!" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "ยังไม่รองรับการอัปโหลดไฟล์ - กรุณาใช้เนื้อหาแทน" + +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" +msgstr "" +"ไฟล์มาร์กดาวน์หรือเนื้อหาแบบมาร์กดาวน์ต้องได้รับการจัดเตรียมไว้ - " +"ไม่สามารถใช้ร่วมกันได้" #: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" -msgstr "ไฟล์มาร์กดาวน์หรือเนื้อหาแบบมาร์กดาวน์ต้องได้รับการจัดเตรียมไว้ - ไม่สามารถใช้ร่วมกันได้" - -#: engine/blog/models.py:144 msgid "internal tag identifier for the post tag" msgstr "ตัวระบุแท็กภายในสำหรับแท็กโพสต์" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "ชื่อวัน" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "ชื่อที่ใช้งานได้ง่ายสำหรับแท็กโพสต์" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "แสดงชื่อแท็ก" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "โพสต์แท็ก" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "ป้ายกำกับโพสต์" @@ -105,8 +117,9 @@ msgid "" "defined permissions. The view set also includes an additional 'retrieve' " "permission configuration." msgstr "" -"รวบรวมการดำเนินการสำหรับการจัดการและดึงข้อมูลเอนทิตีโพสต์ในชุดมุมมองแบบอ่านอย่างเดียว " -"คลาสนี้ถูกออกแบบมาเพื่อจัดการกับวัตถุโพสต์ที่ใช้งานอยู่และอนุญาตให้มีการกรองตามตัวกรองที่กำหนดไว้ " -"มันผสานรวมกับระบบการกรองแบ็กเอนด์ของ Django " -"และทำให้แน่ใจว่าการดำเนินการสอดคล้องกับสิทธิ์ที่กำหนดไว้ ชุดมุมมองยังรวมถึงการกำหนดค่าสิทธิ์ " -"'ดึงข้อมูล' เพิ่มเติมด้วย" +"รวบรวมการดำเนินการสำหรับการจัดการและดึงข้อมูลเอนทิตีโพสต์ในชุดมุมมองแบบอ่านอย่างเดียว" +" " +"คลาสนี้ถูกออกแบบมาเพื่อจัดการกับวัตถุโพสต์ที่ใช้งานอยู่และอนุญาตให้มีการกรองตามตัวกรองที่กำหนดไว้" +" มันผสานรวมกับระบบการกรองแบ็กเอนด์ของ Django " +"และทำให้แน่ใจว่าการดำเนินการสอดคล้องกับสิทธิ์ที่กำหนดไว้ " +"ชุดมุมมองยังรวมถึงการกำหนดค่าสิทธิ์ 'ดึงข้อมูล' เพิ่มเติมด้วย" diff --git a/engine/blog/locale/tr_TR/LC_MESSAGES/django.mo b/engine/blog/locale/tr_TR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1870d64bf7b8a965b8c3b88b8081452ab6432eb4 GIT binary patch literal 3496 zcmai0L600q6)qqFvI$8D0VG7E7l^WJWqZ795yy;U!tQ3hvE=n`*0V-P98xn~(^H=6 zs!3J#+HFNS<(Ml+*kd@5!+>N7nDW3S6qBji0=S@ z0lWfy6SxMffX@Q|2;2sK3j7K1D`27^feE$Nx4g5RsGVocD zVf(v4o_`0p3j8yWd3+9h4){;t_kdple*pY9@W;SsFvz@K0WzNq_(R~kK)4V^`#u0) z!}A9~&=W7>`X(;WP9OFGiIW!1NTUP56Xj*p&ITGfPo=c7(6%6HbMh*Btxovy(1l3KMjbU4X-g7sWu7@} zYARi>44r6okAjLF>Wy@ufsp|-14XHg^D3w4XauuHHP&4Jt{OzVAIV74E0Tk#PXO>N zjdAzDNSoNOqrMC<;Vk89s4Z^!o${eWHzN2%RbV2h-P3VIZ{L-+aH|2U24e+#&14QF z)FG-eIZ-xL{=X%VMi;iR5l3p_3mTO=1XhWoQ;S$ZG&r~)m@0=Q30?9W8aXQst+x89 zRazRLfwMzhR83eNaik{T0A;b7`ovOjWEm2@1gt zG!#c#WznkAkW?1N2k-%dASscYK%p9pNCp(m`<3>b2!%u`Kle(^htqW4A%QDd7pd=% z)S%1CL}`_)f~iwvN&QewCeE{dRdgk4c|gpQ3T4~UUKS4vm%{Cc)*Jk`fm2yQ_`afv zcPBbWWEqBHg<7mh-G_z&%;6uoV74tG7^qc*kt(Q#4-HAsH-anH zbCEzjf-`j1P(u#R3zJMmfOi576k-Z$A`8Wjk-JMaGg2Cf-!w(rPCY)lNo%T8bm+Z{ zBV{HR(VyV%>-R3aC5%Rx2r5|!w6^Hu3xd6-pE=*=fqBdch4zkXCfx=xFLRIz$ShKr zCZ9LVQRX^KjI7DZQVAYtZjvEL_(p5LF1#xx^#Qzor7C+ zY2(u6&gKeQ33ZU|heGGsc2$I|=eo3Vc#s`o6XONh+o;$s&woAJxSVZXrj0Az*MIri z#^%Px%1s$!*7MQ^?2OKLX?O47h;VHm-#WNMZ|)r2>TT`xetrG;Xcr?ljygLB`@h06 zTU1Cu)>E?V(#@?~d&gUQyZ?87m!i+2U)jI0zq<@*v$L_X(==k%t0y2E)%|!8!fAVz z1|#XQ!(Kb?UC*v8=P~CY1jNSfa%7-OSNb}x92)F0CcEx@8Mh`=?n!v|M z0&FfUW1sg5W#mzN68~(*#K(#rr>LMV7boPC=jLH%q5G)Hq*^qxl*kV9R^U$&;@fId z(grv?g*#bG4#+h}%(w{$HGyKRkeHf-#WV#0n0`m3E<$nT?jHWMunwG|#J!vkHxbQF zbz318L}pV?HI5A!z?ZX$0VoXyR&4X>(+VN>=XR3$)QSrRw$wGwk{VjT6#5zohMrd8 zFJ4P(>3v)olo)h=S\n" "Language-Team: LANGUAGE \n" @@ -25,81 +25,89 @@ msgstr "Tüm gönderileri listele (salt okunur)" msgid "retrieve a single post (read-only)" msgstr "Tek bir gönderiyi al (salt okunur)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Bir blog yazısı modelini temsil eder. Post sınıfı, bir blog gönderisinin " "yapısını ve davranışını tanımlar. Yazar, başlık, içerik, isteğe bağlı dosya " -"eki, slug ve ilişkili etiketler için öznitelikler içerir. Sınıf, içerik veya " -"dosya eki gerektirme ancak her ikisini aynı anda gerektirmeme gibi " +"eki, slug ve ilişkili etiketler için öznitelikler içerir. Sınıf, içerik veya" +" dosya eki gerektirme ancak her ikisini aynı anda gerektirmeme gibi " "kısıtlamalar uygular. Ayrıca başlığa dayalı otomatik slug oluşturmayı da " "destekler." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Gönderinin başlığı" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Başlık" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "içerik" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "yazı içeriği" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "statik sayfadır" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" "Bu, statik URL'ye sahip bir sayfa (örneğin `/help/delivery`) için bir " "gönderi mi?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Posta" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Mesajlar" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" "Markdown dosyaları desteklenmiyor yer - bunun yerine markdown içeriği " "kullanın!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" -"bir markdown dosyası veya markdown içeriği sağlanmalıdır - birbirini dışlayan" +"bir markdown dosyası veya markdown içeriği sağlanmalıdır - birbirini " +"dışlayan" -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "gönderi etiketi için dahili etiket tanımlayıcısı" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Etiket adı" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Gönderi etiketi için kullanıcı dostu ad" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Etiket görünen adı" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Mesaj etiketi" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Gönderi etiketleri" diff --git a/engine/blog/locale/vi_VN/LC_MESSAGES/django.mo b/engine/blog/locale/vi_VN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8a2703b455b0bbfc39d7d0beabee4e51efcc116c GIT binary patch literal 3747 zcmai0+iM)x8K1UJFG??IdV|uymlk4~YSxmeU3VQdwPe{5=!Uuq6#9^}Ger}{s+K$pae3#FXH?tPSCaobAZHF3-`q7#MfWK$=b31Cvmbp=EVB*0oV3mf2nc@J?dnkOsSj58>FRaP%BO}1*yPH6VsKKgo?7$ z8oPoW343la2cmo0$c}X)l`e}9OCZuDQqG2n<%ut7)Je2vl{h+i5-W)64DN%p3}Hz? zmoS7znGz|TuJx0rX>5RkOl>Do>B4Gwn=%InD2v_HPP2$|mfA|{d|Bz8nl5&hOp-Q5 z85jg$V`GI6d&Y2vJyAtW`GGfd2Y#|%oM4gjjbx-lY% zJNAuE%V@?WNb4*}pg7VhqFNP4QYsh^-~$FhQXn~+bQ#1XG>YbWnG~D|iA2d_GR()OOc~-D~rO7&|<$#zcMN-wJJuV&=&W79Y zYH#pc2Tq+5!nY;mMb=G1MCRj>DN&0(lDp7QqdYy%kymf=Ea5UwGZDf+a=~nCLNL&i z21ZIPPkbbh1byRi#THy7P>s;d?A88^__`bBF(Rbv zE3O%Psl8E|gOo;QkwUw8(lAFECOS_=kCf<0j~}=TYX}k*{x*gU#)Dh&uo4?Z#skA& z4*eI<_~@}FeSh)!^))&-d+tJGZVIi0I`CI@l!X358ELag-{xkF)Nz1bZvc;a4u}Et-nCeF0QY&E-$ve zcXexX2~UR{y&PnX+%;z*T%s;f5Q_p6c7CgM)xS7i$DFqzAO?FDA_Gmj*iOvUMv5tu`d71} zqno61d#mTqT_SfmKdtELd73+OY05kLd37I68CCZa3ab5pr*cMyudbKF{(+*j`aN~4 zTZFOGqg_0^ZAL4HgLintaB$O2c2i`q)fo=nKtJJ^b}?}~)w>i|zg01!7!H0)M|;D; zYe9onhJ#<_q^eszJUYHN92~H%WY~Y-&<=j>!ke@^92{B>mK|^2OUT&u@U_7+^JovL zpg0@$_xT2nam$p0IHNqS?&g%TPYOX;Adu>9cDP(6--qWAKeuVTC46u zi$jbsP(R423(g5&|HOv92S08%yd0tnL`lJLa7WZ1B1-~<`Uf58(LcyW!i^+0W%Z`A zrtY{`*UR2;@QQ+q{=Nd8M{rsg2^;+3F8sG)D;f@d0imt#0TNW!f{(0Ce2@_F>ljoj zY9RG+lAt{i4)lOl<5ab)TM6paCW8mxC|$MQ!@*c3M9dzcYCo_6$JH%J*hM{ADe7`~ z$RKMwCSTWHi5O4@)uAnyx)3AqIN;A!^>%4f^vVn=EChE1f)@xNXR&zKPW4s?2Hxx0 za(hk9xQ~J@2Up+2{(w^0QmAmDMv>VYVg@dBYhV#i9w$M>km91!uH5|ss7 z+%@+n*w`|BfDj(y#M@zPC$8QFz{COmE8^|%;WmYMuH0N!QDVP@q$oOA>hEVR2pE0G z3cv+ES^-e4k@w&?=f`h;6phudU90A>i{js$%Eexd|w@Lr~ zr@hsQo(Kgp&d&$+Hrvo#%I@Jr8GAMcOw5SP(OnhuQ!O3a2wLa--dU7(J@fNsO90_mj zq|PU~c`Y0BWO$EwGVYfT?VU8g0#^7x-bOjeD8#H+@PS$XKjfZAN^iQE^(y)dU1X*9 kT70P@jB~FwcI+OT*o`??4Q`04h^yh(=waIckIvbD0ixY@F8}}l literal 0 HcmV?d00001 diff --git a/engine/blog/locale/vi_VN/LC_MESSAGES/django.po b/engine/blog/locale/vi_VN/LC_MESSAGES/django.po index 4c649da7..4b69d8ba 100644 --- a/engine/blog/locale/vi_VN/LC_MESSAGES/django.po +++ b/engine/blog/locale/vi_VN/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -25,14 +25,14 @@ msgstr "Danh sách tất cả các bài đăng (chỉ đọc)" msgid "retrieve a single post (read-only)" msgstr "Lấy một bài đăng duy nhất (chỉ đọc)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" "Đại diện cho mô hình bài viết blog. Lớp Post định nghĩa cấu trúc và hành vi " "của một bài viết blog. Nó bao gồm các thuộc tính cho tác giả, tiêu đề, nội " @@ -40,65 +40,72 @@ msgstr "" "ràng buộc như yêu cầu phải có nội dung hoặc tệp đính kèm nhưng không cả hai " "cùng lúc. Nó cũng hỗ trợ tạo slug tự động dựa trên tiêu đề." -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "Tiêu đề bài đăng" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "Tiêu đề" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "nội dung" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "Nội dung bài đăng" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "là trang tĩnh" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "" "Đây có phải là bài đăng cho một trang có URL tĩnh (ví dụ: `/help/delivery`) " "không?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "Bài đăng" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "Bài đăng" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" msgstr "" "Tệp Markdown hiện chưa được hỗ trợ - hãy sử dụng nội dung Markdown thay thế!" -#: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" msgstr "" "Phải cung cấp tệp Markdown hoặc nội dung Markdown - hai tùy chọn này là " "tương phản nhau." -#: engine/blog/models.py:144 +#: engine/blog/models.py:110 msgid "internal tag identifier for the post tag" msgstr "Mã định danh thẻ nội bộ cho thẻ bài viết" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "Tên ngày" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "Tên thân thiện với người dùng cho thẻ bài viết" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "Hiển thị tên thẻ" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "Thẻ bài viết" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "Thẻ bài viết" @@ -113,6 +120,7 @@ msgid "" msgstr "" "Đóng gói các thao tác quản lý và truy xuất các thực thể Post trong một bộ " "xem mô hình chỉ đọc. Lớp này được thiết kế để xử lý các đối tượng Post đang " -"hoạt động và cho phép lọc dựa trên các bộ lọc đã định nghĩa. Nó tích hợp với " -"hệ thống lọc phía sau của Django và đảm bảo các thao tác tuân thủ các quyền " -"hạn đã định nghĩa. Bộ xem cũng bao gồm một cấu hình quyền 'retrieve' bổ sung." +"hoạt động và cho phép lọc dựa trên các bộ lọc đã định nghĩa. Nó tích hợp với" +" hệ thống lọc phía sau của Django và đảm bảo các thao tác tuân thủ các quyền" +" hạn đã định nghĩa. Bộ xem cũng bao gồm một cấu hình quyền 'retrieve' bổ " +"sung." diff --git a/engine/blog/locale/zh_Hans/LC_MESSAGES/django.mo b/engine/blog/locale/zh_Hans/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..33b29390f18a4a79e651e599774ee7a164340634 GIT binary patch literal 3169 zcmah}TWlOx89qRv;BqP9@_<@&D1{^<>(~(usngInu9HTJ<6!JQqKr5RzteJKkP9|Nm^H9(lM zey^}uI=DInRq@%lT!A7b7M{1x~u08av+hEYB6bp&m|`V|Dl68lq(e*wOV`CoxA z0-t+^v2OtDfhU2#0Dd2M4M={=K;m19@eeWnImW*O$?l&(^7}V%A8;R>$nQt^qxB=e z{lJ%jpvS(A@p%kdqlY*^;z$dc(?kCBdgk>6CJZq(d!8>(vkxSuJ^VW2=p;9AnrI|0b78HRNcjC8|M?0CB-5yCQgN_6NZUTIC(vYMZDz{e437=qeG-O2FR z-qOspwO_(3`L;kjWlV+0F6oGDlth@)wLdL^X6R{C#c(oWCl@rz>Qa(QRGrwV6-1?l z^hv`_A(94NQYmO;nVP}($NGu=d^Z43T4slyc2!x`tVQI&0m{Ogw;NWP=Sb>EQk5%` zUa6^SC&>htj_oEL6cE+YE;3rDjs{vCd*j6FY}0el&vut&qF!sRldB=xN~0^PEK*;(xtwK_ey(F> zv6qvac=EI`o^>I7yWlz7>eN%HEP+psi@n&z#U*Gcu{{~} zh{Y}}BJAc2OG_a?dO>VsLI}_$90YNt*vX+o5}X@GJJzO60`)kO;be8_kc0X{B%@7$ zHHHHuov5gsmKHR1=yYkyB5EV26}4$&)3%m#{D7!VSMxUyXM~YEjPnWZcGsH+UuA}l zGEr0%LGlAT=lCF_tkK^#Uo{~f+k|BNMtdfDm27*PgOo&P(Za}hZ(yo2rOTY5b#YV6 z3PvB)OB4ta*@+HZHn<*?#b=ecU|V!yB+jN1Z{XnLjMed9HoV?^o*$_>a^k0frn!Yjy=)VdOC4z*N#|sKtf#YRti0+0!Az zQy%U2uMG$H^5sXf`~|->?mrv_7N@<9>*ZU$!S#Z-ar@)^WfjybU9a3&D32|8t5^NG zUN{Gj*8D3Au-xOkxDqbUJXs(1S04L)-C?m5++7I@MZb8j~ulgfPYQ6m7T6ygbcn5={h+Up3dRtS99-MY!2U9(jiBYeV z4+kC*?d@vAt(*REU-0e+mDwqOZagBqUA6M5^cBh*Mffmp?Or&u;1_NM;{!@GA{R+R z!bW9~u#o{GmDjEZ)4h-p#dxJvRf)<5@xpxH$NBEy?m%VsCSLshKEJp^FC&YU{18%j zYmX}vz4%vV<%gRHRh}&QeILRrEH04}%hN%Ao(fXU9a;3(SN*}q!O(n^H1DlWqHg*! zHG@#3{{740{qA7-axgOLZBDAZ!QlAbj4<;yuoDVl&xSub9Nc)UjKi%7uQXSlFKn}= z-ax`&Y%v%{E!0j`Q8@5``agCDZNV3iCk6ejzRJv+iiKWyr3X!#{dUT_XsYa>vHd}1 z_(y&WKjeg3-s-hr{Cx&_{o*WB>#RIk^oI)m(k+mUSwzZtr7Pb0UF9AweiV$YV0S7X zwd7y9gW_1&jYj_f zf3iLZaX)h-KUt^Et@epOdgICZ9p(?-@CR0dp?q+ANG*_WbQ)nDlVbkJ@BC6vT\n" "Language-Team: LANGUAGE \n" @@ -25,73 +25,78 @@ msgstr "列出所有帖子(只读)" msgid "retrieve a single post (read-only)" msgstr "检索单个帖子(只读)" -#: engine/blog/models.py:20 +#: engine/blog/models.py:19 msgid "" "Represents a blog post model. The Post class defines the structure and " "behavior of a blog post. It includes attributes for author, title, content, " "optional file attachment, slug, and associated tags. The class enforces " "constraints such as requiring either content or a file attachment but not " -"both simultaneously. It also supports automatic slug generation based on the " -"title." +"both simultaneously. It also supports automatic slug generation based on the" +" title." msgstr "" -"代表博文模型。帖子类定义了博文的结构和行为。它包括作者、标题、内容、可选文件" -"附件、标签和相关标记的属性。该类可强制执行一些限制条件,如要求提供内容或文件" -"附件,但不能同时提供这两种内容。它还支持根据标题自动生成标签。" +"代表博文模型。帖子类定义了博文的结构和行为。它包括作者、标题、内容、可选文件附件、标签和相关标记的属性。该类可强制执行一些限制条件,如要求提供内容或文件附件,但不能同时提供这两种内容。它还支持根据标题自动生成标签。" -#: engine/blog/models.py:41 +#: engine/blog/models.py:40 msgid "post title" msgstr "帖子标题" -#: engine/blog/models.py:42 +#: engine/blog/models.py:41 msgid "title" msgstr "标题" -#: engine/blog/models.py:89 +#: engine/blog/models.py:44 +msgid "content" +msgstr "内容" + +#: engine/blog/models.py:45 +msgid "post content" +msgstr "发布内容" + +#: engine/blog/models.py:57 msgid "is static page" msgstr "是静态页面" -#: engine/blog/models.py:91 +#: engine/blog/models.py:59 msgid "is this a post for a page with static URL (e.g. `/help/delivery`)?" msgstr "这是静态 URL 页面(如 `/help/delivery`)的帖子吗?" -#: engine/blog/models.py:99 +#: engine/blog/models.py:67 msgid "post" msgstr "职位" -#: engine/blog/models.py:100 +#: engine/blog/models.py:68 msgid "posts" msgstr "职位" -#: engine/blog/models.py:105 -msgid "markdown files are not supported yet - use markdown content instead" -msgstr "不支持 Markdown 文件,请使用 Markdown 内容!" +#: engine/blog/models.py:73 +msgid "file uploads are not supported yet - use content instead" +msgstr "目前尚不支持文件上传——请改用内容上传功能" + +#: engine/blog/models.py:77 +msgid "a file or content must be provided - mutually exclusive" +msgstr "必须提供一个Markdown文件或Markdown内容——两者互斥" #: engine/blog/models.py:110 -msgid "" -"a markdown file or markdown content must be provided - mutually exclusive" -msgstr "必须提供标记符文件或标记符内容 - 相互排斥" - -#: engine/blog/models.py:144 msgid "internal tag identifier for the post tag" msgstr "职位标签的内部标签标识符" -#: engine/blog/models.py:145 +#: engine/blog/models.py:111 msgid "tag name" msgstr "标签名称" -#: engine/blog/models.py:149 +#: engine/blog/models.py:115 msgid "user-friendly name for the post tag" msgstr "方便用户使用的帖子标签名称" -#: engine/blog/models.py:150 +#: engine/blog/models.py:116 msgid "tag display name" msgstr "标签显示名称" -#: engine/blog/models.py:158 +#: engine/blog/models.py:124 msgid "post tag" msgstr "职位标签" -#: engine/blog/models.py:159 +#: engine/blog/models.py:125 msgid "post tags" msgstr "帖子标签" @@ -104,6 +109,5 @@ msgid "" "defined permissions. The view set also includes an additional 'retrieve' " "permission configuration." msgstr "" -"该类封装了在只读模型视图集中管理和检索 \"帖子 \"实体的操作。该类专门用于处理" -"活动的 \"帖子 \"对象,并允许根据定义的过滤器进行过滤。它与 Django 的后台过滤" -"系统集成,确保操作与定义的权限一致。视图集还包括额外的 \"检索 \"权限配置。" +"该类封装了在只读模型视图集中管理和检索 \"帖子 \"实体的操作。该类专门用于处理活动的 \"帖子 \"对象,并允许根据定义的过滤器进行过滤。它与 " +"Django 的后台过滤系统集成,确保操作与定义的权限一致。视图集还包括额外的 \"检索 \"权限配置。" diff --git a/engine/blog/models.py b/engine/blog/models.py index f4bfb069..23e9cdd7 100644 --- a/engine/blog/models.py +++ b/engine/blog/models.py @@ -6,11 +6,10 @@ from django.db.models import ( FileField, ForeignKey, ManyToManyField, + TextField, ) from django.utils.translation import gettext_lazy as _ from django_extensions.db.fields import AutoSlugField -from markdown.extensions.toc import TocExtension -from markdown_field import MarkdownField from engine.core.abstract import NiceModel @@ -41,40 +40,9 @@ class Post(NiceModel): help_text=_("post title"), verbose_name=_("title"), ) - content: MarkdownField = MarkdownField( - "content", - extensions=[ - TocExtension(toc_depth=3), - "pymdownx.arithmatex", - "pymdownx.b64", - "pymdownx.betterem", - "pymdownx.blocks.admonition", - "pymdownx.blocks.caption", - "pymdownx.blocks.definition", - "pymdownx.blocks.details", - "pymdownx.blocks.html", - "pymdownx.blocks.tab", - "pymdownx.caret", - "pymdownx.critic", - "pymdownx.emoji", - "pymdownx.escapeall", - "pymdownx.extra", - "pymdownx.fancylists", - "pymdownx.highlight", - "pymdownx.inlinehilite", - "pymdownx.keys", - "pymdownx.magiclink", - "pymdownx.mark", - "pymdownx.pathconverter", - "pymdownx.progressbar", - "pymdownx.saneheaders", - "pymdownx.smartsymbols", - "pymdownx.snippets", - "pymdownx.striphtml", - "pymdownx.superfences", - "pymdownx.tasklist", - "pymdownx.tilde", - ], + content = TextField( + verbose_name=_("content"), + help_text=_("post content"), blank=True, null=True, ) @@ -102,13 +70,11 @@ class Post(NiceModel): def save(self, *args, **kwargs): if self.file: raise ValueError( - _("markdown files are not supported yet - use markdown content instead") + _("file uploads are not supported yet - use content instead") ) if not any([self.file, self.content]) or all([self.file, self.content]): raise ValueError( - _( - "a markdown file or markdown content must be provided - mutually exclusive" - ) + _("a file or content must be provided - mutually exclusive") ) super().save(*args, **kwargs) diff --git a/engine/core/admin.py b/engine/core/admin.py index f32a0ed4..96a858f5 100644 --- a/engine/core/admin.py +++ b/engine/core/admin.py @@ -155,7 +155,7 @@ class ActivationActionsMixin: ] @action( - description=_("activate selected %(verbose_name_plural)s").lower().title(), + description=_("Activate selected %(verbose_name_plural)s"), permissions=["change"], ) def activate_selected(self, request: HttpRequest, queryset: QuerySet[Any]) -> None: @@ -171,7 +171,7 @@ class ActivationActionsMixin: self.message_user(request=request, message=str(e), level=messages.ERROR) @action( - description=_("deactivate selected %(verbose_name_plural)s").lower().title(), + description=_("Deactivate selected %(verbose_name_plural)s"), permissions=["change"], ) def deactivate_selected( @@ -528,9 +528,7 @@ class ProductAdmin( has_images.short_description = _("has images") # ty:ignore[unresolved-attribute] @action( - description=_("export selected %(verbose_name_plural)s to marketplaces' feeds") - .lower() - .title(), + description=_("Export selected %(verbose_name_plural)s to marketplaces' feeds"), permissions=["change"], ) def export_to_marketplaces( @@ -552,9 +550,7 @@ class ProductAdmin( self.message_user(request=request, message=str(e), level=messages.ERROR) @action( - description=_("ban selected %(verbose_name_plural)s from marketplaces' feeds") - .lower() - .title(), + description=_("Ban selected %(verbose_name_plural)s from marketplaces' feeds"), permissions=["change"], ) def ban_from_marketplaces( diff --git a/engine/core/graphene/mutations.py b/engine/core/graphene/mutations.py index a60c60a5..eca0f2c3 100644 --- a/engine/core/graphene/mutations.py +++ b/engine/core/graphene/mutations.py @@ -335,9 +335,9 @@ class BulkWishlistAction(Mutation): # noinspection PyUnreachableCode match action: case "add": - wishlist = wishlist.bulk_add_products(products) # ty: ignore[possibly-missing-attribute] + wishlist = wishlist.bulk_add_products(products) case "remove": - wishlist = wishlist.bulk_remove_products(products) # ty: ignore[possibly-missing-attribute] + wishlist = wishlist.bulk_remove_products(products) case _: raise BadRequest(_("action must be either add or remove")) @@ -723,7 +723,7 @@ class Search(Mutation): return Search(results=None) # ty: ignore[unknown-argument] # noinspection PyTypeChecker - return Search( # ty: ignore[unknown-argument] + return Search( results=SearchResultsType( # ty: ignore[unknown-argument] products=data["products"], # ty: ignore[unknown-argument] categories=data["categories"], # ty: ignore[unknown-argument] diff --git a/engine/core/locale/ar_AR/LC_MESSAGES/django.mo b/engine/core/locale/ar_AR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b0e1f277c10446d64f906baf635eb2cd03931359 GIT binary patch literal 109420 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 C%H2Bv literal 0 HcmV?d00001 diff --git a/engine/core/locale/ar_AR/LC_MESSAGES/django.po b/engine/core/locale/ar_AR/LC_MESSAGES/django.po index 74b18e53..1335c1c0 100644 --- a/engine/core/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/core/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "نشط" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "إذا تم تعيينه على خطأ، لا يمكن للمستخدمين رؤية هذا الكائن دون الحاجة إلى إذن" @@ -73,8 +74,8 @@ msgstr "الطوابع الزمنية" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "تنشيط المحدد _PH_0__%(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" +msgstr "تنشيط %(verbose_name_plural)s المحدد" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -82,21 +83,21 @@ msgstr "تم تفعيل العناصر المختارة!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "إلغاء التنشيط المحدد _PH_0_%(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "إلغاء تنشيط %(verbose_name_plural)s المحدد" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "تم إلغاء تنشيط العناصر المحددة!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "قيمة السمة" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "قيم السمات" @@ -116,12 +117,12 @@ msgstr "المخزون" msgid "stocks" msgstr "الأسهم" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "طلب المنتج" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "اطلب المنتجات" @@ -129,7 +130,31 @@ msgstr "اطلب المنتجات" msgid "children" msgstr "الأطفال" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "يحتوي على صور" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "تصدير %(verbose_name_plural)s المحدد إلى موجزات الأسواق" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "تم تحديد %(verbose_name_plural)s للتصدير." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "حظر %(verbose_name_plural)s المحدد من موجزات الأسواق" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "تم حظر تصدير %(verbose_name_plural)s المختار." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "التكوين" @@ -153,7 +178,8 @@ msgstr "تم التسليم" msgid "canceled" msgstr "تم الإلغاء" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "فشل" @@ -191,9 +217,9 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"مخطط OpenApi3 لواجهة برمجة التطبيقات هذه. يمكن تحديد التنسيق عبر التفاوض على " -"المحتوى. يمكن تحديد اللغة باستخدام معلمة قبول اللغة ومعلمة الاستعلام على حد " -"سواء." +"مخطط OpenApi3 لواجهة برمجة التطبيقات هذه. يمكن تحديد التنسيق عبر التفاوض على" +" المحتوى. يمكن تحديد اللغة باستخدام معلمة قبول اللغة ومعلمة الاستعلام على حد" +" سواء." #: engine/core/docs/drf/views.py:46 engine/core/graphene/mutations.py:36 msgid "cache I/O" @@ -205,8 +231,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "تطبيق مفتاح فقط لقراءة البيانات المسموح بها من ذاكرة التخزين المؤقت.\n" -"تطبيق مفتاح وبيانات ومهلة مع المصادقة لكتابة البيانات إلى ذاكرة التخزين " -"المؤقت." +"تطبيق مفتاح وبيانات ومهلة مع المصادقة لكتابة البيانات إلى ذاكرة التخزين المؤقت." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -269,7 +294,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "إعادة كتابة مجموعة سمات موجودة تحفظ غير القابلة للتعديل" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "إعادة كتابة بعض حقول مجموعة سمات موجودة تحفظ غير القابلة للتعديل" #: engine/core/docs/drf/viewsets.py:118 @@ -317,7 +343,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "إعادة كتابة قيمة سمة موجودة تحفظ غير القابلة للتعديل" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "إعادة كتابة بعض حقول قيمة سمة موجودة حفظ غير قابل للتعديل" #: engine/core/docs/drf/viewsets.py:219 engine/core/docs/drf/viewsets.py:220 @@ -370,8 +397,8 @@ msgstr "بالنسبة للمستخدمين من غير الموظفين، يت #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "البحث في سلسلة فرعية غير حساسة لحالة الأحرف عبر human_readable_id و " "order_products.product.name و order_products.product.partnumber" @@ -407,9 +434,9 @@ msgstr "تصفية حسب حالة الطلب (مطابقة سلسلة فرعي #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "الترتيب حسب واحد من: uuid، معرف_بشري_مقروء، بريد_إلكتروني_مستخدم، مستخدم، " "حالة، إنشاء، تعديل، وقت_الشراء، عشوائي. البادئة بحرف \"-\" للترتيب التنازلي " @@ -491,7 +518,8 @@ msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"يضيف قائمة من المنتجات إلى طلب باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." +"يضيف قائمة من المنتجات إلى طلب باستخدام \"معرّف_المنتج\" و\"السمات\" " +"المتوفرة." #: engine/core/docs/drf/viewsets.py:472 msgid "remove product from order" @@ -501,8 +529,7 @@ msgstr "إزالة منتج من الطلب" msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"يزيل منتجًا من أحد الطلبات باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." +msgstr "يزيل منتجًا من أحد الطلبات باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." #: engine/core/docs/drf/viewsets.py:483 msgid "remove product from order, quantities will not count" @@ -596,32 +623,20 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "تصفية حسب زوج واحد أو أكثر من أسماء/قيم السمات. \n" "- **صيغة**: `attr_name=الطريقة-القيمة[ ؛ attr2=الطريقة2-القيمة2]...`\n" -"- **الأساليب** (افتراضيًا إلى \"يحتوي على\" إذا تم حذفها): \"بالضبط\"، " -"\"بالضبط\"، \"بالضبط\"، \"يحتوي\"، \"يحتوي\"، \"لاغية\"، \"يبدأ ب\"، \"يبدأ " -"ب\"، \"يبدأ ب\"، \"ينتهي ب\"، \"ينتهي ب\"، \"regex\"، \"iregex\"، \"lt\"، " -"\"lte\"، \"gt\"، \"gte\"، \"in\n" -"- **كتابة القيمة**: تتم تجربة JSON أولًا (حتى تتمكن من تمرير القوائم/" -"المجادلات)، \"صحيح\"/\"خطأ\" للمنطقيين والأعداد الصحيحة والعوامات؛ وإلا يتم " -"التعامل معها كسلسلة. \n" -"- **القاعدة 64**: البادئة ب \"b64-\" لتشفير القيمة الخام بأمان لقاعدة 64- " -"لتشفير القيمة الخام. \n" +"- **الأساليب** (افتراضيًا إلى \"يحتوي على\" إذا تم حذفها): \"بالضبط\"، \"بالضبط\"، \"بالضبط\"، \"يحتوي\"، \"يحتوي\"، \"لاغية\"، \"يبدأ ب\"، \"يبدأ ب\"، \"يبدأ ب\"، \"ينتهي ب\"، \"ينتهي ب\"، \"regex\"، \"iregex\"، \"lt\"، \"lte\"، \"gt\"، \"gte\"، \"in\n" +"- **كتابة القيمة**: تتم تجربة JSON أولًا (حتى تتمكن من تمرير القوائم/المجادلات)، \"صحيح\"/\"خطأ\" للمنطقيين والأعداد الصحيحة والعوامات؛ وإلا يتم التعامل معها كسلسلة. \n" +"- **القاعدة 64**: البادئة ب \"b64-\" لتشفير القيمة الخام بأمان لقاعدة 64- لتشفير القيمة الخام. \n" "أمثلة: \n" -"'color=exact-red'، 'size=gt-10'، 'features=in-[\"wifi\"،\"bluetooth\"]، " -"'fatures=in-[\"wifi\",\"bluetooth\"],\n" +"'color=exact-red'، 'size=gt-10'، 'features=in-[\"wifi\"،\"bluetooth\"]، 'fatures=in-[\"wifi\",\"bluetooth\"],\n" "\"b64-description=icontains-aGVhdC1jb2xk" #: engine/core/docs/drf/viewsets.py:617 engine/core/docs/drf/viewsets.py:618 @@ -634,8 +649,7 @@ msgstr "(بالضبط) UUID المنتج" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" "قائمة مفصولة بفواصل من الحقول للفرز حسب. البادئة بـ \"-\" للفرز التنازلي. \n" @@ -1175,8 +1189,8 @@ msgstr "شراء طلبية" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "الرجاء إرسال السمات كسلسلة منسقة مثل attr1=قيمة1، attr2=قيمة2" #: engine/core/graphene/mutations.py:580 @@ -1196,9 +1210,9 @@ msgstr "طلب المنتج {order_product_uuid} غير موجود!" msgid "original address string provided by the user" msgstr "سلسلة العنوان الأصلي المقدمة من المستخدم" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1214,8 +1228,8 @@ msgstr "ElasticSearch - يعمل مثل السحر" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "السمات" @@ -1251,7 +1265,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "ما هي السمات والقيم التي يمكن استخدامها لتصفية هذه الفئة." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "الحد الأدنى والحد الأقصى لأسعار المنتجات في هذه الفئة، إذا كانت متوفرة." @@ -1289,7 +1304,7 @@ msgid "represents feedback from a user." msgstr "يمثل ملاحظات من المستخدم." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "الإشعارات" @@ -1297,7 +1312,7 @@ msgstr "الإشعارات" msgid "download url for this order product if applicable" msgstr "تحميل الرابط الخاص بمنتج الطلب هذا إن أمكن" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "الملاحظات" @@ -1305,7 +1320,7 @@ msgstr "الملاحظات" msgid "a list of order products in this order" msgstr "قائمة بطلب المنتجات بهذا الترتيب" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "عنوان إرسال الفواتير" @@ -1333,7 +1348,7 @@ msgstr "هل جميع المنتجات في الطلب رقمي" msgid "transactions for this order" msgstr "المعاملات الخاصة بهذا الطلب" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "الطلبات" @@ -1350,7 +1365,7 @@ msgstr "صور المنتج" msgid "category" msgstr "الفئة" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "الملاحظات" @@ -1391,7 +1406,7 @@ msgstr "المنتجات متاحة للطلبات الشخصية فقط" msgid "discount price" msgstr "سعر الخصم" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "المنتجات" @@ -1403,7 +1418,7 @@ msgstr "الرموز الترويجية" msgid "products on sale" msgstr "المنتجات المعروضة للبيع" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "العروض الترويجية" @@ -1411,7 +1426,7 @@ msgstr "العروض الترويجية" msgid "vendor" msgstr "البائع" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1419,11 +1434,11 @@ msgstr "البائع" msgid "product" msgstr "المنتج" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "المنتجات المفضلة" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "قوائم التمنيات" @@ -1463,8 +1478,8 @@ msgstr "رقم هاتف الشركة" #: engine/core/graphene/object_types.py:761 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -"\"البريد الإلكتروني من\"، في بعض الأحيان يجب استخدامه بدلاً من قيمة المستخدم " -"المضيف" +"\"البريد الإلكتروني من\"، في بعض الأحيان يجب استخدامه بدلاً من قيمة المستخدم" +" المضيف" #: engine/core/graphene/object_types.py:764 msgid "email host user" @@ -1540,7 +1555,7 @@ msgstr "مجموعة السمات الرئيسية" msgid "attribute group's name" msgstr "اسم مجموعة السمات" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "مجموعة السمات" @@ -1558,8 +1573,8 @@ msgstr "" "تفاعلهم. يتم استخدام فئة البائع لتعريف وإدارة المعلومات المتعلقة ببائع " "خارجي. وهو يخزن اسم البائع، وتفاصيل المصادقة المطلوبة للاتصال، والنسبة " "المئوية للترميز المطبقة على المنتجات المسترجعة من البائع. يحتفظ هذا النموذج " -"أيضًا ببيانات وصفية وقيود إضافية، مما يجعله مناسبًا للاستخدام في الأنظمة التي " -"تتفاعل مع البائعين الخارجيين." +"أيضًا ببيانات وصفية وقيود إضافية، مما يجعله مناسبًا للاستخدام في الأنظمة " +"التي تتفاعل مع البائعين الخارجيين." #: engine/core/models.py:122 msgid "stores credentials and endpoints required for vendor communication" @@ -1612,9 +1627,9 @@ msgid "" "metadata customization for administrative purposes." msgstr "" "يمثل علامة منتج تُستخدم لتصنيف المنتجات أو تعريفها. صُممت فئة ProductTag " -"لتعريف المنتجات وتصنيفها بشكل فريد من خلال مزيج من معرّف علامة داخلي واسم عرض " -"سهل الاستخدام. وهي تدعم العمليات التي يتم تصديرها من خلال mixins وتوفر تخصيص " -"البيانات الوصفية لأغراض إدارية." +"لتعريف المنتجات وتصنيفها بشكل فريد من خلال مزيج من معرّف علامة داخلي واسم " +"عرض سهل الاستخدام. وهي تدعم العمليات التي يتم تصديرها من خلال mixins وتوفر " +"تخصيص البيانات الوصفية لأغراض إدارية." #: engine/core/models.py:204 engine/core/models.py:235 msgid "internal tag identifier for the product tag" @@ -1642,8 +1657,8 @@ msgid "" "tag that can be used to associate and classify products. It includes " "attributes for an internal tag identifier and a user-friendly display name." msgstr "" -"يمثل علامة فئة تستخدم للمنتجات. تمثل هذه الفئة علامة فئة يمكن استخدامها لربط " -"المنتجات وتصنيفها. وهي تتضمن سمات لمعرف علامة داخلي واسم عرض سهل الاستخدام." +"يمثل علامة فئة تستخدم للمنتجات. تمثل هذه الفئة علامة فئة يمكن استخدامها لربط" +" المنتجات وتصنيفها. وهي تتضمن سمات لمعرف علامة داخلي واسم عرض سهل الاستخدام." #: engine/core/models.py:249 msgid "category tag" @@ -1669,9 +1684,9 @@ msgstr "" "علاقات هرمية مع فئات أخرى، مما يدعم العلاقات بين الأصل والطفل. تتضمن الفئة " "حقول للبيانات الوصفية والتمثيل المرئي، والتي تعمل كأساس للميزات المتعلقة " "بالفئات. تُستخدم هذه الفئة عادةً لتعريف وإدارة فئات المنتجات أو غيرها من " -"التجميعات المماثلة داخل التطبيق، مما يسمح للمستخدمين أو المسؤولين بتحديد اسم " -"الفئات ووصفها وتسلسلها الهرمي، بالإضافة إلى تعيين سمات مثل الصور أو العلامات " -"أو الأولوية." +"التجميعات المماثلة داخل التطبيق، مما يسمح للمستخدمين أو المسؤولين بتحديد اسم" +" الفئات ووصفها وتسلسلها الهرمي، بالإضافة إلى تعيين سمات مثل الصور أو " +"العلامات أو الأولوية." #: engine/core/models.py:269 msgid "upload an image representing this category" @@ -1722,7 +1737,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "يمثل كائن العلامة التجارية في النظام. تتعامل هذه الفئة مع المعلومات والسمات " "المتعلقة بالعلامة التجارية، بما في ذلك اسمها وشعاراتها ووصفها والفئات " @@ -1771,8 +1787,8 @@ msgstr "الفئات" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1804,8 +1820,8 @@ msgstr "سعر البيع" msgid "the product associated with this stock entry" msgstr "المنتج المرتبط بإدخال المخزون هذا" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "المنتج المرتبط" @@ -1862,10 +1878,10 @@ msgid "" msgstr "" "يمثل منتجًا بخصائص مثل الفئة والعلامة التجارية والعلامات والحالة الرقمية " "والاسم والوصف ورقم الجزء والعلامة التجارية والحالة الرقمية والاسم والوصف " -"ورقم الجزء والسبيكة. يوفر خصائص الأداة المساعدة ذات الصلة لاسترداد التقييمات " -"وعدد الملاحظات والسعر والكمية وإجمالي الطلبات. مصمم للاستخدام في نظام يتعامل " -"مع التجارة الإلكترونية أو إدارة المخزون. تتفاعل هذه الفئة مع النماذج ذات " -"الصلة (مثل الفئة والعلامة التجارية وعلامة المنتج) وتدير التخزين المؤقت " +"ورقم الجزء والسبيكة. يوفر خصائص الأداة المساعدة ذات الصلة لاسترداد التقييمات" +" وعدد الملاحظات والسعر والكمية وإجمالي الطلبات. مصمم للاستخدام في نظام " +"يتعامل مع التجارة الإلكترونية أو إدارة المخزون. تتفاعل هذه الفئة مع النماذج " +"ذات الصلة (مثل الفئة والعلامة التجارية وعلامة المنتج) وتدير التخزين المؤقت " "للخصائص التي يتم الوصول إليها بشكل متكرر لتحسين الأداء. يتم استخدامه لتعريف " "ومعالجة بيانات المنتج والمعلومات المرتبطة به داخل التطبيق." @@ -1905,7 +1921,7 @@ msgstr "توفير اسم تعريفي واضح للمنتج" msgid "product name" msgstr "اسم المنتج" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "إضافة وصف تفصيلي للمنتج" @@ -1925,13 +1941,21 @@ msgstr "رقم الجزء" msgid "stock keeping unit for this product" msgstr "وحدة حفظ المخزون لهذا المنتج" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "ما إذا كان سيتم تصدير هذا المنتج إلى الأسواق" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "التصدير إلى الأسواق" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "يمثل سمة في النظام. تُستخدم هذه الفئة لتعريف السمات وإدارتها، وهي عبارة عن " @@ -1940,89 +1964,89 @@ msgstr "" "من القيم، بما في ذلك السلسلة، والعدد الصحيح، والعائم، والمنطقي، والصفيف، " "والكائن. وهذا يسمح بهيكلة ديناميكية ومرنة للبيانات." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "مجموعة هذه السمة" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "الخيط" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "عدد صحيح" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "تعويم" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "منطقية" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "المصفوفة" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "الكائن" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "نوع قيمة السمة" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "نوع القيمة" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "اسم هذه السمة" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "اسم السمة" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "قابل للتصفية" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "يحدد ما إذا كان يمكن استخدام هذه السمة للتصفية أم لا" -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "السمة" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "يمثل قيمة محددة لسمة مرتبطة بمنتج ما. يربط \"السمة\" بـ \"قيمة\" فريدة، مما " "يسمح بتنظيم أفضل وتمثيل ديناميكي لخصائص المنتج." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "سمة هذه القيمة" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "المنتج المحدد المرتبط بقيمة هذه السمة" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "القيمة المحددة لهذه السمة" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2030,209 +2054,210 @@ msgstr "" "بالمنتجات، بما في ذلك وظيفة تحميل ملفات الصور، وربطها بمنتجات معينة، وتحديد " "ترتيب عرضها. وتتضمن أيضًا ميزة إمكانية الوصول مع نص بديل للصور." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "توفير نص بديل للصورة لإمكانية الوصول" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "النص البديل للصورة" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "تحميل ملف الصورة لهذا المنتج" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "صورة المنتج" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "يحدد الترتيب الذي يتم عرض الصور به" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "أولوية العرض" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "المنتج الذي تمثله هذه الصورة" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "صور المنتج" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"يمثل حملة ترويجية للمنتجات ذات الخصم. تُستخدم هذه الفئة لتعريف وإدارة الحملات " -"الترويجية التي تقدم خصمًا على أساس النسبة المئوية للمنتجات. تتضمن الفئة سمات " -"لتعيين معدل الخصم وتوفير تفاصيل حول العرض الترويجي وربطه بالمنتجات القابلة " -"للتطبيق. تتكامل مع كتالوج المنتجات لتحديد العناصر المتأثرة في الحملة." +"يمثل حملة ترويجية للمنتجات ذات الخصم. تُستخدم هذه الفئة لتعريف وإدارة " +"الحملات الترويجية التي تقدم خصمًا على أساس النسبة المئوية للمنتجات. تتضمن " +"الفئة سمات لتعيين معدل الخصم وتوفير تفاصيل حول العرض الترويجي وربطه " +"بالمنتجات القابلة للتطبيق. تتكامل مع كتالوج المنتجات لتحديد العناصر المتأثرة" +" في الحملة." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "النسبة المئوية للخصم على المنتجات المختارة" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "نسبة الخصم" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "تقديم اسم فريد لهذا العرض الترويجي" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "اسم الترقية" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "وصف الترقية" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "حدد المنتجات المشمولة في هذا العرض الترويجي" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "المنتجات المشمولة" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "الترقية" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"يمثل قائمة أمنيات المستخدم لتخزين وإدارة المنتجات المطلوبة. توفر الفئة وظائف " -"لإدارة مجموعة من المنتجات، وتدعم عمليات مثل إضافة المنتجات وإزالتها، " +"يمثل قائمة أمنيات المستخدم لتخزين وإدارة المنتجات المطلوبة. توفر الفئة وظائف" +" لإدارة مجموعة من المنتجات، وتدعم عمليات مثل إضافة المنتجات وإزالتها، " "بالإضافة إلى دعم عمليات إضافة وإزالة منتجات متعددة في وقت واحد." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "المنتجات التي حددها المستخدم على أنها مطلوبة" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "المستخدم الذي يمتلك قائمة الرغبات هذه" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "مالك قائمة الرغبات" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "قائمة الرغبات" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"يمثل سجل وثائقي مرتبط بمنتج ما. تُستخدم هذه الفئة لتخزين معلومات حول الأفلام " -"الوثائقية المرتبطة بمنتجات محددة، بما في ذلك تحميلات الملفات وبياناتها " +"يمثل سجل وثائقي مرتبط بمنتج ما. تُستخدم هذه الفئة لتخزين معلومات حول الأفلام" +" الوثائقية المرتبطة بمنتجات محددة، بما في ذلك تحميلات الملفات وبياناتها " "الوصفية. يحتوي على أساليب وخصائص للتعامل مع نوع الملف ومسار التخزين للملفات " "الوثائقية. وهو يوسع الوظائف من مزيج معين ويوفر ميزات مخصصة إضافية." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "فيلم وثائقي" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "الأفلام الوثائقية" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "لم يتم حلها" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "يمثل كيان عنوان يتضمن تفاصيل الموقع والارتباطات مع المستخدم. يوفر وظائف " "لتخزين البيانات الجغرافية وبيانات العنوان، بالإضافة إلى التكامل مع خدمات " -"الترميز الجغرافي. صُممت هذه الفئة لتخزين معلومات العنوان التفصيلية بما في ذلك " -"مكونات مثل الشارع والمدينة والمنطقة والبلد والموقع الجغرافي (خطوط الطول " +"الترميز الجغرافي. صُممت هذه الفئة لتخزين معلومات العنوان التفصيلية بما في " +"ذلك مكونات مثل الشارع والمدينة والمنطقة والبلد والموقع الجغرافي (خطوط الطول " "والعرض). وهو يدعم التكامل مع واجهات برمجة التطبيقات للترميز الجغرافي، مما " "يتيح تخزين استجابات واجهة برمجة التطبيقات الخام لمزيد من المعالجة أو الفحص. " "تسمح الفئة أيضًا بربط عنوان مع مستخدم، مما يسهل التعامل مع البيانات الشخصية." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "سطر العنوان للعميل" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "سطر العنوان" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "الشارع" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "المنطقة" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "المدينة" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "المنطقة" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "الرمز البريدي" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "البلد" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "نقطة تحديد الموقع الجغرافي(خط الطول، خط العرض)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "استجابة JSON كاملة من أداة التشفير الجغرافي لهذا العنوان" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "استجابة JSON مخزّنة من خدمة الترميز الجغرافي" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "العنوان" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "العناوين" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2241,99 +2266,100 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"يمثل الرمز الترويجي الذي يمكن استخدامه للحصول على خصومات وإدارة صلاحيته ونوع " -"الخصم والتطبيق. تقوم فئة PromoCode بتخزين تفاصيل حول الرمز الترويجي، بما في " -"ذلك معرفه الفريد، وخصائص الخصم (المبلغ أو النسبة المئوية)، وفترة الصلاحية، " +"يمثل الرمز الترويجي الذي يمكن استخدامه للحصول على خصومات وإدارة صلاحيته ونوع" +" الخصم والتطبيق. تقوم فئة PromoCode بتخزين تفاصيل حول الرمز الترويجي، بما في" +" ذلك معرفه الفريد، وخصائص الخصم (المبلغ أو النسبة المئوية)، وفترة الصلاحية، " "والمستخدم المرتبط به (إن وجد)، وحالة استخدامه. ويتضمن وظيفة للتحقق من صحة " "الرمز الترويجي وتطبيقه على الطلب مع ضمان استيفاء القيود." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "الرمز الفريد الذي يستخدمه المستخدم لاسترداد قيمة الخصم" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "معرّف الرمز الترويجي" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "مبلغ الخصم الثابت المطبق في حالة عدم استخدام النسبة المئوية" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "مبلغ الخصم الثابت" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "النسبة المئوية للخصم المطبق في حالة عدم استخدام مبلغ ثابت" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "النسبة المئوية للخصم" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "الطابع الزمني عند انتهاء صلاحية الرمز الترويجي" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "وقت انتهاء الصلاحية" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "الطابع الزمني الذي يكون هذا الرمز الترويجي صالحاً منه" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "وقت بدء الصلاحية" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" -msgstr "الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" +msgstr "" +"الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "الطابع الزمني للاستخدام" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "المستخدم المعين لهذا الرمز الترويجي إن أمكن" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "المستخدم المعين" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "الرمز الترويجي" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "الرموز الترويجية" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين " -"أو لا هذا ولا ذاك." +"يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين" +" أو لا هذا ولا ذاك." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "تم استخدام الرمز الترويجي بالفعل" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "نوع الخصم غير صالح للرمز الترويجي {self.uuid}" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2343,150 +2369,150 @@ msgstr "" "مرتبطة، ويمكن تطبيق العروض الترويجية، وتعيين العناوين، وتحديث تفاصيل الشحن " "أو الفوترة. وبالمثل، تدعم الوظيفة إدارة المنتجات في دورة حياة الطلب." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "عنوان إرسال الفواتير المستخدم لهذا الطلب" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "الرمز الترويجي الاختياري المطبق على هذا الطلب" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "الرمز الترويجي المطبق" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "عنوان الشحن المستخدم لهذا الطلب" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "عنوان الشحن" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "الحالة الحالية للطلب في دورة حياته" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "حالة الطلب" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "بنية JSON للإشعارات التي سيتم عرضها للمستخدمين، في واجهة مستخدم المشرف، يتم " "استخدام عرض الجدول" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "تمثيل JSON لسمات الطلب لهذا الطلب" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "المستخدم الذي قدم الطلب" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "المستخدم" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "الطابع الزمني عند الانتهاء من الطلب" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "وقت الشراء" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "معرّف يمكن قراءته بواسطة البشر للطلب" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "معرّف يمكن قراءته من قبل البشر" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "الطلب" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "يجب أن يكون لدى المستخدم طلب واحد فقط معلق في كل مرة!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "لا يمكنك إضافة منتجات إلى طلب غير معلق إلى طلب غير معلق" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "لا يمكنك إضافة منتجات غير نشطة للطلب" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "لا يمكنك إضافة منتجات أكثر من المتوفرة في المخزون" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "لا يمكنك إزالة المنتجات من طلب غير معلق من طلب غير معلق" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} غير موجود مع الاستعلام <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "الرمز الترويجي غير موجود" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "يمكنك فقط شراء المنتجات المادية مع تحديد عنوان الشحن فقط!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "العنوان غير موجود" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "لا يمكنك الشراء في هذه اللحظة، يرجى المحاولة مرة أخرى بعد بضع دقائق." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "قيمة القوة غير صالحة" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "لا يمكنك شراء طلبية فارغة!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "لا يمكنك شراء طلب بدون مستخدم!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "المستخدم بدون رصيد لا يمكنه الشراء بالرصيد!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "عدم كفاية الأموال لإكمال الطلب" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -"لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد " -"الإلكتروني للعميل، رقم هاتف العميل" +"لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد" +" الإلكتروني للعميل، رقم هاتف العميل" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "طريقة الدفع غير صالحة: {payment_method} من {available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2499,31 +2525,32 @@ msgstr "" "المستخدم، ومرجع إلى المنتج ذي الصلة في الطلب، وتقييم معين من قبل المستخدم. " "يستخدم الفصل حقول قاعدة البيانات لنمذجة وإدارة بيانات الملاحظات بشكل فعال." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "التعليقات المقدمة من المستخدمين حول تجربتهم مع المنتج" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "تعليقات على الملاحظات" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "الإشارة إلى المنتج المحدد في الطلب الذي تدور حوله هذه الملاحظات" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "منتجات الطلبات ذات الصلة" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "التصنيف المعين من قبل المستخدم للمنتج" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "تصنيف المنتج" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2538,131 +2565,131 @@ msgstr "" "يمثل المنتجات المرتبطة بالطلبات وسماتها. يحتفظ نموذج OrderProduct بمعلومات " "حول المنتج الذي هو جزء من الطلب، بما في ذلك تفاصيل مثل سعر الشراء والكمية " "وسمات المنتج وحالته. يدير الإشعارات للمستخدم والمسؤولين ويتعامل مع عمليات " -"مثل إرجاع رصيد المنتج أو إضافة ملاحظات. يوفر هذا النموذج أيضًا أساليب وخصائص " -"تدعم منطق العمل، مثل حساب السعر الإجمالي أو إنشاء عنوان URL للتنزيل للمنتجات " -"الرقمية. يتكامل النموذج مع نموذجي الطلب والمنتج ويخزن مرجعًا لهما." +"مثل إرجاع رصيد المنتج أو إضافة ملاحظات. يوفر هذا النموذج أيضًا أساليب وخصائص" +" تدعم منطق العمل، مثل حساب السعر الإجمالي أو إنشاء عنوان URL للتنزيل " +"للمنتجات الرقمية. يتكامل النموذج مع نموذجي الطلب والمنتج ويخزن مرجعًا لهما." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "السعر الذي دفعه العميل لهذا المنتج وقت الشراء" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "سعر الشراء وقت الطلب" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "تعليقات داخلية للمسؤولين حول هذا المنتج المطلوب" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "التعليقات الداخلية" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "إشعارات المستخدم" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "تمثيل JSON لسمات هذا العنصر" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "سمات المنتج المطلوبة" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "الإشارة إلى الطلب الأصلي الذي يحتوي على هذا المنتج" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "ترتيب الوالدين" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "المنتج المحدد المرتبط بخط الطلب هذا" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "كمية هذا المنتج المحدد في الطلب" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "كمية المنتج" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "الحالة الحالية لهذا المنتج بالترتيب" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "حالة خط الإنتاج" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "يجب أن يكون لـ Orderproduct طلب مرتبط به!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "تم تحديد إجراء خاطئ للتغذية الراجعة: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "لا يمكنك التعليق على طلب لم يتم استلامه" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "الاسم" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "رابط التكامل" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "بيانات اعتماد المصادقة" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "يمكن أن يكون لديك موفر CRM افتراضي واحد فقط" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "إدارة علاقات العملاء" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "إدارة علاقات العملاء" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "رابط إدارة علاقات العملاء الخاصة بالطلب" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "روابط إدارة علاقات العملاء الخاصة بالطلبات" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "يمثل وظيفة التنزيل للأصول الرقمية المرتبطة بالطلبات. توفر فئة " "DigitalAssetDownload القدرة على إدارة التنزيلات المتعلقة بمنتجات الطلبات " "والوصول إليها. وتحتفظ بمعلومات حول منتج الطلب المرتبط، وعدد التنزيلات، وما " -"إذا كان الأصل مرئيًا للعامة. وتتضمن طريقة لإنشاء عنوان URL لتنزيل الأصل عندما " -"يكون الطلب المرتبط في حالة مكتملة." +"إذا كان الأصل مرئيًا للعامة. وتتضمن طريقة لإنشاء عنوان URL لتنزيل الأصل " +"عندما يكون الطلب المرتبط في حالة مكتملة." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "تنزيل" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "التنزيلات" @@ -2861,12 +2888,11 @@ msgstr "مرحباً %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"شكرًا لك على طلبك #%(order.pk)s! يسعدنا إبلاغك بأننا قد أخذنا طلبك في العمل. " -"فيما يلي تفاصيل طلبك:" +"شكرًا لك على طلبك #%(order.pk)s! يسعدنا إبلاغك بأننا قد أخذنا طلبك في العمل." +" فيما يلي تفاصيل طلبك:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2973,8 +2999,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "شكرًا لك على طلبك! يسعدنا تأكيد طلبك. فيما يلي تفاصيل طلبك:" @@ -3101,14 +3126,10 @@ msgstr "يتعامل بمنطق الشراء كشركة تجارية دون تس #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "يتعامل مع تنزيل الأصل الرقمي المرتبط بأمر ما.\n" -"تحاول هذه الدالة خدمة ملف الأصل الرقمي الموجود في دليل التخزين الخاص " -"بالمشروع. إذا لم يتم العثور على الملف، يتم رفع خطأ HTTP 404 للإشارة إلى أن " -"المورد غير متوفر." +"تحاول هذه الدالة خدمة ملف الأصل الرقمي الموجود في دليل التخزين الخاص بالمشروع. إذا لم يتم العثور على الملف، يتم رفع خطأ HTTP 404 للإشارة إلى أن المورد غير متوفر." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3137,23 +3158,19 @@ msgstr "الرمز المفضل غير موجود" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "يتعامل مع طلبات الرمز المفضل لموقع ويب.\n" -"تحاول هذه الدالة عرض ملف الأيقونة المفضلة الموجود في الدليل الثابت للمشروع. " -"إذا لم يتم العثور على ملف الأيقونة المفضلة، يتم رفع خطأ HTTP 404 للإشارة إلى " -"أن المورد غير متوفر." +"تحاول هذه الدالة عرض ملف الأيقونة المفضلة الموجود في الدليل الثابت للمشروع. إذا لم يتم العثور على ملف الأيقونة المفضلة، يتم رفع خطأ HTTP 404 للإشارة إلى أن المورد غير متوفر." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"يعيد توجيه الطلب إلى صفحة فهرس المشرف. تعالج الدالة طلبات HTTP الواردة وتعيد " -"توجيهها إلى صفحة فهرس واجهة إدارة Django. تستخدم دالة \"إعادة التوجيه\" في " +"يعيد توجيه الطلب إلى صفحة فهرس المشرف. تعالج الدالة طلبات HTTP الواردة وتعيد" +" توجيهها إلى صفحة فهرس واجهة إدارة Django. تستخدم دالة \"إعادة التوجيه\" في " "Django للتعامل مع إعادة توجيه HTTP." #: engine/core/views.py:445 @@ -3171,28 +3188,29 @@ msgstr "إرجاع المتغيرات المخصصة للوحة التحكم." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "يحدد مجموعة طرق عرض لإدارة العمليات المتعلقة ب schon. يرث صنف SchonViewSet " -"من ModelViewSet ويوفر وظائف للتعامل مع الإجراءات والعمليات على كيانات " -"schon. وتتضمن دعمًا لفئات المتسلسلات الديناميكية استنادًا إلى الإجراء الحالي، " +"من ModelViewSet ويوفر وظائف للتعامل مع الإجراءات والعمليات على كيانات schon." +" وتتضمن دعمًا لفئات المتسلسلات الديناميكية استنادًا إلى الإجراء الحالي، " "والأذونات القابلة للتخصيص، وتنسيقات العرض." #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "يمثل مجموعة طرق عرض لإدارة كائنات AttributeGroup. يتعامل مع العمليات " "المتعلقة ب AttributeGroup، بما في ذلك التصفية والتسلسل واسترجاع البيانات. " -"تعد هذه الفئة جزءًا من طبقة واجهة برمجة التطبيقات الخاصة بالتطبيق وتوفر طريقة " -"موحدة لمعالجة الطلبات والاستجابات لبيانات AttributeGroup." +"تعد هذه الفئة جزءًا من طبقة واجهة برمجة التطبيقات الخاصة بالتطبيق وتوفر " +"طريقة موحدة لمعالجة الطلبات والاستجابات لبيانات AttributeGroup." #: engine/core/viewsets.py:179 msgid "" @@ -3214,13 +3232,14 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"مجموعة طرق عرض لإدارة كائنات AttributeValue. توفر مجموعة طرق العرض هذه وظائف " -"لإدراج كائنات AttributeValue واسترجاعها وإنشائها وتحديثها وحذفها. وهي تتكامل " -"مع آليات مجموعة طرق عرض Django REST Framework وتستخدم المتسلسلات المناسبة " -"للإجراءات المختلفة. يتم توفير إمكانيات التصفية من خلال DjangoFilterBackend." +"مجموعة طرق عرض لإدارة كائنات AttributeValue. توفر مجموعة طرق العرض هذه وظائف" +" لإدراج كائنات AttributeValue واسترجاعها وإنشائها وتحديثها وحذفها. وهي " +"تتكامل مع آليات مجموعة طرق عرض Django REST Framework وتستخدم المتسلسلات " +"المناسبة للإجراءات المختلفة. يتم توفير إمكانيات التصفية من خلال " +"DjangoFilterBackend." #: engine/core/viewsets.py:217 msgid "" @@ -3231,8 +3250,8 @@ msgid "" "can access specific data." msgstr "" "يدير طرق العرض للعمليات المتعلقة بالفئة. فئة CategoryViewSet مسؤولة عن " -"التعامل مع العمليات المتعلقة بنموذج الفئة في النظام. وهي تدعم استرجاع بيانات " -"الفئة وتصفيتها وتسلسلها. تفرض مجموعة طرق العرض أيضًا الأذونات لضمان وصول " +"التعامل مع العمليات المتعلقة بنموذج الفئة في النظام. وهي تدعم استرجاع بيانات" +" الفئة وتصفيتها وتسلسلها. تفرض مجموعة طرق العرض أيضًا الأذونات لضمان وصول " "المستخدمين المصرح لهم فقط إلى بيانات محددة." #: engine/core/viewsets.py:346 @@ -3272,34 +3291,35 @@ msgid "" "Vendor-related resources through the Django REST framework." msgstr "" "يمثل مجموعة طرق عرض لإدارة كائنات المورد. تسمح مجموعة العرض هذه بجلب بيانات " -"البائع وتصفيتها وتسلسلها. وهي تُعرِّف مجموعة الاستعلام، وتكوينات التصفية، وفئات " -"أداة التسلسل المستخدمة للتعامل مع الإجراءات المختلفة. الغرض من هذه الفئة هو " -"توفير وصول مبسط إلى الموارد المتعلقة بالمورد من خلال إطار عمل Django REST." +"البائع وتصفيتها وتسلسلها. وهي تُعرِّف مجموعة الاستعلام، وتكوينات التصفية، " +"وفئات أداة التسلسل المستخدمة للتعامل مع الإجراءات المختلفة. الغرض من هذه " +"الفئة هو توفير وصول مبسط إلى الموارد المتعلقة بالمورد من خلال إطار عمل " +"Django REST." #: engine/core/viewsets.py:625 msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "تمثيل مجموعة عرض تتعامل مع كائنات الملاحظات. تدير هذه الفئة العمليات " "المتعلقة بكائنات الملاحظات، بما في ذلك الإدراج والتصفية واسترجاع التفاصيل. " "الغرض من مجموعة العرض هذه هو توفير متسلسلات مختلفة لإجراءات مختلفة وتنفيذ " -"معالجة قائمة على الأذونات لكائنات الملاحظات التي يمكن الوصول إليها. وهي توسع " -"\"مجموعة عرض الملاحظات\" الأساسية وتستفيد من نظام تصفية Django للاستعلام عن " -"البيانات." +"معالجة قائمة على الأذونات لكائنات الملاحظات التي يمكن الوصول إليها. وهي توسع" +" \"مجموعة عرض الملاحظات\" الأساسية وتستفيد من نظام تصفية Django للاستعلام عن" +" البيانات." #: engine/core/viewsets.py:652 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet لإدارة الطلبات والعمليات ذات الصلة. توفر هذه الفئة وظائف لاسترداد " @@ -3313,8 +3333,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "يوفر مجموعة طرق عرض لإدارة كيانات OrderProduct. تتيح مجموعة طرق العرض هذه " @@ -3346,15 +3366,15 @@ msgstr "يتعامل مع العمليات المتعلقة ببيانات ال msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" -"ViewSet لإدارة عمليات قائمة الرغبات. توفر مجموعة طرق عرض قائمة الأمنيات نقاط " -"نهاية للتفاعل مع قائمة أمنيات المستخدم، مما يسمح باسترجاع المنتجات وتعديلها " -"وتخصيصها ضمن قائمة الأمنيات. تسهل مجموعة العرض هذه وظائف مثل الإضافة " +"ViewSet لإدارة عمليات قائمة الرغبات. توفر مجموعة طرق عرض قائمة الأمنيات نقاط" +" نهاية للتفاعل مع قائمة أمنيات المستخدم، مما يسمح باسترجاع المنتجات وتعديلها" +" وتخصيصها ضمن قائمة الأمنيات. تسهل مجموعة العرض هذه وظائف مثل الإضافة " "والإزالة والإجراءات المجمعة لمنتجات قائمة الرغبات. يتم دمج عمليات التحقق من " "الأذونات للتأكد من أن المستخدمين يمكنهم فقط إدارة قوائم الرغبات الخاصة بهم " "ما لم يتم منح أذونات صريحة." diff --git a/engine/core/locale/cs_CZ/LC_MESSAGES/django.mo b/engine/core/locale/cs_CZ/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a18bbab6c41d635133bab6e627e4bf4a5703ef57 GIT binary patch literal 93752 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -28,7 +28,8 @@ msgstr "Je aktivní" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Pokud je nastaveno na false, nemohou tento objekt vidět uživatelé bez " "potřebného oprávnění." @@ -75,8 +76,8 @@ msgstr "Časová razítka" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "Aktivace vybraného %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" +msgstr "Aktivovat vybrané %(verbose_name_plural)s" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -84,21 +85,21 @@ msgstr "Vybrané položky byly aktivovány!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Deaktivace vybraných %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "Deaktivovat vybrané %(verbose_name_plural)s" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "Vybrané položky byly deaktivovány!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Hodnota atributu" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Hodnoty atributů" @@ -118,12 +119,12 @@ msgstr "Stock" msgid "stocks" msgstr "Zásoby" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Objednat produkt" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Objednat produkty" @@ -131,7 +132,31 @@ msgstr "Objednat produkty" msgid "children" msgstr "Děti" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Obsahuje obrázky" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Exportovat vybrané %(verbose_name_plural)s do feedů tržišť" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "Vybrané %(verbose_name_plural)s byly označeny pro export." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Zakázat vybraný %(verbose_name_plural)s z feedů tržišť" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Vybrané %(verbose_name_plural)s byly zakázány pro export." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Konfigurace" @@ -155,7 +180,8 @@ msgstr "Doručeno na" msgid "canceled" msgstr "Zrušeno" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Neúspěšný" @@ -272,7 +298,8 @@ msgstr "" "Přepsání existující skupiny atributů s uložením neupravitelných položek" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Přepsání některých polí existující skupiny atributů s uložením " "neupravitelných položek" @@ -324,7 +351,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Přepsání existující hodnoty atributu uložením neupravitelných položek" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Přepsání některých polí existující hodnoty atributu s uložením " "neupravitelných položek" @@ -382,12 +410,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Vyhledávání podřetězců bez ohledu na velikost písmen v položkách " -"human_readable_id, order_products.product.name a order_products.product." -"partnumber" +"human_readable_id, order_products.product.name a " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -423,9 +451,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Řazení podle jedné z následujících možností: uuid, human_readable_id, " "user_email, user, status, created, modified, buy_time, random. Pro sestupné " @@ -470,8 +498,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"Dokončí nákup objednávky. Pokud je použito `force_balance`, nákup se dokončí " -"s použitím zůstatku uživatele; pokud je použito `force_payment`, zahájí se " +"Dokončí nákup objednávky. Pokud je použito `force_balance`, nákup se dokončí" +" s použitím zůstatku uživatele; pokud je použito `force_payment`, zahájí se " "transakce." #: engine/core/docs/drf/viewsets.py:427 @@ -602,7 +630,8 @@ msgstr "Přidání mnoha produktů do seznamu přání" #: engine/core/docs/drf/viewsets.py:579 msgid "adds many products to an wishlist using the provided `product_uuids`" -msgstr "Přidá mnoho produktů do seznamu přání pomocí zadaných `product_uuids`." +msgstr "" +"Přidá mnoho produktů do seznamu přání pomocí zadaných `product_uuids`." #: engine/core/docs/drf/viewsets.py:588 msgid "remove many products from wishlist" @@ -618,28 +647,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrování podle jedné nebo více dvojic název/hodnota atributu. \n" "- **Syntaxe**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- **Metody** (pokud je vynecháno, výchozí hodnota je `obsahuje`): `iexact`, " -"`exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, " -"`endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- **Typování hodnot**: Pro booleany, celá čísla, floaty se nejprve zkouší " -"JSON (takže můžete předávat seznamy/dicty), `true`/`false`; jinak se s nimi " -"zachází jako s řetězci. \n" -"- **Base64**: předpona `b64-` pro bezpečné zakódování surové hodnoty do URL " -"base64. \n" +"- **Metody** (pokud je vynecháno, výchozí hodnota je `obsahuje`): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Typování hodnot**: Pro booleany, celá čísla, floaty se nejprve zkouší JSON (takže můžete předávat seznamy/dicty), `true`/`false`; jinak se s nimi zachází jako s řetězci. \n" +"- **Base64**: předpona `b64-` pro bezpečné zakódování surové hodnoty do URL base64. \n" "Příklady: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -654,12 +673,10 @@ msgstr "(přesně) UUID produktu" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Seznam polí oddělených čárkou, podle kterých se má třídit. Pro sestupné " -"řazení použijte předponu `-`. \n" +"Seznam polí oddělených čárkou, podle kterých se má třídit. Pro sestupné řazení použijte předponu `-`. \n" "**Povolené:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -914,7 +931,8 @@ msgstr "Odstranění povýšení" #: engine/core/docs/drf/viewsets.py:1244 msgid "rewrite an existing promotion saving non-editables" -msgstr "Přepsání existující propagační akce s uložením neupravitelných položek" +msgstr "" +"Přepsání existující propagační akce s uložením neupravitelných položek" #: engine/core/docs/drf/viewsets.py:1251 msgid "rewrite some fields of an existing promotion saving non-editables" @@ -965,7 +983,8 @@ msgstr "Odstranění značky produktu" #: engine/core/docs/drf/viewsets.py:1342 msgid "rewrite an existing product tag saving non-editables" -msgstr "Přepsání existující značky produktu s uložením neupravitelných položek" +msgstr "" +"Přepsání existující značky produktu s uložením neupravitelných položek" #: engine/core/docs/drf/viewsets.py:1350 msgid "rewrite some fields of an existing product tag saving non-editables" @@ -1205,11 +1224,11 @@ msgstr "Koupit objednávku" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Prosím, pošlete atributy jako řetězec ve formátu attr1=hodnota1," -"attr2=hodnota2." +"Prosím, pošlete atributy jako řetězec ve formátu " +"attr1=hodnota1,attr2=hodnota2." #: engine/core/graphene/mutations.py:580 msgid "add or delete a feedback for orderproduct" @@ -1228,9 +1247,9 @@ msgstr "Orderproduct {order_product_uuid} nenalezen!" msgid "original address string provided by the user" msgstr "Původní řetězec adresy zadaný uživatelem" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1246,8 +1265,8 @@ msgstr "ElasticSearch - funguje jako kouzlo" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Atributy" @@ -1283,9 +1302,11 @@ msgid "which attributes and values can be used for filtering this category." msgstr "Které atributy a hodnoty lze použít pro filtrování této kategorie." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" -"Minimální a maximální ceny produktů v této kategorii, pokud jsou k dispozici." +"Minimální a maximální ceny produktů v této kategorii, pokud jsou k " +"dispozici." #: engine/core/graphene/object_types.py:234 msgid "tags for this category" @@ -1321,7 +1342,7 @@ msgid "represents feedback from a user." msgstr "Představuje zpětnou vazbu od uživatele." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Oznámení" @@ -1329,7 +1350,7 @@ msgstr "Oznámení" msgid "download url for this order product if applicable" msgstr "Stáhněte si url adresu pro tento objednaný produkt, pokud je to možné" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Zpětná vazba" @@ -1337,7 +1358,7 @@ msgstr "Zpětná vazba" msgid "a list of order products in this order" msgstr "Seznam objednaných produktů v tomto pořadí" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Fakturační adresa" @@ -1365,7 +1386,7 @@ msgstr "Jsou všechny produkty v objednávce digitální" msgid "transactions for this order" msgstr "Transakce pro tuto objednávku" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Objednávky" @@ -1382,7 +1403,7 @@ msgstr "Obrázky produktu" msgid "category" msgstr "Kategorie" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Zpětná vazba" @@ -1423,7 +1444,7 @@ msgstr "Produkty jsou k dispozici pouze pro osobní objednávky" msgid "discount price" msgstr "Cena se slevou" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Produkty" @@ -1435,7 +1456,7 @@ msgstr "Propagační kódy" msgid "products on sale" msgstr "Produkty v prodeji" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Propagační akce" @@ -1443,7 +1464,7 @@ msgstr "Propagační akce" msgid "vendor" msgstr "Prodejce" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1451,11 +1472,11 @@ msgstr "Prodejce" msgid "product" msgstr "Produkt" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Produkty uvedené na seznamu přání" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Seznamy přání" @@ -1572,7 +1593,7 @@ msgstr "Nadřazená skupina atributů" msgid "attribute group's name" msgstr "Název skupiny atributů" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Skupina atributů" @@ -1590,8 +1611,8 @@ msgstr "" "dodavatelích a jejich požadavcích na interakci. Třída Vendor se používá k " "definování a správě informací týkajících se externího dodavatele. Uchovává " "jméno prodejce, údaje o ověření požadované pro komunikaci a procentuální " -"přirážku použitou na produkty získané od prodejce. Tento model také uchovává " -"další metadata a omezení, takže je vhodný pro použití v systémech, které " +"přirážku použitou na produkty získané od prodejce. Tento model také uchovává" +" další metadata a omezení, takže je vhodný pro použití v systémech, které " "komunikují s prodejci třetích stran." #: engine/core/models.py:122 @@ -1706,8 +1727,8 @@ msgstr "" "jinými kategoriemi a podporovat vztahy rodič-dítě. Třída obsahuje pole pro " "metadata a vizuální zobrazení, která slouží jako základ pro funkce " "související s kategoriemi. Tato třída se obvykle používá k definování a " -"správě kategorií produktů nebo jiných podobných seskupení v rámci aplikace a " -"umožňuje uživatelům nebo správcům zadávat název, popis a hierarchii " +"správě kategorií produktů nebo jiných podobných seskupení v rámci aplikace a" +" umožňuje uživatelům nebo správcům zadávat název, popis a hierarchii " "kategorií a také přiřazovat atributy, jako jsou obrázky, značky nebo " "priorita." @@ -1760,7 +1781,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Reprezentuje objekt značky v systému. Tato třída zpracovává informace a " "atributy související se značkou, včetně jejího názvu, loga, popisu, " @@ -1809,8 +1831,8 @@ msgstr "Kategorie" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1843,8 +1865,8 @@ msgstr "Prodejní cena" msgid "the product associated with this stock entry" msgstr "Produkt spojený s touto skladovou položkou" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Související produkt" @@ -1903,10 +1925,10 @@ msgstr "" "digitální stav, název, popis, číslo dílu a přípona. Poskytuje související " "užitečné vlastnosti pro získání hodnocení, počtu zpětných vazeb, ceny, " "množství a celkového počtu objednávek. Určeno pro použití v systému, který " -"zpracovává elektronické obchodování nebo správu zásob. Tato třída komunikuje " -"se souvisejícími modely (například Category, Brand a ProductTag) a spravuje " -"ukládání často přistupovaných vlastností do mezipaměti pro zlepšení výkonu. " -"Používá se k definování a manipulaci s údaji o produktu a souvisejícími " +"zpracovává elektronické obchodování nebo správu zásob. Tato třída komunikuje" +" se souvisejícími modely (například Category, Brand a ProductTag) a spravuje" +" ukládání často přistupovaných vlastností do mezipaměti pro zlepšení výkonu." +" Používá se k definování a manipulaci s údaji o produktu a souvisejícími " "informacemi v rámci aplikace." #: engine/core/models.py:595 @@ -1945,7 +1967,7 @@ msgstr "Uveďte jasný identifikační název výrobku" msgid "product name" msgstr "Název produktu" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Přidejte podrobný popis produktu" @@ -1965,13 +1987,21 @@ msgstr "Číslo dílu" msgid "stock keeping unit for this product" msgstr "Skladová jednotka pro tento produkt" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Zda exportovat tento produkt na tržiště" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Export na tržiště" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Reprezentuje atribut v systému. Tato třída slouží k definování a správě " @@ -1981,179 +2011,179 @@ msgstr "" "booleanu, pole a objektu. To umožňuje dynamické a flexibilní strukturování " "dat." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Skupina tohoto atributu" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Řetězec" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Celé číslo" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Float" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Boolean" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Pole" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Objekt" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Typ hodnoty atributu" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Typ hodnoty" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Název tohoto atributu" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Název atributu" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "je filtrovatelný" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "určuje, zda lze tento atribut použít pro filtrování, nebo ne." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atribut" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Představuje konkrétní hodnotu atributu, který je spojen s produktem. Spojuje " -"\"atribut\" s jedinečnou \"hodnotou\", což umožňuje lepší organizaci a " +"Představuje konkrétní hodnotu atributu, který je spojen s produktem. Spojuje" +" \"atribut\" s jedinečnou \"hodnotou\", což umožňuje lepší organizaci a " "dynamickou reprezentaci vlastností produktu." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Atribut této hodnoty" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Konkrétní produkt spojený s hodnotou tohoto atributu" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Konkrétní hodnota tohoto atributu" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Představuje obrázek produktu spojený s produktem v systému. Tato třída je " "určena ke správě obrázků produktů, včetně funkcí pro nahrávání souborů s " -"obrázky, jejich přiřazování ke konkrétním produktům a určování pořadí jejich " -"zobrazení. Obsahuje také funkci pro zpřístupnění alternativního textu pro " +"obrázky, jejich přiřazování ke konkrétním produktům a určování pořadí jejich" +" zobrazení. Obsahuje také funkci pro zpřístupnění alternativního textu pro " "obrázky." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Poskytněte alternativní text k obrázku kvůli přístupnosti." -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Text alt obrázku" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Nahrát soubor s obrázkem tohoto produktu" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Obrázek produktu" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Určuje pořadí, v jakém se obrázky zobrazují." -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Priorita zobrazení" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Výrobek, který tento obrázek představuje" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Obrázky produktů" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"Představuje propagační kampaň na produkty se slevou. Tato třída se používá k " -"definici a správě propagačních kampaní, které nabízejí procentuální slevu na " -"produkty. Třída obsahuje atributy pro nastavení slevové sazby, poskytnutí " -"podrobností o akci a její propojení s příslušnými produkty. Integruje se s " +"Představuje propagační kampaň na produkty se slevou. Tato třída se používá k" +" definici a správě propagačních kampaní, které nabízejí procentuální slevu " +"na produkty. Třída obsahuje atributy pro nastavení slevové sazby, poskytnutí" +" podrobností o akci a její propojení s příslušnými produkty. Integruje se s " "katalogem produktů, aby bylo možné určit položky, kterých se kampaň týká." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Procentuální sleva na vybrané produkty" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Procento slevy" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Uveďte jedinečný název této propagační akce" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Název akce" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Popis propagace" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Vyberte, které produkty jsou zahrnuty do této akce" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Zahrnuté produkty" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Propagace" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2165,30 +2195,30 @@ msgstr "" "operace, jako je přidávání a odebírání produktů, a také operace pro " "přidávání a odebírání více produktů najednou." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Výrobky, které uživatel označil jako požadované" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Uživatel, který vlastní tento seznam přání" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Majitel seznamu přání" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Seznam přání" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Představuje dokumentační záznam vázaný na produkt. Tato třída se používá k " "ukládání informací o dokumentech souvisejících s konkrétními produkty, " @@ -2196,91 +2226,91 @@ msgstr "" "zpracování typu souboru a cesty k uložení souborů dokumentů. Rozšiřuje " "funkčnost konkrétních mixinů a poskytuje další vlastní funkce." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Dokumentární film" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Dokumentární filmy" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Nevyřešené" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Reprezentuje entitu adresy, která obsahuje údaje o umístění a asociace s " "uživatelem. Poskytuje funkce pro ukládání geografických a adresních dat a " "integraci se službami geokódování. Tato třída je určena k ukládání " "podrobných informací o adrese včetně komponent, jako je ulice, město, " "region, země a geolokace (zeměpisná délka a šířka). Podporuje integraci se " -"službami API pro geokódování a umožňuje ukládání nezpracovaných odpovědí API " -"pro další zpracování nebo kontrolu. Třída také umožňuje přiřadit adresu k " +"službami API pro geokódování a umožňuje ukládání nezpracovaných odpovědí API" +" pro další zpracování nebo kontrolu. Třída také umožňuje přiřadit adresu k " "uživateli, což usnadňuje personalizované zpracování dat." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Adresní řádek pro zákazníka" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Adresní řádek" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Ulice" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Okres" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Město" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Region" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Poštovní směrovací číslo" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Země" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokace Bod(Zeměpisná délka, Zeměpisná šířka)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Úplná odpověď JSON z geokodéru pro tuto adresu" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Uložená odpověď JSON ze služby geokódování" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Adresa" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adresy" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2296,71 +2326,71 @@ msgstr "" "existuje) a stavu jeho použití. Obsahuje funkce pro ověření platnosti a " "použití propagačního kódu na objednávku při zajištění splnění omezení." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Jedinečný kód, který uživatel použije k uplatnění slevy." -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Identifikátor propagačního kódu" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Pevná výše slevy, pokud není použito procento" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Pevná výše slevy" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentuální sleva uplatněná v případě nevyužití pevné částky" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Procentuální sleva" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Časové razítko ukončení platnosti promokódu" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Doba ukončení platnosti" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Časové razítko, od kterého je tento promokód platný" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Čas zahájení platnosti" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "Časové razítko použití promokódu, prázdné, pokud ještě nebyl použit." -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Časové razítko použití" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Uživatel přiřazený k tomuto promokódu, je-li to relevantní" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Přiřazený uživatel" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Propagační kód" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Propagační kódy" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2368,21 +2398,21 @@ msgstr "" "Měl by být definován pouze jeden typ slevy (částka nebo procento), nikoli " "však oba typy slev nebo žádný z nich." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Promo kód byl již použit" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Neplatný typ slevy pro promokód {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2394,136 +2424,137 @@ msgstr "" "fakturaci. Stejně tak funkce podporuje správu produktů v životním cyklu " "objednávky." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Fakturační adresa použitá pro tuto objednávku" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Volitelný promo kód použitý na tuto objednávku" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Použitý promo kód" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Dodací adresa použitá pro tuto objednávku" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Dodací adresa" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Aktuální stav zakázky v jejím životním cyklu" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Stav objednávky" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "JSON struktura oznámení pro zobrazení uživatelům, v uživatelském rozhraní " "administrátora se používá tabulkové zobrazení." -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "JSON reprezentace atributů objednávky pro tuto objednávku" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "Uživatel, který zadal objednávku" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Uživatel" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Časové razítko, kdy byla objednávka dokončena." -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Kupte si čas" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Lidsky čitelný identifikátor objednávky" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "lidsky čitelné ID" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Objednávka" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "Uživatel smí mít vždy pouze jednu čekající objednávku!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" -msgstr "Do objednávky, která není v procesu vyřizování, nelze přidat produkty." +msgstr "" +"Do objednávky, která není v procesu vyřizování, nelze přidat produkty." -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Do objednávky nelze přidat neaktivní produkty" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "Nelze přidat více produktů, než je dostupné na skladě" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "Nelze odebrat produkty z objednávky, která není nevyřízená." -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} neexistuje s dotazem <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Promo kód neexistuje" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "Fyzické produkty můžete zakoupit pouze se zadanou dodací adresou!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Adresa neexistuje" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "V tuto chvíli nemůžete nakupovat, zkuste to prosím znovu za několik minut." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Neplatná hodnota síly" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Nelze zakoupit prázdnou objednávku!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "Bez uživatele nelze objednávku zakoupit!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Uživatel bez zůstatku nemůže nakupovat se zůstatkem!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Nedostatek finančních prostředků na dokončení objednávky" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2531,14 +2562,14 @@ msgstr "" "bez registrace nelze nakupovat, uveďte prosím následující údaje: jméno " "zákazníka, e-mail zákazníka, telefonní číslo zákazníka." -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Neplatný způsob platby: {payment_method} z {available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2547,38 +2578,39 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "spravuje zpětnou vazbu uživatelů k produktům. Tato třída je určena k " -"zachycování a ukládání zpětné vazby uživatelů ke konkrétním produktům, které " -"si zakoupili. Obsahuje atributy pro ukládání komentářů uživatelů, odkaz na " +"zachycování a ukládání zpětné vazby uživatelů ke konkrétním produktům, které" +" si zakoupili. Obsahuje atributy pro ukládání komentářů uživatelů, odkaz na " "související produkt v objednávce a hodnocení přiřazené uživatelem. Třída " "využívá databázová pole k efektivnímu modelování a správě dat zpětné vazby." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "Komentáře uživatelů o jejich zkušenostech s produktem" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Zpětná vazba" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Odkazuje na konkrétní produkt v objednávce, kterého se tato zpětná vazba " "týká." -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Související objednávka produktu" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Hodnocení produktu přidělené uživatelem" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Hodnocení produktu" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2600,115 +2632,115 @@ msgstr "" "produktů. Model se integruje s modely objednávek a produktů a ukládá na ně " "odkaz." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "Cena, kterou zákazník zaplatil za tento produkt v době nákupu." -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Nákupní cena v době objednávky" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Interní komentáře pro administrátory k tomuto objednanému produktu" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Interní připomínky" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Oznámení uživatele" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "JSON reprezentace atributů této položky" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Objednané atributy produktu" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Odkaz na nadřazenou objednávku, která obsahuje tento produkt" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Objednávka rodičů" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Konkrétní produkt spojený s touto objednávkou" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Množství tohoto konkrétního produktu v objednávce" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Množství produktu" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Aktuální stav tohoto produktu v objednávce" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Stav produktové řady" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Orderproduct musí mít přiřazenou objednávku!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Špatně zadaná akce pro zpětnou vazbu: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "nelze poskytnout zpětnou vazbu na objednávku, která nebyla přijata" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Název" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "Adresa URL integrace" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Ověřovací pověření" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Můžete mít pouze jednoho výchozího poskytovatele CRM" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Odkaz na CRM objednávky" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Odkazy CRM objednávek" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Představuje funkci stahování digitálních aktiv spojených s objednávkami. " "Třída DigitalAssetDownload poskytuje možnost spravovat a zpřístupňovat " @@ -2717,11 +2749,11 @@ msgstr "" "veřejně viditelné. Obsahuje metodu pro generování adresy URL pro stažení " "aktiva, když je přidružená objednávka ve stavu dokončena." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Stáhnout" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Ke stažení na" @@ -2921,8 +2953,7 @@ msgstr "Ahoj %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Děkujeme vám za vaši objednávku #%(order.pk)s! S potěšením Vám oznamujeme, " @@ -3037,8 +3068,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Děkujeme vám za vaši objednávku! S potěšením potvrzujeme váš nákup. Níže " @@ -3143,8 +3173,8 @@ msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Zpracovává operace mezipaměti, jako je čtení a nastavování dat mezipaměti se " -"zadaným klíčem a časovým limitem." +"Zpracovává operace mezipaměti, jako je čtení a nastavování dat mezipaměti se" +" zadaným klíčem a časovým limitem." #: engine/core/views.py:220 msgid "Handles `contact us` form submissions." @@ -3169,14 +3199,10 @@ msgstr "Řeší logiku nákupu jako firmy bez registrace." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Zpracovává stahování digitálního aktiva spojeného s objednávkou.\n" -"Tato funkce se pokusí obsloužit soubor digitálního aktiva umístěný v " -"adresáři úložiště projektu. Pokud soubor není nalezen, je vyvolána chyba " -"HTTP 404, která označuje, že zdroj není k dispozici." +"Tato funkce se pokusí obsloužit soubor digitálního aktiva umístěný v adresáři úložiště projektu. Pokud soubor není nalezen, je vyvolána chyba HTTP 404, která označuje, že zdroj není k dispozici." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3205,25 +3231,21 @@ msgstr "favicon nebyl nalezen" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Zpracovává požadavky na favicon webové stránky.\n" -"Tato funkce se pokusí obsloužit soubor favicon umístěný ve statickém " -"adresáři projektu. Pokud soubor favicon není nalezen, je vyvolána chyba HTTP " -"404, která označuje, že zdroj není k dispozici." +"Tato funkce se pokusí obsloužit soubor favicon umístěný ve statickém adresáři projektu. Pokud soubor favicon není nalezen, je vyvolána chyba HTTP 404, která označuje, že zdroj není k dispozici." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Přesměruje požadavek na indexovou stránku správce. Funkce zpracovává " "příchozí požadavky HTTP a přesměrovává je na indexovou stránku " -"administrátorského rozhraní Django. Pro zpracování přesměrování HTTP používá " -"funkci `redirect` Djanga." +"administrátorského rozhraní Django. Pro zpracování přesměrování HTTP používá" +" funkci `redirect` Djanga." #: engine/core/views.py:445 msgid "Returns current version of the Schon. " @@ -3240,23 +3262,24 @@ msgstr "Vrací vlastní proměnné pro Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "Definuje sadu pohledů pro správu operací souvisejících s schon. Třída " "SchonViewSet dědí z ModelViewSet a poskytuje funkce pro zpracování akcí a " -"operací s entitami schon. Zahrnuje podporu dynamických tříd serializátorů " -"na základě aktuální akce, přizpůsobitelných oprávnění a formátů vykreslování." +"operací s entitami schon. Zahrnuje podporu dynamických tříd serializátorů na" +" základě aktuální akce, přizpůsobitelných oprávnění a formátů vykreslování." #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Představuje sadu pohledů pro správu objektů AttributeGroup. Zpracovává " "operace související s AttributeGroup, včetně filtrování, serializace a " @@ -3285,8 +3308,8 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Sada pohledů pro správu objektů AttributeValue. Tato sada pohledů poskytuje " "funkce pro výpis, načítání, vytváření, aktualizaci a mazání objektů " @@ -3335,8 +3358,8 @@ msgstr "" "serializace a operací s konkrétními instancemi. Rozšiřuje se z " "`SchonViewSet`, aby využívala společné funkce, a integruje se s rámcem " "Django REST pro operace RESTful API. Obsahuje metody pro načítání " -"podrobností o produktu, uplatňování oprávnění a přístup k související zpětné " -"vazbě produktu." +"podrobností o produktu, uplatňování oprávnění a přístup k související zpětné" +" vazbě produktu." #: engine/core/viewsets.py:605 msgid "" @@ -3357,8 +3380,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Reprezentace sady zobrazení, která zpracovává objekty zpětné vazby. Tato " @@ -3373,31 +3396,31 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet pro správu objednávek a souvisejících operací. Tato třída poskytuje " "funkce pro načítání, úpravu a správu objektů objednávek. Obsahuje různé " "koncové body pro zpracování operací s objednávkami, jako je přidávání nebo " "odebírání produktů, provádění nákupů pro registrované i neregistrované " -"uživatele a načítání nevyřízených objednávek aktuálního ověřeného uživatele. " -"Sada ViewSet používá několik serializátorů podle konkrétní prováděné akce a " -"podle toho vynucuje oprávnění při interakci s daty objednávek." +"uživatele a načítání nevyřízených objednávek aktuálního ověřeného uživatele." +" Sada ViewSet používá několik serializátorů podle konkrétní prováděné akce a" +" podle toho vynucuje oprávnění při interakci s daty objednávek." #: engine/core/viewsets.py:914 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Poskytuje sadu pohledů pro správu entit OrderProduct. Tato sada pohledů " "umožňuje operace CRUD a vlastní akce specifické pro model OrderProduct. " -"Zahrnuje filtrování, kontroly oprávnění a přepínání serializátoru na základě " -"požadované akce. Kromě toho poskytuje podrobnou akci pro zpracování zpětné " +"Zahrnuje filtrování, kontroly oprávnění a přepínání serializátoru na základě" +" požadované akce. Kromě toho poskytuje podrobnou akci pro zpracování zpětné " "vazby na instance OrderProduct" #: engine/core/viewsets.py:974 @@ -3424,8 +3447,8 @@ msgstr "Zpracovává operace související s údaji o zásobách v systému." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3446,9 +3469,9 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Tato třída poskytuje funkce sady pohledů pro správu objektů `Address`. Třída " -"AddressViewSet umožňuje operace CRUD, filtrování a vlastní akce související " -"s entitami adres. Obsahuje specializované chování pro různé metody HTTP, " +"Tato třída poskytuje funkce sady pohledů pro správu objektů `Address`. Třída" +" AddressViewSet umožňuje operace CRUD, filtrování a vlastní akce související" +" s entitami adres. Obsahuje specializované chování pro různé metody HTTP, " "přepisování serializátoru a zpracování oprávnění na základě kontextu " "požadavku." @@ -3468,5 +3491,5 @@ msgstr "" "Zpracovává operace související se značkami produktů v rámci aplikace. Tato " "třída poskytuje funkce pro načítání, filtrování a serializaci objektů " "Product Tag. Podporuje flexibilní filtrování podle konkrétních atributů " -"pomocí zadaného filtru backend a dynamicky používá různé serializátory podle " -"prováděné akce." +"pomocí zadaného filtru backend a dynamicky používá různé serializátory podle" +" prováděné akce." diff --git a/engine/core/locale/da_DK/LC_MESSAGES/django.mo b/engine/core/locale/da_DK/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..68b1d296a70e0d09eabb0592ad38dfa397a3c45b GIT binary patch literal 91501 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 tzZ)yXd7=iWb-;uD^WpNw-l%3D3wgb\n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "Er aktiv" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Hvis det er sat til false, kan dette objekt ikke ses af brugere uden den " "nødvendige tilladelse." @@ -74,8 +75,8 @@ msgstr "Tidsstempler" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "Aktivér valgt %(verbose_name_plural)s." +msgid "Activate selected %(verbose_name_plural)s" +msgstr "Aktiver valgt %(verbose_name_plural)s" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -83,21 +84,21 @@ msgstr "Udvalgte varer er blevet aktiveret!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Deaktiver valgte %(verbose_name_plural)s." +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "Deaktiver valgt %(verbose_name_plural)s" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "Udvalgte varer er blevet deaktiveret!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Attributværdi" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Attributværdier" @@ -117,12 +118,12 @@ msgstr "Lager" msgid "stocks" msgstr "Aktier" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Bestil produkt" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Bestil produkter" @@ -130,7 +131,31 @@ msgstr "Bestil produkter" msgid "children" msgstr "Børn" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Har billeder" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Eksporter valgt %(verbose_name_plural)s til markedspladsers feeds" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "De valgte %(verbose_name_plural)s er markeret til eksport." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Udeluk %(verbose_name_plural)s fra markedspladsernes feeds" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Udvalgte %(verbose_name_plural)s er blevet forbudt at eksportere." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Konfig" @@ -154,7 +179,8 @@ msgstr "Leveret" msgid "canceled" msgstr "Annulleret" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Mislykket" @@ -205,8 +231,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Anvend kun en nøgle til at læse tilladte data fra cachen.\n" -"Anvend nøgle, data og timeout med autentificering for at skrive data til " -"cachen." +"Anvend nøgle, data og timeout med autentificering for at skrive data til cachen." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -271,7 +296,8 @@ msgstr "" "attributter" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Omskriv nogle felter i en eksisterende attributgruppe og gem ikke-" "redigerbare felter" @@ -324,10 +350,11 @@ msgstr "" "Omskriv en eksisterende attributværdi, der gemmer ikke-redigerbare filer" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" -"Omskriv nogle felter i en eksisterende attributværdi og gem ikke-redigerbare " -"felter" +"Omskriv nogle felter i en eksisterende attributværdi og gem ikke-redigerbare" +" felter" #: engine/core/docs/drf/viewsets.py:219 engine/core/docs/drf/viewsets.py:220 msgid "list all categories (simple view)" @@ -377,16 +404,17 @@ msgstr "Liste over alle kategorier (enkel visning)" #: engine/core/docs/drf/viewsets.py:303 msgid "for non-staff users, only their own orders are returned." -msgstr "For ikke-ansatte brugere er det kun deres egne ordrer, der returneres." +msgstr "" +"For ikke-ansatte brugere er det kun deres egne ordrer, der returneres." #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Substringsøgning uden brug af store og små bogstaver på tværs af " -"human_readable_id, order_products.product.name og order_products.product." -"partnumber" +"human_readable_id, order_products.product.name og " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -418,13 +446,13 @@ msgstr "Filtrer efter ordrestatus (case-insensitive substring match)" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Bestil efter en af: uuid, human_readable_id, user_email, user, status, " -"created, modified, buy_time, random. Præfiks med '-' for faldende rækkefølge " -"(f.eks. '-buy_time')." +"created, modified, buy_time, random. Præfiks med '-' for faldende rækkefølge" +" (f.eks. '-buy_time')." #: engine/core/docs/drf/viewsets.py:366 msgid "retrieve a single order (detailed view)" @@ -594,7 +622,8 @@ msgstr "Fjern et produkt fra ønskelisten" #: engine/core/docs/drf/viewsets.py:568 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" -"Fjerner et produkt fra en ønskeliste ved hjælp af den angivne `product_uuid`." +"Fjerner et produkt fra en ønskeliste ved hjælp af den angivne " +"`product_uuid`." #: engine/core/docs/drf/viewsets.py:577 msgid "add many products to wishlist" @@ -621,28 +650,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrer efter et eller flere attributnavn/værdipar. \n" "- **Syntaks**: `attr_name=method-value[;attr2=method2-value2]...`.\n" -"- **Metoder** (standard er `icontains`, hvis udeladt): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- Værdiindtastning**: JSON forsøges først (så du kan sende lister/dikter), " -"`true`/`false` for booleans, heltal, floats; ellers behandles de som " -"strenge. \n" -"- **Base64**: præfiks med `b64-` for URL-sikker base64-kodning af den rå " -"værdi. \n" +"- **Metoder** (standard er `icontains`, hvis udeladt): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- Værdiindtastning**: JSON forsøges først (så du kan sende lister/dikter), `true`/`false` for booleans, heltal, floats; ellers behandles de som strenge. \n" +"- **Base64**: præfiks med `b64-` for URL-sikker base64-kodning af den rå værdi. \n" "Eksempler på dette: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." @@ -657,12 +676,10 @@ msgstr "(præcis) Produkt-UUID" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Kommasepareret liste over felter, der skal sorteres efter. Præfiks med `-` " -"for faldende. \n" +"Kommasepareret liste over felter, der skal sorteres efter. Præfiks med `-` for faldende. \n" "**Tilladt:** uuid, vurdering, navn, slug, oprettet, ændret, pris, tilfældig" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -1212,11 +1229,11 @@ msgstr "Køb en ordre" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Send venligst attributterne som en streng formateret som attr1=værdi1," -"attr2=værdi2" +"Send venligst attributterne som en streng formateret som " +"attr1=værdi1,attr2=værdi2" #: engine/core/graphene/mutations.py:580 msgid "add or delete a feedback for orderproduct" @@ -1235,9 +1252,9 @@ msgstr "Ordreprodukt {order_product_uuid} ikke fundet!" msgid "original address string provided by the user" msgstr "Original adressestreng leveret af brugeren" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1253,8 +1270,8 @@ msgstr "ElasticSearch - fungerer som en charme" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Egenskaber" @@ -1288,10 +1305,12 @@ msgstr "Markup-procentdel" #: engine/core/graphene/object_types.py:224 msgid "which attributes and values can be used for filtering this category." msgstr "" -"Hvilke attributter og værdier, der kan bruges til at filtrere denne kategori." +"Hvilke attributter og værdier, der kan bruges til at filtrere denne " +"kategori." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimums- og maksimumspriser for produkter i denne kategori, hvis de er " "tilgængelige." @@ -1332,7 +1351,7 @@ msgid "represents feedback from a user." msgstr "Repræsenterer feedback fra en bruger." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Meddelelser" @@ -1340,7 +1359,7 @@ msgstr "Meddelelser" msgid "download url for this order product if applicable" msgstr "Download url for dette ordreprodukt, hvis det er relevant" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Feedback" @@ -1348,7 +1367,7 @@ msgstr "Feedback" msgid "a list of order products in this order" msgstr "En liste over bestillingsprodukter i denne ordre" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Faktureringsadresse" @@ -1376,7 +1395,7 @@ msgstr "Er alle produkterne i ordren digitale?" msgid "transactions for this order" msgstr "Transaktioner for denne ordre" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Bestillinger" @@ -1393,7 +1412,7 @@ msgstr "Produktets billeder" msgid "category" msgstr "Kategori" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Tilbagemeldinger" @@ -1434,7 +1453,7 @@ msgstr "Produkter kun tilgængelige for personlige bestillinger" msgid "discount price" msgstr "Rabatpris" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Produkter" @@ -1446,7 +1465,7 @@ msgstr "Promokoder" msgid "products on sale" msgstr "Produkter til salg" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Kampagner" @@ -1454,7 +1473,7 @@ msgstr "Kampagner" msgid "vendor" msgstr "Leverandør" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1462,11 +1481,11 @@ msgstr "Leverandør" msgid "product" msgstr "Produkt" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Produkter på ønskelisten" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Ønskelister" @@ -1583,7 +1602,7 @@ msgstr "Overordnet attributgruppe" msgid "attribute group's name" msgstr "Attributgruppens navn" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Attributgruppe" @@ -1599,12 +1618,12 @@ msgid "" msgstr "" "Repræsenterer en vendor-enhed, der er i stand til at lagre oplysninger om " "eksterne leverandører og deres interaktionskrav. Vendor-klassen bruges til " -"at definere og administrere oplysninger om en ekstern leverandør. Den gemmer " -"leverandørens navn, godkendelsesoplysninger, der kræves til kommunikation, " +"at definere og administrere oplysninger om en ekstern leverandør. Den gemmer" +" leverandørens navn, godkendelsesoplysninger, der kræves til kommunikation, " "og den procentvise markering, der anvendes på produkter, der hentes fra " "leverandøren. Denne model vedligeholder også yderligere metadata og " -"begrænsninger, hvilket gør den velegnet til brug i systemer, der interagerer " -"med tredjepartsleverandører." +"begrænsninger, hvilket gør den velegnet til brug i systemer, der interagerer" +" med tredjepartsleverandører." #: engine/core/models.py:122 msgid "stores credentials and endpoints required for vendor communication" @@ -1660,8 +1679,8 @@ msgstr "" "identificere produkter. ProductTag-klassen er designet til entydigt at " "identificere og klassificere produkter gennem en kombination af en intern " "tag-identifikator og et brugervenligt visningsnavn. Den understøtter " -"operationer, der eksporteres gennem mixins, og giver mulighed for tilpasning " -"af metadata til administrative formål." +"operationer, der eksporteres gennem mixins, og giver mulighed for tilpasning" +" af metadata til administrative formål." #: engine/core/models.py:204 engine/core/models.py:235 msgid "internal tag identifier for the product tag" @@ -1720,9 +1739,9 @@ msgstr "" "Klassen indeholder felter til metadata og visuel repræsentation, som " "fungerer som et fundament for kategorirelaterede funktioner. Denne klasse " "bruges typisk til at definere og administrere produktkategorier eller andre " -"lignende grupperinger i en applikation, så brugere eller administratorer kan " -"angive navn, beskrivelse og hierarki for kategorier samt tildele attributter " -"som billeder, tags eller prioritet." +"lignende grupperinger i en applikation, så brugere eller administratorer kan" +" angive navn, beskrivelse og hierarki for kategorier samt tildele " +"attributter som billeder, tags eller prioritet." #: engine/core/models.py:269 msgid "upload an image representing this category" @@ -1773,12 +1792,13 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"Repræsenterer et brand-objekt i systemet. Denne klasse håndterer oplysninger " -"og attributter relateret til et brand, herunder dets navn, logoer, " -"beskrivelse, tilknyttede kategorier, en unik slug og prioriteret rækkefølge. " -"Den gør det muligt at organisere og repræsentere brand-relaterede data i " +"Repræsenterer et brand-objekt i systemet. Denne klasse håndterer oplysninger" +" og attributter relateret til et brand, herunder dets navn, logoer, " +"beskrivelse, tilknyttede kategorier, en unik slug og prioriteret rækkefølge." +" Den gør det muligt at organisere og repræsentere brand-relaterede data i " "applikationen." #: engine/core/models.py:456 @@ -1823,8 +1843,8 @@ msgstr "Kategorier" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1832,8 +1852,8 @@ msgid "" msgstr "" "Repræsenterer lageret af et produkt, der administreres i systemet. Denne " "klasse giver detaljer om forholdet mellem leverandører, produkter og deres " -"lageroplysninger samt lagerrelaterede egenskaber som pris, købspris, mængde, " -"SKU og digitale aktiver. Den er en del af lagerstyringssystemet for at " +"lageroplysninger samt lagerrelaterede egenskaber som pris, købspris, mængde," +" SKU og digitale aktiver. Den er en del af lagerstyringssystemet for at " "muliggøre sporing og evaluering af produkter, der er tilgængelige fra " "forskellige leverandører." @@ -1857,8 +1877,8 @@ msgstr "Salgspris" msgid "the product associated with this stock entry" msgstr "Det produkt, der er knyttet til denne lagerpost" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Tilknyttet produkt" @@ -1918,8 +1938,8 @@ msgstr "" "egenskaber til at hente vurderinger, antal tilbagemeldinger, pris, antal og " "samlede ordrer. Designet til brug i et system, der håndterer e-handel eller " "lagerstyring. Denne klasse interagerer med relaterede modeller (såsom " -"Category, Brand og ProductTag) og administrerer caching for hyppigt anvendte " -"egenskaber for at forbedre ydeevnen. Den bruges til at definere og " +"Category, Brand og ProductTag) og administrerer caching for hyppigt anvendte" +" egenskaber for at forbedre ydeevnen. Den bruges til at definere og " "manipulere produktdata og tilhørende oplysninger i en applikation." #: engine/core/models.py:595 @@ -1958,7 +1978,7 @@ msgstr "Giv produktet et klart identificerende navn" msgid "product name" msgstr "Produktets navn" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Tilføj en detaljeret beskrivelse af produktet" @@ -1978,108 +1998,117 @@ msgstr "Varenummer" msgid "stock keeping unit for this product" msgstr "Lagerbeholdning for dette produkt" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Om dette produkt skal eksporteres til markedspladser" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Eksport til markedspladser" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"Repræsenterer en attribut i systemet. Denne klasse bruges til at definere og " -"administrere attributter, som er data, der kan tilpasses, og som kan knyttes " -"til andre enheder. Attributter har tilknyttede kategorier, grupper, " +"Repræsenterer en attribut i systemet. Denne klasse bruges til at definere og" +" administrere attributter, som er data, der kan tilpasses, og som kan " +"knyttes til andre enheder. Attributter har tilknyttede kategorier, grupper, " "værdityper og navne. Modellen understøtter flere typer værdier, herunder " "string, integer, float, boolean, array og object. Det giver mulighed for " "dynamisk og fleksibel datastrukturering." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Gruppe af denne attribut" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Streng" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Heltal" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Flyder" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Boolsk" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Array" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Objekt" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Type af attributtens værdi" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Værditype" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Navn på denne attribut" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Attributtens navn" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "er filtrerbar" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" -"Hvilke attributter og værdier, der kan bruges til at filtrere denne kategori." +"Hvilke attributter og værdier, der kan bruges til at filtrere denne " +"kategori." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribut" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Repræsenterer en specifik værdi for en attribut, der er knyttet til et " "produkt. Den forbinder 'attributten' med en unik 'værdi', hvilket giver " "mulighed for bedre organisering og dynamisk repræsentation af " "produktegenskaber." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Attribut for denne værdi" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Det specifikke produkt, der er knyttet til denne attributs værdi" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Den specifikke værdi for denne attribut" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2089,46 +2118,46 @@ msgstr "" "specifikke produkter og bestemme deres visningsrækkefølge. Den indeholder " "også en tilgængelighedsfunktion med alternativ tekst til billederne." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Giv alternativ tekst til billedet af hensyn til tilgængeligheden" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Billedets alt-tekst" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Upload billedfilen til dette produkt" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Produktbillede" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Bestemmer den rækkefølge, billederne vises i" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Skærm-prioritet" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Det produkt, som dette billede repræsenterer" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Produktbilleder" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Repræsenterer en reklamekampagne for produkter med rabat. Denne klasse " "bruges til at definere og administrere kampagner, der tilbyder en " @@ -2137,39 +2166,39 @@ msgstr "" "relevante produkter. Den integreres med produktkataloget for at bestemme de " "berørte varer i kampagnen." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Procentvis rabat for de valgte produkter" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Rabatprocent" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Giv et unikt navn til denne kampagne" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Navn på kampagne" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Beskrivelse af kampagnen" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Vælg, hvilke produkter der er inkluderet i denne kampagne" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Inkluderede produkter" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Forfremmelse" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2182,30 +2211,30 @@ msgstr "" "produkter samt operationer til at tilføje og fjerne flere produkter på én " "gang." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Produkter, som brugeren har markeret som ønskede" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Bruger, der ejer denne ønskeliste" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Ønskelistens ejer" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Ønskeliste" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Repræsenterer en dokumentarisk post, der er knyttet til et produkt. Denne " "klasse bruges til at gemme oplysninger om dokumentarfilm relateret til " @@ -2214,28 +2243,28 @@ msgstr "" "dokumentarfilerne. Den udvider funktionaliteten fra specifikke mixins og " "giver yderligere brugerdefinerede funktioner." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Dokumentarfilm" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Dokumentarfilm" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Uafklaret" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Repræsenterer en adresseenhed, der indeholder placeringsoplysninger og " "tilknytninger til en bruger. Indeholder funktionalitet til lagring af " @@ -2247,59 +2276,59 @@ msgstr "" "Klassen gør det også muligt at knytte en adresse til en bruger, hvilket " "letter personlig datahåndtering." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Adresselinje til kunden" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Adresselinje" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Gade" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Distrikt" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "By" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Region" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Postnummer" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Land" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokaliseringspunkt (længdegrad, breddegrad)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Fuldt JSON-svar fra geokoderen for denne adresse" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Gemt JSON-svar fra geokodningstjenesten" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Adresse" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adresser" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2310,77 +2339,77 @@ msgid "" msgstr "" "Repræsenterer en kampagnekode, der kan bruges til rabatter, og styrer dens " "gyldighed, rabattype og anvendelse. PromoCode-klassen gemmer oplysninger om " -"en kampagnekode, herunder dens unikke identifikator, rabattegenskaber (beløb " -"eller procent), gyldighedsperiode, tilknyttet bruger (hvis nogen) og status " -"for dens brug. Den indeholder funktionalitet til at validere og anvende " +"en kampagnekode, herunder dens unikke identifikator, rabattegenskaber (beløb" +" eller procent), gyldighedsperiode, tilknyttet bruger (hvis nogen) og status" +" for dens brug. Den indeholder funktionalitet til at validere og anvende " "kampagnekoden på en ordre og samtidig sikre, at begrænsningerne er opfyldt." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Unik kode, der bruges af en bruger til at indløse en rabat" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Identifikator for kampagnekode" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Fast rabatbeløb anvendes, hvis procent ikke bruges" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Fast rabatbeløb" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentvis rabat, hvis det faste beløb ikke bruges" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Procentvis rabat" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Tidsstempel, når promokoden udløber" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Slut gyldighedstid" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Tidsstempel, hvorfra denne promokode er gyldig" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Start gyldighedstid" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Tidsstempel, hvor promokoden blev brugt, blank, hvis den ikke er brugt endnu" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Tidsstempel for brug" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Bruger tildelt denne promokode, hvis relevant" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Tildelt bruger" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Kampagnekode" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Kampagnekoder" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2388,21 +2417,21 @@ msgstr "" "Der skal kun defineres én type rabat (beløb eller procent), men ikke begge " "eller ingen af dem." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Promokoden er allerede blevet brugt" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ugyldig rabattype for promokode {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2410,141 +2439,143 @@ msgstr "" "ordre i applikationen, herunder dens forskellige attributter såsom " "fakturerings- og forsendelsesoplysninger, status, tilknyttet bruger, " "notifikationer og relaterede operationer. Ordrer kan have tilknyttede " -"produkter, kampagner kan anvendes, adresser kan indstilles, og forsendelses- " -"eller faktureringsoplysninger kan opdateres. Ligeledes understøtter " +"produkter, kampagner kan anvendes, adresser kan indstilles, og forsendelses-" +" eller faktureringsoplysninger kan opdateres. Ligeledes understøtter " "funktionaliteten håndtering af produkterne i ordrens livscyklus." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Den faktureringsadresse, der bruges til denne ordre" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Valgfri kampagnekode anvendt på denne ordre" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Anvendt kampagnekode" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Den leveringsadresse, der er brugt til denne ordre" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Leveringsadresse" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Ordrens aktuelle status i dens livscyklus" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Bestillingsstatus" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" -"JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges " -"tabelvisningen" +"JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges" +" tabelvisningen" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "JSON-repræsentation af ordreattributter for denne ordre" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "Den bruger, der har afgivet ordren" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Bruger" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Tidsstemplet for, hvornår ordren blev afsluttet" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Køb tid" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "En menneskeligt læsbar identifikator for ordren" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "menneskeligt læsbart ID" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Bestil" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "En bruger må kun have én afventende ordre ad gangen!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "Du kan ikke tilføje produkter til en ordre, der ikke er i gang." -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Du kan ikke tilføje inaktive produkter til en ordre" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "Du kan ikke tilføje flere produkter, end der er på lager" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende ordre." +"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " +"ordre." -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} findes ikke med forespørgslen <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Promokode findes ikke" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "Du kan kun købe fysiske produkter med angivet leveringsadresse!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Adressen findes ikke" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "Du kan ikke købe i øjeblikket, prøv venligst igen om et par minutter." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Ugyldig kraftværdi" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Du kan ikke købe en tom ordre!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "" -"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende ordre." +"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " +"ordre." -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "En bruger uden saldo kan ikke købe med saldo!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Utilstrækkelige midler til at gennemføre ordren" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2552,14 +2583,14 @@ msgstr "" "du kan ikke købe uden registrering, angiv venligst følgende oplysninger: " "kundens navn, kundens e-mail, kundens telefonnummer" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Ugyldig betalingsmetode: {payment_method} fra {available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2574,32 +2605,34 @@ msgstr "" "bruger databasefelter til effektivt at modellere og administrere " "feedbackdata." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "Brugernes kommentarer om deres oplevelse med produktet" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Kommentarer til feedback" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Henviser til det specifikke produkt i en ordre, som denne feedback handler om" +"Henviser til det specifikke produkt i en ordre, som denne feedback handler " +"om" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Relateret ordreprodukt" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Brugertildelt vurdering af produktet" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Produktvurdering" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2612,8 +2645,8 @@ msgid "" "Product models and stores a reference to them." msgstr "" "Repræsenterer produkter forbundet med ordrer og deres attributter. " -"OrderProduct-modellen vedligeholder oplysninger om et produkt, der er en del " -"af en ordre, herunder detaljer som købspris, antal, produktattributter og " +"OrderProduct-modellen vedligeholder oplysninger om et produkt, der er en del" +" af en ordre, herunder detaljer som købspris, antal, produktattributter og " "status. Den administrerer notifikationer til brugeren og administratorer og " "håndterer operationer som f.eks. at returnere produktsaldoen eller tilføje " "feedback. Modellen indeholder også metoder og egenskaber, der understøtter " @@ -2621,116 +2654,117 @@ msgstr "" "en download-URL for digitale produkter. Modellen integreres med Order- og " "Product-modellerne og gemmer en reference til dem." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "Den pris, som kunden har betalt for dette produkt på købstidspunktet" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Købspris på bestillingstidspunktet" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Interne kommentarer til administratorer om dette bestilte produkt" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Interne kommentarer" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Notifikationer til brugere" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "JSON-repræsentation af dette elements attributter" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Bestilte produktattributter" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Henvisning til den overordnede ordre, der indeholder dette produkt" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Forældreordre" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Det specifikke produkt, der er knyttet til denne ordrelinje" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Mængde af dette specifikke produkt i ordren" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Produktmængde" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Aktuel status for dette produkt i bestillingen" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Status for produktlinje" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Orderproduct skal have en tilknyttet ordre!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Forkert handling angivet for feedback: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "" -"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende ordre." +"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " +"ordre." -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Navn" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL til integrationen" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Legitimationsoplysninger til godkendelse" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Du kan kun have én standard CRM-udbyder" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM'er" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Ordrens CRM-link" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Bestillingernes CRM-links" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Repræsenterer downloadfunktionen for digitale aktiver, der er forbundet med " "ordrer. DigitalAssetDownload-klassen giver mulighed for at administrere og " @@ -2740,11 +2774,11 @@ msgstr "" "URL til download af aktivet, når den tilknyttede ordre har status som " "afsluttet." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Download" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Downloads" @@ -2945,8 +2979,7 @@ msgstr "Hej %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Tak for din ordre #%(order.pk)s! Vi er glade for at kunne informere dig om, " @@ -3060,8 +3093,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Tak for din bestilling! Vi er glade for at kunne bekræfte dit køb. Nedenfor " @@ -3132,7 +3164,8 @@ msgstr "Parameteren NOMINATIM_URL skal være konfigureret!" #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -"Billedets dimensioner bør ikke overstige w{max_width} x h{max_height} pixels." +"Billedets dimensioner bør ikke overstige w{max_width} x h{max_height} " +"pixels." #: engine/core/views.py:104 msgid "" @@ -3193,14 +3226,10 @@ msgstr "Håndterer logikken i at købe som en virksomhed uden registrering." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Håndterer download af et digitalt aktiv, der er knyttet til en ordre.\n" -"Denne funktion forsøger at betjene den digitale aktivfil, der ligger i " -"projektets lagermappe. Hvis filen ikke findes, udløses en HTTP 404-fejl som " -"tegn på, at ressourcen ikke er tilgængelig." +"Denne funktion forsøger at betjene den digitale aktivfil, der ligger i projektets lagermappe. Hvis filen ikke findes, udløses en HTTP 404-fejl som tegn på, at ressourcen ikke er tilgængelig." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3229,19 +3258,15 @@ msgstr "Favicon ikke fundet" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Håndterer anmodninger om et websteds favicon.\n" -"Denne funktion forsøger at servere favicon-filen, der ligger i projektets " -"statiske mappe. Hvis favicon-filen ikke findes, udløses en HTTP 404-fejl for " -"at angive, at ressourcen ikke er tilgængelig." +"Denne funktion forsøger at servere favicon-filen, der ligger i projektets statiske mappe. Hvis favicon-filen ikke findes, udløses en HTTP 404-fejl for at angive, at ressourcen ikke er tilgængelig." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Omdirigerer anmodningen til administratorens indeksside. Funktionen " @@ -3264,9 +3289,9 @@ msgstr "Returnerer brugerdefinerede variabler til Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3278,10 +3303,11 @@ msgstr "" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Repræsenterer et visningssæt til håndtering af AttributeGroup-objekter. " "Håndterer operationer relateret til AttributeGroup, herunder filtrering, " @@ -3310,11 +3336,11 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"Et visningssæt til håndtering af AttributeValue-objekter. Dette viewet giver " -"funktionalitet til at liste, hente, oprette, opdatere og slette " +"Et visningssæt til håndtering af AttributeValue-objekter. Dette viewet giver" +" funktionalitet til at liste, hente, oprette, opdatere og slette " "AttributeValue-objekter. Det integreres med Django REST Framework's viewset-" "mekanismer og bruger passende serializers til forskellige handlinger. " "Filtreringsfunktioner leveres gennem DjangoFilterBackend." @@ -3340,8 +3366,8 @@ msgid "" "uses Django's ViewSet framework to simplify the implementation of API " "endpoints for Brand objects." msgstr "" -"Repræsenterer et visningssæt til håndtering af Brand-instanser. Denne klasse " -"giver funktionalitet til at forespørge, filtrere og serialisere Brand-" +"Repræsenterer et visningssæt til håndtering af Brand-instanser. Denne klasse" +" giver funktionalitet til at forespørge, filtrere og serialisere Brand-" "objekter. Den bruger Djangos ViewSet-rammeværk til at forenkle " "implementeringen af API-slutpunkter for Brand-objekter." @@ -3371,9 +3397,9 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Repræsenterer et visningssæt til håndtering af Vendor-objekter. Dette viewet " -"gør det muligt at hente, filtrere og serialisere Vendor-data. Det definerer " -"queryset, filterkonfigurationer og serializer-klasser, der bruges til at " +"Repræsenterer et visningssæt til håndtering af Vendor-objekter. Dette viewet" +" gør det muligt at hente, filtrere og serialisere Vendor-data. Det definerer" +" queryset, filterkonfigurationer og serializer-klasser, der bruges til at " "håndtere forskellige handlinger. Formålet med denne klasse er at give " "strømlinet adgang til Vendor-relaterede ressourcer gennem Django REST-" "frameworket." @@ -3383,16 +3409,16 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Repræsentation af et visningssæt, der håndterer feedback-objekter. Denne " -"klasse håndterer handlinger relateret til feedback-objekter, herunder liste, " -"filtrering og hentning af detaljer. Formålet med dette visningssæt er at " +"klasse håndterer handlinger relateret til feedback-objekter, herunder liste," +" filtrering og hentning af detaljer. Formålet med dette visningssæt er at " "levere forskellige serializers til forskellige handlinger og implementere " -"tilladelsesbaseret håndtering af tilgængelige feedback-objekter. Det udvider " -"basen `SchonViewSet` og gør brug af Djangos filtreringssystem til at " +"tilladelsesbaseret håndtering af tilgængelige feedback-objekter. Det udvider" +" basen `SchonViewSet` og gør brug af Djangos filtreringssystem til at " "forespørge på data." #: engine/core/viewsets.py:652 @@ -3400,14 +3426,14 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet til håndtering af ordrer og relaterede operationer. Denne klasse " -"indeholder funktionalitet til at hente, ændre og administrere ordreobjekter. " -"Den indeholder forskellige endpoints til håndtering af ordreoperationer " +"indeholder funktionalitet til at hente, ændre og administrere ordreobjekter." +" Den indeholder forskellige endpoints til håndtering af ordreoperationer " "såsom tilføjelse eller fjernelse af produkter, udførelse af køb for " "registrerede såvel som uregistrerede brugere og hentning af den aktuelle " "godkendte brugers afventende ordrer. ViewSet bruger flere serializers " @@ -3418,13 +3444,13 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Indeholder et visningssæt til håndtering af OrderProduct-enheder. Dette " -"visningssæt muliggør CRUD-operationer og brugerdefinerede handlinger, der er " -"specifikke for OrderProduct-modellen. Det omfatter filtrering, kontrol af " +"visningssæt muliggør CRUD-operationer og brugerdefinerede handlinger, der er" +" specifikke for OrderProduct-modellen. Det omfatter filtrering, kontrol af " "tilladelser og skift af serializer baseret på den ønskede handling. " "Derudover indeholder det en detaljeret handling til håndtering af feedback " "på OrderProduct-instanser." @@ -3453,8 +3479,8 @@ msgstr "Håndterer operationer relateret til lagerdata i systemet." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3475,11 +3501,11 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Denne klasse giver viewset-funktionalitet til håndtering af `Address`-" -"objekter. AddressViewSet-klassen muliggør CRUD-operationer, filtrering og " -"brugerdefinerede handlinger relateret til adresseenheder. Den omfatter " -"specialiseret adfærd for forskellige HTTP-metoder, tilsidesættelse af " -"serializer og håndtering af tilladelser baseret på anmodningskonteksten." +"Denne klasse giver viewset-funktionalitet til håndtering af " +"`Address`-objekter. AddressViewSet-klassen muliggør CRUD-operationer, " +"filtrering og brugerdefinerede handlinger relateret til adresseenheder. Den " +"omfatter specialiseret adfærd for forskellige HTTP-metoder, tilsidesættelse " +"af serializer og håndtering af tilladelser baseret på anmodningskonteksten." #: engine/core/viewsets.py:1254 #, python-brace-format diff --git a/engine/core/locale/de_DE/LC_MESSAGES/django.mo b/engine/core/locale/de_DE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f98b62dc4937eb89efc674257591940df834496c GIT binary patch literal 96835 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 DM?%Or literal 0 HcmV?d00001 diff --git a/engine/core/locale/de_DE/LC_MESSAGES/django.po b/engine/core/locale/de_DE/LC_MESSAGES/django.po index 9170d453..aa0c0557 100644 --- a/engine/core/locale/de_DE/LC_MESSAGES/django.po +++ b/engine/core/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Ist aktiv" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Wenn auf false gesetzt, kann dieses Objekt von Benutzern ohne die " "erforderliche Berechtigung nicht gesehen werden." @@ -76,8 +77,8 @@ msgstr "Zeitstempel" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "Ausgewählte %(verbose_name_plural)s aktivieren" +msgid "Activate selected %(verbose_name_plural)s" +msgstr "Ausgewähltes %(verbose_name_plural)s aktivieren" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -85,7 +86,7 @@ msgstr "Ausgewählte Artikel wurden aktiviert!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "Ausgewählte %(verbose_name_plural)s deaktivieren" #: engine/core/admin.py:184 @@ -93,13 +94,13 @@ msgid "selected items have been deactivated." msgstr "Ausgewählte Artikel wurden deaktiviert!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Attribut Wert" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Attribut Werte" @@ -119,12 +120,12 @@ msgstr "Lagerbestand" msgid "stocks" msgstr "Bestände" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Produkt bestellen" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Produkte bestellen" @@ -132,7 +133,32 @@ msgstr "Produkte bestellen" msgid "children" msgstr "Kinder" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Hat Bilder" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "" +"Ausgewählte %(verbose_name_plural)s in die Feeds der Marktplätze exportieren" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "Ausgewählte %(verbose_name_plural)s wurden für den Export markiert." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "%(verbose_name_plural)s aus den Feeds der Marktplätze verbannen" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Ausgewählte %(verbose_name_plural)s wurden für den Export gesperrt." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Konfigurieren Sie" @@ -156,7 +182,8 @@ msgstr "Geliefert" msgid "canceled" msgstr "Abgesagt" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Gescheitert" @@ -207,10 +234,8 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"Wenden Sie nur einen Schlüssel an, um erlaubte Daten aus dem Cache zu " -"lesen.\n" -"Schlüssel, Daten und Timeout mit Authentifizierung anwenden, um Daten in den " -"Cache zu schreiben." +"Wenden Sie nur einen Schlüssel an, um erlaubte Daten aus dem Cache zu lesen.\n" +"Schlüssel, Daten und Timeout mit Authentifizierung anwenden, um Daten in den Cache zu schreiben." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -276,7 +301,8 @@ msgstr "" "Editierbarkeit" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Umschreiben einiger Felder einer bestehenden Attributgruppe, wobei nicht " "editierbare Felder gespeichert werden" @@ -306,8 +332,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:156 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:166 msgid "list all attribute values (simple view)" @@ -332,7 +358,8 @@ msgstr "" "Editierbarkeit" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Umschreiben einiger Felder eines vorhandenen Attributwerts, wobei nicht " "bearbeitbare Daten gespeichert werden" @@ -365,8 +392,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:270 engine/core/docs/drf/viewsets.py:272 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:280 engine/core/docs/drf/viewsets.py:757 #: engine/core/docs/drf/viewsets.py:1046 @@ -391,12 +418,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Groß- und Kleinschreibung unempfindliche Teilstringsuche über " -"human_readable_id, order_products.product.name und order_products.product." -"partnumber" +"human_readable_id, order_products.product.name und " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -432,9 +459,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Sortierung nach einem von: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Präfix mit '-' für absteigend " @@ -468,8 +495,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:403 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:410 msgid "purchase an order" @@ -502,7 +529,8 @@ msgstr "eine Bestellung kaufen, ohne ein Konto anzulegen" #: engine/core/docs/drf/viewsets.py:439 msgid "finalizes the order purchase for a non-registered user." msgstr "" -"schließt den Kauf einer Bestellung für einen nicht registrierten Benutzer ab." +"schließt den Kauf einer Bestellung für einen nicht registrierten Benutzer " +"ab." #: engine/core/docs/drf/viewsets.py:450 msgid "add product to order" @@ -519,8 +547,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:461 msgid "add a list of products to order, quantities will not count" msgstr "" -"Fügen Sie eine Liste der zu bestellenden Produkte hinzu, Mengen werden nicht " -"gezählt" +"Fügen Sie eine Liste der zu bestellenden Produkte hinzu, Mengen werden nicht" +" gezählt" #: engine/core/docs/drf/viewsets.py:463 msgid "" @@ -589,8 +617,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:537 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:544 msgid "retrieve current pending wishlist of a user" @@ -599,8 +627,8 @@ msgstr "Abruf der aktuellen Wunschliste eines Benutzers" #: engine/core/docs/drf/viewsets.py:545 msgid "retrieves a current pending wishlist of an authenticated user" msgstr "" -"ruft eine aktuelle ausstehende Wunschliste eines authentifizierten Benutzers " -"ab" +"ruft eine aktuelle ausstehende Wunschliste eines authentifizierten Benutzers" +" ab" #: engine/core/docs/drf/viewsets.py:555 msgid "add product to wishlist" @@ -647,29 +675,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtern Sie nach einem oder mehreren Attributnamen/Wertpaaren. \n" "- **Syntax**: `attr_name=Methode-Wert[;attr2=Methode2-Wert2]...`\n" -"- **Methoden** (Standardwert ist \"icontains\", wenn nicht angegeben): " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`\n" -"- **Wert-Typisierung**: JSON wird zuerst versucht (damit man Listen/Dicts " -"übergeben kann), `true`/`false` für Booleans, Integers, Floats; ansonsten " -"als String behandelt. \n" -"- Base64**: Präfix \"b64-\" für URL-sichere Base64-Kodierung des " -"Rohwertes. \n" +"- **Methoden** (Standardwert ist \"icontains\", wenn nicht angegeben): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Wert-Typisierung**: JSON wird zuerst versucht (damit man Listen/Dicts übergeben kann), `true`/`false` für Booleans, Integers, Floats; ansonsten als String behandelt. \n" +"- Base64**: Präfix \"b64-\" für URL-sichere Base64-Kodierung des Rohwertes. \n" "Beispiele: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -684,12 +701,10 @@ msgstr "(genaue) Produkt-UUID" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Durch Kommata getrennte Liste der Felder, nach denen sortiert werden soll. " -"Präfix mit \"-\" für absteigend. \n" +"Durch Kommata getrennte Liste der Felder, nach denen sortiert werden soll. Präfix mit \"-\" für absteigend. \n" "**Erlaubt:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -709,8 +724,8 @@ msgstr "Ein Produkt erstellen" #: engine/core/docs/drf/viewsets.py:677 engine/core/docs/drf/viewsets.py:678 msgid "rewrite an existing product, preserving non-editable fields" msgstr "" -"Umschreiben eines bestehenden Produkts unter Beibehaltung nicht editierbarer " -"Felder" +"Umschreiben eines bestehenden Produkts unter Beibehaltung nicht editierbarer" +" Felder" #: engine/core/docs/drf/viewsets.py:697 engine/core/docs/drf/viewsets.py:700 msgid "" @@ -762,10 +777,10 @@ msgstr "Autovervollständigung der Adresseingabe" #: engine/core/docs/drf/viewsets.py:848 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " -"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " -"it-it -l ja-jp -l kk-kz -l nl-nl -l pl -l pt-br -l ro-ro -l ru-ru -l zh-hans " -"-a core -a geo -a payments -a vibes_auth -a blog" +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" +" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"it-it -l ja-jp -l kk-kz -l nl-nl -l pl -l pt-br -l ro-ro -l ru-ru -l zh-hans" +" -a core -a geo -a payments -a vibes_auth -a blog" #: engine/core/docs/drf/viewsets.py:855 msgid "limit the results amount, 1 < limit < 10, default: 5" @@ -795,8 +810,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:909 msgid "rewrite some fields of an existing feedback saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:919 msgid "list all order–product relations (simple view)" @@ -855,8 +870,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1039 msgid "rewrite some fields of an existing brand saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1064 msgid "list all vendors (simple view)" @@ -882,8 +897,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1102 msgid "rewrite some fields of an existing vendor saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1112 msgid "list all product images (simple view)" @@ -909,8 +924,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1154 msgid "rewrite some fields of an existing product image saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1165 msgid "list all promo codes (simple view)" @@ -936,8 +951,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1203 msgid "rewrite some fields of an existing promo code saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1213 msgid "list all promotions (simple view)" @@ -963,8 +978,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1251 msgid "rewrite some fields of an existing promotion saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1261 msgid "list all stocks (simple view)" @@ -990,8 +1005,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1297 msgid "rewrite some fields of an existing stock record saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1308 msgid "list all product tags (simple view)" @@ -1017,8 +1032,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1350 msgid "rewrite some fields of an existing product tag saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/elasticsearch/__init__.py:128 #: engine/core/elasticsearch/__init__.py:629 @@ -1101,8 +1116,8 @@ msgstr "SKU" #: engine/core/filters.py:212 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" -"Es muss eine category_uuid vorhanden sein, um das Flag include_subcategories " -"zu verwenden" +"Es muss eine category_uuid vorhanden sein, um das Flag include_subcategories" +" zu verwenden" #: engine/core/filters.py:398 msgid "Search (ID, product name or part number)" @@ -1221,7 +1236,8 @@ msgstr "Aktion muss entweder \"Hinzufügen\" oder \"Entfernen\" sein!" #: engine/core/graphene/mutations.py:312 msgid "perform an action on a list of products in the wishlist" -msgstr "Ausführen einer Aktion für eine Liste von Produkten in der Wunschliste" +msgstr "" +"Ausführen einer Aktion für eine Liste von Produkten in der Wunschliste" #: engine/core/graphene/mutations.py:330 msgid "please provide wishlist_uuid value" @@ -1256,8 +1272,8 @@ msgstr "Eine Bestellung kaufen" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Bitte senden Sie die Attribute als String im Format attr1=wert1,attr2=wert2" @@ -1279,9 +1295,9 @@ msgstr "Bestellprodukt {order_product_uuid} nicht gefunden!" msgid "original address string provided by the user" msgstr "Vom Benutzer angegebene Originaladresse" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1297,8 +1313,8 @@ msgstr "ElasticSearch - funktioniert wie ein Zauber" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Attribute" @@ -1336,9 +1352,11 @@ msgstr "" "verwendet werden." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" -"Mindest- und Höchstpreise für Produkte in dieser Kategorie, sofern verfügbar." +"Mindest- und Höchstpreise für Produkte in dieser Kategorie, sofern " +"verfügbar." #: engine/core/graphene/object_types.py:234 msgid "tags for this category" @@ -1375,7 +1393,7 @@ msgid "represents feedback from a user." msgstr "Stellt das Feedback eines Benutzers dar." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Benachrichtigungen" @@ -1383,7 +1401,7 @@ msgstr "Benachrichtigungen" msgid "download url for this order product if applicable" msgstr "Download-Url für dieses Bestellprodukt, falls zutreffend" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Rückmeldung" @@ -1391,7 +1409,7 @@ msgstr "Rückmeldung" msgid "a list of order products in this order" msgstr "Eine Liste der bestellten Produkte in dieser Reihenfolge" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Rechnungsadresse" @@ -1419,7 +1437,7 @@ msgstr "Sind alle Produkte in der Bestellung digital" msgid "transactions for this order" msgstr "Vorgänge für diesen Auftrag" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Bestellungen" @@ -1436,7 +1454,7 @@ msgstr "Bilder des Produkts" msgid "category" msgstr "Kategorie" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Rückmeldungen" @@ -1477,7 +1495,7 @@ msgstr "Produkte nur für persönliche Bestellungen verfügbar" msgid "discount price" msgstr "Rabattierter Preis" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Produkte" @@ -1489,7 +1507,7 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Zum Verkauf stehende Produkte" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Werbeaktionen" @@ -1497,7 +1515,7 @@ msgstr "Werbeaktionen" msgid "vendor" msgstr "Anbieter" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1505,11 +1523,11 @@ msgstr "Anbieter" msgid "product" msgstr "Produkt" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Auf dem Wunschzettel stehende Produkte" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Wunschzettel" @@ -1608,11 +1626,11 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"Stellt eine Gruppe von Attributen dar, die hierarchisch aufgebaut sein kann. " -"Diese Klasse wird verwendet, um Attributgruppen zu verwalten und zu " +"Stellt eine Gruppe von Attributen dar, die hierarchisch aufgebaut sein kann." +" Diese Klasse wird verwendet, um Attributgruppen zu verwalten und zu " "organisieren. Eine Attributgruppe kann eine übergeordnete Gruppe haben, die " -"eine hierarchische Struktur bildet. Dies kann nützlich sein, um Attribute in " -"einem komplexen System effektiver zu kategorisieren und zu verwalten." +"eine hierarchische Struktur bildet. Dies kann nützlich sein, um Attribute in" +" einem komplexen System effektiver zu kategorisieren und zu verwalten." #: engine/core/models.py:88 msgid "parent of this group" @@ -1626,7 +1644,7 @@ msgstr "Übergeordnete Attributgruppe" msgid "attribute group's name" msgstr "Name der Attributgruppe" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Attribut-Gruppe" @@ -1642,9 +1660,9 @@ msgid "" msgstr "" "Stellt eine Verkäuferentität dar, die Informationen über externe Verkäufer " "und deren Interaktionsanforderungen speichern kann. Die Klasse Vendor wird " -"zur Definition und Verwaltung von Informationen über einen externen Anbieter " -"verwendet. Sie speichert den Namen des Anbieters, die für die Kommunikation " -"erforderlichen Authentifizierungsdaten und den prozentualen Aufschlag, der " +"zur Definition und Verwaltung von Informationen über einen externen Anbieter" +" verwendet. Sie speichert den Namen des Anbieters, die für die Kommunikation" +" erforderlichen Authentifizierungsdaten und den prozentualen Aufschlag, der " "auf die vom Anbieter abgerufenen Produkte angewendet wird. Dieses Modell " "verwaltet auch zusätzliche Metadaten und Einschränkungen, wodurch es sich " "für die Verwendung in Systemen eignet, die mit Drittanbietern interagieren." @@ -1701,10 +1719,10 @@ msgid "" "display name. It supports operations exported through mixins and provides " "metadata customization for administrative purposes." msgstr "" -"Stellt ein Produkt-Tag dar, das zur Klassifizierung oder Identifizierung von " -"Produkten verwendet wird. Die Klasse ProductTag dient der eindeutigen " -"Identifizierung und Klassifizierung von Produkten durch eine Kombination aus " -"einem internen Tag-Bezeichner und einem benutzerfreundlichen Anzeigenamen. " +"Stellt ein Produkt-Tag dar, das zur Klassifizierung oder Identifizierung von" +" Produkten verwendet wird. Die Klasse ProductTag dient der eindeutigen " +"Identifizierung und Klassifizierung von Produkten durch eine Kombination aus" +" einem internen Tag-Bezeichner und einem benutzerfreundlichen Anzeigenamen. " "Sie unterstützt Operationen, die über Mixins exportiert werden, und " "ermöglicht die Anpassung von Metadaten für Verwaltungszwecke." @@ -1765,9 +1783,9 @@ msgstr "" "Beziehungen unterstützen. Die Klasse enthält Felder für Metadaten und " "visuelle Darstellung, die als Grundlage für kategoriebezogene Funktionen " "dienen. Diese Klasse wird in der Regel verwendet, um Produktkategorien oder " -"andere ähnliche Gruppierungen innerhalb einer Anwendung zu definieren und zu " -"verwalten. Sie ermöglicht es Benutzern oder Administratoren, den Namen, die " -"Beschreibung und die Hierarchie von Kategorien festzulegen sowie Attribute " +"andere ähnliche Gruppierungen innerhalb einer Anwendung zu definieren und zu" +" verwalten. Sie ermöglicht es Benutzern oder Administratoren, den Namen, die" +" Beschreibung und die Hierarchie von Kategorien festzulegen sowie Attribute " "wie Bilder, Tags oder Priorität zuzuweisen." #: engine/core/models.py:269 @@ -1821,7 +1839,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Stellt ein Markenobjekt im System dar. Diese Klasse verwaltet Informationen " "und Attribute in Bezug auf eine Marke, einschließlich ihres Namens, Logos, " @@ -1872,16 +1891,16 @@ msgstr "Kategorien" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" "Stellt den Bestand eines im System verwalteten Produkts dar. Diese Klasse " -"liefert Details über die Beziehung zwischen Lieferanten, Produkten und deren " -"Bestandsinformationen sowie bestandsbezogene Eigenschaften wie Preis, " +"liefert Details über die Beziehung zwischen Lieferanten, Produkten und deren" +" Bestandsinformationen sowie bestandsbezogene Eigenschaften wie Preis, " "Einkaufspreis, Menge, SKU und digitale Assets. Sie ist Teil des " "Bestandsverwaltungssystems, um die Nachverfolgung und Bewertung der von " "verschiedenen Anbietern verfügbaren Produkte zu ermöglichen." @@ -1906,8 +1925,8 @@ msgstr "Verkaufspreis" msgid "the product associated with this stock entry" msgstr "Das mit diesem Bestandseintrag verbundene Produkt" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Zugehöriges Produkt" @@ -1937,7 +1956,8 @@ msgstr "SKU des Verkäufers" #: engine/core/models.py:564 msgid "digital file associated with this stock if applicable" -msgstr "Digitale Datei, die mit diesem Bestand verbunden ist, falls zutreffend" +msgstr "" +"Digitale Datei, die mit diesem Bestand verbunden ist, falls zutreffend" #: engine/core/models.py:565 msgid "digital file" @@ -1965,12 +1985,12 @@ msgstr "" "Stellt ein Produkt mit Attributen wie Kategorie, Marke, Tags, digitalem " "Status, Name, Beschreibung, Teilenummer und Slug dar. Bietet verwandte " "Hilfseigenschaften zum Abrufen von Bewertungen, Feedback-Zahlen, Preis, " -"Menge und Gesamtbestellungen. Konzipiert für die Verwendung in einem System, " -"das den elektronischen Handel oder die Bestandsverwaltung verwaltet. Diese " +"Menge und Gesamtbestellungen. Konzipiert für die Verwendung in einem System," +" das den elektronischen Handel oder die Bestandsverwaltung verwaltet. Diese " "Klasse interagiert mit verwandten Modellen (wie Category, Brand und " -"ProductTag) und verwaltet die Zwischenspeicherung von Eigenschaften, auf die " -"häufig zugegriffen wird, um die Leistung zu verbessern. Sie wird verwendet, " -"um Produktdaten und die damit verbundenen Informationen innerhalb einer " +"ProductTag) und verwaltet die Zwischenspeicherung von Eigenschaften, auf die" +" häufig zugegriffen wird, um die Leistung zu verbessern. Sie wird verwendet," +" um Produktdaten und die damit verbundenen Informationen innerhalb einer " "Anwendung zu definieren und zu manipulieren." #: engine/core/models.py:595 @@ -2005,13 +2025,14 @@ msgstr "ist das Produkt aktualisierbar" #: engine/core/models.py:631 msgid "provide a clear identifying name for the product" -msgstr "Geben Sie einen eindeutigen Namen zur Identifizierung des Produkts an." +msgstr "" +"Geben Sie einen eindeutigen Namen zur Identifizierung des Produkts an." #: engine/core/models.py:632 msgid "product name" msgstr "Name des Produkts" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Fügen Sie eine detaillierte Beschreibung des Produkts hinzu" @@ -2031,204 +2052,212 @@ msgstr "Teilnummer" msgid "stock keeping unit for this product" msgstr "Lagerhaltende Einheit für dieses Produkt" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Ob dieses Produkt auf Marktplätze exportiert werden soll" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Exportieren zu Marktplätzen" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"Stellt ein Attribut im System dar. Diese Klasse wird verwendet, um Attribute " -"zu definieren und zu verwalten. Dabei handelt es sich um anpassbare " +"Stellt ein Attribut im System dar. Diese Klasse wird verwendet, um Attribute" +" zu definieren und zu verwalten. Dabei handelt es sich um anpassbare " "Datenelemente, die mit anderen Entitäten verknüpft werden können. Attribute " "haben zugehörige Kategorien, Gruppen, Werttypen und Namen. Das Modell " "unterstützt mehrere Wertetypen, darunter String, Integer, Float, Boolean, " "Array und Object. Dies ermöglicht eine dynamische und flexible " "Datenstrukturierung." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Gruppe dieses Attributs" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Zeichenfolge" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Integer" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Schwimmer" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Boolesche" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Array" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Objekt" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Typ des Attributwerts" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Werttyp" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Name dieses Attributs" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Name des Attributs" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "ist filterbar" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Welche Attribute und Werte können für die Filterung dieser Kategorie " "verwendet werden." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribut" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Stellt einen spezifischen Wert für ein Attribut dar, das mit einem Produkt " "verknüpft ist. Es verknüpft das \"Attribut\" mit einem eindeutigen \"Wert\" " "und ermöglicht so eine bessere Organisation und dynamische Darstellung der " "Produktmerkmale." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Attribut dieses Wertes" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "" "Das spezifische Produkt, das mit dem Wert dieses Attributs verbunden ist" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Der spezifische Wert für dieses Attribut" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Stellt ein Produktbild dar, das mit einem Produkt im System verbunden ist. " "Diese Klasse dient der Verwaltung von Bildern für Produkte, einschließlich " "der Funktionen zum Hochladen von Bilddateien, der Zuordnung zu bestimmten " -"Produkten und der Festlegung ihrer Anzeigereihenfolge. Sie enthält auch eine " -"Funktion zur Barrierefreiheit mit alternativem Text für die Bilder." +"Produkten und der Festlegung ihrer Anzeigereihenfolge. Sie enthält auch eine" +" Funktion zur Barrierefreiheit mit alternativem Text für die Bilder." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "" "Geben Sie einen alternativen Text für das Bild an, um die Barrierefreiheit " "zu gewährleisten." -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Bild-Alt-Text" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Laden Sie die Bilddatei für dieses Produkt hoch" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Produktbild" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Legt die Reihenfolge fest, in der die Bilder angezeigt werden" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Priorität anzeigen" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Das Produkt, das dieses Bild darstellt" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Produktbilder" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"Repräsentiert eine Werbekampagne für Produkte mit einem Rabatt. Diese Klasse " -"wird verwendet, um Werbekampagnen zu definieren und zu verwalten, die einen " -"prozentualen Rabatt für Produkte anbieten. Die Klasse enthält Attribute zum " -"Festlegen des Rabattsatzes, zum Bereitstellen von Details über die " +"Repräsentiert eine Werbekampagne für Produkte mit einem Rabatt. Diese Klasse" +" wird verwendet, um Werbekampagnen zu definieren und zu verwalten, die einen" +" prozentualen Rabatt für Produkte anbieten. Die Klasse enthält Attribute zum" +" Festlegen des Rabattsatzes, zum Bereitstellen von Details über die " "Werbeaktion und zum Verknüpfen der Aktion mit den entsprechenden Produkten. " -"Sie ist mit dem Produktkatalog integriert, um die betroffenen Artikel in der " -"Kampagne zu bestimmen." +"Sie ist mit dem Produktkatalog integriert, um die betroffenen Artikel in der" +" Kampagne zu bestimmen." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Prozentualer Rabatt für die ausgewählten Produkte" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Prozentsatz der Ermäßigung" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Geben Sie einen eindeutigen Namen für diese Aktion an" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Name der Aktion" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Promotion description" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Wählen Sie aus, welche Produkte in dieser Aktion enthalten sind" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Enthaltene Produkte" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Förderung" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2238,64 +2267,64 @@ msgstr "" "Stellt die Wunschliste eines Benutzers zum Speichern und Verwalten " "gewünschter Produkte dar. Die Klasse bietet Funktionen zur Verwaltung einer " "Sammlung von Produkten und unterstützt Vorgänge wie das Hinzufügen und " -"Entfernen von Produkten sowie das Hinzufügen und Entfernen mehrerer Produkte " -"gleichzeitig." +"Entfernen von Produkten sowie das Hinzufügen und Entfernen mehrerer Produkte" +" gleichzeitig." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Produkte, die der Benutzer als gewünscht markiert hat" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Benutzer, dem diese Wunschliste gehört" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Besitzer der Wishlist" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Wunschzettel" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Stellt einen dokumentarischen Datensatz dar, der an ein Produkt gebunden " "ist. Diese Klasse wird verwendet, um Informationen über Dokumentationen zu " "bestimmten Produkten zu speichern, einschließlich Datei-Uploads und deren " "Metadaten. Sie enthält Methoden und Eigenschaften zur Handhabung des " -"Dateityps und des Speicherpfads für die Dokumentationsdateien. Sie erweitert " -"die Funktionalität von bestimmten Mixins und bietet zusätzliche " +"Dateityps und des Speicherpfads für die Dokumentationsdateien. Sie erweitert" +" die Funktionalität von bestimmten Mixins und bietet zusätzliche " "benutzerdefinierte Funktionen." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Dokumentarfilm" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Dokumentarfilme" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Ungelöst" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Stellt eine Adresseinheit dar, die Standortdetails und Assoziationen mit " "einem Benutzer enthält. Bietet Funktionen für die Speicherung von " @@ -2308,59 +2337,59 @@ msgstr "" "ermöglicht es auch, eine Adresse mit einem Benutzer zu verknüpfen, was die " "personalisierte Datenverarbeitung erleichtert." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Adresszeile für den Kunden" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Adresszeile" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Straße" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Bezirk" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Stadt" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Region" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Postleitzahl" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Land" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Längengrad, Breitengrad)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Vollständige JSON-Antwort vom Geocoder für diese Adresse" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Gespeicherte JSON-Antwort vom Geokodierungsdienst" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Adresse" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adressen" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2378,75 +2407,76 @@ msgstr "" "Validierung und Anwendung des Promo-Codes auf eine Bestellung, wobei " "sichergestellt wird, dass die Einschränkungen eingehalten werden." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "" "Einzigartiger Code, den ein Nutzer zum Einlösen eines Rabatts verwendet" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Kennung des Promo-Codes" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "" -"Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet wird" +"Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet " +"wird" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Fester Rabattbetrag" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Prozentualer Rabatt, wenn der Festbetrag nicht verwendet wird" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Prozentualer Rabatt" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Zeitstempel, wann der Promocode abläuft" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Ende der Gültigkeitsdauer" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Zeitstempel, ab dem dieser Promocode gültig ist" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Beginn der Gültigkeitsdauer" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Zeitstempel, wann der Promocode verwendet wurde, leer, wenn noch nicht " "verwendet" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Zeitstempel der Verwendung" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Diesem Promocode zugewiesener Benutzer, falls zutreffend" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Zugewiesener Benutzer" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Promo-Code" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Promo-Codes" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2454,21 +2484,21 @@ msgstr "" "Es sollte nur eine Art von Rabatt definiert werden (Betrag oder " "Prozentsatz), aber nicht beides oder keines von beiden." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Promocode wurde bereits verwendet" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ungültiger Rabatttyp für den Promocode {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2481,144 +2511,144 @@ msgstr "" "aktualisiert werden. Ebenso unterstützt die Funktionalität die Verwaltung " "der Produkte im Lebenszyklus der Bestellung." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Die für diese Bestellung verwendete Rechnungsadresse" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Optionaler Promo-Code für diese Bestellung" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Angewandter Promo-Code" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Die für diese Bestellung verwendete Lieferadresse" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Lieferadresse" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Aktueller Status des Auftrags in seinem Lebenszyklus" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Status der Bestellung" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "JSON-Struktur der Benachrichtigungen, die den Benutzern angezeigt werden " "sollen; in der Admin-UI wird die Tabellenansicht verwendet" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "JSON-Darstellung der Auftragsattribute für diesen Auftrag" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "Der Benutzer, der die Bestellung aufgegeben hat" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Benutzer" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Der Zeitstempel, zu dem der Auftrag abgeschlossen wurde" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Zeit kaufen" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Ein von Menschen lesbarer Identifikator für den Auftrag" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "menschenlesbare ID" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Bestellung" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "Ein Benutzer darf immer nur einen schwebenden Auftrag haben!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" "Sie können keine Produkte zu einem Auftrag hinzufügen, der nicht in " "Bearbeitung ist." -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Sie können keine inaktiven Produkte zur Bestellung hinzufügen" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "Sie können nicht mehr Produkte hinzufügen, als auf Lager sind" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Sie können keine Produkte aus einer Bestellung entfernen, die nicht in " "Bearbeitung ist." -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} existiert nicht mit Abfrage <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Promocode existiert nicht" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" "Sie können nur physische Produkte mit angegebener Lieferadresse kaufen!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Adresse ist nicht vorhanden" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "Sie können im Moment nicht kaufen, bitte versuchen Sie es in ein paar " "Minuten erneut." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Ungültiger Force-Wert" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Sie können keine leere Bestellung kaufen!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "" "Sie können keine Produkte aus einer Bestellung entfernen, die nicht in " "Bearbeitung ist." -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Ein Benutzer ohne Guthaben kann nicht mit Guthaben kaufen!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Unzureichende Mittel für die Ausführung des Auftrags" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2626,14 +2656,14 @@ msgstr "" "Sie können nicht ohne Registrierung kaufen, bitte geben Sie die folgenden " "Informationen an: Kundenname, Kunden-E-Mail, Kunden-Telefonnummer" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Ungültige Zahlungsmethode: {payment_method} von {available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2642,39 +2672,40 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "Verwaltet Benutzerfeedback für Produkte. Diese Klasse dient der Erfassung " -"und Speicherung von Benutzerfeedback für bestimmte Produkte, die sie gekauft " -"haben. Sie enthält Attribute zum Speichern von Benutzerkommentaren, einen " +"und Speicherung von Benutzerfeedback für bestimmte Produkte, die sie gekauft" +" haben. Sie enthält Attribute zum Speichern von Benutzerkommentaren, einen " "Verweis auf das entsprechende Produkt in der Bestellung und eine vom " "Benutzer zugewiesene Bewertung. Die Klasse verwendet Datenbankfelder, um " "Feedbackdaten effektiv zu modellieren und zu verwalten." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "Kommentare der Nutzer über ihre Erfahrungen mit dem Produkt" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Kommentare zum Feedback" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Verweist auf das spezifische Produkt in einer Bestellung, auf das sich diese " -"Rückmeldung bezieht" +"Verweist auf das spezifische Produkt in einer Bestellung, auf das sich diese" +" Rückmeldung bezieht" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Produkt zur Bestellung" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Vom Benutzer zugewiesene Bewertung für das Produkt" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Produktbewertung" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2686,144 +2717,144 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"Stellt die mit Bestellungen verbundenen Produkte und ihre Attribute dar. Das " -"OrderProduct-Modell verwaltet Informationen über ein Produkt, das Teil einer " -"Bestellung ist, einschließlich Details wie Kaufpreis, Menge, " +"Stellt die mit Bestellungen verbundenen Produkte und ihre Attribute dar. Das" +" OrderProduct-Modell verwaltet Informationen über ein Produkt, das Teil " +"einer Bestellung ist, einschließlich Details wie Kaufpreis, Menge, " "Produktattribute und Status. Es verwaltet Benachrichtigungen für Benutzer " "und Administratoren und führt Vorgänge wie die Rückgabe des Produktsaldos " "oder das Hinzufügen von Feedback durch. Dieses Modell bietet auch Methoden " -"und Eigenschaften, die die Geschäftslogik unterstützen, z. B. die Berechnung " -"des Gesamtpreises oder die Generierung einer Download-URL für digitale " +"und Eigenschaften, die die Geschäftslogik unterstützen, z. B. die Berechnung" +" des Gesamtpreises oder die Generierung einer Download-URL für digitale " "Produkte. Das Modell ist mit den Modellen \"Order\" und \"Product\" " "integriert und speichert einen Verweis auf diese." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "" "Der Preis, den der Kunde zum Zeitpunkt des Kaufs für dieses Produkt bezahlt " "hat" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Einkaufspreis zum Zeitpunkt der Bestellung" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Interne Kommentare für Administratoren zu diesem bestellten Produkt" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Interne Kommentare" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Benutzerbenachrichtigungen" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "JSON-Darstellung der Attribute dieses Artikels" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Bestellte Produktattribute" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Verweis auf den übergeordneten Auftrag, der dieses Produkt enthält" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Übergeordneter Auftrag" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Das spezifische Produkt, das mit dieser Auftragszeile verbunden ist" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Menge dieses spezifischen Produkts in der Bestellung" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Produktmenge" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Aktueller Status dieses Produkts im Auftrag" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Status der Produktlinie" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Das Bestellprodukt muss eine zugehörige Bestellung haben!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Falsche Aktion für Feedback angegeben: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "" "Sie können keine Produkte aus einer Bestellung entfernen, die nicht in " "Bearbeitung ist." -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Name" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL der Integration" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Anmeldeinformationen zur Authentifizierung" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Sie können nur einen Standard-CRM-Anbieter haben" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRMs" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "CRM-Link der Bestellung" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "CRM-Links der Bestellungen" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Stellt die Download-Funktionalität für digitale Assets in Verbindung mit " "Bestellungen dar. Die Klasse DigitalAssetDownload ermöglicht die Verwaltung " "und den Zugriff auf Downloads im Zusammenhang mit Auftragsprodukten. Sie " "verwaltet Informationen über das zugehörige Auftragsprodukt, die Anzahl der " -"Downloads und ob das Asset öffentlich sichtbar ist. Sie enthält eine Methode " -"zur Generierung einer URL für das Herunterladen des Assets, wenn sich die " +"Downloads und ob das Asset öffentlich sichtbar ist. Sie enthält eine Methode" +" zur Generierung einer URL für das Herunterladen des Assets, wenn sich die " "zugehörige Bestellung in einem abgeschlossenen Status befindet." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Herunterladen" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Herunterladen" @@ -3024,8 +3055,7 @@ msgstr "Hallo %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Vielen Dank für Ihre Bestellung #%(order.pk)s! Wir freuen uns, Ihnen " @@ -3140,8 +3170,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Vielen Dank für Ihre Bestellung! Wir freuen uns, Ihren Kauf zu bestätigen. " @@ -3178,7 +3207,8 @@ msgstr "Sowohl Daten als auch Timeout sind erforderlich" #: engine/core/utils/caching.py:52 msgid "invalid timeout value, it must be between 0 and 216000 seconds" -msgstr "Ungültiger Timeout-Wert, er muss zwischen 0 und 216000 Sekunden liegen" +msgstr "" +"Ungültiger Timeout-Wert, er muss zwischen 0 und 216000 Sekunden liegen" #: engine/core/utils/emailing.py:27 #, python-brace-format @@ -3276,16 +3306,10 @@ msgstr "Behandelt die Logik des Kaufs als Unternehmen ohne Registrierung." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" -"Bearbeitet das Herunterladen eines digitalen Assets, das mit einem Auftrag " -"verbunden ist.\n" -"Diese Funktion versucht, die Datei des digitalen Assets, die sich im " -"Speicherverzeichnis des Projekts befindet, bereitzustellen. Wenn die Datei " -"nicht gefunden wird, wird ein HTTP 404-Fehler ausgelöst, um anzuzeigen, dass " -"die Ressource nicht verfügbar ist." +"Bearbeitet das Herunterladen eines digitalen Assets, das mit einem Auftrag verbunden ist.\n" +"Diese Funktion versucht, die Datei des digitalen Assets, die sich im Speicherverzeichnis des Projekts befindet, bereitzustellen. Wenn die Datei nicht gefunden wird, wird ein HTTP 404-Fehler ausgelöst, um anzuzeigen, dass die Ressource nicht verfügbar ist." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3302,7 +3326,8 @@ msgstr "Sie können das digitale Asset nur einmal herunterladen" #: engine/core/views.py:362 msgid "the order must be paid before downloading the digital asset" msgstr "" -"die Bestellung muss vor dem Herunterladen des digitalen Assets bezahlt werden" +"die Bestellung muss vor dem Herunterladen des digitalen Assets bezahlt " +"werden" #: engine/core/views.py:369 msgid "the order product does not have a product" @@ -3315,20 +3340,15 @@ msgstr "Favicon nicht gefunden" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Bearbeitet Anfragen nach dem Favicon einer Website.\n" -"Diese Funktion versucht, die Favicon-Datei, die sich im statischen " -"Verzeichnis des Projekts befindet, bereitzustellen. Wenn die Favicon-Datei " -"nicht gefunden wird, wird ein HTTP 404-Fehler ausgegeben, um anzuzeigen, " -"dass die Ressource nicht verfügbar ist." +"Diese Funktion versucht, die Favicon-Datei, die sich im statischen Verzeichnis des Projekts befindet, bereitzustellen. Wenn die Favicon-Datei nicht gefunden wird, wird ein HTTP 404-Fehler ausgegeben, um anzuzeigen, dass die Ressource nicht verfügbar ist." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Leitet die Anfrage auf die Admin-Indexseite um. Die Funktion verarbeitet " @@ -3351,29 +3371,30 @@ msgstr "Gibt benutzerdefinierte Variablen für das Dashboard zurück." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "Definiert ein Viewset für die Verwaltung von schon-bezogenen Operationen. " "Die Klasse SchonViewSet erbt von ModelViewSet und bietet Funktionalität für " -"die Handhabung von Aktionen und Operationen auf schon-Entitäten. Sie " -"enthält Unterstützung für dynamische Serialisiererklassen auf der Grundlage " -"der aktuellen Aktion, anpassbare Berechtigungen und Rendering-Formate." +"die Handhabung von Aktionen und Operationen auf schon-Entitäten. Sie enthält" +" Unterstützung für dynamische Serialisiererklassen auf der Grundlage der " +"aktuellen Aktion, anpassbare Berechtigungen und Rendering-Formate." #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Stellt ein Viewset für die Verwaltung von AttributeGroup-Objekten dar. " "Bearbeitet Vorgänge im Zusammenhang mit AttributeGroup, einschließlich " -"Filterung, Serialisierung und Abruf von Daten. Diese Klasse ist Teil der API-" -"Schicht der Anwendung und bietet eine standardisierte Methode zur " +"Filterung, Serialisierung und Abruf von Daten. Diese Klasse ist Teil der " +"API-Schicht der Anwendung und bietet eine standardisierte Methode zur " "Verarbeitung von Anfragen und Antworten für AttributeGroup-Daten." #: engine/core/viewsets.py:179 @@ -3398,14 +3419,14 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Ein Viewset für die Verwaltung von AttributeValue-Objekten. Dieses Viewset " "bietet Funktionen zum Auflisten, Abrufen, Erstellen, Aktualisieren und " "Löschen von AttributeValue-Objekten. Es integriert sich in die Viewset-" -"Mechanismen des Django REST Frameworks und verwendet geeignete Serialisierer " -"für verschiedene Aktionen. Filterfunktionen werden über das " +"Mechanismen des Django REST Frameworks und verwendet geeignete Serialisierer" +" für verschiedene Aktionen. Filterfunktionen werden über das " "DjangoFilterBackend bereitgestellt." #: engine/core/viewsets.py:217 @@ -3417,8 +3438,8 @@ msgid "" "can access specific data." msgstr "" "Verwaltet Ansichten für kategoriebezogene Operationen. Die Klasse " -"CategoryViewSet ist für die Handhabung von Vorgängen im Zusammenhang mit dem " -"Kategoriemodell im System verantwortlich. Sie unterstützt das Abrufen, " +"CategoryViewSet ist für die Handhabung von Vorgängen im Zusammenhang mit dem" +" Kategoriemodell im System verantwortlich. Sie unterstützt das Abrufen, " "Filtern und Serialisieren von Kategoriedaten. Das Viewset erzwingt auch " "Berechtigungen, um sicherzustellen, dass nur autorisierte Benutzer auf " "bestimmte Daten zugreifen können." @@ -3447,8 +3468,8 @@ msgid "" msgstr "" "Verwaltet Vorgänge im Zusammenhang mit dem Modell \"Produkt\" im System. " "Diese Klasse bietet ein Viewset für die Verwaltung von Produkten, " -"einschließlich ihrer Filterung, Serialisierung und Operationen für bestimmte " -"Instanzen. Sie ist eine Erweiterung von `SchonViewSet`, um gemeinsame " +"einschließlich ihrer Filterung, Serialisierung und Operationen für bestimmte" +" Instanzen. Sie ist eine Erweiterung von `SchonViewSet`, um gemeinsame " "Funktionen zu nutzen und integriert sich in das Django REST Framework für " "RESTful API Operationen. Enthält Methoden zum Abrufen von Produktdetails, " "zur Anwendung von Berechtigungen und zum Zugriff auf zugehörige " @@ -3474,15 +3495,15 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Darstellung eines View-Sets, das Feedback-Objekte behandelt. Diese Klasse " "verwaltet Vorgänge im Zusammenhang mit Feedback-Objekten, einschließlich " "Auflistung, Filterung und Abruf von Details. Der Zweck dieses ViewSets ist " -"es, verschiedene Serialisierer für verschiedene Aktionen bereitzustellen und " -"eine erlaubnisbasierte Handhabung von zugänglichen Feedback-Objekten zu " +"es, verschiedene Serialisierer für verschiedene Aktionen bereitzustellen und" +" eine erlaubnisbasierte Handhabung von zugänglichen Feedback-Objekten zu " "implementieren. Es erweitert das Basis `SchonViewSet` und nutzt das " "Filtersystem von Django zur Abfrage von Daten." @@ -3491,16 +3512,16 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"ViewSet zur Verwaltung von Aufträgen und zugehörigen Vorgängen. Diese Klasse " -"bietet Funktionen zum Abrufen, Ändern und Verwalten von Bestellobjekten. Sie " -"enthält verschiedene Endpunkte für die Handhabung von Bestellvorgängen wie " -"das Hinzufügen oder Entfernen von Produkten, die Durchführung von Käufen für " -"registrierte und nicht registrierte Benutzer und das Abrufen der " +"ViewSet zur Verwaltung von Aufträgen und zugehörigen Vorgängen. Diese Klasse" +" bietet Funktionen zum Abrufen, Ändern und Verwalten von Bestellobjekten. " +"Sie enthält verschiedene Endpunkte für die Handhabung von Bestellvorgängen " +"wie das Hinzufügen oder Entfernen von Produkten, die Durchführung von Käufen" +" für registrierte und nicht registrierte Benutzer und das Abrufen der " "ausstehenden Bestellungen des aktuell authentifizierten Benutzers. Das " "ViewSet verwendet mehrere Serialisierer, die auf der spezifischen Aktion " "basieren, die durchgeführt wird, und erzwingt die entsprechenden " @@ -3510,16 +3531,16 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Bietet ein Viewset für die Verwaltung von OrderProduct-Entitäten. Dieses " "Viewset ermöglicht CRUD-Vorgänge und benutzerdefinierte Aktionen speziell " "für das OrderProduct-Modell. Es umfasst Filterung, Berechtigungsprüfungen " "und Serializer-Umschaltung auf der Grundlage der angeforderten Aktion. " -"Außerdem bietet es eine detaillierte Aktion für die Bearbeitung von Feedback " -"zu OrderProduct-Instanzen" +"Außerdem bietet es eine detaillierte Aktion für die Bearbeitung von Feedback" +" zu OrderProduct-Instanzen" #: engine/core/viewsets.py:974 msgid "Manages operations related to Product images in the application. " @@ -3546,15 +3567,15 @@ msgstr "Erledigt Vorgänge im Zusammenhang mit Bestandsdaten im System." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" "ViewSet für die Verwaltung von Wishlist-Vorgängen. Das WishlistViewSet " -"bietet Endpunkte für die Interaktion mit der Wunschliste eines Benutzers und " -"ermöglicht das Abrufen, Ändern und Anpassen von Produkten innerhalb der " +"bietet Endpunkte für die Interaktion mit der Wunschliste eines Benutzers und" +" ermöglicht das Abrufen, Ändern und Anpassen von Produkten innerhalb der " "Wunschliste. Dieses ViewSet erleichtert Funktionen wie das Hinzufügen, " "Entfernen und Massenaktionen für Produkte auf der Wunschliste. " "Berechtigungsprüfungen sind integriert, um sicherzustellen, dass Benutzer " @@ -3570,8 +3591,8 @@ msgid "" "on the request context." msgstr "" "Diese Klasse bietet Viewset-Funktionalität für die Verwaltung von " -"\"Address\"-Objekten. Die Klasse AddressViewSet ermöglicht CRUD-Operationen, " -"Filterung und benutzerdefinierte Aktionen im Zusammenhang mit " +"\"Address\"-Objekten. Die Klasse AddressViewSet ermöglicht CRUD-Operationen," +" Filterung und benutzerdefinierte Aktionen im Zusammenhang mit " "Adressentitäten. Sie umfasst spezielle Verhaltensweisen für verschiedene " "HTTP-Methoden, Serialisierungsüberschreibungen und die Behandlung von " "Berechtigungen auf der Grundlage des Anfragekontexts." @@ -3592,6 +3613,6 @@ msgstr "" "Bearbeitet Vorgänge im Zusammenhang mit Produkt-Tags innerhalb der " "Anwendung. Diese Klasse bietet Funktionen zum Abrufen, Filtern und " "Serialisieren von Produkt-Tag-Objekten. Sie unterstützt die flexible " -"Filterung nach bestimmten Attributen unter Verwendung des angegebenen Filter-" -"Backends und verwendet dynamisch verschiedene Serialisierer auf der " +"Filterung nach bestimmten Attributen unter Verwendung des angegebenen " +"Filter-Backends und verwendet dynamisch verschiedene Serialisierer auf der " "Grundlage der durchgeführten Aktion." diff --git a/engine/core/locale/en_GB/LC_MESSAGES/django.mo b/engine/core/locale/en_GB/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a045f96ac57adc7d685cf882d7639d6733ca1aa3 GIT binary patch literal 88179 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

)?AcQX zzBMl;GRJKH%|2{R4nw-~enuFyu4vzC_4rH$t_Xuy{*#7sxPji zoh8zis{=!p-arrZj1jPfHbtssJgei8XjnV@qCho7h%}wI7TE9}5|jBGrjWivru82Y zi($8jIdONZR@sxPzK0(i^|yG&j2ei@NJsoAwr<#@ri~^-Kx%$&@irpDu4AE8f#B+M zob-tp_O?(ta(01ecIEFGBviQHpDz+MB1ctSE9%2igXeRfc#Rxa!#)%q4m#{zm1D%R zc!(qXU^u)Uz3|tao^y1{BW>%hpZ&*H&ZFTg{!D`gXl%M*J?S;y&K zY@00)#xh>b7J^qoa5JcgSJ9Mga)=O*C(6vt{v<}anwin{p+4GEqd literal 0 HcmV?d00001 diff --git a/engine/core/locale/en_GB/LC_MESSAGES/django.po b/engine/core/locale/en_GB/LC_MESSAGES/django.po index 1eb310ca..99e3c91b 100644 --- a/engine/core/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/core/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -31,9 +31,11 @@ msgstr "Is Active" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"If set to false, this object can't be seen by users without needed permission" +"If set to false, this object can't be seen by users without needed " +"permission" #: engine/core/abstract.py:26 engine/core/choices.py:18 msgid "created" @@ -77,7 +79,7 @@ msgstr "Timestamps" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "Activate selected %(verbose_name_plural)s" #: engine/core/admin.py:166 @@ -86,7 +88,7 @@ msgstr "Selected items have been activated!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "Deactivate selected %(verbose_name_plural)s" #: engine/core/admin.py:184 @@ -94,13 +96,13 @@ msgid "selected items have been deactivated." msgstr "Selected items have been deactivated!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Attribute Value" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Attribute Values" @@ -120,12 +122,12 @@ msgstr "Stock" msgid "stocks" msgstr "Stocks" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Order Product" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Order Products" @@ -133,7 +135,31 @@ msgstr "Order Products" msgid "children" msgstr "Children" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Has images" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Export selected %(verbose_name_plural)s to marketplaces' feeds" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "Selected %(verbose_name_plural)s have been marked for export." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Ban selected %(verbose_name_plural)s from marketplaces' feeds" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Selected %(verbose_name_plural)s have been banned from export." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Config" @@ -157,7 +183,8 @@ msgstr "Delivered" msgid "canceled" msgstr "Canceled" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Failed" @@ -272,7 +299,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Rewrite an existing attribute group saving non-editables" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rewrite some fields of an existing attribute group saving non-editables" @@ -321,7 +349,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Rewrite an existing attribute value saving non-editables" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rewrite some fields of an existing attribute value saving non-editables" @@ -375,11 +404,11 @@ msgstr "For non-staff users, only their own orders are returned." #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -411,13 +440,13 @@ msgstr "Filter by order status (case-insensitive substring match)" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." #: engine/core/docs/drf/viewsets.py:366 msgid "retrieve a single order (detailed view)" @@ -603,30 +632,20 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" #: engine/core/docs/drf/viewsets.py:617 engine/core/docs/drf/viewsets.py:618 @@ -639,12 +658,10 @@ msgstr "(exact) Product UUID" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -1175,11 +1192,11 @@ msgstr "Buy an order" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"Please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" #: engine/core/graphene/mutations.py:580 msgid "add or delete a feedback for orderproduct" @@ -1198,9 +1215,9 @@ msgstr "Orderproduct {order_product_uuid} not found!" msgid "original address string provided by the user" msgstr "Original address string provided by the user" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1216,8 +1233,8 @@ msgstr "ElasticSearch - works like a charm" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Attributes" @@ -1253,7 +1270,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "Which attributes and values can be used for filtering this category." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimum and maximum prices for products in this category, if available." @@ -1291,7 +1309,7 @@ msgid "represents feedback from a user." msgstr "Represents feedback from a user." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Notifications" @@ -1299,7 +1317,7 @@ msgstr "Notifications" msgid "download url for this order product if applicable" msgstr "Download url for this order product if applicable" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Feedback" @@ -1307,7 +1325,7 @@ msgstr "Feedback" msgid "a list of order products in this order" msgstr "A list of order products in this order" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Billing address" @@ -1335,7 +1353,7 @@ msgstr "Are all of the products in the order digital" msgid "transactions for this order" msgstr "Transactions for this order" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Orders" @@ -1352,7 +1370,7 @@ msgstr "Product's images" msgid "category" msgstr "Category" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Feedbacks" @@ -1393,7 +1411,7 @@ msgstr "Products only available for personal orders" msgid "discount price" msgstr "Discount price" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Products" @@ -1405,7 +1423,7 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Products on sale" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Promotions" @@ -1413,7 +1431,7 @@ msgstr "Promotions" msgid "vendor" msgstr "Vendor" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1421,11 +1439,11 @@ msgstr "Vendor" msgid "product" msgstr "Product" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Wishlisted products" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Wishlists" @@ -1540,7 +1558,7 @@ msgstr "Parent attribute group" msgid "attribute group's name" msgstr "Attribute group's name" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Attribute group" @@ -1726,12 +1744,14 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." #: engine/core/models.py:456 msgid "name of this brand" @@ -1775,15 +1795,15 @@ msgstr "Categories" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1809,8 +1829,8 @@ msgstr "Selling price" msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Associated product" @@ -1910,7 +1930,7 @@ msgstr "Provide a clear identifying name for the product" msgid "product name" msgstr "Product name" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Add a detailed description of the product" @@ -1930,196 +1950,204 @@ msgstr "Part number" msgid "stock keeping unit for this product" msgstr "Stock Keeping Unit for this product" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Whether to export this product to marketplaces" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Export to Marketplaces" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Group of this attribute" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "String" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Integer" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Float" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Boolean" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Array" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Object" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Type of the attribute's value" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Value type" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Name of this attribute" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Attribute's name" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "is filterable" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "designates whether this attribute can be used for filtering or not" -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribute" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Attribute of this value" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "The specific product associated with this attribute's value" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "The specific value for this attribute" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Image alt text" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Upload the image file for this product" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Product image" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Determines the order in which images are displayed" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Display priority" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "The product that this image represents" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Product images" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Percentage discount for the selected products" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Discount percentage" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Provide a unique name for this promotion" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Promotion name" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Promotion description" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Select which products are included in this promotion" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Included products" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Promotion" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2131,123 +2159,123 @@ msgstr "" "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Wishlist" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Documentary" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Documentaries" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Unresolved" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Address line for the customer" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Address line" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Street" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "District" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "City" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Region" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Postal code" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Country" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Full JSON response from geocoder for this address" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Stored JSON response from the geocoding service" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Address" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adresses" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2263,71 +2291,71 @@ msgstr "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Unique code used by a user to redeem a discount" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Promo code identifier" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Percentage discount" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "End validity time" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Start validity time" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "Timestamp when the promocode was used, blank if not used yet" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Usage timestamp" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Assigned user" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Promo code" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Promo codes" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2335,161 +2363,161 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Promocode has been used already" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Applied promo code" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Shipping address" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Order status" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "JSON structure of notifications to display to users, in admin UI the table-" "view is used" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "The user who placed the order" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "User" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Buy time" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "human-readable ID" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Order" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "A user must have only one pending order at a time!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "You cannot add products to an order that is not a pending one" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "You cannot remove products from an order that is not a pending one" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "You can only buy physical products with shipping address specified!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Address does not exist" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "You can not purchase at this moment, please try again in a few minutes." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Invalid force value" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "You cannot buy an order without a user!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "A user without a balance cannot buy with balance!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2497,14 +2525,14 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Invalid payment method: {payment_method} from {available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2518,32 +2546,33 @@ msgstr "" "product in the order, and a user-assigned rating. The class uses database " "fields to effectively model and manage feedback data." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Feedback comments" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "References the specific product in an order that this feedback is about" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Related order product" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Product rating" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2565,128 +2594,128 @@ msgstr "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "The price paid by the customer for this product at purchase time" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Internal comments" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "User notifications" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Parent order" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Product quantity" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Product line status" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Orderproduct must have an associated order!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Wrong action specified for feedback: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "you cannot feedback an order which is not received" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Name" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL of the integration" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Authentication credentials" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "You can only have one default CRM provider" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRMs" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Order's CRM link" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Orders' CRM links" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Download" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Downloads" @@ -2886,12 +2915,11 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"Thank you for your order #%(order.pk)s! We are pleased to inform you that we " -"have taken your order into work. Below are the details of your order:" +"Thank you for your order #%(order.pk)s! We are pleased to inform you that we" +" have taken your order into work. Below are the details of your order:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -3001,12 +3029,11 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" -"Thank you for your order! We are pleased to confirm your purchase. Below are " -"the details of your order:" +"Thank you for your order! We are pleased to confirm your purchase. Below are" +" the details of your order:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -3134,14 +3161,10 @@ msgstr "Handles the logic of buying as a business without registration." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3170,23 +3193,19 @@ msgstr "favicon not found" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." #: engine/core/views.py:445 @@ -3204,9 +3223,9 @@ msgstr "Returns custom variables for Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3218,15 +3237,17 @@ msgstr "" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." #: engine/core/viewsets.py:179 msgid "" @@ -3249,14 +3270,14 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." #: engine/core/viewsets.py:217 msgid "" @@ -3321,15 +3342,15 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." #: engine/core/viewsets.py:652 @@ -3337,31 +3358,31 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." #: engine/core/viewsets.py:914 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" #: engine/core/viewsets.py:974 @@ -3388,16 +3409,16 @@ msgstr "Handles operations related to Stock data in the system." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." diff --git a/engine/core/locale/en_US/LC_MESSAGES/django.mo b/engine/core/locale/en_US/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a517bc392baf23be3e3f552e6a954cc5e4c5662d GIT binary patch literal 88170 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�?-a8Tqb2D3gbJ>kV-`B zG!~H)Jt#wnMK8)Oq6kNMH@6b4h$O;^37D6UJy)DQ)HlM4he=1@oA&?C%H{Lq%@Am; zxGf910&Q((Da0wF4oAs4MoU|zF$Gi-HOF(82NWjky_;Rn4k#nakUnq(0oD( zGTU}JPkhETbL#ph;pK}Vp=>)7x2#mK*l=FqI_C+f1tY^Xn?W(7f@}BMKeHI}Ws}M_ z*QPX!&ybYn(NdHgMZwdeDDIe$yfdRqro6#vO8AFXwd+=p!6}K%1)qy8acbtWC4kL& zvde2RtsifgDih>T>MLCTi_&S^c!&(M%Y8I%8fmp)Zl)fS+qQiTg@_v_MjbCCP|%8P zY>ZHm!DG)D>(WzfW>L{7^fp>Wcmd+HqCJ zZO+~Dd0>*2w=+L0o|Ft#yUg07OR5<~l9v`SB+n%hd~}i6(f5nfF2hVtk6CX)=}qh= zVZ$&9<=5(1jwg(Df~-+L<*uozDaOXrl_hSCC*ovUM!LKzo*CiFt~~JuWepWWp5o>r z*^UN_7^9O$=sAgLnF&kz@z-@Hj;lj#6QWwo=>s$qvt6tlo!e1(_$tm^Eql>I&W>Yo z;ia0byy_EdnQ8FGa;LX6sfikrSGKZEvqq3wceW$P1#g@MQz-@WL{k!@gA+}CS0)wA zo75!LB$cZ*iKx*z1C-S{xPpO8%(1=Cv^Y7d1t(VXP=cUp>WvsxWkVk#>+Wt`WDI8U z?kFT0W7?-=V!e|3!x1zC3Mpm&efJ(NAk0K2$tvEch4M5B_ zGORCDY{{^qB7#o7IJ-*3zq%NU*rcbo5_c&$`zph$&zU+ZZQtGdarGZlj+-q@pR)fjeQK6YUxH#U#$42cP?1i z$+vPBoVs|?6HaDn!GhUqSR2^6S&AphWxcUDU$Jui#++l>h3nQ|l%KtP{kqLdmv27z zybCw3AY}E%uI203p2K7Q!P?Hv>?yD~U$$}eWwGz-a|Pf2l&n~s zpV?a*o4sLZyipnIJP#+f=Hh&0)GnJ#7M;cLM|YOY9m$Vfk}vEyYj!rbx)Wya(D%Hp z@3URSmYScw1}Ex8n6t0ozqz&8Sok9QnuYhqad&EY_UnnzQfQVf+jA))`8!yX2~&G^ z?tVOKNTwuPnEF>(hNYM@ymhs$j%fMnN_ijf^WrA$8XJVX4Odz6$s)pG@4}IpoQ#rV zG%ff<_O7(|lQKNTZszC3&&tyij`}X2T2)|1oTxQU-kRK>TE@H3SZrMAfD z!e+Kq%Ub;H`tAi?_cYekY$@_&V|_=qG4hh&O`Wq~#7g*PkuZf7^i$`Rrc`#@#pLXlBdN!8*|!v?9zt2*zmG&3@$6 zd?UkZ!6`nGY@#Ll9yhzF88Ky-_dj~&G!f)&>yGcdKKhH7PIK**sI1w&iME_0(JP(J zDv5AkE}!n>8oqjoXl^29SO?hp4d$LsK7uPIN#9`Z%JbRt<}G#i`Ni|*g-=1pj>1c! z4`Bpf$_)iuRnoSJ1Mh zTl7fqH%1MItqECKCWRoV2Vs*({L)brC6agt?!m0U>~@ti3xWrR*O(t|H|yTzs`wT5 zNw{6skW_=I+HQE9yKBp16_+$xv}%IAeRnwTyH|H-?eYAEN&n)Olw~;FG~6`&F|+$A zKE%cTsV}qTvmd(Vj(py{O%rhI&Uy0|vxgfp%9iFX@fCud_Q2(5DSS}~TjYU@u6XF0 zyLv(rYZ;l<`vFx%Z z>@fs`nneI5i517%Z@+n#e*%|bB8Gn#HkyEPL0r_>GKBRRrzukykytw5ie*pl8K)uL z;4R$YI-8XN|GqSVSUqG~lddYyR;yH{wqhrCST?y_%sC_txO*YVINwlu2)sB z&Q@v>zW>LLhwWy(+IF=H8LXX?y;b0AKTdm+G(&v$MrqfT#b~|>R7nQMO;+V(FF`1g z9)=a@L#$ABOSY9Chby=J!{1uqs<@&D4#mYAS~nKZKn889xLta6bUubDmqz_3?jmdi zXQ(Z<3=^rEuP%M3h0LIvGV9g)JsuKM!_f}6UTHOjDgB>uqJ4akl2`}=H*ScQIA!6prcQI7taM3WlBjkL(FK@ zReM7I)_7KLv~``PbfL%7KZ&#lFfq zV@QB=L-|QaSY@6;*3RHJ;)|5f!TOm8>C+bZJ}G3TaxL?r27R0NxGRpOL2Hxs%a$;z zRpqt=_h}1G%T3N{ZiWvoit5&M=^A-u;9mbSluh4^Bnw`5cn=U4gRl z?xs7gjD|*^N*+iK6DWm1PWV+{+zNp$V@OXWyehpTiU>4gC9}LV)XxWzrnG+L;*zy% z+Hzc)vz8AX^tAmYHJO4$YoASxX0Y9>zSgv+u0;P*`L1hG9Poc!d-f#~u@POX_#1tu zSeIm?NZYfNt(~p340UIORwaZAM=JL7)o-;Ym%AEzs3ub7nY8h(zatj}&I$XJcxago zB-a_J_`>K(6^vtKw#qi8*%&vaS>2tj_Rnodc$8LI!|Sl1#=*@LgWkGRobL;x6)aav z^&v8KWUKjHpKq4ISsbIRK~Cs%UHRNgvG}2L=#$sgj%*E@!cev*ecEg8C9Svd9&r=) zTG@f%_^Ab16w)>|XcN04ak)3nW==rSdqOHb8W&fGs2OW5K_r%YV@M*qy*MCRchr88 zttyf%tj;oRg*PyL=i(mzDK_-C9@|@Jsc;%_#x5kzgD}`((5bIyY8x06w>|cqiZIAE zr5VK$5)QKkK${UvEEcEk$hxUXDt6g!mA+qRY^qP%>BII?TZ*iaiTGs}A6##))L&i|;X&xCX9I6tGMmAtm&L*dmYB45AhI}>Z zguC{{SqHv*MeVBTR>*weUO@B42vnpV<^V)iD1immCWDFNq#3eqFuW}CuqpY@W4?}} zn1yu%kxB{QFjHy%2fp{QGz>UaUggR|)xH?bqzP6ZZy_qTF+I`3Y@g}i1zoLq7(Ju; zD}Ah{%u#xIj1ZVPWCn_dp3-$Jnpsidu#>f(mTwt}3^A>#TQX!$+FQZ4GirfB-nj#Y z6DziS`|e+Ls=fC`Gq!JnEv(9I9#CsdSdFdkeu!6m4%b^j(cn$}hc|b^(Aed&wTPl{ zrtSYm>-qq@>0>UL*DBPzkCMO+W;(m68QapWY~A{`tJf{vyn5{xR5!-^;d?d7#|SpG z4{%odkImLG2b8U&zmLPZ*7F@{ZmyZF(>~R~%&Dc>Nfg@@I1?cHs7;qei}QJEirckW zVGy^IVnPgF&*nuMo8Sm!k81}E+DM%0^sv}ju&+~f*k9vBnI;?S8G}d~VA(_WQU;PW z8*$Fy+J$5aj6R~7JvdrBH9jff&rrm^Q`?oF=g)@8`SkSmn&$7kV;-UN)Xsu7PK;AJ zHoeWnTzbMp^ium?L1&7jHfN*2QmttNldf#N?Xn>|g6w9KzRVErGlDbA+Q8yqA)dk# zF3$A5*R-Ho-%)hK#+0VxXll@;q^!rShUz(;*!#&&VW`gMR=c)#<#RgYgL67U-kY99 z>?h}~UdL?KitdhV1CtwUhKyh@W{AocDyn^ph`<^9WTQ@evasUXKqEHgX}YDMHW+a7n6m8ArWE#uZ%S|MNA)*bh;tn8uV~4YWr0?z`XEmMa>EpfJj?s$Hc@GZLL{c}Nt{$k06Mt%q(eREy3kqMKIH zrnl-SgEr%foS^xhPSy=>uV7rA*@?fH#yz@ zMqN?y(ya6_Ut>3~rvFC#x_B@lObs$rQ9R4YN^A$Xlmvk?(CMKJ0uSC;q}j zT+mjQs!4@7J~A|GS3X)PvL+jAsx zu%u@oZwqe`(WxSe1|meqjUXm9-k$V~Da~aUM~ar(l@ZpS=7VCTROtv(pId6ndNrgp zd%HFRQ=Wp~sdg|Gi-dvEfV^w_smSt*pSGeE`;lvxJ$+z{$px?Wv{6MnheW>ckzCmp z?(V%snrb|;$)(!Fm>Ee|mO_X}2A$??4gDwu0s}Kcxqw8&>x(g%qHp!$OTX5i#$kl3!)6qXPM$w=UbumG2f0SowiSNUTEWIPH#WA7e z;S3w;K+GbTT9rAK(jtA=x0n;2cV}JMR7%pN_H=ui3|ZdnB4!9NDzid)=q>q+0!6>P zGxUjVbc%Au{p3@N2|N8H29+RJZBAj|Lb8?39D!uPxK?h(Ev(pD?=(2)OO?m7V!TrH zjk-YwhQlZ;TDuB1R~@0n$`vAhdK%u2?UGi<_VMC88-W+CUi7hf3g2ZavXj4t&7-UA zhHSn;+C(}rwU=%hQnrY&D0P&7N?CSak9k*>S7nWoz~79lNgYL*uC5CpYGM-B%$>A?%?Gw@eh$3OCmkGqm57m zkw$AeQ&?DP-C9&XtDR=f)1KF2r4i=Mk+|5`%-k)-J4z2T&BgiRpgF~|*mzSr;0Ed~ z4>p+jt_^z@3vTQ%y7(((fbyZH^2%QE=++}+@T9jP_@I?Q3G2rmjGDwbQd z5^}oiT4yIKvf5ZFX$^QW2-P)6LREle!pC*OXech~YRQ6&fzbA&(Y(a%%5L;vu#Po; zBt_#-ahgmT5;JjaimM8W%017cSFY?~CTN-T34`(U?Uh6k6P8m=0mQmN5v(wpQ4&$^ z`ut|aOusNg8UiQ}k?b?oj63W=xw0asaz}#EqKp$g_hC694HE@ZN(fRe#`KbwIU-8g zVDooEn}VedOj}^VV&>{li$%aFBPMSo49DOfWs~71 zPcY-u87Y=nTdI0K7tb+P@DbI7k~<1fI(xSk|A*R%1DTfIlnM#6?XH&Dgo-*(=L2Mu z{Gv*$Is8+vW_=c6u{&yjK;1(S^aRH+9C?iDI%gD2cNmyvpr~(R_rrgFdMvhe%CDA_Qew z=hE=C)Uih4EPXd*#1@n2qIkA6{+c=&wVkPwNZ$~SX;FDtdJ)g9!!lo0=YFgcv`YNQ z8A3qYNTISI_QoU4-o79aR^%BGscMw5*dd7q>N_B(I;}v-ix^3f-K6})G0^0(arvdO zS95-Dd%3le(8R@Uo+WDARe{o0UdmDw0wHU@Fikx!tsP-U6mO2!l9EWLhV2V#CTg77 z6H%jrKvEjn6j=z}OPClN!kcnf?ak-%iXl$YoWzKwW+^EcC3th(cjz+44eEm{51|)| zRCkq@nTJMyr}UnQK#q28D;WdDJc;`$lS{;@qRYRdCHB%N3UKse6=|||uA(5C=qYh} zsRCP{D$86318Tq1%!CIr(*dgkX!nLg4w;(AJyk%dOMnqHqodE3`KX>k#%TeR#*uzL z*lCk*JFrf{VBFSF!FX4WO2*pJHOEbGtwos1L`5be0n5EtadYc5?#(KVkHD69;m}~c!&nql0{z6b21ddLu_#ZZ;@#q zy(#lk`dYLKXgXd09AOmErgx^%t@*i?MVpEnbq&Ik+DmyE9dC&2Kbh0mX@|9Lqbx5r zlEt^0el7t^9|ti>j}4225;}3&w+-7SZPjBmEL%m(gI$x^K_H88p^#<4?}Zct$iBfW zrPLL(If~?}a(y6`c}Ck2m@EINsaH9ujJU#h}rsz-?+^F46+sq9mhsqa(HA zBtPKLg53HyMXi{XAZ`Yewg_pdlrW%&9XxUv5Q`5>on5&!8b(A9r=r%9Jtgg5BuUHE zi*3_YYJ0^Df2q=(_i%|Vw!(07#16jb^SgW&+1**(N?KGV-JOR1P@l7)a>Vgq(6LC@ z`5sm>;cikqW)w=t0z{3@H#Na$Y6XTE=3QtbEhDCa6{M}J*@$>CC$T*^b<<~fTiQ>G zTcU`wu?&x{DUc>ga6xZxXYdyX2eZ&MkU$W z{Ck#m7aLJe)7EP?gn4Z<(c)L_FyJP8Gn@QBw3w;%F%ea=>4QfryP0M_gx0!-4 z=w~x=x4opuXv@?3@@4!^x%D6+qd~r>ol=xf^Ej8{Ki)f3>%%~)HTDc$Tg@igN>OY0 zq>+Uh=GmfJOAhTJW2nh#&z2HFJ)gYKOt(JYqV)x#@szb;B}5ftBBq}yrdPae6)O@Z zcfF}1Vw*0^dnRF}&LIMsH5%KYZ7qGQ>tZwrR5eB3j}Y=4l%xxdy{x?Puq?|-LFMJq zre!Kt5FgWv6SnJd`O(USPX9t?i5gScv7`S66=NN!zO~zDBVLuEs{YwDco8u&SK;92 zqwUzi1wyFxL{Ss>18Ih^gw#k}QynA*wHQ75%2J$ZTvzB!IF$$)Uqj~>KIyKtP13>1 zs)}nq*yUK%#jy3pvaR@FDlL#M;^|R_u_!SNgiV7|$c}2SujD0fzF0FT9~6vok5}`P zVqZJgd?inuE2qki{*Fu=iLcd0;?0rDC|?&H%c!$#ldXFX@c-3zX1jGA%NbtRd5SFu zfhEAAEd$Ag;v7JhJP^m{h|ypnS0p7;A|X;FxJgTdqPsjp9xzXm@Bgc+*RTg}DUJbC zd#zPHSJ&Ltv)kK`%!bWxBtVH4TA7X`?9>wH57oS(oUh{v1umZgC#*} zH>AMd%f(RCrtjGOj0;rOq^Ion$~jXS z!_ojlsnqg~ZgtPj&WFp6uv%`fTwL+X+y%uJ*%+MB|;cl1e=aCHSfBCRHtNN zcJ1mds8-!<>Y6tH2+vA52@y!DEVtG)Bzbvt@)q8!CS#483A=V78hyWr5j|>yeoa1D z0!j^|&NUGsmOK7DxKi>AxFN%tABjN90|K$~9o#V3<6*=f8y>YUx8m0FH8jHv%23GN z%Z52W6ZvC2HS{}I1iJ&07I8hXb+XIBk(+U8xJimHjIpBOc$NhH&0)|mQbdeZ5CyDt zXsib!8JExrr-~`YqQn_5-;6xqu*$?Zy4gNAU5-iB2ED6Kf44wm{(& zAOwSOKkhM+AA?OkISAVPIDtmf6QQQuOAjj`@-a_z6VWQXM+>_u=FwKU?!^&Wa?ytC z+qzQ?nOql3U2<=4qN`>W_3=*kU@;tBNH(28h&Ckp)y1)I9nJX=<4Q07I^d+e=EWPp zI1_V?KLWWU|tkmt5)dg?*&xR;ae}UUpePKcm)WfwCG|>Ya1>+X+!RcuQd)@NL}r;d z>SX_-^IB~ELzE$r1wje)(#w;KVYlKNQ8gisO6C^kF zJAko&c32SNyrZaRC9#4o=)>77WiD&}^Wm#d(fVv*{jUg{oIa-qclw%U%19iYhA!Ha zJ9z)Q62eWN2L%_Z=39T`lcsBMx4`sMY||^$dxu;)#gexg8~B{t2_MuEv|chEPp%l3 zb@T2=9E_~=8(fgc20y&K_{%d0;6L3C2i7Pt;vL*Z_?X5;R6->4OG>cP%6s6XNUid5 zPW$f1FnsebvAzpvCJC_I=#hdg{yG=5gD3NOz{~QD)Xe-jKNb27z{vv#-z`$oJ-Oi) z#}Tj|v*hfo^jlFDeY6m?lry(hr-CJNQW) zi}cp~cHMr!tQyFf$62m$})c3s?V|Zb=BZ=GOJhhn)MjL7Hu6?7> zEDU53uHU~+I#mS+Ax{lv@GfcB66mB#OTH|tC*Of@X;BKZV$tQG!w?R6b((i#DewSM zhD4l%e6R@!Kci;j^2r<^Gw!i`rxD@;&&fDOixfG(d0v*f+qyq;sy>TsSyXCtgD=gk zg~d=dr}mL@Y4#}99$VE5A|JiXB3b{!i=-e^IPa<9%fgHCI|*}rl_R`pfRoNQzicZv zz=~z>5>u+a0d!)@k}ussjyv6c%eKt2V!R{Nnm{&nM8A;ks7rjC&5Q(J8OKFdno!5u z)`5hGi)sNGlB^Nk%XmC2kJh`8+%zY7g|wo6UKFHkV=umYbw2 zw+Gu~Wa|zibQuHSGCA1LeyaHF>f)qV;$kZo-I|QF+#TIdvg97WO4IAznQqU?&M{qhK6WbZ7tYedCZylW-2hiZnnVgYQd$5jy&*FFgrDZ5f7|_p z6_+oB7%Q+*jPz#!SjEbUB(2XU;<}$R3cmeNh=wEm+M78U;r2}NX^UdrxjB$?20ZitY zvPLZN(gZ}12oY}>=@FT-tp7l9&G=%`zs0FcAr1} z>B$}9NB@kf)n;U!aE+SJZrk_5aA?aJ$@B35Qbm4e8OiZ-U7Z{_ZQJ38SB!Y}{^RNX zhu!zb2bV{mW*=rpeq?i?(tnzrvmsCBx3V5d{%)Y915QulVKYvTh^Q+gdF~LJ|FJ#haELenmD%;lz<=_3%Xb2>3RwUU0z-mF)w`s)>CPv`XujADKi8+2xQ{IZ z%rV7JI6dYyJRgkQ9P}GJ3_rjx zRQiY6z3-HJ!P%Pc&;Ggljkav#N@j!@*uQGFq=+fx#GC`6oyCpbwW1BqIHQww>)}>H zgp+(#`BZ^qWgoX-UMNdRY1vbN*43MM5$NM<2NA_Mz7)rBc-8dY8WUaEt4vBNH3mwDh zS@d*?q7K5!G^V~7^OX4C#D5c3$^j2AJ2&1~+Qcbk&}!bQX9|>k7v-CyC%2-Rg8k^1b-~8;qOk<7 zK4dO1VFMY}v%gt`#Rsp5mD5|%-%-Vy_GYbik9(nJ$Upt5@{WDorc7^;?xfBp8=)gU zKgeLhVMZ*B6kM^?Oj6d@o5r6VY$J$pi5%AjR=cd;TfFBiH56r-z(OqsTb~v*^J*`> z<}_8O-u0n=_rgUkfEMo!!#f6|uSj^e((Zw#0cQMmkI#eBbDDS$tHLYc@s!unp#gDCm z@@3)b`G9ModFoAKr-si*CetyUg1h%`uH@b~diXvbzVCK04T)|^VB0BLnj}1hE#52l zB!8Wss=(@BNM`T+$STq-J9=VSG7?^1?Ap)u&aR<)sMxYrB9bt)M=2QvE3u;|3*jLI6^N~E{6NY9q)oDV8`wtnH)q{HY>HaX7FHD;4WBC}hY@~^k*-xPtE55(X?@EAK_CdNDw0|!L&;1n^QtEkS@I;U88EIO7mJR0L`<#rCoKdvQ0&q*$*hI4y36`B5lf5T#Fv7GUbm@EI zLsF(3dpgIUfobt#_MJ315o8pYgIbUsV&#GuV#S9E#GDw))(z~0cei)i z;Zl6OlcdG)9q~!i&e(0XK*=;=K`IB(7fhNr$rz*ow)ySFuo5*biOJGIJ#RGAPcjo@ zwA(jw5>bMDCpJ@#tD3;(Ja&nVze|TG68nW!R0Xk8J@fjqF1q{cV!T#YTl^^p|Luc= zgZ!yYWwjOYW<1=sCTn)m%AFHkQRSmm_RB<{_I*@cJW-?T$E!wRcDCDd|9mHp5 zd>6qZxU zskM6NEfJy@I%U9 zcSU25gNC7CkqnY8l6Wx%Z2Nl=R(X3;-6ax=`NyMr%Q_3 zuB#!yp~Z!z!J-nM(_Rvbjf(`$$P}y_mr4q?u$3bM)myPd$Pgy zS<{mZcGH^D>k+>;*P048+iPnoSl@#}=`|J9mI^NWrOQ#Z+_*8<_hh5Jc2gC$5`5`E zHs6VBy0OW|TvPmpefrb}!;D_biHBJ_JknYB@~k$-3zIL+2d81z--{j56t>&EkG{k9?ICB}|C_i3$%q0^Z>e}_L<(>F327=~lYii15^7RIEZM<|nq zi#ebB2$>?mW5uEntzi`hQ<$`hDeAooZZQxSSxISu6m-$@%TbY17wI3W@19;cH8B~W zH;8(A>XZQkYj5`q{$2ijn@;tje!O9PN!Aqn$S1uiMAvh84m~|Z|GG=PwzcHw@Z>zL zgm}c5#}MYm;I8FH@N9H)$eZA!w29CDu_C0--`4~PEy(GtT%Aud>|fFhMeLJ1gV}e%up?I!pR>3(#l#FKDky zY7ggCi_UC)s(P@Y)_B8=s-^}NB*{pEJuRNiMZ(|axJ<*K@oDaS8QRC!BjDa_7kss) z09C>Oya$yLD5;XvrwCqltudnpoZ1GL_M$NicCN*tXk??ZG4DQ^H)=4%sx~9730Liq z-Al3+D?DuAg~E@Z7$f|RI_PguDTY9iqEN;mXZeV=_SfQ+kn9sDPVo3^^*p5KD}_fVIG^@XYD z43}5@o$Z(p`c0xWWMYUzf*l>{%DJ^iDe@N z-bDr4!9-=JC!>rx{x-dXG5ckoveL5zP`i(0;5KU@KJcQZ@3I)-o2rn{7S*Y^aJCX5 zroJfB4l7MaE?@V%k5BrqBV@YY5pqbL68|h76sivvI})hzijd#pEf}u+GwlIF(Go~{ z9nSX&hWW#-0qbNobjnvZfES>sFG$V``q`q=AUuiUfkcA=xyE@{DP+j@pgNJc*caIV z1hp3mX8-eF|DE!PX`>{Pjbw=zjfgvl2?~Cp;6uD%2ogj91ceu+)b1l^LecyH7wz(> zWh7%S@|}f2ekFqk;q8dPMK>cmoKgzoc)m18V0@(RJn9Kb2&iU1^1iM*+v6&0gKTv# zGW|#U!Ad-SPxyX&G5c6p>&f|K@gf6nsx*U5bfR08P^5ct!NJAMXHs{-04d&B`a6NW z5voDFZh$*Ti_G$DQ#e7eye)Dw+`iMt0t@Cg?m-gzzB;^fYyPSG58~Q2X3_qJjCR|z zXHOmY*1VL+9JBp5`>-`R4C%`I8DY@6p?#~><1-bsIy*nQp8GnN8ee!f7X*>?wn`(b zzPOHdmPlK!4h&g(13l0)M!*)@6seZ+td2*bVeRaT0@V;9(sbThV8eSzOr~#`Li!4s z)_+7ShTS6O#NDl0WlyU59)57r-{KiFY9Jyb9r2^sx?z)=Hkt?lsrk9Z+lUCej)hVM zf~(JQ(kEir+d}2Y*#)B6mA+??PvL%lzDU%F6jgPrs1HjGp3i;aHBwv+`%ri|=&*NH zjuFe^A&&5a;qZF&!e4iK&e184w5_{_b`h@QHizM%t2tReiw9@D01wr!j7=;qPwX8f z9jAM-ZMHlZ%Xl?g2zqfei|j)C3Z#rII%dO?GP=P!W!1;hn^?5!z4*zNPpA0GvrCdn@ jBOiyXAKhy37;Y+XOarEzn}GXM9IGLjzm!fZ>gIm|GufT6 literal 0 HcmV?d00001 diff --git a/engine/core/locale/en_US/LC_MESSAGES/django.po b/engine/core/locale/en_US/LC_MESSAGES/django.po index 8cf5a7e4..765824d6 100644 --- a/engine/core/locale/en_US/LC_MESSAGES/django.po +++ b/engine/core/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,9 +27,11 @@ msgstr "Is Active" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"If set to false, this object can't be seen by users without needed permission" +"If set to false, this object can't be seen by users without needed " +"permission" #: engine/core/abstract.py:26 engine/core/choices.py:18 msgid "created" @@ -73,7 +75,7 @@ msgstr "Timestamps" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "Activate selected %(verbose_name_plural)s" #: engine/core/admin.py:166 @@ -82,7 +84,7 @@ msgstr "Selected items have been activated!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "Deactivate selected %(verbose_name_plural)s" #: engine/core/admin.py:184 @@ -90,13 +92,13 @@ msgid "selected items have been deactivated." msgstr "Selected items have been deactivated!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Attribute Value" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Attribute Values" @@ -116,12 +118,12 @@ msgstr "Stock" msgid "stocks" msgstr "Stocks" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Order Product" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Order Products" @@ -129,7 +131,31 @@ msgstr "Order Products" msgid "children" msgstr "Children" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Has images" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Export selected %(verbose_name_plural)s to marketplaces' feeds" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "Selected %(verbose_name_plural)s have been marked for export." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Ban selected %(verbose_name_plural)s from marketplaces' feeds" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Selected %(verbose_name_plural)s have been banned from export." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Config" @@ -153,7 +179,8 @@ msgstr "Delivered" msgid "canceled" msgstr "Canceled" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Failed" @@ -268,7 +295,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Rewrite an existing attribute group saving non-editables" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rewrite some fields of an existing attribute group saving non-editables" @@ -317,7 +345,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Rewrite an existing attribute value saving non-editables" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rewrite some fields of an existing attribute value saving non-editables" @@ -371,11 +400,11 @@ msgstr "For non-staff users, only their own orders are returned." #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -407,13 +436,13 @@ msgstr "Filter by order status (case-insensitive substring match)" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." #: engine/core/docs/drf/viewsets.py:366 msgid "retrieve a single order (detailed view)" @@ -599,26 +628,17 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…`\n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" @@ -634,12 +654,10 @@ msgstr "(exact) Product UUID" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -1170,11 +1188,11 @@ msgstr "Buy an order" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"Please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" #: engine/core/graphene/mutations.py:580 msgid "add or delete a feedback for orderproduct" @@ -1193,9 +1211,9 @@ msgstr "Orderproduct {order_product_uuid} not found!" msgid "original address string provided by the user" msgstr "Original address string provided by the user" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1211,8 +1229,8 @@ msgstr "ElasticSearch - works like a charm" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Attributes" @@ -1248,7 +1266,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "Which attributes and values can be used for filtering this category." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimum and maximum prices for products in this category, if available." @@ -1286,7 +1305,7 @@ msgid "represents feedback from a user." msgstr "Represents feedback from a user." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Notifications" @@ -1294,7 +1313,7 @@ msgstr "Notifications" msgid "download url for this order product if applicable" msgstr "Download url for this order product if applicable" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Feedback" @@ -1302,7 +1321,7 @@ msgstr "Feedback" msgid "a list of order products in this order" msgstr "A list of order products in this order" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Billing address" @@ -1330,7 +1349,7 @@ msgstr "Are all of the products in the order digital" msgid "transactions for this order" msgstr "Transactions for this order" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Orders" @@ -1347,7 +1366,7 @@ msgstr "Product's images" msgid "category" msgstr "Category" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Feedbacks" @@ -1388,7 +1407,7 @@ msgstr "Products only available for personal orders" msgid "discount price" msgstr "Discount price" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Products" @@ -1400,7 +1419,7 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Products on sale" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Promotions" @@ -1408,7 +1427,7 @@ msgstr "Promotions" msgid "vendor" msgstr "Vendor" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1416,11 +1435,11 @@ msgstr "Vendor" msgid "product" msgstr "Product" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Wishlisted products" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Wishlists" @@ -1535,7 +1554,7 @@ msgstr "Parent attribute group" msgid "attribute group's name" msgstr "Attribute group's name" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Attribute group" @@ -1721,12 +1740,14 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." #: engine/core/models.py:456 msgid "name of this brand" @@ -1770,15 +1791,15 @@ msgstr "Categories" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1804,8 +1825,8 @@ msgstr "Selling price" msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Associated product" @@ -1905,7 +1926,7 @@ msgstr "Provide a clear identifying name for the product" msgid "product name" msgstr "Product name" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Add a detailed description of the product" @@ -1925,196 +1946,204 @@ msgstr "Part number" msgid "stock keeping unit for this product" msgstr "Stock Keeping Unit for this product" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Whether to export this product to marketplaces" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Export to Marketplaces" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Group of this attribute" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "String" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Integer" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Float" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Boolean" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Array" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Object" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Type of the attribute's value" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Value type" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Name of this attribute" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Attribute's name" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "is filterable" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "designates whether this attribute can be used for filtering or not" -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribute" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Attribute of this value" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "The specific product associated with this attribute's value" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "The specific value for this attribute" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Image alt text" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Upload the image file for this product" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Product image" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Determines the order in which images are displayed" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Display priority" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "The product that this image represents" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Product images" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Percentage discount for the selected products" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Discount percentage" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Provide a unique name for this promotion" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Promotion name" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Promotion description" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Select which products are included in this promotion" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Included products" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Promotion" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2126,123 +2155,123 @@ msgstr "" "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Wishlist" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Documentary" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Documentaries" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Unresolved" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Address line for the customer" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Address line" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Street" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "District" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "City" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Region" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Postal code" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Country" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Full JSON response from geocoder for this address" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Stored JSON response from the geocoding service" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Address" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adresses" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2258,71 +2287,71 @@ msgstr "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Unique code used by a user to redeem a discount" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Promo code identifier" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Percentage discount" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "End validity time" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Start validity time" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "Timestamp when the promocode was used, blank if not used yet" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Usage timestamp" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Assigned user" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Promo code" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Promo codes" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2330,161 +2359,161 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Promocode has been used already" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Applied promo code" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Shipping address" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Order status" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "JSON structure of notifications to display to users, in admin UI the table-" "view is used" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "The user who placed the order" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "User" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Buy time" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "human-readable ID" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Order" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "A user must have only one pending order at a time!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "You cannot add products to an order that is not a pending one" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "You cannot remove products from an order that is not a pending one" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "You can only buy physical products with shipping address specified!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Address does not exist" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "You can not purchase at this moment, please try again in a few minutes." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Invalid force value" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "You cannot buy an order without a user!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "A user without a balance cannot buy with balance!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2492,14 +2521,14 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Invalid payment method: {payment_method} from {available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2513,32 +2542,33 @@ msgstr "" "product in the order, and a user-assigned rating. The class uses database " "fields to effectively model and manage feedback data." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Feedback comments" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "References the specific product in an order that this feedback is about" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Related order product" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Product rating" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2560,128 +2590,128 @@ msgstr "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "The price paid by the customer for this product at purchase time" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Internal comments" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "User notifications" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Parent order" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Product quantity" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Product line status" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Orderproduct must have an associated order!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Wrong action specified for feedback: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "you cannot feedback an order which is not received" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Name" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL of the integration" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Authentication credentials" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "You can only have one default CRM provider" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRMs" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Order's CRM link" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Orders' CRM links" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Download" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Downloads" @@ -2881,12 +2911,11 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"Thank you for your order #%(order.pk)s! We are pleased to inform you that we " -"have taken your order into work. Below are the details of your order:" +"Thank you for your order #%(order.pk)s! We are pleased to inform you that we" +" have taken your order into work. Below are the details of your order:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2996,12 +3025,11 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" -"Thank you for your order! We are pleased to confirm your purchase. Below are " -"the details of your order:" +"Thank you for your order! We are pleased to confirm your purchase. Below are" +" the details of your order:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -3129,14 +3157,10 @@ msgstr "Handles the logic of buying as a business without registration." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3165,23 +3189,19 @@ msgstr "favicon not found" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." #: engine/core/views.py:445 @@ -3199,9 +3219,9 @@ msgstr "Returns custom variables for Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3213,15 +3233,17 @@ msgstr "" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." #: engine/core/viewsets.py:179 msgid "" @@ -3244,14 +3266,14 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." #: engine/core/viewsets.py:217 msgid "" @@ -3316,15 +3338,15 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." #: engine/core/viewsets.py:652 @@ -3332,31 +3354,31 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." #: engine/core/viewsets.py:914 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" #: engine/core/viewsets.py:974 @@ -3383,16 +3405,16 @@ msgstr "Handles operations related to Stock data in the system." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." diff --git a/engine/core/locale/es_ES/LC_MESSAGES/django.mo b/engine/core/locale/es_ES/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5706fff4be26fa6cbe556b4d29115086ecbe050c GIT binary patch literal 94808 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 B+L-_V literal 0 HcmV?d00001 diff --git a/engine/core/locale/es_ES/LC_MESSAGES/django.po b/engine/core/locale/es_ES/LC_MESSAGES/django.po index f73ae8b4..c065ef3e 100644 --- a/engine/core/locale/es_ES/LC_MESSAGES/django.po +++ b/engine/core/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Está activo" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Si se establece en false, este objeto no puede ser visto por los usuarios " "sin el permiso necesario" @@ -76,7 +77,7 @@ msgstr "Marcas de tiempo" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "Activar %(verbose_name_plural)s seleccionado" #: engine/core/admin.py:166 @@ -85,7 +86,7 @@ msgstr "Los artículos seleccionados se han activado." #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "Desactivar %(verbose_name_plural)s seleccionado" #: engine/core/admin.py:184 @@ -93,13 +94,13 @@ msgid "selected items have been deactivated." msgstr "Los artículos seleccionados se han desactivado." #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Atributo Valor" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Valores de los atributos" @@ -119,12 +120,12 @@ msgstr "Stock" msgid "stocks" msgstr "Acciones" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Pedir un producto" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Pedir productos" @@ -132,7 +133,37 @@ msgstr "Pedir productos" msgid "children" msgstr "Niños" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Tiene imágenes" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "" +"Exportar %(verbose_name_plural)s seleccionado a los feeds de los mercados" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "" +"Se han marcado para exportación los elementos seleccionados " +"%(verbose_name_plural)s." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "" +"Prohibir %(verbose_name_plural)s seleccionado de los feeds de los mercados" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "" +"Los productos seleccionados %(verbose_name_plural)s han sido prohibidos para" +" la exportación." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Configurar" @@ -156,7 +187,8 @@ msgstr "Entregado" msgid "canceled" msgstr "Cancelado" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Fallido" @@ -208,8 +240,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicar sólo una clave para leer datos permitidos de la caché.\n" -"Aplicar clave, datos y tiempo de espera con autenticación para escribir " -"datos en la caché." +"Aplicar clave, datos y tiempo de espera con autenticación para escribir datos en la caché." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -245,8 +276,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"Compra un pedido como empresa, utilizando los `productos` proporcionados con " -"`product_uuid` y `attributes`." +"Compra un pedido como empresa, utilizando los `productos` proporcionados con" +" `product_uuid` y `attributes`." #: engine/core/docs/drf/views.py:180 msgid "download a digital asset from purchased digital order" @@ -273,7 +304,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Reescribir un grupo de atributos existente guardando los no editables" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Reescribir algunos campos de un grupo de atributos existente guardando los " "no editables" @@ -301,7 +333,8 @@ msgstr "Reescribir un atributo existente guardando los no editables" #: engine/core/docs/drf/viewsets.py:156 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Reescribir algunos campos de un atributo existente guardando los no editables" +"Reescribir algunos campos de un atributo existente guardando los no " +"editables" #: engine/core/docs/drf/viewsets.py:166 msgid "list all attribute values (simple view)" @@ -324,10 +357,11 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Reescribir un valor de atributo existente guardando los no editables" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" -"Reescribir algunos campos de un valor de atributo existente guardando los no " -"editables" +"Reescribir algunos campos de un valor de atributo existente guardando los no" +" editables" #: engine/core/docs/drf/viewsets.py:219 engine/core/docs/drf/viewsets.py:220 msgid "list all categories (simple view)" @@ -383,12 +417,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Búsqueda de subcadenas sin distinción entre mayúsculas y minúsculas en " -"human_readable_id, order_products.product.name y order_products.product." -"partnumber" +"human_readable_id, order_products.product.name y " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -409,8 +443,8 @@ msgstr "Filtrar por ID de pedido exacto legible por el ser humano" #: engine/core/docs/drf/viewsets.py:336 msgid "Filter by user's email (case-insensitive exact match)" msgstr "" -"Filtrar por correo electrónico del usuario (coincidencia exacta insensible a " -"mayúsculas y minúsculas)" +"Filtrar por correo electrónico del usuario (coincidencia exacta insensible a" +" mayúsculas y minúsculas)" #: engine/core/docs/drf/viewsets.py:341 msgid "Filter by user's UUID" @@ -424,9 +458,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordenar por: uuid, human_readable_id, user_email, user, status, created, " "modified, buy_time, random. Utilice el prefijo '-' para orden descendente " @@ -573,7 +607,8 @@ msgstr "Reescribir un atributo existente guardando los no editables" #: engine/core/docs/drf/viewsets.py:537 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Reescribir algunos campos de un atributo existente guardando los no editables" +"Reescribir algunos campos de un atributo existente guardando los no " +"editables" #: engine/core/docs/drf/viewsets.py:544 msgid "retrieve current pending wishlist of a user" @@ -628,31 +663,20 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrar por uno o varios pares nombre/valor de atributo. \n" "- Sintaxis**: `nombre_attr=método-valor[;attr2=método2-valor2]...`.\n" -"- Métodos** (por defecto `icontiene` si se omite): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- Tipificación de valores**: Se intenta primero JSON (para poder pasar " -"listas/dictos), `true`/`false` para booleanos, enteros, flotantes; en caso " -"contrario se trata como cadena. \n" -"- Base64**: prefiérelo con `b64-` para codificar en base64 el valor sin " -"procesar. \n" +"- Métodos** (por defecto `icontiene` si se omite): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- Tipificación de valores**: Se intenta primero JSON (para poder pasar listas/dictos), `true`/`false` para booleanos, enteros, flotantes; en caso contrario se trata como cadena. \n" +"- Base64**: prefiérelo con `b64-` para codificar en base64 el valor sin procesar. \n" "Ejemplos: \n" -"`color=rojo exacto`, `tamaño=gt-10`, `características=en-[\"wifi\", " -"\"bluetooth\"]`,\n" +"`color=rojo exacto`, `tamaño=gt-10`, `características=en-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." #: engine/core/docs/drf/viewsets.py:617 engine/core/docs/drf/viewsets.py:618 @@ -665,12 +689,10 @@ msgstr "UUID (exacto) del producto" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Lista separada por comas de campos por los que ordenar. Prefiérela con `-` " -"para que sea descendente. \n" +"Lista separada por comas de campos por los que ordenar. Prefiérela con `-` para que sea descendente. \n" "**Permitido:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -876,7 +898,8 @@ msgstr "Eliminar la imagen de un producto" #: engine/core/docs/drf/viewsets.py:1146 msgid "rewrite an existing product image saving non-editables" -msgstr "Reescribir una imagen de producto existente guardando los no editables" +msgstr "" +"Reescribir una imagen de producto existente guardando los no editables" #: engine/core/docs/drf/viewsets.py:1154 msgid "rewrite some fields of an existing product image saving non-editables" @@ -1070,7 +1093,8 @@ msgstr "SKU" #: engine/core/filters.py:212 msgid "there must be a category_uuid to use include_subcategories flag" -msgstr "Debe haber un category_uuid para usar la bandera include_subcategories" +msgstr "" +"Debe haber un category_uuid para usar la bandera include_subcategories" #: engine/core/filters.py:398 msgid "Search (ID, product name or part number)" @@ -1171,7 +1195,8 @@ msgstr "Indique order_uuid o order_hr_id, ¡se excluyen mutuamente!" #: engine/core/graphene/mutations.py:249 engine/core/graphene/mutations.py:524 #: engine/core/graphene/mutations.py:573 engine/core/viewsets.py:753 msgid "wrong type came from order.buy() method: {type(instance)!s}" -msgstr "Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}" +msgstr "" +"Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}" #: engine/core/graphene/mutations.py:260 msgid "perform an action on a list of products in the order" @@ -1222,11 +1247,11 @@ msgstr "Comprar un pedido" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Por favor, envíe los atributos como una cadena formateada como attr1=valor1," -"attr2=valor2" +"Por favor, envíe los atributos como una cadena formateada como " +"attr1=valor1,attr2=valor2" #: engine/core/graphene/mutations.py:580 msgid "add or delete a feedback for orderproduct" @@ -1245,9 +1270,9 @@ msgstr "No se ha encontrado el producto {order_product_uuid}." msgid "original address string provided by the user" msgstr "Cadena de dirección original proporcionada por el usuario" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1263,8 +1288,8 @@ msgstr "ElasticSearch - funciona a las mil maravillas" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Atributos" @@ -1301,7 +1326,8 @@ msgstr "" "Qué atributos y valores se pueden utilizar para filtrar esta categoría." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Precios mínimo y máximo de los productos de esta categoría, si están " "disponibles." @@ -1334,14 +1360,15 @@ msgstr "Cómo" #: engine/core/graphene/object_types.py:542 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" -"Valor de calificación de 1 a 10, ambos inclusive, o 0 si no está configurado." +"Valor de calificación de 1 a 10, ambos inclusive, o 0 si no está " +"configurado." #: engine/core/graphene/object_types.py:416 msgid "represents feedback from a user." msgstr "Representa la opinión de un usuario." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Notificaciones" @@ -1349,7 +1376,7 @@ msgstr "Notificaciones" msgid "download url for this order product if applicable" msgstr "Descargar url para este producto de pedido si procede" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Comentarios" @@ -1357,7 +1384,7 @@ msgstr "Comentarios" msgid "a list of order products in this order" msgstr "Una lista de los productos del pedido" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Dirección de facturación" @@ -1385,7 +1412,7 @@ msgstr "¿Están todos los productos en el pedido digital" msgid "transactions for this order" msgstr "Transacciones para este pedido" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Pedidos" @@ -1402,7 +1429,7 @@ msgstr "Imágenes del producto" msgid "category" msgstr "Categoría" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Comentarios" @@ -1443,7 +1470,7 @@ msgstr "Productos sólo disponibles para pedidos personales" msgid "discount price" msgstr "Precio reducido" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Productos" @@ -1455,7 +1482,7 @@ msgstr "Códigos promocionales" msgid "products on sale" msgstr "Productos a la venta" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Promociones" @@ -1463,7 +1490,7 @@ msgstr "Promociones" msgid "vendor" msgstr "Vendedor" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1471,11 +1498,11 @@ msgstr "Vendedor" msgid "product" msgstr "Producto" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Productos deseados" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Listas de deseos" @@ -1577,8 +1604,8 @@ msgstr "" "Representa un grupo de atributos, que puede ser jerárquico. Esta clase se " "utiliza para gestionar y organizar grupos de atributos. Un grupo de " "atributos puede tener un grupo padre, formando una estructura jerárquica. " -"Esto puede ser útil para categorizar y gestionar los atributos de manera más " -"eficaz en un sistema complejo." +"Esto puede ser útil para categorizar y gestionar los atributos de manera más" +" eficaz en un sistema complejo." #: engine/core/models.py:88 msgid "parent of this group" @@ -1592,7 +1619,7 @@ msgstr "Grupo de atributos padre" msgid "attribute group's name" msgstr "Nombre del grupo de atributos" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Grupo de atributos" @@ -1608,11 +1635,11 @@ msgid "" msgstr "" "Representa una entidad de proveedor capaz de almacenar información sobre " "proveedores externos y sus requisitos de interacción. La clase Proveedor se " -"utiliza para definir y gestionar la información relacionada con un proveedor " -"externo. Almacena el nombre del vendedor, los detalles de autenticación " +"utiliza para definir y gestionar la información relacionada con un proveedor" +" externo. Almacena el nombre del vendedor, los detalles de autenticación " "necesarios para la comunicación y el porcentaje de marcado aplicado a los " -"productos recuperados del vendedor. Este modelo también mantiene metadatos y " -"restricciones adicionales, lo que lo hace adecuado para su uso en sistemas " +"productos recuperados del vendedor. Este modelo también mantiene metadatos y" +" restricciones adicionales, lo que lo hace adecuado para su uso en sistemas " "que interactúan con proveedores externos." #: engine/core/models.py:122 @@ -1785,7 +1812,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Representa un objeto Marca en el sistema. Esta clase maneja información y " "atributos relacionados con una marca, incluyendo su nombre, logotipos, " @@ -1835,8 +1863,8 @@ msgstr "Categorías" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1845,8 +1873,8 @@ msgstr "" "Representa el stock de un producto gestionado en el sistema. Esta clase " "proporciona detalles sobre la relación entre vendedores, productos y su " "información de existencias, así como propiedades relacionadas con el " -"inventario como precio, precio de compra, cantidad, SKU y activos digitales. " -"Forma parte del sistema de gestión de inventario para permitir el " +"inventario como precio, precio de compra, cantidad, SKU y activos digitales." +" Forma parte del sistema de gestión de inventario para permitir el " "seguimiento y la evaluación de los productos disponibles de varios " "vendedores." @@ -1870,8 +1898,8 @@ msgstr "Precio de venta" msgid "the product associated with this stock entry" msgstr "El producto asociado a esta entrada en stock" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Producto asociado" @@ -1929,13 +1957,13 @@ msgstr "" "Representa un producto con atributos como categoría, marca, etiquetas, " "estado digital, nombre, descripción, número de pieza y babosa. Proporciona " "propiedades de utilidad relacionadas para recuperar valoraciones, recuentos " -"de comentarios, precio, cantidad y total de pedidos. Diseñado para su uso en " -"un sistema que gestiona el comercio electrónico o la gestión de inventarios. " -"Esta clase interactúa con modelos relacionados (como Category, Brand y " -"ProductTag) y gestiona el almacenamiento en caché de las propiedades a las " -"que se accede con frecuencia para mejorar el rendimiento. Se utiliza para " -"definir y manipular datos de productos y su información asociada dentro de " -"una aplicación." +"de comentarios, precio, cantidad y total de pedidos. Diseñado para su uso en" +" un sistema que gestiona el comercio electrónico o la gestión de " +"inventarios. Esta clase interactúa con modelos relacionados (como Category, " +"Brand y ProductTag) y gestiona el almacenamiento en caché de las propiedades" +" a las que se accede con frecuencia para mejorar el rendimiento. Se utiliza " +"para definir y manipular datos de productos y su información asociada dentro" +" de una aplicación." #: engine/core/models.py:595 msgid "category this product belongs to" @@ -1974,7 +2002,7 @@ msgstr "Proporcionar un nombre que identifique claramente el producto" msgid "product name" msgstr "Nombre del producto" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Añada una descripción detallada del producto" @@ -1994,107 +2022,115 @@ msgstr "Número de pieza" msgid "stock keeping unit for this product" msgstr "Unidad de Mantenimiento de Existencias para este producto" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Si exportar este producto a los mercados." + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Exportar a mercados" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Representa un atributo en el sistema. Esta clase se utiliza para definir y " "gestionar atributos, que son datos personalizables que pueden asociarse a " -"otras entidades. Los atributos tienen asociadas categorías, grupos, tipos de " -"valores y nombres. El modelo admite varios tipos de valores, como cadenas, " +"otras entidades. Los atributos tienen asociadas categorías, grupos, tipos de" +" valores y nombres. El modelo admite varios tipos de valores, como cadenas, " "enteros, flotantes, booleanos, matrices y objetos. Esto permite una " "estructuración dinámica y flexible de los datos." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Grupo de este atributo" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Cadena" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Entero" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Flotador" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Booleano" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Matriz" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Objeto" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Tipo del valor del atributo" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Tipo de valor" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Nombre de este atributo" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Nombre del atributo" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "es filtrable" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Qué atributos y valores se pueden utilizar para filtrar esta categoría." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atributo" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Representa un valor específico para un atributo vinculado a un producto. " "Vincula el \"atributo\" a un \"valor\" único, lo que permite una mejor " "organización y representación dinámica de las características del producto." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Atributo de este valor" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "El producto específico asociado al valor de este atributo" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "El valor específico de este atributo" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2104,47 +2140,47 @@ msgstr "" "específicos y determinar su orden de visualización. También incluye una " "función de accesibilidad con texto alternativo para las imágenes." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "" "Proporcione un texto alternativo para la imagen en aras de la accesibilidad" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Texto alternativo de la imagen" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Cargar el archivo de imagen para este producto" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Imagen del producto" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Determina el orden de visualización de las imágenes" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Prioridad de visualización" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "El producto que representa esta imagen" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Imágenes de productos" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Representa una campaña promocional para productos con descuento. Esta clase " "se utiliza para definir y gestionar campañas promocionales que ofrecen un " @@ -2153,39 +2189,39 @@ msgstr "" "promoción y vincularla a los productos aplicables. Se integra con el " "catálogo de productos para determinar los artículos afectados en la campaña." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Porcentaje de descuento para los productos seleccionados" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Porcentaje de descuento" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Proporcione un nombre único para esta promoción" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Nombre de la promoción" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Descripción de la promoción" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Seleccione los productos incluidos en esta promoción" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Productos incluidos" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Promoción" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2198,30 +2234,30 @@ msgstr "" "productos, así como soportar operaciones para añadir y eliminar múltiples " "productos a la vez." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Productos que el usuario ha marcado como deseados" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Usuario propietario de esta lista de deseos" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Propietario de Wishlist" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Lista de deseos" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Representa un registro documental vinculado a un producto. Esta clase se " "utiliza para almacenar información sobre documentales relacionados con " @@ -2230,28 +2266,28 @@ msgstr "" "de almacenamiento de los archivos documentales. Amplía la funcionalidad de " "mixins específicos y proporciona características personalizadas adicionales." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Documental" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Documentaries" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Sin resolver" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Representa una entidad de dirección que incluye detalles de ubicación y " "asociaciones con un usuario. Proporciona funcionalidad para el " @@ -2260,63 +2296,63 @@ msgstr "" "información detallada sobre direcciones, incluidos componentes como calle, " "ciudad, región, país y geolocalización (longitud y latitud). Admite la " "integración con API de geocodificación, permitiendo el almacenamiento de " -"respuestas API sin procesar para su posterior procesamiento o inspección. La " -"clase también permite asociar una dirección a un usuario, facilitando el " +"respuestas API sin procesar para su posterior procesamiento o inspección. La" +" clase también permite asociar una dirección a un usuario, facilitando el " "manejo personalizado de los datos." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Dirección del cliente" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Dirección" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Calle" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Distrito" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Ciudad" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Región" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Promo code" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "País" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocalización Punto(Longitud, Latitud)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Respuesta JSON completa del geocodificador para esta dirección" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Respuesta JSON almacenada del servicio de geocodificación" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Dirección" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Direcciones" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2333,72 +2369,72 @@ msgstr "" "para validar y aplicar el código promocional a un pedido garantizando el " "cumplimiento de las restricciones." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Código único utilizado por un usuario para canjear un descuento" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Promo code identifier" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Se aplica un descuento fijo si no se utiliza el porcentaje" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Importe fijo del descuento" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Porcentaje de descuento aplicado si no se utiliza el importe fijo" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Porcentaje de descuento" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Fecha de caducidad del promocode" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Hora de fin de validez" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Fecha a partir de la cual es válido este promocode" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Hora de inicio de validez" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Fecha en la que se utilizó el promocode, en blanco si aún no se ha utilizado" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Marca de tiempo de uso" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Usuario asignado a este promocode si procede" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Usuario asignado" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Promo code" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Promo codes" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2406,21 +2442,21 @@ msgstr "" "Sólo debe definirse un tipo de descuento (importe o porcentaje), pero no " "ambos ni ninguno." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "El código promocional ya ha sido utilizado" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "¡Tipo de descuento no válido para el código promocional {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2428,142 +2464,142 @@ msgstr "" "dentro de la aplicación, incluyendo sus diversos atributos como información " "de facturación y envío, estado, usuario asociado, notificaciones y " "operaciones relacionadas. Los pedidos pueden tener productos asociados, se " -"pueden aplicar promociones, establecer direcciones y actualizar los datos de " -"envío o facturación. Del mismo modo, la funcionalidad permite gestionar los " -"productos en el ciclo de vida del pedido." +"pueden aplicar promociones, establecer direcciones y actualizar los datos de" +" envío o facturación. Del mismo modo, la funcionalidad permite gestionar los" +" productos en el ciclo de vida del pedido." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "La dirección de facturación utilizada para este pedido" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Código promocional aplicado" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "La dirección de envío utilizada para este pedido" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Dirección de envío" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Estado actual del pedido en su ciclo de vida" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Estado del pedido" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "Estructura JSON de las notificaciones para mostrar a los usuarios, en la " "interfaz de administración se utiliza la vista de tabla." -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "Representación JSON de los atributos de la orden para esta orden" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "El usuario que realizó el pedido" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Usuario" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Fecha de finalización de la orden" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Comprar tiempo" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Un identificador legible por el ser humano para la orden" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "ID legible por humanos" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Pida" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "Un usuario sólo puede tener una orden pendiente a la vez." -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "No puede añadir productos a un pedido que no esté pendiente" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "No se pueden añadir productos inactivos al pedido" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "No puede añadir más productos de los disponibles en stock" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "No puede eliminar productos de un pedido que no esté pendiente" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} ¡no existe con la consulta <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Promocode no existe" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" "Sólo puede comprar productos físicos con la dirección de envío especificada." -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "La dirección no existe" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "No puede comprar en este momento, por favor inténtelo de nuevo en unos " "minutos." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Valor de fuerza no válido" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "No se puede comprar un pedido vacío." -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "No se puede comprar un pedido sin un usuario." -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "¡Un usuario sin saldo no puede comprar con saldo!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Fondos insuficientes para completar el pedido" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2571,14 +2607,14 @@ msgstr "" "no puede comprar sin registrarse, facilite la siguiente información: nombre " "del cliente, correo electrónico del cliente, número de teléfono del cliente" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Forma de pago no válida: ¡{payment_method} de {available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2594,33 +2630,34 @@ msgstr "" "clase utiliza campos de base de datos para modelar y gestionar eficazmente " "los datos de los comentarios." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "Comentarios de los usuarios sobre su experiencia con el producto" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Comentarios" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Hace referencia al producto específico de un pedido sobre el que trata esta " "opinión" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Producto relacionado con el pedido" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Valoración del producto asignada por el usuario" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Valoración del producto" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2638,135 +2675,136 @@ msgstr "" "atributos del producto y su estado. Gestiona las notificaciones para el " "usuario y los administradores y maneja operaciones como la devolución del " "saldo del producto o la adición de comentarios. Este modelo también " -"proporciona métodos y propiedades que soportan la lógica de negocio, como el " -"cálculo del precio total o la generación de una URL de descarga para " +"proporciona métodos y propiedades que soportan la lógica de negocio, como el" +" cálculo del precio total o la generación de una URL de descarga para " "productos digitales. El modelo se integra con los modelos Pedido y Producto " "y almacena una referencia a ellos." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "" "El precio pagado por el cliente por este producto en el momento de la compra" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Precio de compra en el momento del pedido" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarios internos para los administradores sobre este producto solicitado" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Comentarios internos" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Notificaciones a los usuarios" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "Representación JSON de los atributos de este elemento" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Atributos ordenados del producto" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Referencia al pedido principal que contiene este producto" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Orden de los padres" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "El producto específico asociado a esta línea de pedido" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Cantidad de este producto específico en el pedido" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Cantidad de productos" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Estado actual de este producto en el pedido" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Estado de la línea de productos" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "El pedido-producto debe tener un pedido asociado." -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Acción incorrecta especificada para la retroalimentación: ¡{action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "no se puede comentar un pedido no recibido" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Nombre" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL de la integración" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Credenciales de autenticación" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Sólo puede tener un proveedor de CRM por defecto" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRMs" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Enlace CRM del pedido" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Enlaces CRM de los pedidos" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Representa la funcionalidad de descarga de activos digitales asociados a " -"pedidos. La clase DigitalAssetDownload proporciona la capacidad de gestionar " -"y acceder a descargas relacionadas con productos de pedidos. Mantiene " +"pedidos. La clase DigitalAssetDownload proporciona la capacidad de gestionar" +" y acceder a descargas relacionadas con productos de pedidos. Mantiene " "información sobre el producto del pedido asociado, el número de descargas y " -"si el activo es visible públicamente. Incluye un método para generar una URL " -"para descargar el activo cuando el pedido asociado está en estado completado." +"si el activo es visible públicamente. Incluye un método para generar una URL" +" para descargar el activo cuando el pedido asociado está en estado " +"completado." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Descargar" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Descargas" @@ -2967,8 +3005,7 @@ msgstr "Hola %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "¡Gracias por su pedido #%(order.pk)s! Nos complace informarle de que hemos " @@ -3082,8 +3119,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Gracias por su pedido. Nos complace confirmarle su compra. A continuación " @@ -3163,8 +3199,8 @@ msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -"Gestiona la solicitud del índice del mapa del sitio y devuelve una respuesta " -"XML. Se asegura de que la respuesta incluya el encabezado de tipo de " +"Gestiona la solicitud del índice del mapa del sitio y devuelve una respuesta" +" XML. Se asegura de que la respuesta incluya el encabezado de tipo de " "contenido apropiado para XML." #: engine/core/views.py:119 @@ -3181,7 +3217,8 @@ msgstr "" msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" -"Devuelve una lista de los idiomas admitidos y su información correspondiente." +"Devuelve una lista de los idiomas admitidos y su información " +"correspondiente." #: engine/core/views.py:182 msgid "Returns the parameters of the website as a JSON object." @@ -3218,14 +3255,10 @@ msgstr "Maneja la lógica de la compra como empresa sin registro." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestiona la descarga de un activo digital asociado a un pedido.\n" -"Esta función intenta servir el archivo del activo digital ubicado en el " -"directorio de almacenamiento del proyecto. Si no se encuentra el archivo, se " -"genera un error HTTP 404 para indicar que el recurso no está disponible." +"Esta función intenta servir el archivo del activo digital ubicado en el directorio de almacenamiento del proyecto. Si no se encuentra el archivo, se genera un error HTTP 404 para indicar que el recurso no está disponible." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3254,25 +3287,21 @@ msgstr "favicon no encontrado" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestiona las peticiones del favicon de un sitio web.\n" -"Esta función intenta servir el archivo favicon ubicado en el directorio " -"estático del proyecto. Si no se encuentra el archivo favicon, se genera un " -"error HTTP 404 para indicar que el recurso no está disponible." +"Esta función intenta servir el archivo favicon ubicado en el directorio estático del proyecto. Si no se encuentra el archivo favicon, se genera un error HTTP 404 para indicar que el recurso no está disponible." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Redirige la petición a la página índice de administración. La función " "gestiona las peticiones HTTP entrantes y las redirige a la página de índice " -"de la interfaz de administración de Django. Utiliza la función `redirect` de " -"Django para gestionar la redirección HTTP." +"de la interfaz de administración de Django. Utiliza la función `redirect` de" +" Django para gestionar la redirección HTTP." #: engine/core/views.py:445 msgid "Returns current version of the Schon. " @@ -3289,9 +3318,9 @@ msgstr "Devuelve variables personalizadas para Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3303,15 +3332,16 @@ msgstr "" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Representa un conjunto de vistas para gestionar objetos AttributeGroup. " "Maneja operaciones relacionadas con AttributeGroup, incluyendo filtrado, " -"serialización y recuperación de datos. Esta clase forma parte de la capa API " -"de la aplicación y proporciona una forma estandarizada de procesar las " +"serialización y recuperación de datos. Esta clase forma parte de la capa API" +" de la aplicación y proporciona una forma estandarizada de procesar las " "solicitudes y respuestas de los datos de AttributeGroup." #: engine/core/viewsets.py:179 @@ -3323,10 +3353,10 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"Gestiona las operaciones relacionadas con los objetos Attribute dentro de la " -"aplicación. Proporciona un conjunto de puntos finales de la API para " -"interactuar con los datos de los atributos. Esta clase gestiona la consulta, " -"el filtrado y la serialización de objetos Attribute, lo que permite un " +"Gestiona las operaciones relacionadas con los objetos Attribute dentro de la" +" aplicación. Proporciona un conjunto de puntos finales de la API para " +"interactuar con los datos de los atributos. Esta clase gestiona la consulta," +" el filtrado y la serialización de objetos Attribute, lo que permite un " "control dinámico de los datos devueltos, como el filtrado por campos " "específicos o la recuperación de información detallada o simplificada en " "función de la solicitud." @@ -3336,12 +3366,12 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Conjunto de vistas para gestionar objetos AttributeValue. Este conjunto de " -"vistas proporciona funcionalidad para listar, recuperar, crear, actualizar y " -"eliminar objetos AttributeValue. Se integra con los mecanismos viewset de " +"vistas proporciona funcionalidad para listar, recuperar, crear, actualizar y" +" eliminar objetos AttributeValue. Se integra con los mecanismos viewset de " "Django REST Framework y utiliza serializadores apropiados para diferentes " "acciones. Las capacidades de filtrado se proporcionan a través de " "DjangoFilterBackend." @@ -3357,8 +3387,8 @@ msgstr "" "Gestiona vistas para operaciones relacionadas con Categorías. La clase " "CategoryViewSet se encarga de gestionar las operaciones relacionadas con el " "modelo Category del sistema. Permite recuperar, filtrar y serializar datos " -"de categorías. El conjunto de vistas también aplica permisos para garantizar " -"que sólo los usuarios autorizados puedan acceder a datos específicos." +"de categorías. El conjunto de vistas también aplica permisos para garantizar" +" que sólo los usuarios autorizados puedan acceder a datos específicos." #: engine/core/viewsets.py:346 msgid "" @@ -3368,9 +3398,9 @@ msgid "" "endpoints for Brand objects." msgstr "" "Representa un conjunto de vistas para gestionar instancias de Brand. Esta " -"clase proporciona funcionalidad para consultar, filtrar y serializar objetos " -"Brand. Utiliza el marco ViewSet de Django para simplificar la implementación " -"de puntos finales de API para objetos Brand." +"clase proporciona funcionalidad para consultar, filtrar y serializar objetos" +" Brand. Utiliza el marco ViewSet de Django para simplificar la " +"implementación de puntos finales de API para objetos Brand." #: engine/core/viewsets.py:458 msgid "" @@ -3384,9 +3414,9 @@ msgid "" msgstr "" "Gestiona las operaciones relacionadas con el modelo `Producto` en el " "sistema. Esta clase proporciona un conjunto de vistas para la gestión de " -"productos, incluyendo su filtrado, serialización y operaciones en instancias " -"específicas. Se extiende desde `SchonViewSet` para utilizar funcionalidades " -"comunes y se integra con el framework Django REST para operaciones RESTful " +"productos, incluyendo su filtrado, serialización y operaciones en instancias" +" específicas. Se extiende desde `SchonViewSet` para utilizar funcionalidades" +" comunes y se integra con el framework Django REST para operaciones RESTful " "API. Incluye métodos para recuperar detalles del producto, aplicar permisos " "y acceder a comentarios relacionados de un producto." @@ -3410,8 +3440,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representación de un conjunto de vistas que maneja objetos Feedback. Esta " @@ -3427,26 +3457,26 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet para la gestión de pedidos y operaciones relacionadas. Esta clase " "proporciona funcionalidad para recuperar, modificar y gestionar objetos de " -"pedido. Incluye varios puntos finales para gestionar operaciones de pedidos, " -"como añadir o eliminar productos, realizar compras para usuarios registrados " -"y no registrados, y recuperar los pedidos pendientes del usuario autenticado " -"actual. ViewSet utiliza varios serializadores en función de la acción " -"específica que se esté realizando y aplica los permisos correspondientes al " -"interactuar con los datos del pedido." +"pedido. Incluye varios puntos finales para gestionar operaciones de pedidos," +" como añadir o eliminar productos, realizar compras para usuarios " +"registrados y no registrados, y recuperar los pedidos pendientes del usuario" +" autenticado actual. ViewSet utiliza varios serializadores en función de la " +"acción específica que se esté realizando y aplica los permisos " +"correspondientes al interactuar con los datos del pedido." #: engine/core/viewsets.py:914 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Proporciona un conjunto de vistas para gestionar entidades OrderProduct. " @@ -3483,8 +3513,8 @@ msgstr "" msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3509,8 +3539,8 @@ msgstr "" "Esta clase proporciona la funcionalidad viewset para la gestión de objetos " "`Address`. La clase AddressViewSet permite operaciones CRUD, filtrado y " "acciones personalizadas relacionadas con entidades de direcciones. Incluye " -"comportamientos especializados para diferentes métodos HTTP, anulaciones del " -"serializador y gestión de permisos basada en el contexto de la solicitud." +"comportamientos especializados para diferentes métodos HTTP, anulaciones del" +" serializador y gestión de permisos basada en el contexto de la solicitud." #: engine/core/viewsets.py:1254 #, python-brace-format diff --git a/engine/core/locale/fa_IR/LC_MESSAGES/django.mo b/engine/core/locale/fa_IR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..582b5dd4dcd0f41a41ecd855c98623798fc8d305 GIT binary patch literal 334 zcmYL@Jx{|h5Qd9j%7_>lJg~u)wgU?0Lp6=tMzWJCO_5+Ti3vuvk;bGsjP&!JYRSt#zG~EFtDriccI4eNrkT9~$sZ7tG^NdGAwE;@6 zY`ay#c}nIRAxOp~C%0U(R7_ct6nwqDN7Xia)o3WS`k+LxY_VYr^n{ph&CvO#cd&s> zCGR_rhoflbY|s|peebYO&|l$lw^hd8km^nOR)@PyIfuCSx>~Q=1Gkl{jcq82UrdMw Ee=3$*MgRZ+ literal 0 HcmV?d00001 diff --git a/engine/core/locale/fa_IR/LC_MESSAGES/django.po b/engine/core/locale/fa_IR/LC_MESSAGES/django.po index 0adb635b..454cae48 100644 --- a/engine/core/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/core/locale/fa_IR/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -75,7 +75,7 @@ msgstr "" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "" #: engine/core/admin.py:166 @@ -84,7 +84,7 @@ msgstr "" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "" #: engine/core/admin.py:184 @@ -92,13 +92,13 @@ msgid "selected items have been deactivated." msgstr "" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "" @@ -118,12 +118,12 @@ msgstr "" msgid "stocks" msgstr "" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "" @@ -131,7 +131,31 @@ msgstr "" msgid "children" msgstr "" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "" + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "" + +#: engine/core/admin.py:1116 msgid "Config" msgstr "" @@ -1151,9 +1175,9 @@ msgstr "" msgid "original address string provided by the user" msgstr "" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1169,8 +1193,8 @@ msgstr "" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "" @@ -1243,7 +1267,7 @@ msgid "represents feedback from a user." msgstr "" #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "" @@ -1251,7 +1275,7 @@ msgstr "" msgid "download url for this order product if applicable" msgstr "" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "" @@ -1259,7 +1283,7 @@ msgstr "" msgid "a list of order products in this order" msgstr "" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "" @@ -1285,7 +1309,7 @@ msgstr "" msgid "transactions for this order" msgstr "" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "" @@ -1302,7 +1326,7 @@ msgstr "" msgid "category" msgstr "" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "" @@ -1343,7 +1367,7 @@ msgstr "" msgid "discount price" msgstr "" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "" @@ -1355,7 +1379,7 @@ msgstr "" msgid "products on sale" msgstr "" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "" @@ -1363,7 +1387,7 @@ msgstr "" msgid "vendor" msgstr "" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1371,11 +1395,11 @@ msgstr "" msgid "product" msgstr "" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "" @@ -1486,7 +1510,7 @@ msgstr "" msgid "attribute group's name" msgstr "" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "" @@ -1720,8 +1744,8 @@ msgstr "" msgid "the product associated with this stock entry" msgstr "" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "" @@ -1813,7 +1837,7 @@ msgstr "" msgid "product name" msgstr "" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "" @@ -1833,7 +1857,15 @@ msgstr "" msgid "stock keeping unit for this product" msgstr "" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " @@ -1843,83 +1875,83 @@ msgid "" "for dynamic and flexible data structuring." msgstr "" -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" "Represents a specific value for an attribute that is linked to a product. It " "links the 'attribute' to a unique 'value', allowing better organization and " "dynamic representation of product characteristics." msgstr "" -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " "class is designed to manage images for products, including functionality for " @@ -1928,39 +1960,39 @@ msgid "" "with alternative text for the images." msgstr "" -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" @@ -1970,39 +2002,39 @@ msgid "" "affected items in the campaign." msgstr "" -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2010,23 +2042,23 @@ msgid "" "operations for adding and removing multiple products at once." msgstr "" -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " @@ -2036,19 +2068,19 @@ msgid "" "custom features." msgstr "" -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" "Represents an address entity that includes location details and associations " "with a user. Provides functionality for geographic and address data storage, " @@ -2060,59 +2092,59 @@ msgid "" "address with a user, facilitating personalized data handling." msgstr "" -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2122,86 +2154,86 @@ msgid "" "apply the promo code to an order while ensuring constraints are met." msgstr "" -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " @@ -2211,145 +2243,145 @@ msgid "" "supports managing the products in the order lifecycle." msgstr "" -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2358,31 +2390,31 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "" -#: engine/core/models.py:1827 +#: engine/core/models.py:1834 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2395,108 +2427,108 @@ msgid "" "Product models and stores a reference to them." msgstr "" -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " @@ -2506,11 +2538,11 @@ msgid "" "the asset when the associated order is in a completed status." msgstr "" -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "" @@ -2989,9 +3021,9 @@ msgstr "" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" diff --git a/engine/core/locale/fr_FR/LC_MESSAGES/django.mo b/engine/core/locale/fr_FR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6eb28c71992971ae2f73c5e06cb61b5fc2d452d3 GIT binary patch literal 97694 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

2S3Uf1a1t;qu0|O0%3!Xqe?KB_zd^ao%f7 z5s9TTfcGtqER{)+XhdYYx-vdIpS<=P-(Z35INZA-0VRoaT}rLl1|(IW04 zdbQqIY#jpk4M7`7&d9oWWTI!mdV#{MF+iA+PHX@?MvaAZhC>dx?Zl0)&mDBSVLo>R(Z^PR3oU`XINHKRX zamLEA2Gi!cV8&c4S8qyImg{tebW*v|s5cg+H}d8AN)506e>!KpLRZyMQr#h@QQlgv zwaUpQ(zj?tmk-967Lp~+rU5%@zTPa^U}+GInU4UZ(oo*Sm@8QYq~0+Z&1Un&w6El2 zWhrfrmj`X2OShCKO|`4#m_Yd(MymCJQZ*V0*SFBMW%OjMXW`XxJc2owWNImxqxQmz z>vwFsYGu$yEREg4Fr_jKR}An=*7Y%%42{)Xud$+0nN{STBAbXqvx10vKU8Wyj3HDc8;208OBfj&Wt!G3bk6kDho&}b z*jO5IZl8|uHa&2LcL3B<&fw?;_z(8Cq->WygZV1QxMGg69fYnc

@yT7QVf^2 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 CsQGFD literal 0 HcmV?d00001 diff --git a/engine/core/locale/fr_FR/LC_MESSAGES/django.po b/engine/core/locale/fr_FR/LC_MESSAGES/django.po index 51207175..ca67a0b4 100644 --- a/engine/core/locale/fr_FR/LC_MESSAGES/django.po +++ b/engine/core/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Est actif" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Si la valeur est fixée à false, cet objet ne peut pas être vu par les " "utilisateurs qui n'ont pas l'autorisation nécessaire." @@ -76,8 +77,8 @@ msgstr "Horodatage" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "Activer la %(verbose_name_plural)s sélectionnée" +msgid "Activate selected %(verbose_name_plural)s" +msgstr "Activer %(verbose_name_plural)s sélectionné" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -85,21 +86,21 @@ msgstr "Les articles sélectionnés ont été activés !" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Désactiver la %(verbose_name_plural)s sélectionnée" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "Désactiver %(verbose_name_plural)s sélectionné" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "Les articles sélectionnés ont été désactivés !" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Valeur de l'attribut" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Valeurs des attributs" @@ -119,12 +120,12 @@ msgstr "Stock" msgid "stocks" msgstr "Stocks" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Commander un produit" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Commander des produits" @@ -132,7 +133,39 @@ msgstr "Commander des produits" msgid "children" msgstr "Les enfants" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Contient des images" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "" +"Exporter %(verbose_name_plural)s sélectionné vers les flux des places de " +"marché" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "" +"Les éléments sélectionnés %(verbose_name_plural)s ont été marqués pour " +"l'exportation." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "" +"Interdire %(verbose_name_plural)s sélectionné dans les flux des places de " +"marché" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "" +"Les produits sélectionnés %(verbose_name_plural)s ont été interdits à " +"l'exportation." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Config" @@ -156,7 +189,8 @@ msgstr "Livré" msgid "canceled" msgstr "Annulé" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Échec" @@ -207,10 +241,8 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"Appliquer uniquement une clé pour lire les données autorisées dans la " -"mémoire cache.\n" -"Appliquer une clé, des données et un délai d'attente avec authentification " -"pour écrire des données dans la mémoire cache." +"Appliquer uniquement une clé pour lire les données autorisées dans la mémoire cache.\n" +"Appliquer une clé, des données et un délai d'attente avec authentification pour écrire des données dans la mémoire cache." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -277,7 +309,8 @@ msgstr "" "modifiables" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Réécrire certains champs d'un groupe d'attributs existant en sauvegardant " "les non-éditables" @@ -306,8 +339,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:156 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Réécrire certains champs d'un attribut existant en sauvegardant les éléments " -"non modifiables" +"Réécrire certains champs d'un attribut existant en sauvegardant les éléments" +" non modifiables" #: engine/core/docs/drf/viewsets.py:166 msgid "list all attribute values (simple view)" @@ -332,7 +365,8 @@ msgstr "" "modifiables" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Réécrire certains champs d'une valeur d'attribut existante en sauvegardant " "les éléments non modifiables" @@ -391,11 +425,11 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Recherche insensible à la casse dans human_readable_id, order_products." -"product.name, et order_products.product.partnumber" +"Recherche insensible à la casse dans human_readable_id, " +"order_products.product.name, et order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -431,13 +465,13 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordonner par l'un des éléments suivants : uuid, human_readable_id, " -"user_email, user, status, created, modified, buy_time, random. Préfixer avec " -"'-' pour l'ordre décroissant (par exemple '-buy_time')." +"user_email, user, status, created, modified, buy_time, random. Préfixer avec" +" '-' pour l'ordre décroissant (par exemple '-buy_time')." #: engine/core/docs/drf/viewsets.py:366 msgid "retrieve a single order (detailed view)" @@ -479,8 +513,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"Finalise l'achat de la commande. Si `force_balance` est utilisé, l'achat est " -"complété en utilisant le solde de l'utilisateur ; Si `force_payment` est " +"Finalise l'achat de la commande. Si `force_balance` est utilisé, l'achat est" +" complété en utilisant le solde de l'utilisateur ; Si `force_payment` est " "utilisé, une transaction est initiée." #: engine/core/docs/drf/viewsets.py:427 @@ -548,8 +582,8 @@ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" msgstr "" -"Supprime une liste de produits d'une commande en utilisant le `product_uuid` " -"et les `attributs` fournis." +"Supprime une liste de produits d'une commande en utilisant le `product_uuid`" +" et les `attributs` fournis." #: engine/core/docs/drf/viewsets.py:497 msgid "list all wishlists (simple view)" @@ -585,8 +619,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:537 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Réécrire certains champs d'un attribut existant en sauvegardant les éléments " -"non modifiables" +"Réécrire certains champs d'un attribut existant en sauvegardant les éléments" +" non modifiables" #: engine/core/docs/drf/viewsets.py:544 msgid "retrieve current pending wishlist of a user" @@ -642,29 +676,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtre sur une ou plusieurs paires nom/valeur d'attribut. \n" "- **Syntaxe** : `nom_attr=méthode-valeur[;attr2=méthode2-valeur2]...`\n" -"- **Méthodes** (la valeur par défaut est `icontains` si elle est omise) : " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`\n" -"- **Type de valeur** : JSON est essayé en premier (pour que vous puissiez " -"passer des listes/dicts), `true`/`false` pour les booléens, les entiers, les " -"flottants ; sinon traité comme une chaîne de caractères. \n" -"- **Base64** : préfixe avec `b64-` pour encoder la valeur brute en base64 de " -"manière sûre pour l'URL. \n" +"- **Méthodes** (la valeur par défaut est `icontains` si elle est omise) : `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Type de valeur** : JSON est essayé en premier (pour que vous puissiez passer des listes/dicts), `true`/`false` pour les booléens, les entiers, les flottants ; sinon traité comme une chaîne de caractères. \n" +"- **Base64** : préfixe avec `b64-` pour encoder la valeur brute en base64 de manière sûre pour l'URL. \n" "Exemples : \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -679,12 +702,10 @@ msgstr "UUID (exact) du produit" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Liste de champs séparés par des virgules à trier. Préfixer avec `-` pour un " -"tri descendant. \n" +"Liste de champs séparés par des virgules à trier. Préfixer avec `-` pour un tri descendant. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -949,7 +970,8 @@ msgstr "Supprimer une promotion" #: engine/core/docs/drf/viewsets.py:1244 msgid "rewrite an existing promotion saving non-editables" msgstr "" -"Réécrire une promotion existante en sauvegardant les éléments non modifiables" +"Réécrire une promotion existante en sauvegardant les éléments non " +"modifiables" #: engine/core/docs/drf/viewsets.py:1251 msgid "rewrite some fields of an existing promotion saving non-editables" @@ -1004,8 +1026,8 @@ msgstr "Supprimer une étiquette de produit" #: engine/core/docs/drf/viewsets.py:1342 msgid "rewrite an existing product tag saving non-editables" msgstr "" -"Réécrire une étiquette de produit existante en sauvegardant les éléments non " -"modifiables" +"Réécrire une étiquette de produit existante en sauvegardant les éléments non" +" modifiables" #: engine/core/docs/drf/viewsets.py:1350 msgid "rewrite some fields of an existing product tag saving non-editables" @@ -1251,8 +1273,8 @@ msgstr "Acheter une commande" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Veuillez envoyer les attributs sous la forme d'une chaîne formatée comme " "attr1=valeur1,attr2=valeur2." @@ -1276,9 +1298,9 @@ msgstr "Le produit {order_product_uuid} n'a pas été trouvé !" msgid "original address string provided by the user" msgstr "Chaîne d'adresse originale fournie par l'utilisateur" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1294,8 +1316,8 @@ msgstr "ElasticSearch - fonctionne comme un charme" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Attributs" @@ -1333,7 +1355,8 @@ msgstr "" "catégorie." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Prix minimum et maximum pour les produits de cette catégorie, s'ils sont " "disponibles." @@ -1372,7 +1395,7 @@ msgid "represents feedback from a user." msgstr "Représente le retour d'information d'un utilisateur." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Notifications" @@ -1380,7 +1403,7 @@ msgstr "Notifications" msgid "download url for this order product if applicable" msgstr "URL de téléchargement pour ce produit de la commande, le cas échéant" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Retour d'information" @@ -1388,7 +1411,7 @@ msgstr "Retour d'information" msgid "a list of order products in this order" msgstr "Une liste des produits commandés dans cette commande" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Adresse de facturation" @@ -1397,8 +1420,8 @@ msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "" -"Adresse d'expédition pour cette commande, laisser vide si elle est identique " -"à l'adresse de facturation ou si elle n'est pas applicable" +"Adresse d'expédition pour cette commande, laisser vide si elle est identique" +" à l'adresse de facturation ou si elle n'est pas applicable" #: engine/core/graphene/object_types.py:468 msgid "total price of this order" @@ -1416,7 +1439,7 @@ msgstr "Tous les produits de la commande sont-ils numériques ?" msgid "transactions for this order" msgstr "Transactions pour cette commande" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Commandes" @@ -1433,7 +1456,7 @@ msgstr "Images du produit" msgid "category" msgstr "Catégorie" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Retour d'information" @@ -1474,7 +1497,7 @@ msgstr "Produits disponibles uniquement pour les commandes personnelles" msgid "discount price" msgstr "Prix d'escompte" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Produits" @@ -1486,7 +1509,7 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Produits en vente" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Promotions" @@ -1494,7 +1517,7 @@ msgstr "Promotions" msgid "vendor" msgstr "Vendeur" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1502,11 +1525,11 @@ msgstr "Vendeur" msgid "product" msgstr "Produit" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Produits en liste de souhaits" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Liste de souhaits" @@ -1624,7 +1647,7 @@ msgstr "Groupe d'attributs parent" msgid "attribute group's name" msgstr "Nom du groupe d'attributs" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Groupe d'attributs" @@ -1640,8 +1663,8 @@ msgid "" msgstr "" "Représente une entité fournisseur capable de stocker des informations sur " "les fournisseurs externes et leurs exigences en matière d'interaction. La " -"classe Vendeur est utilisée pour définir et gérer les informations relatives " -"à un fournisseur externe. Elle stocke le nom du fournisseur, les détails " +"classe Vendeur est utilisée pour définir et gérer les informations relatives" +" à un fournisseur externe. Elle stocke le nom du fournisseur, les détails " "d'authentification requis pour la communication et le pourcentage de " "majoration appliqué aux produits récupérés auprès du fournisseur. Ce modèle " "gère également des métadonnées et des contraintes supplémentaires, ce qui " @@ -1733,9 +1756,9 @@ msgid "" "attributes for an internal tag identifier and a user-friendly display name." msgstr "" "Représente une étiquette de catégorie utilisée pour les produits. Cette " -"classe modélise une balise de catégorie qui peut être utilisée pour associer " -"et classer des produits. Elle comprend des attributs pour un identifiant de " -"balise interne et un nom d'affichage convivial." +"classe modélise une balise de catégorie qui peut être utilisée pour associer" +" et classer des produits. Elle comprend des attributs pour un identifiant de" +" balise interne et un nom d'affichage convivial." #: engine/core/models.py:249 msgid "category tag" @@ -1762,8 +1785,8 @@ msgstr "" "avoir des relations hiérarchiques avec d'autres catégories, en prenant en " "charge les relations parent-enfant. La classe comprend des champs pour les " "métadonnées et la représentation visuelle, qui servent de base aux " -"fonctionnalités liées aux catégories. Cette classe est généralement utilisée " -"pour définir et gérer des catégories de produits ou d'autres regroupements " +"fonctionnalités liées aux catégories. Cette classe est généralement utilisée" +" pour définir et gérer des catégories de produits ou d'autres regroupements " "similaires au sein d'une application, permettant aux utilisateurs ou aux " "administrateurs de spécifier le nom, la description et la hiérarchie des " "catégories, ainsi que d'attribuer des attributs tels que des images, des " @@ -1819,13 +1842,14 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Représente un objet Marque dans le système. Cette classe gère les " "informations et les attributs liés à une marque, y compris son nom, ses " "logos, sa description, ses catégories associées, un nom unique et un ordre " -"de priorité. Elle permet d'organiser et de représenter les données relatives " -"à la marque dans l'application." +"de priorité. Elle permet d'organiser et de représenter les données relatives" +" à la marque dans l'application." #: engine/core/models.py:456 msgid "name of this brand" @@ -1869,8 +1893,8 @@ msgstr "Catégories" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1880,8 +1904,8 @@ msgstr "" "des détails sur la relation entre les fournisseurs, les produits et leurs " "informations de stock, ainsi que des propriétés liées à l'inventaire telles " "que le prix, le prix d'achat, la quantité, l'UGS et les actifs numériques. " -"Elle fait partie du système de gestion des stocks pour permettre le suivi et " -"l'évaluation des produits disponibles auprès de différents fournisseurs." +"Elle fait partie du système de gestion des stocks pour permettre le suivi et" +" l'évaluation des produits disponibles auprès de différents fournisseurs." #: engine/core/models.py:528 msgid "the vendor supplying this product stock" @@ -1903,8 +1927,8 @@ msgstr "Prix de vente" msgid "the product associated with this stock entry" msgstr "Le produit associé à cette entrée de stock" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Produit associé" @@ -1960,8 +1984,8 @@ msgid "" "product data and its associated information within an application." msgstr "" "Représente un produit avec des attributs tels que la catégorie, la marque, " -"les étiquettes, l'état numérique, le nom, la description, le numéro de pièce " -"et l'étiquette. Fournit des propriétés utilitaires connexes pour récupérer " +"les étiquettes, l'état numérique, le nom, la description, le numéro de pièce" +" et l'étiquette. Fournit des propriétés utilitaires connexes pour récupérer " "les évaluations, le nombre de commentaires, le prix, la quantité et le " "nombre total de commandes. Conçue pour être utilisée dans un système de " "commerce électronique ou de gestion des stocks. Cette classe interagit avec " @@ -2007,7 +2031,7 @@ msgstr "Fournir un nom d'identification clair pour le produit" msgid "product name" msgstr "Nom du produit" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Ajouter une description détaillée du produit" @@ -2027,159 +2051,168 @@ msgstr "Numéro de pièce" msgid "stock keeping unit for this product" msgstr "Unité de gestion des stocks pour ce produit" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Faut-il exporter ce produit vers les marchés ?" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Exporter vers les places de marché" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Représente un attribut dans le système. Cette classe est utilisée pour " "définir et gérer les attributs, qui sont des données personnalisables " -"pouvant être associées à d'autres entités. Les attributs sont associés à des " -"catégories, des groupes, des types de valeurs et des noms. Le modèle prend " +"pouvant être associées à d'autres entités. Les attributs sont associés à des" +" catégories, des groupes, des types de valeurs et des noms. Le modèle prend " "en charge plusieurs types de valeurs, notamment les chaînes de caractères, " "les entiers, les flottants, les booléens, les tableaux et les objets. Cela " "permet une structuration dynamique et flexible des données." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Groupe de cet attribut" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Chaîne" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Entier" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Flotteur" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Booléen" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Tableau" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Objet" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Type de la valeur de l'attribut" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Type de valeur" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Nom de cet attribut" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Nom de l'attribut" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "est filtrable" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Quels attributs et valeurs peuvent être utilisés pour filtrer cette " "catégorie." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribut" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Représente une valeur spécifique pour un attribut lié à un produit. Il relie " -"l'\"attribut\" à une \"valeur\" unique, ce qui permet une meilleure " -"organisation et une représentation dynamique des caractéristiques du produit." +"Représente une valeur spécifique pour un attribut lié à un produit. Il relie" +" l'\"attribut\" à une \"valeur\" unique, ce qui permet une meilleure " +"organisation et une représentation dynamique des caractéristiques du " +"produit." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Attribut de cette valeur" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Le produit spécifique associé à la valeur de cet attribut" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "La valeur spécifique de cet attribut" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" -"Représente une image de produit associée à un produit dans le système. Cette " -"classe est conçue pour gérer les images des produits, y compris la " +"Représente une image de produit associée à un produit dans le système. Cette" +" classe est conçue pour gérer les images des produits, y compris la " "fonctionnalité de téléchargement des fichiers d'image, leur association à " -"des produits spécifiques et la détermination de leur ordre d'affichage. Elle " -"comprend également une fonction d'accessibilité avec un texte alternatif " +"des produits spécifiques et la détermination de leur ordre d'affichage. Elle" +" comprend également une fonction d'accessibilité avec un texte alternatif " "pour les images." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Fournir un texte alternatif pour l'image afin d'en faciliter l'accès" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Texte alt de l'image" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Télécharger le fichier image pour ce produit" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Image du produit" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Détermine l'ordre d'affichage des images" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Priorité à l'affichage" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Le produit que cette image représente" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Images du produit" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Représente une campagne promotionnelle pour des produits avec une remise. " "Cette classe est utilisée pour définir et gérer des campagnes " @@ -2189,39 +2222,39 @@ msgstr "" "Elle s'intègre au catalogue de produits pour déterminer les articles " "concernés par la campagne." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Pourcentage de réduction pour les produits sélectionnés" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Pourcentage de réduction" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Donnez un nom unique à cette promotion" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Nom de la promotion" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Promotion description" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Sélectionnez les produits inclus dans cette promotion" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Produits inclus" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Promotion" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2232,129 +2265,130 @@ msgstr "" "gestion des produits souhaités. La classe fournit des fonctionnalités " "permettant de gérer une collection de produits, en prenant en charge des " "opérations telles que l'ajout et la suppression de produits, ainsi que des " -"opérations permettant d'ajouter et de supprimer plusieurs produits à la fois." +"opérations permettant d'ajouter et de supprimer plusieurs produits à la " +"fois." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Produits que l'utilisateur a marqués comme souhaités" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Utilisateur qui possède cette liste de souhaits" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Propriétaire de la liste de souhaits" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Liste de souhaits" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"Représente un enregistrement documentaire lié à un produit. Cette classe est " -"utilisée pour stocker des informations sur les documentaires liés à des " +"Représente un enregistrement documentaire lié à un produit. Cette classe est" +" utilisée pour stocker des informations sur les documentaires liés à des " "produits spécifiques, y compris les téléchargements de fichiers et leurs " "métadonnées. Elle contient des méthodes et des propriétés permettant de " "gérer le type de fichier et le chemin de stockage des fichiers " "documentaires. Elle étend les fonctionnalités de mixins spécifiques et " "fournit des fonctionnalités personnalisées supplémentaires." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Documentaire" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Documentaires" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Non résolu" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Représente une entité d'adresse qui comprend des détails de localisation et " "des associations avec un utilisateur. Elle fournit des fonctionnalités de " "stockage de données géographiques et d'adresses, ainsi qu'une intégration " "avec des services de géocodage. Cette classe est conçue pour stocker des " -"informations détaillées sur les adresses, y compris des éléments tels que la " -"rue, la ville, la région, le pays et la géolocalisation (longitude et " +"informations détaillées sur les adresses, y compris des éléments tels que la" +" rue, la ville, la région, le pays et la géolocalisation (longitude et " "latitude). Elle prend en charge l'intégration avec les API de géocodage, ce " -"qui permet de stocker les réponses brutes de l'API en vue d'un traitement ou " -"d'une inspection ultérieurs. La classe permet également d'associer une " +"qui permet de stocker les réponses brutes de l'API en vue d'un traitement ou" +" d'une inspection ultérieurs. La classe permet également d'associer une " "adresse à un utilisateur, ce qui facilite le traitement personnalisé des " "données." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Ligne d'adresse du client" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Ligne d'adresse" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Rue" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "District" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Ville" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Région" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Code postal" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Pays" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Point de géolocalisation (longitude, latitude)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Réponse JSON complète du géocodeur pour cette adresse" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Réponse JSON stockée du service de géocodage" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Adresse" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adresses" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2365,80 +2399,83 @@ msgid "" msgstr "" "Représente un code promotionnel qui peut être utilisé pour des remises, en " "gérant sa validité, le type de remise et l'application. La classe PromoCode " -"stocke les détails d'un code promotionnel, notamment son identifiant unique, " -"les propriétés de la remise (montant ou pourcentage), la période de " +"stocke les détails d'un code promotionnel, notamment son identifiant unique," +" les propriétés de la remise (montant ou pourcentage), la période de " "validité, l'utilisateur associé (le cas échéant) et l'état de son " "utilisation. Elle comprend une fonctionnalité permettant de valider et " "d'appliquer le code promotionnel à une commande tout en veillant à ce que " "les contraintes soient respectées." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" -msgstr "Code unique utilisé par un utilisateur pour bénéficier d'une réduction" +msgstr "" +"Code unique utilisé par un utilisateur pour bénéficier d'une réduction" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Identifiant du code promotionnel" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" -msgstr "Montant fixe de la remise appliqué si le pourcentage n'est pas utilisé" +msgstr "" +"Montant fixe de la remise appliqué si le pourcentage n'est pas utilisé" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Montant de l'escompte fixe" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" -msgstr "Pourcentage de réduction appliqué si le montant fixe n'est pas utilisé" +msgstr "" +"Pourcentage de réduction appliqué si le montant fixe n'est pas utilisé" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Pourcentage de réduction" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Date d'expiration du code promotionnel" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Heure de fin de validité" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Date à partir de laquelle ce code promotionnel est valable" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Heure de début de validité" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -"Date à laquelle le code promotionnel a été utilisé, vide s'il n'a pas encore " -"été utilisé." +"Date à laquelle le code promotionnel a été utilisé, vide s'il n'a pas encore" +" été utilisé." -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Horodatage de l'utilisation" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Utilisateur assigné à ce code promo, le cas échéant" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Utilisateur assigné" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Code promo" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Codes promotionnels" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2446,172 +2483,173 @@ msgstr "" "Un seul type de remise doit être défini (montant ou pourcentage), mais pas " "les deux ni aucun des deux." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Le code promotionnel a déjà été utilisé" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Type de réduction non valide pour le code promo {self.uuid} !" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" -"Représente une commande passée par un utilisateur. Cette classe modélise une " -"commande dans l'application, y compris ses différents attributs tels que les " -"informations de facturation et d'expédition, le statut, l'utilisateur " -"associé, les notifications et les opérations connexes. Les commandes peuvent " -"être associées à des produits, des promotions peuvent être appliquées, des " -"adresses peuvent être définies et les détails d'expédition ou de facturation " -"peuvent être mis à jour. De même, la fonctionnalité permet de gérer les " +"Représente une commande passée par un utilisateur. Cette classe modélise une" +" commande dans l'application, y compris ses différents attributs tels que " +"les informations de facturation et d'expédition, le statut, l'utilisateur " +"associé, les notifications et les opérations connexes. Les commandes peuvent" +" être associées à des produits, des promotions peuvent être appliquées, des " +"adresses peuvent être définies et les détails d'expédition ou de facturation" +" peuvent être mis à jour. De même, la fonctionnalité permet de gérer les " "produits dans le cycle de vie de la commande." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "L'adresse de facturation utilisée pour cette commande" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Code promo optionnel appliqué à cette commande" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Code promo appliqué" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "L'adresse de livraison utilisée pour cette commande" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Adresse de livraison" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Statut actuel de la commande dans son cycle de vie" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Statut de la commande" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "Structure JSON des notifications à afficher aux utilisateurs ; dans " "l'interface d'administration, la vue en tableau est utilisée." -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "Représentation JSON des attributs de cette commande" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "L'utilisateur qui a passé la commande" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Utilisateur" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "L'heure à laquelle la commande a été finalisée." -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Temps d'achat" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Un identifiant lisible par l'homme pour la commande" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "ID lisible par l'homme" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Commande" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "Un utilisateur ne peut avoir qu'un seul ordre en cours à la fois !" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" -"Vous ne pouvez pas ajouter de produits à une commande qui n'est pas en cours." +"Vous ne pouvez pas ajouter de produits à une commande qui n'est pas en " +"cours." -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Vous ne pouvez pas ajouter des produits inactifs à la commande" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "" "Vous ne pouvez pas ajouter plus de produits que ceux disponibles en stock" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Vous ne pouvez pas retirer des produits d'une commande qui n'est pas en " "cours." -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} n'existe pas avec la requête <{query}> !" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Le code promotionnel n'existe pas" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" "Vous ne pouvez acheter que des produits physiques dont l'adresse de " "livraison est spécifiée !" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "L'adresse n'existe pas" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "Vous ne pouvez pas acheter en ce moment, veuillez réessayer dans quelques " "minutes." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Valeur de force non valide" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Vous ne pouvez pas acheter une commande vide !" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "" "Vous ne pouvez pas retirer des produits d'une commande qui n'est pas en " "cours." -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Un utilisateur sans solde ne peut pas acheter avec un solde !" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Insuffisance de fonds pour compléter la commande" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2620,7 +2658,7 @@ msgstr "" "informations suivantes : nom du client, courriel du client, numéro de " "téléphone du client" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2628,7 +2666,7 @@ msgstr "" "Méthode de paiement non valide : {payment_method} de " "{available_payment_methods} !" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2644,33 +2682,34 @@ msgstr "" "La classe utilise des champs de base de données pour modéliser et gérer " "efficacement les données de feedback." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "Commentaires des utilisateurs sur leur expérience du produit" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Commentaires" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Fait référence au produit spécifique d'une commande sur lequel porte le " "retour d'information." -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Produit de commande apparenté" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Note attribuée par l'utilisateur au produit" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Evaluation du produit" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2682,128 +2721,130 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"Représente les produits associés aux commandes et leurs attributs. Le modèle " -"OrderProduct conserve les informations relatives à un produit faisant partie " -"d'une commande, y compris des détails tels que le prix d'achat, la quantité, " -"les attributs du produit et le statut. Il gère les notifications destinées à " -"l'utilisateur et aux administrateurs, ainsi que des opérations telles que le " -"renvoi du solde du produit ou l'ajout de commentaires. Ce modèle fournit " -"également des méthodes et des propriétés qui prennent en charge la logique " -"commerciale, comme le calcul du prix total ou la génération d'une URL de " -"téléchargement pour les produits numériques. Le modèle s'intègre aux modèles " -"de commande et de produit et stocke une référence à ces derniers." +"Représente les produits associés aux commandes et leurs attributs. Le modèle" +" OrderProduct conserve les informations relatives à un produit faisant " +"partie d'une commande, y compris des détails tels que le prix d'achat, la " +"quantité, les attributs du produit et le statut. Il gère les notifications " +"destinées à l'utilisateur et aux administrateurs, ainsi que des opérations " +"telles que le renvoi du solde du produit ou l'ajout de commentaires. Ce " +"modèle fournit également des méthodes et des propriétés qui prennent en " +"charge la logique commerciale, comme le calcul du prix total ou la " +"génération d'une URL de téléchargement pour les produits numériques. Le " +"modèle s'intègre aux modèles de commande et de produit et stocke une " +"référence à ces derniers." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "Le prix payé par le client pour ce produit au moment de l'achat" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Prix d'achat au moment de la commande" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" -msgstr "Commentaires internes pour les administrateurs sur ce produit commandé" +msgstr "" +"Commentaires internes pour les administrateurs sur ce produit commandé" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Commentaires internes" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Notifications aux utilisateurs" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "Représentation JSON des attributs de cet élément" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Attributs du produit ordonnés" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Référence à l'ordre parent qui contient ce produit" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Ordonnance parentale" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Le produit spécifique associé à cette ligne de commande" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Quantité de ce produit spécifique dans la commande" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Quantité de produits" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Statut actuel de ce produit dans la commande" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Statut de la ligne de produits" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Le produit doit être associé à une commande !" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Mauvaise action spécifiée pour le retour d'information : {action} !" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "" "Vous ne pouvez pas retirer des produits d'une commande qui n'est pas en " "cours." -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Nom" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL de l'intégration" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Références d'authentification" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Vous ne pouvez avoir qu'un seul fournisseur de CRM par défaut" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Lien CRM de la commande" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Liens CRM des commandes" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Représente la fonctionnalité de téléchargement des ressources numériques " "associées aux commandes. La classe DigitalAssetDownload permet de gérer et " @@ -2813,11 +2854,11 @@ msgstr "" "méthode permettant de générer une URL pour le téléchargement de l'actif " "lorsque la commande associée est terminée." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Télécharger" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Téléchargements" @@ -3018,8 +3059,7 @@ msgstr "Bonjour %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Merci pour votre commande #%(order.pk)s ! Nous avons le plaisir de vous " @@ -3134,8 +3174,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Nous vous remercions pour votre commande ! Nous avons le plaisir de " @@ -3174,8 +3213,8 @@ msgstr "Les données et le délai d'attente sont tous deux nécessaires" #: engine/core/utils/caching.py:52 msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" -"La valeur du délai d'attente n'est pas valide, elle doit être comprise entre " -"0 et 216000 secondes." +"La valeur du délai d'attente n'est pas valide, elle doit être comprise entre" +" 0 et 216000 secondes." #: engine/core/utils/emailing.py:27 #, python-brace-format @@ -3227,8 +3266,8 @@ msgid "" "Content-Type header for XML." msgstr "" "Gère la réponse détaillée d'un plan du site. Cette fonction traite la " -"demande, récupère la réponse détaillée appropriée du plan du site et définit " -"l'en-tête Content-Type pour XML." +"demande, récupère la réponse détaillée appropriée du plan du site et définit" +" l'en-tête Content-Type pour XML." #: engine/core/views.py:155 msgid "" @@ -3272,15 +3311,10 @@ msgstr "Gère la logique de l'achat en tant qu'entreprise sans enregistrement." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gère le téléchargement d'un bien numérique associé à une commande.\n" -"Cette fonction tente de servir le fichier de ressource numérique situé dans " -"le répertoire de stockage du projet. Si le fichier n'est pas trouvé, une " -"erreur HTTP 404 est générée pour indiquer que la ressource n'est pas " -"disponible." +"Cette fonction tente de servir le fichier de ressource numérique situé dans le répertoire de stockage du projet. Si le fichier n'est pas trouvé, une erreur HTTP 404 est générée pour indiquer que la ressource n'est pas disponible." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3309,25 +3343,21 @@ msgstr "favicon introuvable" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gère les demandes de favicon d'un site web.\n" -"Cette fonction tente de servir le fichier favicon situé dans le répertoire " -"statique du projet. Si le fichier favicon n'est pas trouvé, une erreur HTTP " -"404 est générée pour indiquer que la ressource n'est pas disponible." +"Cette fonction tente de servir le fichier favicon situé dans le répertoire statique du projet. Si le fichier favicon n'est pas trouvé, une erreur HTTP 404 est générée pour indiquer que la ressource n'est pas disponible." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Redirige la requête vers la page d'index de l'interface d'administration. " -"Cette fonction gère les requêtes HTTP entrantes et les redirige vers la page " -"d'index de l'interface d'administration de Django. Elle utilise la fonction " -"`redirect` de Django pour gérer la redirection HTTP." +"Cette fonction gère les requêtes HTTP entrantes et les redirige vers la page" +" d'index de l'interface d'administration de Django. Elle utilise la fonction" +" `redirect` de Django pour gérer la redirection HTTP." #: engine/core/views.py:445 msgid "Returns current version of the Schon. " @@ -3344,9 +3374,9 @@ msgstr "Renvoie les variables personnalisées pour le tableau de bord." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The schonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3359,10 +3389,11 @@ msgstr "" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Représente un jeu de vues pour la gestion des objets AttributeGroup. Gère " "les opérations liées à l'AttributeGroup, notamment le filtrage, la " @@ -3392,14 +3423,15 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"Un viewset pour la gestion des objets AttributeValue. Ce viewset fournit des " -"fonctionnalités pour lister, récupérer, créer, mettre à jour et supprimer " +"Un viewset pour la gestion des objets AttributeValue. Ce viewset fournit des" +" fonctionnalités pour lister, récupérer, créer, mettre à jour et supprimer " "des objets AttributeValue. Il s'intègre aux mécanismes de viewset du cadre " "REST de Django et utilise les sérialiseurs appropriés pour les différentes " -"actions. Les capacités de filtrage sont fournies par le backend DjangoFilter." +"actions. Les capacités de filtrage sont fournies par le backend " +"DjangoFilter." #: engine/core/viewsets.py:217 msgid "" @@ -3410,8 +3442,8 @@ msgid "" "can access specific data." msgstr "" "Gère les vues pour les opérations liées à la catégorie. La classe " -"CategoryViewSet est responsable de la gestion des opérations liées au modèle " -"Category dans le système. Elle permet d'extraire, de filtrer et de " +"CategoryViewSet est responsable de la gestion des opérations liées au modèle" +" Category dans le système. Elle permet d'extraire, de filtrer et de " "sérialiser les données relatives aux catégories. Le jeu de vues applique " "également des permissions pour s'assurer que seuls les utilisateurs " "autorisés peuvent accéder à des données spécifiques." @@ -3425,16 +3457,16 @@ msgid "" msgstr "" "Représente un jeu de vues pour la gestion des instances de marque. Cette " "classe fournit des fonctionnalités d'interrogation, de filtrage et de " -"sérialisation des objets Brand. Elle utilise le cadre ViewSet de Django pour " -"simplifier la mise en œuvre des points d'extrémité de l'API pour les objets " -"Brand." +"sérialisation des objets Brand. Elle utilise le cadre ViewSet de Django pour" +" simplifier la mise en œuvre des points d'extrémité de l'API pour les objets" +" Brand." #: engine/core/viewsets.py:458 msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`schonViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3444,8 +3476,8 @@ msgstr "" "sérialisation et les opérations sur des instances spécifiques. Elle s'étend " "à partir de `schonViewSet` pour utiliser des fonctionnalités communes et " "s'intègre au framework REST de Django pour les opérations API RESTful. Il " -"comprend des méthodes pour récupérer les détails d'un produit, appliquer des " -"permissions et accéder aux commentaires connexes d'un produit." +"comprend des méthodes pour récupérer les détails d'un produit, appliquer des" +" permissions et accéder aux commentaires connexes d'un produit." #: engine/core/viewsets.py:605 msgid "" @@ -3455,8 +3487,8 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Représente un jeu de vues pour la gestion des objets Vendeur. Ce jeu de vues " -"permet d'extraire, de filtrer et de sérialiser les données relatives aux " +"Représente un jeu de vues pour la gestion des objets Vendeur. Ce jeu de vues" +" permet d'extraire, de filtrer et de sérialiser les données relatives aux " "vendeurs. Il définit l'ensemble de requêtes, les configurations de filtrage " "et les classes de sérialisation utilisées pour gérer les différentes " "actions. L'objectif de cette classe est de fournir un accès simplifié aux " @@ -3468,8 +3500,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `schonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Représentation d'un ensemble de vues gérant des objets de retour " @@ -3478,17 +3510,17 @@ msgstr "" "l'extraction de détails. L'objectif de ce jeu de vues est de fournir " "différents sérialiseurs pour différentes actions et d'implémenter une " "gestion basée sur les permissions des objets Feedback accessibles. Il étend " -"la classe de base `schonViewSet` et utilise le système de filtrage de " -"Django pour l'interrogation des données." +"la classe de base `schonViewSet` et utilise le système de filtrage de Django" +" pour l'interrogation des données." #: engine/core/viewsets.py:652 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet pour la gestion des commandes et des opérations connexes. Cette " @@ -3505,15 +3537,15 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Fournit un jeu de vues pour la gestion des entités OrderProduct. Ce jeu de " "vues permet d'effectuer des opérations CRUD et des actions personnalisées " "spécifiques au modèle OrderProduct. Il inclut le filtrage, les contrôles de " -"permission et le changement de sérialiseur en fonction de l'action demandée. " -"En outre, il fournit une action détaillée pour gérer le retour " +"permission et le changement de sérialiseur en fonction de l'action demandée." +" En outre, il fournit une action détaillée pour gérer le retour " "d'informations sur les instances OrderProduct." #: engine/core/viewsets.py:974 @@ -3540,8 +3572,8 @@ msgstr "Gère les opérations liées aux données de stock dans le système." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3549,9 +3581,9 @@ msgstr "" "Jeu de vues pour la gestion des opérations de la liste de souhaits. Le jeu " "de vues WishlistViewSet fournit des points d'extrémité pour interagir avec " "la liste de souhaits d'un utilisateur, permettant la récupération, la " -"modification et la personnalisation des produits de la liste de souhaits. Ce " -"jeu de vues facilite les fonctionnalités telles que l'ajout, la suppression " -"et les actions en bloc pour les produits de la liste de souhaits. Des " +"modification et la personnalisation des produits de la liste de souhaits. Ce" +" jeu de vues facilite les fonctionnalités telles que l'ajout, la suppression" +" et les actions en bloc pour les produits de la liste de souhaits. Des " "contrôles de permissions sont intégrés pour s'assurer que les utilisateurs " "ne peuvent gérer que leur propre liste de souhaits, sauf si des permissions " "explicites sont accordées." @@ -3565,11 +3597,11 @@ msgid "" "on the request context." msgstr "" "Cette classe fournit une fonctionnalité de viewset pour la gestion des " -"objets `Address`. La classe AddressViewSet permet d'effectuer des opérations " -"CRUD, des filtrages et des actions personnalisées liées aux entités adresse. " -"Elle inclut des comportements spécialisés pour différentes méthodes HTTP, " -"des dérogations au sérialiseur et une gestion des autorisations basée sur le " -"contexte de la demande." +"objets `Address`. La classe AddressViewSet permet d'effectuer des opérations" +" CRUD, des filtrages et des actions personnalisées liées aux entités " +"adresse. Elle inclut des comportements spécialisés pour différentes méthodes" +" HTTP, des dérogations au sérialiseur et une gestion des autorisations basée" +" sur le contexte de la demande." #: engine/core/viewsets.py:1254 #, python-brace-format diff --git a/engine/core/locale/he_IL/LC_MESSAGES/django.mo b/engine/core/locale/he_IL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..587340f68d374f5191a9f3a05c746a7873a49a60 GIT binary patch literal 101953 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 literal 0 HcmV?d00001 diff --git a/engine/core/locale/he_IL/LC_MESSAGES/django.po b/engine/core/locale/he_IL/LC_MESSAGES/django.po index 8bea7571..21c3c820 100644 --- a/engine/core/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/core/locale/he_IL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "פעיל" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "אם מוגדר כ-false, אובייקט זה לא יהיה גלוי למשתמשים ללא ההרשאה הנדרשת." #: engine/core/abstract.py:26 engine/core/choices.py:18 @@ -72,7 +73,7 @@ msgstr "חותמות זמן" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "הפעל את %(verbose_name_plural)s שנבחר" #: engine/core/admin.py:166 @@ -81,21 +82,21 @@ msgstr "הפריטים שנבחרו הופעלו!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "השבת את %(verbose_name_plural)s שנבחר" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "השבת את %(verbose_name_plural)s הנבחר" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "פריטים נבחרים הושבתו!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "ערך התכונה" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "ערכי תכונות" @@ -115,12 +116,12 @@ msgstr "מלאי" msgid "stocks" msgstr "מניות" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "הזמן מוצר" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "הזמנת מוצרים" @@ -128,7 +129,31 @@ msgstr "הזמנת מוצרים" msgid "children" msgstr "ילדים" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "יש תמונות" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "ייצא את %(verbose_name_plural)s הנבחר לפידים של שווקים" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "ה-%(verbose_name_plural)s שנבחרו סומנו לייצוא." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "חסום את %(verbose_name_plural)s מהפידים של השווקים" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "%(verbose_name_plural)s שנבחרו נאסרו לייצוא." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "תצורה" @@ -152,7 +177,8 @@ msgstr "נמסר" msgid "canceled" msgstr "בוטל" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "נכשל" @@ -265,7 +291,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "שכתוב קבוצת תכונות קיימת תוך שמירת תכונות שאינן ניתנות לעריכה" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "שכתוב שדות מסוימים בקבוצת תכונות קיימת תוך שמירת תכונות שאינן ניתנות לעריכה" @@ -314,7 +341,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "שכתוב ערך תכונה קיים תוך שמירת תכונות שאינן ניתנות לעריכה" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "שכתוב שדות מסוימים של ערך תכונה קיים תוך שמירת שדות שאינם ניתנים לעריכה" @@ -368,8 +396,8 @@ msgstr "למשתמשים שאינם אנשי צוות, מוצגות רק ההז #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "חיפוש תת-מחרוזת ללא הבחנה בין אותיות גדולות וקטנות ב-human_readable_id, " "order_products.product.name ו-order_products.product.partnumber" @@ -407,9 +435,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "מיין לפי אחד מהפרמטרים הבאים: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. הוסף קידומת '-' עבור מיון יורד " @@ -453,8 +481,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"מסיים את רכישת ההזמנה. אם נעשה שימוש ב-`force_balance`, הרכישה תושלם באמצעות " -"היתרה של המשתמש; אם נעשה שימוש ב-`force_payment`, תתבצע עסקה." +"מסיים את רכישת ההזמנה. אם נעשה שימוש ב-`force_balance`, הרכישה תושלם באמצעות" +" היתרה של המשתמש; אם נעשה שימוש ב-`force_payment`, תתבצע עסקה." #: engine/core/docs/drf/viewsets.py:427 msgid "retrieve current pending order of a user" @@ -511,7 +539,8 @@ msgstr "הסר מוצר מההזמנה, הכמויות לא ייספרו" msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" -msgstr "מסיר רשימת מוצרים מהזמנה באמצעות `product_uuid` ו-`attributes` שסופקו." +msgstr "" +"מסיר רשימת מוצרים מהזמנה באמצעות `product_uuid` ו-`attributes` שסופקו." #: engine/core/docs/drf/viewsets.py:497 msgid "list all wishlists (simple view)" @@ -590,28 +619,15 @@ msgstr "מסיר מוצרים רבים מרשימת המשאלות באמצעו msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" -"סינון לפי זוגות שם/ערך של תכונה אחת או יותר. • **תחביר**: `attr_name=method-" -"value[;attr2=method2-value2]…` • **שיטות** (ברירת המחדל היא `icontains` אם " -"לא צוין): `iexact`, `exact`, `icontains`, `contains`, `isnull`, " -"`startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, " -"`lt`, `lte`, `gt`, `gte`, `in` • **הקלדת ערכים**: תחילה מתבצע ניסיון JSON " -"(כך שניתן להעביר רשימות/מילונים), `true`/`false` עבור ערכי בוליאניים, מספרים " -"שלמים, מספרים צפים; אחרת מטופל כמחרוזת. • **Base64**: קידומת עם `b64-` כדי " -"לקודד את הערך הגולמי ב-base64 בטוח ל-URL. \n" -"דוגמאות: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" +"סינון לפי זוגות שם/ערך של תכונה אחת או יותר. • **תחביר**: `attr_name=method-value[;attr2=method2-value2]…` • **שיטות** (ברירת המחדל היא `icontains` אם לא צוין): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` • **הקלדת ערכים**: תחילה מתבצע ניסיון JSON (כך שניתן להעביר רשימות/מילונים), `true`/`false` עבור ערכי בוליאניים, מספרים שלמים, מספרים צפים; אחרת מטופל כמחרוזת. • **Base64**: קידומת עם `b64-` כדי לקודד את הערך הגולמי ב-base64 בטוח ל-URL. \n" +"דוגמאות: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" #: engine/core/docs/drf/viewsets.py:617 engine/core/docs/drf/viewsets.py:618 msgid "list all products (simple view)" @@ -623,12 +639,11 @@ msgstr "(מדויק) UUID של המוצר" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"רשימה של שדות למיון, מופרדים בפסיקים. קידומת `-` למיון יורד. **מותר:** uuid, " -"rating, name, slug, created, modified, price, random" +"רשימה של שדות למיון, מופרדים בפסיקים. קידומת `-` למיון יורד. **מותר:** uuid," +" rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "retrieve a single product (detailed view)" @@ -927,7 +942,8 @@ msgstr "שכתוב תגית מוצר קיימת תוך שמירת תוכן שא #: engine/core/docs/drf/viewsets.py:1350 msgid "rewrite some fields of an existing product tag saving non-editables" -msgstr "שכתוב שדות מסוימים בתגית מוצר קיימת תוך שמירת שדות שאינם ניתנים לעריכה" +msgstr "" +"שכתוב שדות מסוימים בתגית מוצר קיימת תוך שמירת שדות שאינם ניתנים לעריכה" #: engine/core/elasticsearch/__init__.py:128 #: engine/core/elasticsearch/__init__.py:629 @@ -1161,8 +1177,8 @@ msgstr "קנה הזמנה" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "אנא שלחו את התכונות כמחרוזת מעוצבת כך: attr1=value1,attr2=value2" #: engine/core/graphene/mutations.py:580 @@ -1182,9 +1198,9 @@ msgstr "המוצר {order_product_uuid} לא נמצא!" msgid "original address string provided by the user" msgstr "מחרוזת הכתובת המקורית שסופקה על ידי המשתמש" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1200,8 +1216,8 @@ msgstr "ElasticSearch - עובד כמו קסם" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "תכונות" @@ -1237,7 +1253,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "אילו תכונות וערכים ניתן להשתמש בהם לסינון קטגוריה זו." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "מחירים מינימליים ומקסימליים עבור מוצרים בקטגוריה זו, אם זמינים." #: engine/core/graphene/object_types.py:234 @@ -1274,7 +1291,7 @@ msgid "represents feedback from a user." msgstr "מייצג משוב ממשתמש." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "הודעות" @@ -1282,7 +1299,7 @@ msgstr "הודעות" msgid "download url for this order product if applicable" msgstr "כתובת URL להורדת המוצר שהוזמן, אם רלוונטי" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "משוב" @@ -1290,7 +1307,7 @@ msgstr "משוב" msgid "a list of order products in this order" msgstr "רשימת המוצרים בהזמנה זו" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "כתובת לחיוב" @@ -1317,7 +1334,7 @@ msgstr "האם כל המוצרים בהזמנה הם דיגיטליים?" msgid "transactions for this order" msgstr "עסקאות עבור הזמנה זו" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "הזמנות" @@ -1334,7 +1351,7 @@ msgstr "תמונות המוצר" msgid "category" msgstr "קטגוריה" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "משובים" @@ -1375,7 +1392,7 @@ msgstr "מוצרים זמינים רק להזמנות אישיות" msgid "discount price" msgstr "מחיר מוזל" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "מוצרים" @@ -1387,7 +1404,7 @@ msgstr "קודי קידום מכירות" msgid "products on sale" msgstr "מוצרים במבצע" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "מבצעים" @@ -1395,7 +1412,7 @@ msgstr "מבצעים" msgid "vendor" msgstr "ספק" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1403,11 +1420,11 @@ msgstr "ספק" msgid "product" msgstr "מוצר" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "מוצרים ברשימת המשאלות" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "רשימות משאלות" @@ -1521,7 +1538,7 @@ msgstr "קבוצת תכונות הורה" msgid "attribute group's name" msgstr "שם קבוצת התכונות" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "קבוצת תכונות" @@ -1591,8 +1608,8 @@ msgid "" msgstr "" "מייצג תגית מוצר המשמשת לסיווג או זיהוי מוצרים. מחלקת ProductTag נועדה לזהות " "ולסווג מוצרים באופן ייחודי באמצעות שילוב של מזהה תגית פנימי ושם תצוגה " -"ידידותי למשתמש. היא תומכת בפעולות המיוצאות באמצעות mixins ומספקת התאמה אישית " -"של מטא-נתונים למטרות ניהוליות." +"ידידותי למשתמש. היא תומכת בפעולות המיוצאות באמצעות mixins ומספקת התאמה אישית" +" של מטא-נתונים למטרות ניהוליות." #: engine/core/models.py:204 engine/core/models.py:235 msgid "internal tag identifier for the product tag" @@ -1621,8 +1638,8 @@ msgid "" "attributes for an internal tag identifier and a user-friendly display name." msgstr "" "מייצג תווית קטגוריה המשמשת למוצרים. מחלקה זו מדגמת תווית קטגוריה שניתן " -"להשתמש בה כדי לקשר ולסווג מוצרים. היא כוללת תכונות עבור מזהה תווית פנימי ושם " -"תצוגה ידידותי למשתמש." +"להשתמש בה כדי לקשר ולסווג מוצרים. היא כוללת תכונות עבור מזהה תווית פנימי ושם" +" תצוגה ידידותי למשתמש." #: engine/core/models.py:249 msgid "category tag" @@ -1700,10 +1717,11 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"מייצג אובייקט מותג במערכת. מחלקה זו מטפלת במידע ובתכונות הקשורים למותג, כולל " -"שמו, לוגואים, תיאור, קטגוריות קשורות, סלוגן ייחודי וסדר עדיפות. היא מאפשרת " +"מייצג אובייקט מותג במערכת. מחלקה זו מטפלת במידע ובתכונות הקשורים למותג, כולל" +" שמו, לוגואים, תיאור, קטגוריות קשורות, סלוגן ייחודי וסדר עדיפות. היא מאפשרת " "ארגון וייצוג של נתונים הקשורים למותג בתוך היישום." #: engine/core/models.py:456 @@ -1748,8 +1766,8 @@ msgstr "קטגוריות" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1780,8 +1798,8 @@ msgstr "מחיר המכירה" msgid "the product associated with this stock entry" msgstr "המוצר הקשור לרישום המלאי הזה" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "מוצר נלווה" @@ -1837,11 +1855,11 @@ msgid "" "product data and its associated information within an application." msgstr "" "מייצג מוצר עם תכונות כגון קטגוריה, מותג, תגיות, סטטוס דיגיטלי, שם, תיאור, " -"מספר חלק ו-slug. מספק תכונות שירות נלוות לאחזור דירוגים, ספירת משובים, מחיר, " -"כמות והזמנות סה\"כ. מיועד לשימוש במערכת המטפלת במסחר אלקטרוני או בניהול " +"מספר חלק ו-slug. מספק תכונות שירות נלוות לאחזור דירוגים, ספירת משובים, מחיר," +" כמות והזמנות סה\"כ. מיועד לשימוש במערכת המטפלת במסחר אלקטרוני או בניהול " "מלאי. מחלקה זו מתקשרת עם מודלים נלווים (כגון קטגוריה, מותג ותגית מוצר) " -"ומנהלת את המטמון עבור תכונות הנגישות בתדירות גבוהה כדי לשפר את הביצועים. הוא " -"משמש להגדרה ולעיבוד נתוני מוצר והמידע הקשור אליו בתוך יישום." +"ומנהלת את המטמון עבור תכונות הנגישות בתדירות גבוהה כדי לשפר את הביצועים. הוא" +" משמש להגדרה ולעיבוד נתוני מוצר והמידע הקשור אליו בתוך יישום." #: engine/core/models.py:595 msgid "category this product belongs to" @@ -1879,7 +1897,7 @@ msgstr "ספק שם מזהה ברור למוצר" msgid "product name" msgstr "שם המוצר" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "הוסף תיאור מפורט של המוצר" @@ -1899,103 +1917,112 @@ msgstr "מספר חלק" msgid "stock keeping unit for this product" msgstr "יחידת אחסון מלאי עבור מוצר זה" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "האם לייצא מוצר זה לשווקים" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "ייצוא לשווקים" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "מייצג תכונה במערכת. מחלקה זו משמשת להגדרת תכונות ולניהולן. תכונות הן נתונים " -"הניתנים להתאמה אישית, שניתן לקשר לישויות אחרות. לתכונות יש קטגוריות, קבוצות, " -"סוגי ערכים ושמות משויכים. המודל תומך בסוגים רבים של ערכים, כולל מחרוזת, מספר " -"שלם, מספר צף, בוליאני, מערך ואובייקט. הדבר מאפשר בניית נתונים דינמית וגמישה." +"הניתנים להתאמה אישית, שניתן לקשר לישויות אחרות. לתכונות יש קטגוריות, קבוצות," +" סוגי ערכים ושמות משויכים. המודל תומך בסוגים רבים של ערכים, כולל מחרוזת, " +"מספר שלם, מספר צף, בוליאני, מערך ואובייקט. הדבר מאפשר בניית נתונים דינמית " +"וגמישה." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "קבוצה של תכונה זו" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "מחרוזת" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "יושרה" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "צף" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "בוליאני" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "מערך" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "אובייקט" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "סוג ערך התכונה" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "סוג ערך" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "שם התכונה הזו" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "שם התכונה" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "ניתן לסינון" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "מציין אם ניתן להשתמש בתכונה זו לצורך סינון או לא" -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "תכונה" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "מייצג ערך ספציפי עבור תכונה המקושרת למוצר. הוא מקשר את ה\"תכונה\" ל\"ערך\" " "ייחודי, ומאפשר ארגון טוב יותר וייצוג דינמי של מאפייני המוצר." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "תכונה של ערך זה" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "המוצר הספציפי הקשור לערך של תכונה זו" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "הערך הספציפי עבור תכונה זו" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2003,85 +2030,85 @@ msgstr "" "כולל פונקציונליות להעלאת קבצי תמונה, שיוכם למוצרים ספציפיים וקביעת סדר " "התצוגה שלהם. היא כוללת גם תכונת נגישות עם טקסט חלופי לתמונות." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "ספק טקסט חלופי לתמונה לצורך נגישות" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "טקסט חלופי לתמונה" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "העלה את קובץ התמונה עבור מוצר זה" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "תמונת מוצר" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "קובע את סדר הצגת התמונות" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "עדיפות תצוגה" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "המוצר שהדימוי הזה מייצג" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "תמונות מוצרים" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "מייצג קמפיין קידום מכירות למוצרים בהנחה. מחלקה זו משמשת להגדרת וניהול " "קמפיינים לקידום מכירות המציעים הנחה באחוזים על מוצרים. המחלקה כוללת תכונות " "להגדרת שיעור ההנחה, מתן פרטים על המבצע וקישורו למוצרים הרלוונטיים. היא " "משתלבת בקטלוג המוצרים כדי לקבוע את הפריטים המושפעים בקמפיין." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "אחוז ההנחה עבור המוצרים שנבחרו" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "אחוז ההנחה" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "ציין שם ייחודי לקידום מכירות זה" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "שם המבצע" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "תיאור המבצע" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "בחר אילו מוצרים כלולים במבצע זה" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "מוצרים כלולים" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "קידום" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2092,119 +2119,120 @@ msgstr "" "פונקציונליות לניהול אוסף מוצרים, תומכת בפעולות כגון הוספה והסרה של מוצרים, " "וכן תומכת בפעולות להוספה והסרה של מספר מוצרים בבת אחת." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "מוצרים שהמשתמש סימן כנחשקים" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "המשתמש שבבעלותו רשימת המשאלות הזו" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "בעל רשימת המשאלות" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "רשימת משאלות" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "מייצג תיעוד הקשור למוצר. מחלקה זו משמשת לאחסון מידע על תיעוד הקשור למוצרים " "ספציפיים, כולל העלאת קבצים ומטא-נתונים שלהם. היא מכילה שיטות ותכונות לטיפול " "בסוג הקובץ ובנתיב האחסון של קבצי התיעוד. היא מרחיבה את הפונקציונליות של " "מיקסים ספציפיים ומספקת תכונות מותאמות אישית נוספות." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "סרט תיעודי" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "סרטים תיעודיים" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "לא פתור" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "מייצג ישות כתובת הכוללת פרטים על מיקום וקשרים עם משתמש. מספק פונקציונליות " "לאחסון נתונים גיאוגרפיים וכתובות, וכן אינטגרציה עם שירותי קידוד גיאוגרפי. " -"מחלקה זו נועדה לאחסן מידע מפורט על כתובות, כולל רכיבים כגון רחוב, עיר, אזור, " -"מדינה ומיקום גיאוגרפי (קו אורך וקו רוחב). היא תומכת באינטגרציה עם ממשקי API " -"לקידוד גיאוגרפי, ומאפשרת אחסון של תגובות API גולמיות לעיבוד או בדיקה נוספים. " -"הסוג גם מאפשר לקשר כתובת למשתמש, מה שמקל על טיפול בנתונים מותאמים אישית." +"מחלקה זו נועדה לאחסן מידע מפורט על כתובות, כולל רכיבים כגון רחוב, עיר, אזור," +" מדינה ומיקום גיאוגרפי (קו אורך וקו רוחב). היא תומכת באינטגרציה עם ממשקי API" +" לקידוד גיאוגרפי, ומאפשרת אחסון של תגובות API גולמיות לעיבוד או בדיקה " +"נוספים. הסוג גם מאפשר לקשר כתובת למשתמש, מה שמקל על טיפול בנתונים מותאמים " +"אישית." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "שורת כתובת עבור הלקוח" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "שורת כתובת" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "רחוב" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "מחוז" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "עיר" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "אזור" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "מיקוד" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "מדינה" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "נקודת מיקום גיאוגרפי (אורך, רוחב)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "תגובה JSON מלאה מ-geocoder עבור כתובת זו" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "תגובת JSON שמורה משירות הגיאו-קידוד" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "כתובת" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "כתובות" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2216,233 +2244,233 @@ msgstr "" "מייצג קוד קידום מכירות שניתן להשתמש בו לקבלת הנחות, לניהול תוקפו, סוג ההנחה " "והשימוש בו. מחלקת PromoCode מאחסנת פרטים אודות קוד קידום מכירות, כולל המזהה " "הייחודי שלו, מאפייני ההנחה (סכום או אחוז), תקופת התוקף, המשתמש המשויך (אם " -"יש) ומצב השימוש בו. היא כוללת פונקציונליות לאימות והחלת קוד הקידום על הזמנה, " -"תוך הקפדה על עמידה באילוצים." +"יש) ומצב השימוש בו. היא כוללת פונקציונליות לאימות והחלת קוד הקידום על הזמנה," +" תוך הקפדה על עמידה באילוצים." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "קוד ייחודי המשמש את המשתמש למימוש הנחה" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "מזהה קוד קידום מכירות" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "סכום הנחה קבוע המוחל אם לא נעשה שימוש באחוזים" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "סכום הנחה קבוע" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "אחוז ההנחה שיחול אם לא ייעשה שימוש בסכום הקבוע" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "אחוז ההנחה" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "חותמת זמן לתוקף הקוד המקדם מכירות" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "תוקף הסוף" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "תאריך התחילה של תוקף קוד המבצע" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "תחילת תוקף" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "חותמת זמן שבה נעשה שימוש בקוד המבצע, ריק אם טרם נעשה בו שימוש" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "חותמת זמן שימוש" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "משתמש שהוקצה לקוד קידום מכירות זה, אם רלוונטי" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "משתמש שהוקצה" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "קוד קידום מכירות" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "קודי קידום מכירות" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" "יש להגדיר סוג הנחה אחד בלבד (סכום או אחוז), אך לא את שניהם או אף אחד מהם." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "קוד המבצע כבר נוצל" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "סוג הנחה לא חוקי עבור קוד קידום מכירות {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "מייצג הזמנה שבוצעה על ידי משתמש. מחלקה זו מדמה הזמנה בתוך היישום, כולל " "תכונותיה השונות כגון פרטי חיוב ומשלוח, סטטוס, משתמש קשור, התראות ופעולות " "נלוות. להזמנות יכולות להיות מוצרים נלווים, ניתן להחיל עליהן מבצעים, להגדיר " -"כתובות ולעדכן פרטי משלוח או חיוב. כמו כן, הפונקציונליות תומכת בניהול המוצרים " -"במחזור החיים של ההזמנה." +"כתובות ולעדכן פרטי משלוח או חיוב. כמו כן, הפונקציונליות תומכת בניהול המוצרים" +" במחזור החיים של ההזמנה." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "כתובת החיוב המשמשת להזמנה זו" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "קוד קידום מכירות אופציונלי שהוחל על הזמנה זו" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "קוד קידום מכירות שהוחל" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "כתובת המשלוח המשמשת להזמנה זו" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "כתובת למשלוח" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "הסטטוס הנוכחי של ההזמנה במחזור החיים שלה" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "סטטוס ההזמנה" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "מבנה JSON של הודעות שיוצגו למשתמשים, בממשק המשתמש המנהלי נעשה שימוש בתצוגת " "טבלה." -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "ייצוג JSON של תכונות ההזמנה עבור הזמנה זו" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "המשתמש שהזמין את ההזמנה" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "משתמש" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "החותמת הזמן שבה הושלמה ההזמנה" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "לקנות זמן" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "מזהה קריא לאדם עבור ההזמנה" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "מזהה קריא על ידי בני אדם" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "הזמנה" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "למשתמש יכול להיות רק הזמנה אחת בהמתנה בכל פעם!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "לא ניתן להוסיף מוצרים להזמנה שאינה בהמתנה." -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "לא ניתן להוסיף מוצרים לא פעילים להזמנה" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "לא ניתן להוסיף מוצרים מעבר למלאי הזמין" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "לא ניתן להסיר מוצרים מהזמנה שאינה בהמתנה." -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} אינו קיים בשאילתה <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "קוד קידום מכירות אינו קיים" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "ניתן לרכוש מוצרים פיזיים רק עם ציון כתובת משלוח!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "הכתובת אינה קיימת" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "לא ניתן לבצע רכישה כרגע, אנא נסה שוב בעוד מספר דקות." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "ערך כוח לא חוקי" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "אי אפשר לרכוש הזמנה ריקה!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "אי אפשר לקנות הזמנה בלי משתמש!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "משתמש ללא יתרה לא יכול לקנות עם יתרה!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "אין מספיק כסף כדי להשלים את ההזמנה" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2450,13 +2478,13 @@ msgstr "" "אינך יכול לרכוש ללא רישום, אנא ספק את הפרטים הבאים: שם הלקוח, דוא\"ל הלקוח, " "מספר הטלפון של הלקוח" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "אמצעי תשלום לא חוקי: {payment_method} מ-{available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2466,34 +2494,35 @@ msgid "" msgstr "" "מנהל משוב משתמשים על מוצרים. מחלקה זו נועדה לאסוף ולאחסן משוב משתמשים על " "מוצרים ספציפיים שרכשו. היא מכילה תכונות לאחסון הערות משתמשים, הפניה למוצר " -"הקשור בהזמנה ודירוג שהוקצה על ידי המשתמש. המחלקה משתמשת בשדות מסד נתונים כדי " -"למדל ולנהל ביעילות נתוני משוב." +"הקשור בהזמנה ודירוג שהוקצה על ידי המשתמש. המחלקה משתמשת בשדות מסד נתונים כדי" +" למדל ולנהל ביעילות נתוני משוב." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "הערות שסיפקו המשתמשים על חווייתם עם המוצר" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "הערות משוב" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "מתייחס למוצר הספציפי בהזמנה שעליה מתייחס משוב זה." -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "מוצר בהזמנה קשורה" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "דירוג שהוקצה על ידי המשתמש למוצר" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "דירוג מוצר" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2505,134 +2534,134 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"מייצג מוצרים הקשורים להזמנות ותכונותיהם. מודל OrderProduct שומר מידע על מוצר " -"שהוא חלק מהזמנה, כולל פרטים כגון מחיר הרכישה, כמות, תכונות המוצר ומצב. הוא " +"מייצג מוצרים הקשורים להזמנות ותכונותיהם. מודל OrderProduct שומר מידע על מוצר" +" שהוא חלק מהזמנה, כולל פרטים כגון מחיר הרכישה, כמות, תכונות המוצר ומצב. הוא " "מנהל התראות למשתמש ולמנהלים ומטפל בפעולות כגון החזרת יתרת המוצר או הוספת " "משוב. מודל זה מספק גם שיטות ותכונות התומכות בלוגיקה עסקית, כגון חישוב המחיר " "הכולל או יצירת כתובת URL להורדה עבור מוצרים דיגיטליים. המודל משתלב עם מודלי " "Order ו-Product ומאחסן הפניה אליהם." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "המחיר ששילם הלקוח עבור מוצר זה בעת הרכישה" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "מחיר הרכישה בעת ההזמנה" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "הערות פנימיות למנהלים אודות מוצר זה שהוזמן" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "הערות פנימיות" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "הודעות למשתמשים" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "ייצוג JSON של תכונות פריט זה" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "תכונות המוצר שהוזמן" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "הפניה להזמנה הראשית המכילה מוצר זה" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "הזמנת הורים" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "המוצר הספציפי הקשור לשורת הזמנה זו" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "כמות המוצר הספציפי הזה בהזמנה" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "כמות המוצר" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "הסטטוס הנוכחי של מוצר זה בהזמנה" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "סטטוס קו המוצרים" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "המוצר בהזמנה חייב להיות קשור להזמנה!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "פעולה שגויה שצוינה עבור משוב: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "אינך יכול להחזיר הזמנה שלא התקבלה" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "שם" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "כתובת ה-URL של האינטגרציה" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "אישורי אימות" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "ניתן להגדיר ספק CRM ברירת מחדל אחד בלבד" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "קישור CRM של ההזמנה" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "קישורי CRM של הזמנות" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "מייצג את פונקציונליות ההורדה של נכסים דיגיטליים הקשורים להזמנות. מחלקת " "DigitalAssetDownload מספקת את היכולת לנהל ולהיכנס להורדות הקשורות למוצרים " -"שהוזמנו. היא שומרת מידע על המוצר שהוזמן, מספר ההורדות והאם הנכס גלוי לציבור. " -"היא כוללת שיטה ליצירת כתובת URL להורדת הנכס כאשר ההזמנה הקשורה נמצאת במצב " +"שהוזמנו. היא שומרת מידע על המוצר שהוזמן, מספר ההורדות והאם הנכס גלוי לציבור." +" היא כוללת שיטה ליצירת כתובת URL להורדת הנכס כאשר ההזמנה הקשורה נמצאת במצב " "'הושלמה'." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "הורדה" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "הורדות" @@ -2831,12 +2860,11 @@ msgstr "שלום %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"תודה על הזמנתך #%(order.pk)s! אנו שמחים להודיע לך שהזמנתך נכנסה לעיבוד. להלן " -"פרטי הזמנתך:" +"תודה על הזמנתך #%(order.pk)s! אנו שמחים להודיע לך שהזמנתך נכנסה לעיבוד. להלן" +" פרטי הזמנתך:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2937,8 +2965,7 @@ msgstr "תודה על שהייתכם איתנו! הענקנו לכם קוד קי #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "תודה על הזמנתך! אנו שמחים לאשר את רכישתך. להלן פרטי הזמנתך:" @@ -3011,8 +3038,8 @@ msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -"מטפל בבקשה לאינדקס מפת האתר ומחזיר תגובה בפורמט XML. הוא מבטיח שהתגובה תכלול " -"את כותרת סוג התוכן המתאימה ל-XML." +"מטפל בבקשה לאינדקס מפת האתר ומחזיר תגובה בפורמט XML. הוא מבטיח שהתגובה תכלול" +" את כותרת סוג התוכן המתאימה ל-XML." #: engine/core/views.py:119 msgid "" @@ -3060,9 +3087,7 @@ msgstr "מטפל בהיגיון הרכישה כעסק ללא רישום." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "מטפל בהורדת נכס דיגיטלי הקשור להזמנה. פונקציה זו מנסה להציג את קובץ הנכס " "הדיגיטלי הנמצא בספריית האחסון של הפרויקט. אם הקובץ לא נמצא, מתקבלת שגיאת " @@ -3095,9 +3120,7 @@ msgstr "לא נמצא סמל מועדף" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "מטפל בבקשות לסמל המועדף של אתר אינטרנט. פונקציה זו מנסה להציג את קובץ הסמל " "המועדף הנמצא בספרייה הסטטית של הפרויקט. אם קובץ הסמל המועדף לא נמצא, מתקבלת " @@ -3105,13 +3128,13 @@ msgstr "" #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"מנתב את הבקשה לדף האינדקס של המנהל. הפונקציה מטפלת בבקשות HTTP נכנסות ומנתבת " -"אותן לדף האינדקס של ממשק המנהל של Django. היא משתמשת בפונקציית `redirect` של " -"Django לטיפול בהפניה HTTP." +"מנתב את הבקשה לדף האינדקס של המנהל. הפונקציה מטפלת בבקשות HTTP נכנסות ומנתבת" +" אותן לדף האינדקס של ממשק המנהל של Django. היא משתמשת בפונקציית `redirect` " +"של Django לטיפול בהפניה HTTP." #: engine/core/views.py:445 msgid "Returns current version of the Schon. " @@ -3128,9 +3151,9 @@ msgstr "מחזיר משתנים מותאמים אישית עבור לוח המח #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The schonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3141,10 +3164,11 @@ msgstr "" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "מייצג קבוצת תצוגות לניהול אובייקטי AttributeGroup. מטפל בפעולות הקשורות " "ל-AttributeGroup, כולל סינון, סידור סדרתי ואחזור נתונים. מחלקה זו היא חלק " @@ -3170,8 +3194,8 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "סט תצוגה לניהול אובייקטי AttributeValue. סט תצוגה זה מספק פונקציונליות " "לרישום, אחזור, יצירה, עדכון ומחיקה של אובייקטי AttributeValue. הוא משתלב " @@ -3207,13 +3231,13 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`schonViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" -"מנהל פעולות הקשורות למודל `Product` במערכת. מחלקה זו מספקת מערך תצוגה לניהול " -"מוצרים, כולל סינון, סידור סדרתי ופעולות על מופעים ספציפיים. היא מרחיבה את " +"מנהל פעולות הקשורות למודל `Product` במערכת. מחלקה זו מספקת מערך תצוגה לניהול" +" מוצרים, כולל סינון, סידור סדרתי ופעולות על מופעים ספציפיים. היא מרחיבה את " "`schonViewSet` כדי להשתמש בפונקציונליות משותפת ומשתלבת עם מסגרת Django REST " "עבור פעולות RESTful API. כוללת שיטות לאחזור פרטי מוצר, החלת הרשאות וגישה " "למשוב הקשור למוצר." @@ -3227,8 +3251,8 @@ msgid "" "Vendor-related resources through the Django REST framework." msgstr "" "מייצג קבוצת תצוגות לניהול אובייקטי ספק. קבוצת תצוגות זו מאפשרת לאחזר, לסנן " -"ולסדר נתוני ספק. היא מגדירה את קבוצת השאילתות, תצורות המסננים ומחלקות הסידור " -"המשמשות לטיפול בפעולות שונות. מטרת מחלקה זו היא לספק גישה יעילה למשאבים " +"ולסדר נתוני ספק. היא מגדירה את קבוצת השאילתות, תצורות המסננים ומחלקות הסידור" +" המשמשות לטיפול בפעולות שונות. מטרת מחלקה זו היא לספק גישה יעילה למשאבים " "הקשורים לספק באמצעות מסגרת Django REST." #: engine/core/viewsets.py:625 @@ -3236,29 +3260,29 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `schonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "ייצוג של קבוצת תצוגה המטפלת באובייקטי משוב. מחלקה זו מנהלת פעולות הקשורות " -"לאובייקטי משוב, כולל רישום, סינון ואחזור פרטים. מטרת קבוצת תצוגה זו היא לספק " -"סדרנים שונים לפעולות שונות וליישם טיפול מבוסס הרשאות באובייקטי משוב נגישים. " -"היא מרחיבה את `schonViewSet` הבסיסי ומשתמשת במערכת הסינון של Django לשאילתת " -"נתונים." +"לאובייקטי משוב, כולל רישום, סינון ואחזור פרטים. מטרת קבוצת תצוגה זו היא לספק" +" סדרנים שונים לפעולות שונות וליישם טיפול מבוסס הרשאות באובייקטי משוב נגישים." +" היא מרחיבה את `schonViewSet` הבסיסי ומשתמשת במערכת הסינון של Django לשאילתת" +" נתונים." #: engine/core/viewsets.py:652 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet לניהול הזמנות ופעולות נלוות. מחלקה זו מספקת פונקציונליות לאחזור, " -"שינוי וניהול אובייקטי הזמנה. היא כוללת נקודות קצה שונות לטיפול בפעולות הזמנה " -"כגון הוספה או הסרה של מוצרים, ביצוע רכישות עבור משתמשים רשומים ולא רשומים, " +"שינוי וניהול אובייקטי הזמנה. היא כוללת נקודות קצה שונות לטיפול בפעולות הזמנה" +" כגון הוספה או הסרה של מוצרים, ביצוע רכישות עבור משתמשים רשומים ולא רשומים, " "ואחזור הזמנות ממתנות של המשתמש המאושר הנוכחי. ViewSet משתמש במספר סדרנים " "בהתאם לפעולה הספציפית המתבצעת ומאכוף הרשאות בהתאם בעת אינטראקציה עם נתוני " "הזמנה." @@ -3267,8 +3291,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "מספק סט תצוגה לניהול ישויות OrderProduct. סט תצוגה זה מאפשר פעולות CRUD " @@ -3298,8 +3322,8 @@ msgstr "מטפל בפעולות הקשורות לנתוני המלאי במער msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." diff --git a/engine/core/locale/hi_IN/LC_MESSAGES/django.mo b/engine/core/locale/hi_IN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6cc44c8c5901a79fda3b034713704baadc22b52f GIT binary patch literal 358 zcmaivPfvqD5XEcs#L=^dJ$SQ&OOq11{)rSRk`%T<=zWD1F?E+L+eSZ#U(e6taIr^U z^2;PM?_ve(8!Hnd#>%Y8dQsTpxL913~p#sEADE7|Cu1NFi42@TkMaYa2!owXP<!pw zC#*J%#0f75vaE8xCASgJ%P=Y*R#g$>CN12EXZILW?OwDJN+~`VS%-O2g-QIcADd-q z79W4{TmWm(Dtq EUqPc^dH?_b literal 0 HcmV?d00001 diff --git a/engine/core/locale/hi_IN/LC_MESSAGES/django.po b/engine/core/locale/hi_IN/LC_MESSAGES/django.po index ca599a44..8acf0ebf 100644 --- a/engine/core/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/core/locale/hi_IN/LC_MESSAGES/django.po @@ -1,13 +1,9 @@ -# SCHON GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the SCHON package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:26+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -75,7 +71,7 @@ msgstr "" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "" #: engine/core/admin.py:166 @@ -84,7 +80,7 @@ msgstr "" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "" #: engine/core/admin.py:184 @@ -92,13 +88,13 @@ msgid "selected items have been deactivated." msgstr "" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "" @@ -118,12 +114,12 @@ msgstr "" msgid "stocks" msgstr "" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "" @@ -131,7 +127,31 @@ msgstr "" msgid "children" msgstr "" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "" + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "" + +#: engine/core/admin.py:1116 msgid "Config" msgstr "" @@ -1151,9 +1171,9 @@ msgstr "" msgid "original address string provided by the user" msgstr "" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1169,8 +1189,8 @@ msgstr "" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "" @@ -1243,7 +1263,7 @@ msgid "represents feedback from a user." msgstr "" #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "" @@ -1251,7 +1271,7 @@ msgstr "" msgid "download url for this order product if applicable" msgstr "" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "" @@ -1259,7 +1279,7 @@ msgstr "" msgid "a list of order products in this order" msgstr "" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "" @@ -1285,7 +1305,7 @@ msgstr "" msgid "transactions for this order" msgstr "" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "" @@ -1302,7 +1322,7 @@ msgstr "" msgid "category" msgstr "" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "" @@ -1343,7 +1363,7 @@ msgstr "" msgid "discount price" msgstr "" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "" @@ -1355,7 +1375,7 @@ msgstr "" msgid "products on sale" msgstr "" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "" @@ -1363,7 +1383,7 @@ msgstr "" msgid "vendor" msgstr "" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1371,11 +1391,11 @@ msgstr "" msgid "product" msgstr "" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "" @@ -1486,7 +1506,7 @@ msgstr "" msgid "attribute group's name" msgstr "" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "" @@ -1720,8 +1740,8 @@ msgstr "" msgid "the product associated with this stock entry" msgstr "" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "" @@ -1813,7 +1833,7 @@ msgstr "" msgid "product name" msgstr "" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "" @@ -1833,7 +1853,15 @@ msgstr "" msgid "stock keeping unit for this product" msgstr "" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " @@ -1843,83 +1871,83 @@ msgid "" "for dynamic and flexible data structuring." msgstr "" -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" "Represents a specific value for an attribute that is linked to a product. It " "links the 'attribute' to a unique 'value', allowing better organization and " "dynamic representation of product characteristics." msgstr "" -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " "class is designed to manage images for products, including functionality for " @@ -1928,39 +1956,39 @@ msgid "" "with alternative text for the images." msgstr "" -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" @@ -1970,39 +1998,39 @@ msgid "" "affected items in the campaign." msgstr "" -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2010,23 +2038,23 @@ msgid "" "operations for adding and removing multiple products at once." msgstr "" -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " @@ -2036,19 +2064,19 @@ msgid "" "custom features." msgstr "" -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" "Represents an address entity that includes location details and associations " "with a user. Provides functionality for geographic and address data storage, " @@ -2060,59 +2088,59 @@ msgid "" "address with a user, facilitating personalized data handling." msgstr "" -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2122,86 +2150,86 @@ msgid "" "apply the promo code to an order while ensuring constraints are met." msgstr "" -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " @@ -2211,145 +2239,145 @@ msgid "" "supports managing the products in the order lifecycle." msgstr "" -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2358,31 +2386,31 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "" -#: engine/core/models.py:1827 +#: engine/core/models.py:1834 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2395,108 +2423,108 @@ msgid "" "Product models and stores a reference to them." msgstr "" -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " @@ -2506,11 +2534,11 @@ msgid "" "the asset when the associated order is in a completed status." msgstr "" -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "" @@ -2989,9 +3017,9 @@ msgstr "" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" diff --git a/engine/core/locale/hr_HR/LC_MESSAGES/django.mo b/engine/core/locale/hr_HR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..582b5dd4dcd0f41a41ecd855c98623798fc8d305 GIT binary patch literal 334 zcmYL@Jx{|h5Qd9j%7_>lJg~u)wgU?0Lp6=tMzWJCO_5+Ti3vuvk;bGsjP&!JYRSt#zG~EFtDriccI4eNrkT9~$sZ7tG^NdGAwE;@6 zY`ay#c}nIRAxOp~C%0U(R7_ct6nwqDN7Xia)o3WS`k+LxY_VYr^n{ph&CvO#cd&s> zCGR_rhoflbY|s|peebYO&|l$lw^hd8km^nOR)@PyIfuCSx>~Q=1Gkl{jcq82UrdMw Ee=3$*MgRZ+ literal 0 HcmV?d00001 diff --git a/engine/core/locale/hr_HR/LC_MESSAGES/django.po b/engine/core/locale/hr_HR/LC_MESSAGES/django.po index 0adb635b..454cae48 100644 --- a/engine/core/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/core/locale/hr_HR/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -75,7 +75,7 @@ msgstr "" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "" #: engine/core/admin.py:166 @@ -84,7 +84,7 @@ msgstr "" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "" #: engine/core/admin.py:184 @@ -92,13 +92,13 @@ msgid "selected items have been deactivated." msgstr "" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "" @@ -118,12 +118,12 @@ msgstr "" msgid "stocks" msgstr "" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "" @@ -131,7 +131,31 @@ msgstr "" msgid "children" msgstr "" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "" + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "" + +#: engine/core/admin.py:1116 msgid "Config" msgstr "" @@ -1151,9 +1175,9 @@ msgstr "" msgid "original address string provided by the user" msgstr "" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1169,8 +1193,8 @@ msgstr "" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "" @@ -1243,7 +1267,7 @@ msgid "represents feedback from a user." msgstr "" #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "" @@ -1251,7 +1275,7 @@ msgstr "" msgid "download url for this order product if applicable" msgstr "" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "" @@ -1259,7 +1283,7 @@ msgstr "" msgid "a list of order products in this order" msgstr "" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "" @@ -1285,7 +1309,7 @@ msgstr "" msgid "transactions for this order" msgstr "" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "" @@ -1302,7 +1326,7 @@ msgstr "" msgid "category" msgstr "" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "" @@ -1343,7 +1367,7 @@ msgstr "" msgid "discount price" msgstr "" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "" @@ -1355,7 +1379,7 @@ msgstr "" msgid "products on sale" msgstr "" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "" @@ -1363,7 +1387,7 @@ msgstr "" msgid "vendor" msgstr "" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1371,11 +1395,11 @@ msgstr "" msgid "product" msgstr "" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "" @@ -1486,7 +1510,7 @@ msgstr "" msgid "attribute group's name" msgstr "" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "" @@ -1720,8 +1744,8 @@ msgstr "" msgid "the product associated with this stock entry" msgstr "" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "" @@ -1813,7 +1837,7 @@ msgstr "" msgid "product name" msgstr "" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "" @@ -1833,7 +1857,15 @@ msgstr "" msgid "stock keeping unit for this product" msgstr "" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " @@ -1843,83 +1875,83 @@ msgid "" "for dynamic and flexible data structuring." msgstr "" -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" "Represents a specific value for an attribute that is linked to a product. It " "links the 'attribute' to a unique 'value', allowing better organization and " "dynamic representation of product characteristics." msgstr "" -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " "class is designed to manage images for products, including functionality for " @@ -1928,39 +1960,39 @@ msgid "" "with alternative text for the images." msgstr "" -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" @@ -1970,39 +2002,39 @@ msgid "" "affected items in the campaign." msgstr "" -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2010,23 +2042,23 @@ msgid "" "operations for adding and removing multiple products at once." msgstr "" -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " @@ -2036,19 +2068,19 @@ msgid "" "custom features." msgstr "" -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" "Represents an address entity that includes location details and associations " "with a user. Provides functionality for geographic and address data storage, " @@ -2060,59 +2092,59 @@ msgid "" "address with a user, facilitating personalized data handling." msgstr "" -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2122,86 +2154,86 @@ msgid "" "apply the promo code to an order while ensuring constraints are met." msgstr "" -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " @@ -2211,145 +2243,145 @@ msgid "" "supports managing the products in the order lifecycle." msgstr "" -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2358,31 +2390,31 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "" -#: engine/core/models.py:1827 +#: engine/core/models.py:1834 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2395,108 +2427,108 @@ msgid "" "Product models and stores a reference to them." msgstr "" -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " @@ -2506,11 +2538,11 @@ msgid "" "the asset when the associated order is in a completed status." msgstr "" -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "" @@ -2989,9 +3021,9 @@ msgstr "" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" diff --git a/engine/core/locale/id_ID/LC_MESSAGES/django.mo b/engine/core/locale/id_ID/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..947ef6580f262a2769058406a434194fa95cabd5 GIT binary patch literal 91792 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 sU2T~Ui~o#Eh(n8i)-rBroHzlPaM1Zp{gy&WHJ\n" "Language-Team: BRITISH ENGLISH \n" @@ -19,7 +19,8 @@ msgstr "ID unik" #: engine/core/abstract.py:13 msgid "unique id is used to surely identify any database object" -msgstr "ID unik digunakan untuk mengidentifikasi objek basis data secara pasti" +msgstr "" +"ID unik digunakan untuk mengidentifikasi objek basis data secara pasti" #: engine/core/abstract.py:20 msgid "is active" @@ -27,7 +28,8 @@ msgstr "Aktif" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Jika diset ke false, objek ini tidak dapat dilihat oleh pengguna tanpa izin " "yang diperlukan" @@ -74,8 +76,8 @@ msgstr "Stempel waktu" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "Aktifkan %(verbose_name_plural)s yang dipilih" +msgid "Activate selected %(verbose_name_plural)s" +msgstr "Aktifkan yang terpilih %(verbose_name_plural)s" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -83,21 +85,21 @@ msgstr "Item yang dipilih telah diaktifkan!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Menonaktifkan %(verbose_name_plural)s yang dipilih" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "Nonaktifkan yang dipilih %(verbose_name_plural)s" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "Item yang dipilih telah dinonaktifkan!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Nilai Atribut" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Nilai Atribut" @@ -117,12 +119,12 @@ msgstr "Stok" msgid "stocks" msgstr "Saham" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Pesan Produk" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Pesan Produk" @@ -130,7 +132,32 @@ msgstr "Pesan Produk" msgid "children" msgstr "Anak-anak" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Memiliki gambar" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Ekspor %(verbose_name_plural)s yang dipilih ke feed pasar online." + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "Item terpilih %(verbose_name_plural)s telah ditandai untuk diekspor." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Blokir %(verbose_name_plural)s yang dipilih dari umpan pasar." + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "" +"Produk terpilih %(verbose_name_plural)s telah dilarang untuk diekspor." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Konfigurasi" @@ -154,7 +181,8 @@ msgstr "Disampaikan." msgid "canceled" msgstr "Dibatalkan" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Gagal" @@ -192,8 +220,8 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"Skema OpenApi3 untuk API ini. Format dapat dipilih melalui negosiasi konten. " -"Bahasa dapat dipilih dengan parameter Accept-Language dan parameter kueri." +"Skema OpenApi3 untuk API ini. Format dapat dipilih melalui negosiasi konten." +" Bahasa dapat dipilih dengan parameter Accept-Language dan parameter kueri." #: engine/core/docs/drf/views.py:46 engine/core/graphene/mutations.py:36 msgid "cache I/O" @@ -205,8 +233,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Terapkan hanya kunci untuk membaca data yang diizinkan dari cache.\n" -"Menerapkan kunci, data, dan batas waktu dengan autentikasi untuk menulis " -"data ke cache." +"Menerapkan kunci, data, dan batas waktu dengan autentikasi untuk menulis data ke cache." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -272,7 +299,8 @@ msgstr "" "dapat diedit" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Menulis ulang beberapa bidang dari grup atribut yang sudah ada sehingga " "tidak dapat diedit" @@ -328,7 +356,8 @@ msgstr "" "dapat diedit" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Menulis ulang beberapa bidang dari nilai atribut yang sudah ada sehingga " "tidak dapat diedit" @@ -388,8 +417,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Pencarian substring yang tidak peka huruf besar/kecil di human_readable_id, " "order_produk.product.name, dan order_produk.product.partnumber" @@ -413,7 +442,8 @@ msgstr "Filter berdasarkan ID pesanan yang dapat dibaca manusia" #: engine/core/docs/drf/viewsets.py:336 msgid "Filter by user's email (case-insensitive exact match)" msgstr "" -"Filter berdasarkan email pengguna (pencocokan persis tanpa huruf besar-kecil)" +"Filter berdasarkan email pengguna (pencocokan persis tanpa huruf besar-" +"kecil)" #: engine/core/docs/drf/viewsets.py:341 msgid "Filter by user's UUID" @@ -427,9 +457,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Urutkan berdasarkan salah satu dari: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Awalan dengan '-' untuk " @@ -638,31 +668,20 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Memfilter berdasarkan satu atau beberapa pasangan nama/nilai atribut. \n" "- **Sintaks**: `attr_name = metode-nilai[;attr2 = metode2-nilai2]...`\n" -"- **Metode** (default ke `icontains` jika dihilangkan): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- Pengetikan nilai**: JSON dicoba terlebih dahulu (sehingga Anda dapat " -"mengoper daftar/diktat), `true`/`false` untuk boolean, bilangan bulat, " -"float; jika tidak, maka akan diperlakukan sebagai string. \n" -"- **Base64**: awalan dengan `b64-` untuk menyandikan base64 yang aman bagi " -"URL untuk menyandikan nilai mentah. \n" +"- **Metode** (default ke `icontains` jika dihilangkan): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- Pengetikan nilai**: JSON dicoba terlebih dahulu (sehingga Anda dapat mengoper daftar/diktat), `true`/`false` untuk boolean, bilangan bulat, float; jika tidak, maka akan diperlakukan sebagai string. \n" +"- **Base64**: awalan dengan `b64-` untuk menyandikan base64 yang aman bagi URL untuk menyandikan nilai mentah. \n" "Contoh: \n" -"`warna=merah-pasti`, `ukuran=gt-10`, `fitur=dalam-[\"wifi\", " -"\"bluetooth\"]`,\n" +"`warna=merah-pasti`, `ukuran=gt-10`, `fitur=dalam-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description = berisi-aGVhdC1jb2xk`" #: engine/core/docs/drf/viewsets.py:617 engine/core/docs/drf/viewsets.py:618 @@ -675,14 +694,11 @@ msgstr "UUID Produk (persis)" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Daftar bidang yang dipisahkan koma untuk mengurutkan. Awalan dengan `-` " -"untuk mengurutkan. \n" -"**Diizinkan:** uuid, peringkat, nama, siput, dibuat, dimodifikasi, harga, " -"acak" +"Daftar bidang yang dipisahkan koma untuk mengurutkan. Awalan dengan `-` untuk mengurutkan. \n" +"**Diizinkan:** uuid, peringkat, nama, siput, dibuat, dimodifikasi, harga, acak" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "retrieve a single product (detailed view)" @@ -754,7 +770,8 @@ msgstr "Masukan alamat pelengkapan otomatis" #: engine/core/docs/drf/viewsets.py:848 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"String kueri data mentah, harap tambahkan dengan data dari titik akhir geo-IP" +"String kueri data mentah, harap tambahkan dengan data dari titik akhir geo-" +"IP" #: engine/core/docs/drf/viewsets.py:855 msgid "limit the results amount, 1 < limit < 10, default: 5" @@ -1247,8 +1264,8 @@ msgstr "Beli pesanan" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Kirimkan atribut dalam bentuk string seperti attr1 = nilai1, attr2 = nilai2" @@ -1269,9 +1286,9 @@ msgstr "Orderproduct {order_product_uuid} tidak ditemukan!" msgid "original address string provided by the user" msgstr "String alamat asli yang diberikan oleh pengguna" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1287,8 +1304,8 @@ msgstr "ElasticSearch - bekerja dengan sangat baik" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Atribut" @@ -1325,7 +1342,8 @@ msgstr "" "Atribut dan nilai mana yang dapat digunakan untuk memfilter kategori ini." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Harga minimum dan maksimum untuk produk dalam kategori ini, jika tersedia." @@ -1364,7 +1382,7 @@ msgid "represents feedback from a user." msgstr "Merupakan umpan balik dari pengguna." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Pemberitahuan" @@ -1372,7 +1390,7 @@ msgstr "Pemberitahuan" msgid "download url for this order product if applicable" msgstr "Unduh url untuk produk pesanan ini jika ada" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Umpan balik" @@ -1380,7 +1398,7 @@ msgstr "Umpan balik" msgid "a list of order products in this order" msgstr "Daftar produk pesanan dalam urutan ini" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Alamat penagihan" @@ -1408,7 +1426,7 @@ msgstr "Apakah semua produk dalam pesanan digital" msgid "transactions for this order" msgstr "Transaksi untuk pesanan ini" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Pesanan" @@ -1425,7 +1443,7 @@ msgstr "Gambar produk" msgid "category" msgstr "Kategori" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Umpan balik" @@ -1466,7 +1484,7 @@ msgstr "Produk hanya tersedia untuk pesanan pribadi" msgid "discount price" msgstr "Harga diskon" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Produk" @@ -1478,7 +1496,7 @@ msgstr "Kode promosi" msgid "products on sale" msgstr "Produk yang dijual" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Promosi" @@ -1486,7 +1504,7 @@ msgstr "Promosi" msgid "vendor" msgstr "Vendor" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1494,11 +1512,11 @@ msgstr "Vendor" msgid "product" msgstr "Produk" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Produk yang diinginkan" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Daftar keinginan" @@ -1538,7 +1556,8 @@ msgstr "Nomor Telepon Perusahaan" #: engine/core/graphene/object_types.py:761 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -"'email from', terkadang harus digunakan sebagai pengganti nilai pengguna host" +"'email from', terkadang harus digunakan sebagai pengganti nilai pengguna " +"host" #: engine/core/graphene/object_types.py:764 msgid "email host user" @@ -1599,9 +1618,9 @@ msgid "" msgstr "" "Mewakili sekelompok atribut, yang dapat berupa hirarki. Kelas ini digunakan " "untuk mengelola dan mengatur grup atribut. Sebuah grup atribut dapat " -"memiliki grup induk, membentuk struktur hirarki. Hal ini dapat berguna untuk " -"mengkategorikan dan mengelola atribut secara lebih efektif dalam sistem yang " -"kompleks." +"memiliki grup induk, membentuk struktur hirarki. Hal ini dapat berguna untuk" +" mengkategorikan dan mengelola atribut secara lebih efektif dalam sistem " +"yang kompleks." #: engine/core/models.py:88 msgid "parent of this group" @@ -1615,7 +1634,7 @@ msgstr "Grup atribut induk" msgid "attribute group's name" msgstr "Nama grup atribut" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Kelompok atribut" @@ -1631,8 +1650,8 @@ msgid "" msgstr "" "Mewakili entitas vendor yang mampu menyimpan informasi tentang vendor " "eksternal dan persyaratan interaksinya. Kelas Vendor digunakan untuk " -"mendefinisikan dan mengelola informasi yang terkait dengan vendor eksternal. " -"Kelas ini menyimpan nama vendor, detail otentikasi yang diperlukan untuk " +"mendefinisikan dan mengelola informasi yang terkait dengan vendor eksternal." +" Kelas ini menyimpan nama vendor, detail otentikasi yang diperlukan untuk " "komunikasi, dan persentase markup yang diterapkan pada produk yang diambil " "dari vendor. Model ini juga menyimpan metadata dan batasan tambahan, " "sehingga cocok untuk digunakan dalam sistem yang berinteraksi dengan vendor " @@ -1691,8 +1710,8 @@ msgstr "" "Merupakan tag produk yang digunakan untuk mengklasifikasikan atau " "mengidentifikasi produk. Kelas ProductTag dirancang untuk mengidentifikasi " "dan mengklasifikasikan produk secara unik melalui kombinasi pengenal tag " -"internal dan nama tampilan yang mudah digunakan. Kelas ini mendukung operasi " -"yang diekspor melalui mixin dan menyediakan penyesuaian metadata untuk " +"internal dan nama tampilan yang mudah digunakan. Kelas ini mendukung operasi" +" yang diekspor melalui mixin dan menyediakan penyesuaian metadata untuk " "tujuan administratif." #: engine/core/models.py:204 engine/core/models.py:235 @@ -1721,8 +1740,8 @@ msgid "" "tag that can be used to associate and classify products. It includes " "attributes for an internal tag identifier and a user-friendly display name." msgstr "" -"Merupakan tag kategori yang digunakan untuk produk. Kelas ini memodelkan tag " -"kategori yang dapat digunakan untuk mengaitkan dan mengklasifikasikan " +"Merupakan tag kategori yang digunakan untuk produk. Kelas ini memodelkan tag" +" kategori yang dapat digunakan untuk mengaitkan dan mengklasifikasikan " "produk. Kelas ini mencakup atribut untuk pengenal tag internal dan nama " "tampilan yang mudah digunakan." @@ -1748,9 +1767,9 @@ msgid "" msgstr "" "Merupakan entitas kategori untuk mengatur dan mengelompokkan item terkait " "dalam struktur hierarki. Kategori dapat memiliki hubungan hierarkis dengan " -"kategori lain, yang mendukung hubungan induk-anak. Kelas ini mencakup bidang " -"untuk metadata dan representasi visual, yang berfungsi sebagai fondasi untuk " -"fitur-fitur terkait kategori. Kelas ini biasanya digunakan untuk " +"kategori lain, yang mendukung hubungan induk-anak. Kelas ini mencakup bidang" +" untuk metadata dan representasi visual, yang berfungsi sebagai fondasi " +"untuk fitur-fitur terkait kategori. Kelas ini biasanya digunakan untuk " "mendefinisikan dan mengelola kategori produk atau pengelompokan serupa " "lainnya dalam aplikasi, yang memungkinkan pengguna atau administrator " "menentukan nama, deskripsi, dan hierarki kategori, serta menetapkan atribut " @@ -1805,12 +1824,13 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"Mewakili objek Merek dalam sistem. Kelas ini menangani informasi dan atribut " -"yang terkait dengan merek, termasuk nama, logo, deskripsi, kategori terkait, " -"siput unik, dan urutan prioritas. Kelas ini memungkinkan pengaturan dan " -"representasi data yang terkait dengan merek di dalam aplikasi." +"Mewakili objek Merek dalam sistem. Kelas ini menangani informasi dan atribut" +" yang terkait dengan merek, termasuk nama, logo, deskripsi, kategori " +"terkait, siput unik, dan urutan prioritas. Kelas ini memungkinkan pengaturan" +" dan representasi data yang terkait dengan merek di dalam aplikasi." #: engine/core/models.py:456 msgid "name of this brand" @@ -1854,8 +1874,8 @@ msgstr "Kategori" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1863,10 +1883,10 @@ msgid "" msgstr "" "Mewakili stok produk yang dikelola dalam sistem. Kelas ini memberikan " "rincian tentang hubungan antara vendor, produk, dan informasi stok mereka, " -"serta properti terkait inventaris seperti harga, harga pembelian, kuantitas, " -"SKU, dan aset digital. Ini adalah bagian dari sistem manajemen inventaris " -"untuk memungkinkan pelacakan dan evaluasi produk yang tersedia dari berbagai " -"vendor." +"serta properti terkait inventaris seperti harga, harga pembelian, kuantitas," +" SKU, dan aset digital. Ini adalah bagian dari sistem manajemen inventaris " +"untuk memungkinkan pelacakan dan evaluasi produk yang tersedia dari berbagai" +" vendor." #: engine/core/models.py:528 msgid "the vendor supplying this product stock" @@ -1888,8 +1908,8 @@ msgstr "Harga jual" msgid "the product associated with this stock entry" msgstr "Produk yang terkait dengan entri saham ini" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Produk terkait" @@ -1944,13 +1964,13 @@ msgid "" "properties to improve performance. It is used to define and manipulate " "product data and its associated information within an application." msgstr "" -"Merepresentasikan produk dengan atribut seperti kategori, merek, tag, status " -"digital, nama, deskripsi, nomor komponen, dan siput. Menyediakan properti " +"Merepresentasikan produk dengan atribut seperti kategori, merek, tag, status" +" digital, nama, deskripsi, nomor komponen, dan siput. Menyediakan properti " "utilitas terkait untuk mengambil peringkat, jumlah umpan balik, harga, " "kuantitas, dan total pesanan. Dirancang untuk digunakan dalam sistem yang " "menangani e-commerce atau manajemen inventaris. Kelas ini berinteraksi " -"dengan model terkait (seperti Kategori, Merek, dan ProductTag) dan mengelola " -"cache untuk properti yang sering diakses untuk meningkatkan kinerja. Kelas " +"dengan model terkait (seperti Kategori, Merek, dan ProductTag) dan mengelola" +" cache untuk properti yang sering diakses untuk meningkatkan kinerja. Kelas " "ini digunakan untuk mendefinisikan dan memanipulasi data produk dan " "informasi terkait di dalam aplikasi." @@ -1990,7 +2010,7 @@ msgstr "Berikan nama pengenal yang jelas untuk produk" msgid "product name" msgstr "Nama produk" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Menambahkan deskripsi rinci tentang produk" @@ -2010,156 +2030,164 @@ msgstr "Nomor bagian" msgid "stock keeping unit for this product" msgstr "Unit Penyimpanan Stok untuk produk ini" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Apakah akan mengekspor produk ini ke pasar daring?" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Ekspor ke Pasar Online" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"Merupakan atribut dalam sistem. Kelas ini digunakan untuk mendefinisikan dan " -"mengelola atribut, yang merupakan bagian data yang dapat disesuaikan yang " +"Merupakan atribut dalam sistem. Kelas ini digunakan untuk mendefinisikan dan" +" mengelola atribut, yang merupakan bagian data yang dapat disesuaikan yang " "dapat dikaitkan dengan entitas lain. Atribut memiliki kategori, grup, tipe " "nilai, dan nama yang terkait. Model ini mendukung berbagai jenis nilai, " "termasuk string, integer, float, boolean, array, dan objek. Hal ini " "memungkinkan penataan data yang dinamis dan fleksibel." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Kelompok atribut ini" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "String" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Bilangan bulat" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Mengapung" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Boolean" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Array" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Objek" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Jenis nilai atribut" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Jenis nilai" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Nama atribut ini" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Nama atribut" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "dapat disaring" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Atribut dan nilai mana yang dapat digunakan untuk memfilter kategori ini." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atribut" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Mewakili nilai spesifik untuk atribut yang terkait dengan produk. Ini " "menghubungkan 'atribut' dengan 'nilai' yang unik, memungkinkan pengaturan " "yang lebih baik dan representasi karakteristik produk yang dinamis." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Atribut dari nilai ini" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Produk spesifik yang terkait dengan nilai atribut ini" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Nilai spesifik untuk atribut ini" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Mewakili gambar produk yang terkait dengan produk dalam sistem. Kelas ini " -"dirancang untuk mengelola gambar untuk produk, termasuk fungsionalitas untuk " -"mengunggah file gambar, mengasosiasikannya dengan produk tertentu, dan " +"dirancang untuk mengelola gambar untuk produk, termasuk fungsionalitas untuk" +" mengunggah file gambar, mengasosiasikannya dengan produk tertentu, dan " "menentukan urutan tampilannya. Kelas ini juga mencakup fitur aksesibilitas " "dengan teks alternatif untuk gambar." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Menyediakan teks alternatif untuk gambar agar mudah diakses" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Teks alt gambar" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Unggah file gambar untuk produk ini" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Gambar produk" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Menentukan urutan gambar yang ditampilkan" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Prioritas tampilan" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Produk yang diwakili oleh gambar ini" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Gambar produk" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Merupakan kampanye promosi untuk produk dengan diskon. Kelas ini digunakan " "untuk mendefinisikan dan mengelola kampanye promosi yang menawarkan diskon " @@ -2168,39 +2196,39 @@ msgstr "" "produk yang berlaku. Kelas ini terintegrasi dengan katalog produk untuk " "menentukan item yang terpengaruh dalam kampanye." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Persentase diskon untuk produk yang dipilih" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Persentase diskon" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Berikan nama unik untuk promosi ini" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Nama promosi" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Deskripsi promosi" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Pilih produk mana yang termasuk dalam promosi ini" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Produk yang disertakan" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Promosi" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2213,30 +2241,30 @@ msgstr "" "serta mendukung operasi untuk menambah dan menghapus beberapa produk " "sekaligus." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Produk yang telah ditandai pengguna sebagai yang diinginkan" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Pengguna yang memiliki daftar keinginan ini" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Pemilik Wishlist" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Daftar keinginan" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Merupakan catatan dokumenter yang terkait dengan suatu produk. Kelas ini " "digunakan untuk menyimpan informasi tentang film dokumenter yang terkait " @@ -2245,28 +2273,28 @@ msgstr "" "untuk file dokumenter. Kelas ini memperluas fungsionalitas dari mixin " "tertentu dan menyediakan fitur khusus tambahan." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Dokumenter" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Dokumenter" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Belum terselesaikan" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Mewakili entitas alamat yang mencakup detail lokasi dan asosiasi dengan " "pengguna. Menyediakan fungsionalitas untuk penyimpanan data geografis dan " @@ -2278,59 +2306,59 @@ msgstr "" "memungkinkan untuk mengasosiasikan alamat dengan pengguna, sehingga " "memudahkan penanganan data yang dipersonalisasi." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Baris alamat untuk pelanggan" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Baris alamat" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Jalan" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Distrik" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Kota" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Wilayah" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Kode pos" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Negara" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Titik Geolokasi (Bujur, Lintang)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Tanggapan JSON lengkap dari geocoder untuk alamat ini" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Respons JSON yang tersimpan dari layanan geocoding" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Alamat" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Alamat" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2340,78 +2368,78 @@ msgid "" "apply the promo code to an order while ensuring constraints are met." msgstr "" "Mewakili kode promosi yang dapat digunakan untuk diskon, mengelola " -"validitas, jenis diskon, dan penerapannya. Kelas PromoCode menyimpan rincian " -"tentang kode promosi, termasuk pengenal unik, properti diskon (jumlah atau " +"validitas, jenis diskon, dan penerapannya. Kelas PromoCode menyimpan rincian" +" tentang kode promosi, termasuk pengenal unik, properti diskon (jumlah atau " "persentase), masa berlaku, pengguna terkait (jika ada), dan status " "penggunaannya. Ini termasuk fungsionalitas untuk memvalidasi dan menerapkan " "kode promo ke pesanan sambil memastikan batasan terpenuhi." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Kode unik yang digunakan oleh pengguna untuk menukarkan diskon" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Pengenal kode promo" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Jumlah diskon tetap berlaku jika persen tidak digunakan" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Jumlah diskon tetap" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Persentase diskon diterapkan jika jumlah tetap tidak digunakan" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Persentase diskon" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Cap waktu saat kode promo berakhir" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Akhiri waktu validitas" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Stempel waktu dari mana kode promo ini valid" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Mulai waktu validitas" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Stempel waktu ketika promocode digunakan, kosongkan jika belum digunakan" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Cap waktu penggunaan" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Pengguna yang ditugaskan ke kode promo ini jika berlaku" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Pengguna yang ditugaskan" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Kode promo" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Kode promo" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2419,21 +2447,21 @@ msgstr "" "Hanya satu jenis diskon yang harus ditentukan (jumlah atau persen), tetapi " "tidak boleh keduanya atau tidak sama sekali." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Promocode telah digunakan" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Jenis diskon tidak valid untuk kode promo {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2445,145 +2473,145 @@ msgstr "" "Fungsionalitas yang sama juga mendukung pengelolaan produk dalam siklus " "hidup pesanan." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Alamat penagihan yang digunakan untuk pesanan ini" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Kode promo opsional berlaku untuk pesanan ini" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Kode promo yang diterapkan" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Alamat pengiriman yang digunakan untuk pesanan ini" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Alamat pengiriman" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Status pesanan saat ini dalam siklus hidupnya" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Status pesanan" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" -"Struktur JSON dari notifikasi untuk ditampilkan kepada pengguna, di UI admin " -"digunakan table-view" +"Struktur JSON dari notifikasi untuk ditampilkan kepada pengguna, di UI admin" +" digunakan table-view" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "Representasi JSON dari atribut pesanan untuk pesanan ini" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "Pengguna yang melakukan pemesanan" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Pengguna" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Stempel waktu saat pesanan diselesaikan" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Beli waktu" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Pengenal yang dapat dibaca manusia untuk pesanan" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "ID yang dapat dibaca manusia" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Pesan" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "" "Seorang pengguna hanya boleh memiliki satu pending order dalam satu waktu!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" "Anda tidak dapat menambahkan produk ke pesanan yang bukan merupakan pesanan " "yang tertunda" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Anda tidak dapat menambahkan produk yang tidak aktif ke dalam pesanan" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "" "Anda tidak dapat menambahkan lebih banyak produk daripada yang tersedia " "dalam stok" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Anda tidak dapat menghapus produk dari pesanan yang bukan merupakan pesanan " "yang tertunda" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} tidak ada dengan kueri <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Kode promosi tidak ada" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" "Anda hanya dapat membeli produk fisik dengan alamat pengiriman yang " "ditentukan!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Alamat tidak ada" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "Anda tidak dapat membeli saat ini, silakan coba lagi dalam beberapa menit." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Nilai gaya tidak valid" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Anda tidak dapat membeli pesanan kosong!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "Anda tidak dapat membeli pesanan tanpa pengguna!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Pengguna tanpa saldo tidak dapat membeli dengan saldo!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Dana tidak mencukupi untuk menyelesaikan pesanan" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2591,7 +2619,7 @@ msgstr "" "Anda tidak dapat membeli tanpa registrasi, berikan informasi berikut: nama " "pelanggan, email pelanggan, nomor telepon pelanggan" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2599,7 +2627,7 @@ msgstr "" "Metode pembayaran tidak valid: {payment_method} dari " "{available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2614,32 +2642,33 @@ msgstr "" "ditetapkan pengguna. Kelas ini menggunakan bidang basis data untuk " "memodelkan dan mengelola data umpan balik secara efektif." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "" "Komentar yang diberikan pengguna tentang pengalaman mereka dengan produk" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Komentar umpan balik" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "Merujuk ke produk tertentu sesuai dengan urutan umpan balik ini" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Produk pesanan terkait" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Peringkat yang ditetapkan pengguna untuk produk" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Peringkat produk" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2656,122 +2685,122 @@ msgstr "" "pesanan, termasuk rincian seperti harga pembelian, kuantitas, atribut " "produk, dan status. Model ini mengelola notifikasi untuk pengguna dan " "administrator dan menangani operasi seperti mengembalikan saldo produk atau " -"menambahkan umpan balik. Model ini juga menyediakan metode dan properti yang " -"mendukung logika bisnis, seperti menghitung harga total atau menghasilkan " +"menambahkan umpan balik. Model ini juga menyediakan metode dan properti yang" +" mendukung logika bisnis, seperti menghitung harga total atau menghasilkan " "URL unduhan untuk produk digital. Model ini terintegrasi dengan model " "Pesanan dan Produk dan menyimpan referensi ke keduanya." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "" "Harga yang dibayarkan oleh pelanggan untuk produk ini pada saat pembelian" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Harga pembelian pada saat pemesanan" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Komentar internal untuk admin tentang produk yang dipesan ini" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Komentar internal" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Pemberitahuan pengguna" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "Representasi JSON dari atribut item ini" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Atribut produk yang dipesan" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Referensi ke pesanan induk yang berisi produk ini" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Urutan induk" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Produk spesifik yang terkait dengan baris pesanan ini" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Jumlah produk spesifik ini dalam pesanan" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Kuantitas produk" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Status saat ini dari produk ini dalam pesanan" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Status lini produk" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Pesananproduk harus memiliki pesanan terkait!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Tindakan yang salah ditentukan untuk umpan balik: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "" "Anda tidak dapat memberikan umpan balik atas pesanan yang tidak diterima" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Nama" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL integrasi" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Kredensial otentikasi" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Anda hanya dapat memiliki satu penyedia CRM default" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Tautan CRM pesanan" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Tautan CRM Pesanan" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Mewakili fungsionalitas pengunduhan untuk aset digital yang terkait dengan " "pesanan. Kelas DigitalAssetDownload menyediakan kemampuan untuk mengelola " @@ -2781,11 +2810,11 @@ msgstr "" "untuk menghasilkan URL untuk mengunduh aset ketika pesanan terkait dalam " "status selesai." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Unduh" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Unduhan" @@ -2986,8 +3015,7 @@ msgstr "Halo %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Terima kasih atas pesanan Anda #%(order.pk)s! Dengan senang hati kami " @@ -3096,15 +3124,13 @@ msgid "" "Thank you for staying with us! We have granted you with a promocode\n" " for " msgstr "" -"Terima kasih telah tinggal bersama kami! Kami telah memberikan Anda kode " -"promo\n" +"Terima kasih telah tinggal bersama kami! Kami telah memberikan Anda kode promo\n" " untuk" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Terima kasih atas pesanan Anda! Dengan senang hati kami mengkonfirmasi " @@ -3209,8 +3235,8 @@ msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Menangani operasi cache seperti membaca dan mengatur data cache dengan kunci " -"dan batas waktu tertentu." +"Menangani operasi cache seperti membaca dan mengatur data cache dengan kunci" +" dan batas waktu tertentu." #: engine/core/views.py:220 msgid "Handles `contact us` form submissions." @@ -3235,14 +3261,10 @@ msgstr "Menangani logika pembelian sebagai bisnis tanpa registrasi." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Menangani pengunduhan aset digital yang terkait dengan pesanan.\n" -"Fungsi ini mencoba untuk menyajikan file aset digital yang terletak di " -"direktori penyimpanan proyek. Jika file tidak ditemukan, kesalahan HTTP 404 " -"akan muncul untuk mengindikasikan bahwa sumber daya tidak tersedia." +"Fungsi ini mencoba untuk menyajikan file aset digital yang terletak di direktori penyimpanan proyek. Jika file tidak ditemukan, kesalahan HTTP 404 akan muncul untuk mengindikasikan bahwa sumber daya tidak tersedia." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3271,19 +3293,15 @@ msgstr "favicon tidak ditemukan" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Menangani permintaan favicon dari sebuah situs web.\n" -"Fungsi ini mencoba menyajikan file favicon yang terletak di direktori statis " -"proyek. Jika file favicon tidak ditemukan, kesalahan HTTP 404 akan " -"dimunculkan untuk mengindikasikan bahwa sumber daya tidak tersedia." +"Fungsi ini mencoba menyajikan file favicon yang terletak di direktori statis proyek. Jika file favicon tidak ditemukan, kesalahan HTTP 404 akan dimunculkan untuk mengindikasikan bahwa sumber daya tidak tersedia." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Mengalihkan permintaan ke halaman indeks admin. Fungsi ini menangani " @@ -3306,24 +3324,25 @@ msgstr "Mengembalikan variabel khusus untuk Dasbor." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "Mendefinisikan sebuah viewset untuk mengelola operasi terkait schon. Kelas " -"SchonViewSet diwarisi dari ModelViewSet dan menyediakan fungsionalitas " -"untuk menangani tindakan dan operasi pada entitas schon. Ini termasuk " -"dukungan untuk kelas serializer dinamis berdasarkan tindakan saat ini, izin " -"yang dapat disesuaikan, dan format rendering." +"SchonViewSet diwarisi dari ModelViewSet dan menyediakan fungsionalitas untuk" +" menangani tindakan dan operasi pada entitas schon. Ini termasuk dukungan " +"untuk kelas serializer dinamis berdasarkan tindakan saat ini, izin yang " +"dapat disesuaikan, dan format rendering." #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Mewakili sebuah viewset untuk mengelola objek AttributeGroup. Menangani " "operasi yang terkait dengan AttributeGroup, termasuk pemfilteran, " @@ -3352,11 +3371,11 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"Sebuah viewset untuk mengelola objek AttributeValue. Viewset ini menyediakan " -"fungsionalitas untuk mendaftarkan, mengambil, membuat, memperbarui, dan " +"Sebuah viewset untuk mengelola objek AttributeValue. Viewset ini menyediakan" +" fungsionalitas untuk mendaftarkan, mengambil, membuat, memperbarui, dan " "menghapus objek AttributeValue. Ini terintegrasi dengan mekanisme viewset " "Django REST Framework dan menggunakan serializer yang sesuai untuk tindakan " "yang berbeda. Kemampuan pemfilteran disediakan melalui DjangoFilterBackend." @@ -3370,10 +3389,10 @@ msgid "" "can access specific data." msgstr "" "Mengelola tampilan untuk operasi terkait Kategori. Kelas CategoryViewSet " -"bertanggung jawab untuk menangani operasi yang terkait dengan model Kategori " -"dalam sistem. Kelas ini mendukung pengambilan, pemfilteran, dan serialisasi " -"data kategori. ViewSet juga memberlakukan izin untuk memastikan bahwa hanya " -"pengguna yang memiliki izin yang dapat mengakses data tertentu." +"bertanggung jawab untuk menangani operasi yang terkait dengan model Kategori" +" dalam sistem. Kelas ini mendukung pengambilan, pemfilteran, dan serialisasi" +" data kategori. ViewSet juga memberlakukan izin untuk memastikan bahwa hanya" +" pengguna yang memiliki izin yang dapat mengakses data tertentu." #: engine/core/viewsets.py:346 msgid "" @@ -3384,8 +3403,8 @@ msgid "" msgstr "" "Mewakili sebuah viewset untuk mengelola instance Brand. Kelas ini " "menyediakan fungsionalitas untuk melakukan kueri, penyaringan, dan " -"serialisasi objek Brand. Kelas ini menggunakan kerangka kerja ViewSet Django " -"untuk menyederhanakan implementasi titik akhir API untuk objek Brand." +"serialisasi objek Brand. Kelas ini menggunakan kerangka kerja ViewSet Django" +" untuk menyederhanakan implementasi titik akhir API untuk objek Brand." #: engine/core/viewsets.py:458 msgid "" @@ -3398,12 +3417,12 @@ msgid "" "product." msgstr "" "Mengelola operasi yang terkait dengan model `Product` dalam sistem. Kelas " -"ini menyediakan sebuah viewset untuk mengelola produk, termasuk pemfilteran, " -"serialisasi, dan operasi pada instance tertentu. Kelas ini diperluas dari " -"`SchonViewSet` untuk menggunakan fungsionalitas umum dan terintegrasi " -"dengan kerangka kerja Django REST untuk operasi RESTful API. Termasuk metode " -"untuk mengambil detail produk, menerapkan izin, dan mengakses umpan balik " -"terkait produk." +"ini menyediakan sebuah viewset untuk mengelola produk, termasuk pemfilteran," +" serialisasi, dan operasi pada instance tertentu. Kelas ini diperluas dari " +"`SchonViewSet` untuk menggunakan fungsionalitas umum dan terintegrasi dengan" +" kerangka kerja Django REST untuk operasi RESTful API. Termasuk metode untuk" +" mengambil detail produk, menerapkan izin, dan mengakses umpan balik terkait" +" produk." #: engine/core/viewsets.py:605 msgid "" @@ -3425,15 +3444,15 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representasi set tampilan yang menangani objek Umpan Balik. Kelas ini " "mengelola operasi yang terkait dengan objek Umpan Balik, termasuk " "mendaftarkan, memfilter, dan mengambil detail. Tujuan dari set tampilan ini " -"adalah untuk menyediakan serializer yang berbeda untuk tindakan yang berbeda " -"dan mengimplementasikan penanganan berbasis izin untuk objek Umpan Balik " +"adalah untuk menyediakan serializer yang berbeda untuk tindakan yang berbeda" +" dan mengimplementasikan penanganan berbasis izin untuk objek Umpan Balik " "yang dapat diakses. Kelas ini memperluas `SchonViewSet` dasar dan " "menggunakan sistem penyaringan Django untuk meminta data." @@ -3442,9 +3461,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet untuk mengelola pesanan dan operasi terkait. Kelas ini menyediakan " @@ -3460,8 +3479,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Menyediakan viewset untuk mengelola entitas OrderProduct. Viewset ini " @@ -3494,17 +3513,17 @@ msgstr "Menangani operasi yang terkait dengan data Stok di dalam sistem." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" "ViewSet untuk mengelola operasi Wishlist. WishlistViewSet menyediakan titik " -"akhir untuk berinteraksi dengan daftar keinginan pengguna, yang memungkinkan " -"pengambilan, modifikasi, dan penyesuaian produk dalam daftar keinginan. " -"ViewSet ini memfasilitasi fungsionalitas seperti menambahkan, menghapus, dan " -"tindakan massal untuk produk daftar keinginan. Pemeriksaan izin " +"akhir untuk berinteraksi dengan daftar keinginan pengguna, yang memungkinkan" +" pengambilan, modifikasi, dan penyesuaian produk dalam daftar keinginan. " +"ViewSet ini memfasilitasi fungsionalitas seperti menambahkan, menghapus, dan" +" tindakan massal untuk produk daftar keinginan. Pemeriksaan izin " "diintegrasikan untuk memastikan bahwa pengguna hanya dapat mengelola daftar " "keinginan mereka sendiri kecuali jika izin eksplisit diberikan." @@ -3516,8 +3535,8 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Kelas ini menyediakan fungsionalitas viewset untuk mengelola objek `Alamat`. " -"Kelas AddressViewSet memungkinkan operasi CRUD, pemfilteran, dan tindakan " +"Kelas ini menyediakan fungsionalitas viewset untuk mengelola objek `Alamat`." +" Kelas AddressViewSet memungkinkan operasi CRUD, pemfilteran, dan tindakan " "khusus yang terkait dengan entitas alamat. Kelas ini mencakup perilaku " "khusus untuk metode HTTP yang berbeda, penggantian serializer, dan " "penanganan izin berdasarkan konteks permintaan." diff --git a/engine/core/locale/it_IT/LC_MESSAGES/django.mo b/engine/core/locale/it_IT/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..219f1cadc899e921fa61f724b92f4f7194502a40 GIT binary patch literal 95084 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 A4*&oF literal 0 HcmV?d00001 diff --git a/engine/core/locale/it_IT/LC_MESSAGES/django.po b/engine/core/locale/it_IT/LC_MESSAGES/django.po index badd7421..fcc58be4 100644 --- a/engine/core/locale/it_IT/LC_MESSAGES/django.po +++ b/engine/core/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,10 +29,11 @@ msgstr "È attivo" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"Se impostato a false, questo oggetto non può essere visto dagli utenti senza " -"i necessari permessi." +"Se impostato a false, questo oggetto non può essere visto dagli utenti senza" +" i necessari permessi." #: engine/core/abstract.py:26 engine/core/choices.py:18 msgid "created" @@ -76,8 +77,8 @@ msgstr "Timestamp" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "Attivare il %(verbose_name_plural)s selezionato" +msgid "Activate selected %(verbose_name_plural)s" +msgstr "Attiva %(verbose_name_plural)s selezionato" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -85,21 +86,21 @@ msgstr "Gli articoli selezionati sono stati attivati!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Disattivare il %(verbose_name_plural)s selezionato" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "Disattiva %(verbose_name_plural)s selezionato" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "Gli articoli selezionati sono stati disattivati!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Valore dell'attributo" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Valori degli attributi" @@ -119,12 +120,12 @@ msgstr "Stock" msgid "stocks" msgstr "Le scorte" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Ordina il prodotto" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Ordinare i prodotti" @@ -132,7 +133,35 @@ msgstr "Ordinare i prodotti" msgid "children" msgstr "I bambini" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Ha immagini" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Esporta %(verbose_name_plural)s selezionato nei feed dei marketplace" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "" +"I file selezionati %(verbose_name_plural)s sono stati contrassegnati per " +"l'esportazione." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Escludi %(verbose_name_plural)s dai feed dei marketplace" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "" +"I prodotti selezionati %(verbose_name_plural)s sono stati vietati " +"all'esportazione." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Configurazione" @@ -156,7 +185,8 @@ msgstr "Consegnato" msgid "canceled" msgstr "Annullato" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Fallito" @@ -194,9 +224,9 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"Schema OpenApi3 per questa API. Il formato può essere selezionato tramite la " -"negoziazione dei contenuti. La lingua può essere selezionata sia con Accept-" -"Language che con il parametro query." +"Schema OpenApi3 per questa API. Il formato può essere selezionato tramite la" +" negoziazione dei contenuti. La lingua può essere selezionata sia con " +"Accept-Language che con il parametro query." #: engine/core/docs/drf/views.py:46 engine/core/graphene/mutations.py:36 msgid "cache I/O" @@ -208,8 +238,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Applicare solo una chiave per leggere i dati consentiti dalla cache.\n" -"Applicare chiave, dati e timeout con autenticazione per scrivere dati nella " -"cache." +"Applicare chiave, dati e timeout con autenticazione per scrivere dati nella cache." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -274,7 +303,8 @@ msgstr "" "Riscrivere un gruppo di attributi esistente salvando i non modificabili" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Riscrivere alcuni campi di un gruppo di attributi esistente salvando quelli " "non modificabili" @@ -329,7 +359,8 @@ msgstr "" "modificabili" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Riscrivere alcuni campi di un valore di attributo esistente salvando i " "valori non modificabili" @@ -362,8 +393,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:270 engine/core/docs/drf/viewsets.py:272 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:280 engine/core/docs/drf/viewsets.py:757 #: engine/core/docs/drf/viewsets.py:1046 @@ -389,12 +420,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Ricerca di sottostringhe senza distinzione di maiuscole e minuscole tra " -"human_readable_id, order_products.product.name e order_products.product." -"partnumber" +"human_readable_id, order_products.product.name e " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -430,9 +461,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordinare per uno dei seguenti criteri: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Prefisso con '-' per la " @@ -466,8 +497,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:403 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:410 msgid "purchase an order" @@ -480,8 +511,8 @@ msgid "" "transaction is initiated." msgstr "" "Finalizza l'acquisto dell'ordine. Se si utilizza `forza_bilancio`, " -"l'acquisto viene completato utilizzando il saldo dell'utente; se si utilizza " -"`forza_pagamento`, viene avviata una transazione." +"l'acquisto viene completato utilizzando il saldo dell'utente; se si utilizza" +" `forza_pagamento`, viene avviata una transazione." #: engine/core/docs/drf/viewsets.py:427 msgid "retrieve current pending order of a user" @@ -557,8 +588,8 @@ msgstr "Elenco di tutti gli attributi (vista semplice)" #: engine/core/docs/drf/viewsets.py:498 msgid "for non-staff users, only their own wishlists are returned." msgstr "" -"Per gli utenti che non fanno parte del personale, vengono restituite solo le " -"loro liste dei desideri." +"Per gli utenti che non fanno parte del personale, vengono restituite solo le" +" loro liste dei desideri." #: engine/core/docs/drf/viewsets.py:508 msgid "retrieve a single wishlist (detailed view)" @@ -639,28 +670,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrare in base a una o più coppie nome/valore dell'attributo. \n" "- **Sintassi**: `nome_attraverso=metodo-valore[;attr2=metodo2-valore2]...`\n" -"- **Metodi** (predefiniti a `icontains` se omessi): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- **Tipo di valore**: JSON viene tentato per primo (in modo da poter passare " -"liste/dict), `true`/`false` per booleani, interi, float; altrimenti viene " -"trattato come stringa. \n" -"- **Base64**: prefisso con `b64-` per codificare in base64 il valore " -"grezzo. \n" +"- **Metodi** (predefiniti a `icontains` se omessi): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- **Tipo di valore**: JSON viene tentato per primo (in modo da poter passare liste/dict), `true`/`false` per booleani, interi, float; altrimenti viene trattato come stringa. \n" +"- **Base64**: prefisso con `b64-` per codificare in base64 il valore grezzo. \n" "Esempi: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -675,12 +696,10 @@ msgstr "(esatto) UUID del prodotto" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Elenco separato da virgole dei campi da ordinare. Prefisso con `-` per " -"l'ordinamento discendente. \n" +"Elenco separato da virgole dei campi da ordinare. Prefisso con `-` per l'ordinamento discendente. \n" "**Consentito:** uuid, rating, nome, slug, creato, modificato, prezzo, casuale" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -699,7 +718,8 @@ msgstr "Creare un prodotto" #: engine/core/docs/drf/viewsets.py:677 engine/core/docs/drf/viewsets.py:678 msgid "rewrite an existing product, preserving non-editable fields" -msgstr "Riscrivere un prodotto esistente, preservando i campi non modificabili" +msgstr "" +"Riscrivere un prodotto esistente, preservando i campi non modificabili" #: engine/core/docs/drf/viewsets.py:697 engine/core/docs/drf/viewsets.py:700 msgid "" @@ -781,8 +801,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:909 msgid "rewrite some fields of an existing feedback saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:919 msgid "list all order–product relations (simple view)" @@ -840,8 +860,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1039 msgid "rewrite some fields of an existing brand saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1064 msgid "list all vendors (simple view)" @@ -867,8 +887,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1102 msgid "rewrite some fields of an existing vendor saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1112 msgid "list all product images (simple view)" @@ -894,8 +914,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1154 msgid "rewrite some fields of an existing product image saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1165 msgid "list all promo codes (simple view)" @@ -921,8 +941,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1203 msgid "rewrite some fields of an existing promo code saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1213 msgid "list all promotions (simple view)" @@ -948,8 +968,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1251 msgid "rewrite some fields of an existing promotion saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1261 msgid "list all stocks (simple view)" @@ -975,8 +995,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1297 msgid "rewrite some fields of an existing stock record saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1308 msgid "list all product tags (simple view)" @@ -1002,8 +1022,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1350 msgid "rewrite some fields of an existing product tag saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/elasticsearch/__init__.py:128 #: engine/core/elasticsearch/__init__.py:629 @@ -1188,7 +1208,8 @@ msgstr "" #: engine/core/graphene/mutations.py:249 engine/core/graphene/mutations.py:524 #: engine/core/graphene/mutations.py:573 engine/core/viewsets.py:753 msgid "wrong type came from order.buy() method: {type(instance)!s}" -msgstr "Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}" +msgstr "" +"Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}" #: engine/core/graphene/mutations.py:260 msgid "perform an action on a list of products in the order" @@ -1239,11 +1260,11 @@ msgstr "Acquistare un ordine" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Inviare gli attributi come stringa formattata come attr1=valore1," -"attr2=valore2" +"Inviare gli attributi come stringa formattata come " +"attr1=valore1,attr2=valore2" #: engine/core/graphene/mutations.py:580 msgid "add or delete a feedback for orderproduct" @@ -1262,9 +1283,9 @@ msgstr "Prodotto dell'ordine {order_product_uuid} non trovato!" msgid "original address string provided by the user" msgstr "Stringa di indirizzo originale fornita dall'utente" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1280,8 +1301,8 @@ msgstr "ElasticSearch: funziona a meraviglia" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Attributi" @@ -1319,7 +1340,8 @@ msgstr "" "categoria." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Prezzi minimi e massimi per i prodotti di questa categoria, se disponibili." @@ -1357,7 +1379,7 @@ msgid "represents feedback from a user." msgstr "Rappresenta il feedback di un utente." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Notifiche" @@ -1365,7 +1387,7 @@ msgstr "Notifiche" msgid "download url for this order product if applicable" msgstr "URL di download per il prodotto dell'ordine, se applicabile" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Feedback" @@ -1373,7 +1395,7 @@ msgstr "Feedback" msgid "a list of order products in this order" msgstr "Un elenco di prodotti ordinati in questo ordine" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Indirizzo di fatturazione" @@ -1401,7 +1423,7 @@ msgstr "Tutti i prodotti sono presenti nell'ordine digitale" msgid "transactions for this order" msgstr "Transazioni per questo ordine" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Ordini" @@ -1418,7 +1440,7 @@ msgstr "Immagini del prodotto" msgid "category" msgstr "Categoria" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Feedback" @@ -1459,7 +1481,7 @@ msgstr "Prodotti disponibili solo per ordini personali" msgid "discount price" msgstr "Prezzo scontato" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Prodotti" @@ -1471,7 +1493,7 @@ msgstr "Codici promozionali" msgid "products on sale" msgstr "Prodotti in vendita" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Promozioni" @@ -1479,7 +1501,7 @@ msgstr "Promozioni" msgid "vendor" msgstr "Venditore" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1487,11 +1509,11 @@ msgstr "Venditore" msgid "product" msgstr "Prodotto" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Prodotti desiderati" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Liste dei desideri" @@ -1590,9 +1612,9 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"Rappresenta un gruppo di attributi, che può essere gerarchico. Questa classe " -"viene utilizzata per gestire e organizzare i gruppi di attributi. Un gruppo " -"di attributi può avere un gruppo padre, formando una struttura gerarchica. " +"Rappresenta un gruppo di attributi, che può essere gerarchico. Questa classe" +" viene utilizzata per gestire e organizzare i gruppi di attributi. Un gruppo" +" di attributi può avere un gruppo padre, formando una struttura gerarchica. " "Questo può essere utile per categorizzare e gestire meglio gli attributi in " "un sistema complesso." @@ -1608,7 +1630,7 @@ msgstr "Gruppo di attributi padre" msgid "attribute group's name" msgstr "Nome del gruppo di attributi" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Gruppo di attributi" @@ -1716,8 +1738,8 @@ msgid "" msgstr "" "Rappresenta un tag di categoria utilizzato per i prodotti. Questa classe " "modella un tag di categoria che può essere usato per associare e " -"classificare i prodotti. Include gli attributi per un identificatore interno " -"del tag e un nome di visualizzazione facile da usare." +"classificare i prodotti. Include gli attributi per un identificatore interno" +" del tag e un nome di visualizzazione facile da usare." #: engine/core/models.py:249 msgid "category tag" @@ -1741,12 +1763,12 @@ msgid "" msgstr "" "Rappresenta un'entità di categoria per organizzare e raggruppare gli " "elementi correlati in una struttura gerarchica. Le categorie possono avere " -"relazioni gerarchiche con altre categorie, supportando le relazioni genitore-" -"figlio. La classe include campi per i metadati e per la rappresentazione " -"visiva, che servono come base per le funzionalità legate alle categorie. " -"Questa classe viene tipicamente utilizzata per definire e gestire le " -"categorie di prodotti o altri raggruppamenti simili all'interno di " -"un'applicazione, consentendo agli utenti o agli amministratori di " +"relazioni gerarchiche con altre categorie, supportando le relazioni " +"genitore-figlio. La classe include campi per i metadati e per la " +"rappresentazione visiva, che servono come base per le funzionalità legate " +"alle categorie. Questa classe viene tipicamente utilizzata per definire e " +"gestire le categorie di prodotti o altri raggruppamenti simili all'interno " +"di un'applicazione, consentendo agli utenti o agli amministratori di " "specificare il nome, la descrizione e la gerarchia delle categorie, nonché " "di assegnare attributi come immagini, tag o priorità." @@ -1800,13 +1822,14 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Rappresenta un oggetto Marchio nel sistema. Questa classe gestisce le " "informazioni e gli attributi relativi a un marchio, tra cui il nome, il " "logo, la descrizione, le categorie associate, uno slug unico e l'ordine di " -"priorità. Permette di organizzare e rappresentare i dati relativi al marchio " -"all'interno dell'applicazione." +"priorità. Permette di organizzare e rappresentare i dati relativi al marchio" +" all'interno dell'applicazione." #: engine/core/models.py:456 msgid "name of this brand" @@ -1850,8 +1873,8 @@ msgstr "Categorie" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1859,10 +1882,10 @@ msgid "" msgstr "" "Rappresenta lo stock di un prodotto gestito nel sistema. Questa classe " "fornisce dettagli sulla relazione tra fornitori, prodotti e informazioni " -"sulle scorte, oltre a proprietà legate all'inventario come prezzo, prezzo di " -"acquisto, quantità, SKU e asset digitali. Fa parte del sistema di gestione " -"dell'inventario per consentire il monitoraggio e la valutazione dei prodotti " -"disponibili presso i vari fornitori." +"sulle scorte, oltre a proprietà legate all'inventario come prezzo, prezzo di" +" acquisto, quantità, SKU e asset digitali. Fa parte del sistema di gestione " +"dell'inventario per consentire il monitoraggio e la valutazione dei prodotti" +" disponibili presso i vari fornitori." #: engine/core/models.py:528 msgid "the vendor supplying this product stock" @@ -1884,8 +1907,8 @@ msgstr "Prezzo di vendita" msgid "the product associated with this stock entry" msgstr "Il prodotto associato a questa voce di magazzino" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Prodotto associato" @@ -1947,8 +1970,8 @@ msgstr "" "sistema che gestisce il commercio elettronico o l'inventario. Questa classe " "interagisce con i modelli correlati (come Category, Brand e ProductTag) e " "gestisce la cache per le proprietà a cui si accede di frequente, per " -"migliorare le prestazioni. Viene utilizzata per definire e manipolare i dati " -"dei prodotti e le informazioni ad essi associate all'interno di " +"migliorare le prestazioni. Viene utilizzata per definire e manipolare i dati" +" dei prodotti e le informazioni ad essi associate all'interno di " "un'applicazione." #: engine/core/models.py:595 @@ -1988,7 +2011,7 @@ msgstr "Fornire un nome identificativo chiaro per il prodotto" msgid "product name" msgstr "Nome del prodotto" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Aggiungere una descrizione dettagliata del prodotto" @@ -2008,200 +2031,208 @@ msgstr "Numero di parte" msgid "stock keeping unit for this product" msgstr "Unità di mantenimento delle scorte per questo prodotto" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Se esportare questo prodotto nei mercati" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Esportazione verso i mercati" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Rappresenta un attributo nel sistema. Questa classe viene utilizzata per " -"definire e gestire gli attributi, che sono dati personalizzabili che possono " -"essere associati ad altre entità. Gli attributi hanno categorie, gruppi, " -"tipi di valori e nomi associati. Il modello supporta diversi tipi di valori, " -"tra cui stringa, intero, float, booleano, array e oggetto. Ciò consente una " -"strutturazione dinamica e flessibile dei dati." +"definire e gestire gli attributi, che sono dati personalizzabili che possono" +" essere associati ad altre entità. Gli attributi hanno categorie, gruppi, " +"tipi di valori e nomi associati. Il modello supporta diversi tipi di valori," +" tra cui stringa, intero, float, booleano, array e oggetto. Ciò consente una" +" strutturazione dinamica e flessibile dei dati." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Gruppo di questo attributo" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Stringa" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Intero" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Galleggiante" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Booleano" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Array" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Oggetto" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Tipo di valore dell'attributo" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Tipo di valore" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Nome dell'attributo" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Nome dell'attributo" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "è filtrabile" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Quali attributi e valori possono essere utilizzati per filtrare questa " "categoria." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attributo" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Rappresenta un valore specifico per un attributo collegato a un prodotto. " "Collega l'\"attributo\" a un \"valore\" unico, consentendo una migliore " "organizzazione e rappresentazione dinamica delle caratteristiche del " "prodotto." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Attributo di questo valore" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Il prodotto specifico associato al valore di questo attributo" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Il valore specifico per questo attributo" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Rappresenta l'immagine di un prodotto associata a un prodotto del sistema. " -"Questa classe è progettata per gestire le immagini dei prodotti, comprese le " -"funzionalità di caricamento dei file immagine, di associazione a prodotti " +"Questa classe è progettata per gestire le immagini dei prodotti, comprese le" +" funzionalità di caricamento dei file immagine, di associazione a prodotti " "specifici e di determinazione dell'ordine di visualizzazione. Include anche " "una funzione di accessibilità con testo alternativo per le immagini." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "" "Fornire un testo alternativo per l'immagine ai fini dell'accessibilità." -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Testo alt dell'immagine" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Caricare il file immagine per questo prodotto" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Immagine del prodotto" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Determina l'ordine di visualizzazione delle immagini" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Priorità del display" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Il prodotto che questa immagine rappresenta" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Immagini del prodotto" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"Rappresenta una campagna promozionale per prodotti con sconto. Questa classe " -"viene utilizzata per definire e gestire campagne promozionali che offrono " +"Rappresenta una campagna promozionale per prodotti con sconto. Questa classe" +" viene utilizzata per definire e gestire campagne promozionali che offrono " "uno sconto in percentuale sui prodotti. La classe include attributi per " "impostare la percentuale di sconto, fornire dettagli sulla promozione e " "collegarla ai prodotti applicabili. Si integra con il catalogo dei prodotti " "per determinare gli articoli interessati dalla campagna." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Percentuale di sconto per i prodotti selezionati" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Percentuale di sconto" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Fornite un nome unico per questa promozione" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Nome della promozione" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Descrizione della promozione" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Selezionare i prodotti inclusi in questa promozione" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Prodotti inclusi" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Promozione" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2214,60 +2245,60 @@ msgstr "" "rimozione di prodotti, nonché operazioni per l'aggiunta e la rimozione di " "più prodotti contemporaneamente." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Prodotti che l'utente ha contrassegnato come desiderati" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Utente che possiede questa wishlist" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Proprietario della lista dei desideri" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Lista dei desideri" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"Rappresenta un record documentario legato a un prodotto. Questa classe viene " -"utilizzata per memorizzare informazioni sui documentari relativi a prodotti " -"specifici, compresi i file caricati e i relativi metadati. Contiene metodi e " -"proprietà per gestire il tipo di file e il percorso di archiviazione dei " +"Rappresenta un record documentario legato a un prodotto. Questa classe viene" +" utilizzata per memorizzare informazioni sui documentari relativi a prodotti" +" specifici, compresi i file caricati e i relativi metadati. Contiene metodi " +"e proprietà per gestire il tipo di file e il percorso di archiviazione dei " "file documentari. Estende le funzionalità di mixin specifici e fornisce " "ulteriori caratteristiche personalizzate." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Documentario" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Documentari" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Non risolto" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Rappresenta un'entità indirizzo che include dettagli sulla posizione e " "associazioni con un utente. Fornisce funzionalità per la memorizzazione di " @@ -2280,59 +2311,59 @@ msgstr "" "classe consente inoltre di associare un indirizzo a un utente, facilitando " "la gestione personalizzata dei dati." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Indirizzo del cliente" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Linea di indirizzo" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Via" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Distretto" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Città" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Regione" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Codice postale" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Paese" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Punto di geolocalizzazione(Longitudine, Latitudine)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Risposta JSON completa di geocoder per questo indirizzo" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Risposta JSON memorizzata dal servizio di geocodifica" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Indirizzo" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Indirizzi" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2341,248 +2372,250 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"Rappresenta un codice promozionale che può essere utilizzato per gli sconti, " -"gestendone la validità, il tipo di sconto e l'applicazione. La classe " +"Rappresenta un codice promozionale che può essere utilizzato per gli sconti," +" gestendone la validità, il tipo di sconto e l'applicazione. La classe " "PromoCode memorizza i dettagli di un codice promozionale, tra cui il suo " "identificatore univoco, le proprietà dello sconto (importo o percentuale), " "il periodo di validità, l'utente associato (se presente) e lo stato di " "utilizzo. Include funzionalità per convalidare e applicare il codice " "promozionale a un ordine, assicurando il rispetto dei vincoli." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Codice univoco utilizzato da un utente per riscattare uno sconto" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Identificatore del codice promozionale" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" -msgstr "Importo fisso dello sconto applicato se non si utilizza la percentuale" +msgstr "" +"Importo fisso dello sconto applicato se non si utilizza la percentuale" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Importo fisso dello sconto" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Sconto percentuale applicato se l'importo fisso non viene utilizzato" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Sconto percentuale" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Data di scadenza del codice promozionale" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Tempo di validità finale" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Data a partire dalla quale il codice promozionale è valido" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Ora di inizio validità" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Timestamp in cui è stato utilizzato il codice promozionale, vuoto se non " "ancora utilizzato" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Timestamp d'uso" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Utente assegnato a questo codice promozionale, se applicabile" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Utente assegnato" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Codice promozionale" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Codici promozionali" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"È necessario definire un solo tipo di sconto (importo o percentuale), ma non " -"entrambi o nessuno." +"È necessario definire un solo tipo di sconto (importo o percentuale), ma non" +" entrambi o nessuno." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Il codice promozionale è già stato utilizzato" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Tipo di sconto non valido per il codice promozionale {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Rappresenta un ordine effettuato da un utente. Questa classe modella un " -"ordine all'interno dell'applicazione, includendo i suoi vari attributi, come " -"le informazioni di fatturazione e spedizione, lo stato, l'utente associato, " -"le notifiche e le operazioni correlate. Gli ordini possono avere prodotti " +"ordine all'interno dell'applicazione, includendo i suoi vari attributi, come" +" le informazioni di fatturazione e spedizione, lo stato, l'utente associato," +" le notifiche e le operazioni correlate. Gli ordini possono avere prodotti " "associati, possono essere applicate promozioni, impostati indirizzi e " "aggiornati i dettagli di spedizione o fatturazione. Allo stesso modo, la " -"funzionalità supporta la gestione dei prodotti nel ciclo di vita dell'ordine." +"funzionalità supporta la gestione dei prodotti nel ciclo di vita " +"dell'ordine." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "L'indirizzo di fatturazione utilizzato per questo ordine" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Codice promozionale opzionale applicato a questo ordine" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Codice promozionale applicato" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "L'indirizzo di spedizione utilizzato per questo ordine" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Indirizzo di spedizione" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Stato attuale dell'ordine nel suo ciclo di vita" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Stato dell'ordine" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "Struttura JSON delle notifiche da mostrare agli utenti; nell'interfaccia " "utente dell'amministratore viene utilizzata la visualizzazione a tabella." -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "Rappresentazione JSON degli attributi dell'ordine per questo ordine" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "L'utente che ha effettuato l'ordine" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Utente" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Il timestamp del momento in cui l'ordine è stato finalizzato" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Acquista tempo" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Un identificatore leggibile dall'uomo per l'ordine" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "ID leggibile dall'uomo" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Ordine" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "Un utente può avere un solo ordine pendente alla volta!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" "Non è possibile aggiungere prodotti a un ordine che non sia in sospeso." -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Non è possibile aggiungere all'ordine prodotti inattivi" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "" "Non è possibile aggiungere più prodotti di quelli disponibili in magazzino" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "Non è possibile rimuovere i prodotti da un ordine che non è in corso." -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} non esiste con la query <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Il codice promozionale non esiste" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" "È possibile acquistare solo prodotti fisici con indirizzo di spedizione " "specificato!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "L'indirizzo non esiste" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "In questo momento non è possibile acquistare, riprovare tra qualche minuto." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Valore di forza non valido" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Non è possibile acquistare un ordine vuoto!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "Non è possibile acquistare un ordine senza un utente!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Un utente senza saldo non può acquistare con il saldo!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Fondi insufficienti per completare l'ordine" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2591,7 +2624,7 @@ msgstr "" "seguenti informazioni: nome del cliente, e-mail del cliente, numero di " "telefono del cliente" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2599,7 +2632,7 @@ msgstr "" "Metodo di pagamento non valido: {payment_method} da " "{available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2611,35 +2644,36 @@ msgstr "" "per catturare e memorizzare i commenti degli utenti su prodotti specifici " "che hanno acquistato. Contiene attributi per memorizzare i commenti degli " "utenti, un riferimento al prodotto correlato nell'ordine e una valutazione " -"assegnata dall'utente. La classe utilizza campi del database per modellare e " -"gestire efficacemente i dati di feedback." +"assegnata dall'utente. La classe utilizza campi del database per modellare e" +" gestire efficacemente i dati di feedback." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "Commenti degli utenti sulla loro esperienza con il prodotto" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Commenti di feedback" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Riferisce il prodotto specifico in un ordine di cui si tratta il feedback." -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Prodotto correlato all'ordine" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Valutazione del prodotto assegnata dall'utente" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Valutazione del prodotto" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2662,116 +2696,116 @@ msgstr "" "modello si integra con i modelli Ordine e Prodotto e memorizza un " "riferimento ad essi." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "" "Il prezzo pagato dal cliente per questo prodotto al momento dell'acquisto." -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Prezzo di acquisto al momento dell'ordine" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Commenti interni per gli amministratori su questo prodotto ordinato" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Commenti interni" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Notifiche degli utenti" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "Rappresentazione JSON degli attributi di questo elemento" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Attributi del prodotto ordinati" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Riferimento all'ordine padre che contiene questo prodotto" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Ordine dei genitori" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Il prodotto specifico associato a questa riga d'ordine" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Quantità di questo prodotto specifico nell'ordine" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Quantità di prodotto" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Stato attuale di questo prodotto nell'ordine" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Stato della linea di prodotti" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "L'ordine-prodotto deve avere un ordine associato!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Azione errata specificata per il feedback: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "non è possibile dare un riscontro a un ordine non ricevuto" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Nome" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL dell'integrazione" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Credenziali di autenticazione" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "È possibile avere un solo provider CRM predefinito" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Link al CRM dell'ordine" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Link al CRM degli ordini" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Rappresenta la funzionalità di download degli asset digitali associati agli " "ordini. La classe DigitalAssetDownload offre la possibilità di gestire e " @@ -2781,11 +2815,11 @@ msgstr "" "il download della risorsa quando l'ordine associato è in uno stato " "completato." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Scaricare" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Scaricamento" @@ -2793,8 +2827,8 @@ msgstr "Scaricamento" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"per aggiungere un feedback è necessario fornire un commento, una valutazione " -"e l'uuid del prodotto dell'ordine." +"per aggiungere un feedback è necessario fornire un commento, una valutazione" +" e l'uuid del prodotto dell'ordine." #: engine/core/sitemaps.py:25 msgid "Home" @@ -2986,8 +3020,7 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Grazie per il vostro ordine #%(order.pk)s! Siamo lieti di informarla che " @@ -3016,8 +3049,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." msgstr "" -"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero " -"%(config.EMAIL_HOST_USER)s." +"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero" +" %(config.EMAIL_HOST_USER)s." #: engine/core/templates/digital_order_created_email.html:133 #, python-format @@ -3069,8 +3102,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero " -"%(contact_email)s." +"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero" +" %(contact_email)s." #: engine/core/templates/digital_order_delivered_email.html:165 #: engine/core/templates/promocode_granted_email.html:108 @@ -3102,8 +3135,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Grazie per il vostro ordine! Siamo lieti di confermare il suo acquisto. Di " @@ -3175,8 +3207,8 @@ msgstr "Il parametro NOMINATIM_URL deve essere configurato!" #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -"Le dimensioni dell'immagine non devono superare w{max_width} x h{max_height} " -"pixel" +"Le dimensioni dell'immagine non devono superare w{max_width} x h{max_height}" +" pixel" #: engine/core/views.py:104 msgid "" @@ -3238,15 +3270,10 @@ msgstr "Gestisce la logica dell'acquisto come azienda senza registrazione." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestisce il download di una risorsa digitale associata a un ordine.\n" -"Questa funzione tenta di servire il file della risorsa digitale che si trova " -"nella directory di archiviazione del progetto. Se il file non viene trovato, " -"viene generato un errore HTTP 404 per indicare che la risorsa non è " -"disponibile." +"Questa funzione tenta di servire il file della risorsa digitale che si trova nella directory di archiviazione del progetto. Se il file non viene trovato, viene generato un errore HTTP 404 per indicare che la risorsa non è disponibile." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3275,19 +3302,15 @@ msgstr "favicon non trovata" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestisce le richieste per la favicon di un sito web.\n" -"Questa funzione tenta di servire il file favicon situato nella cartella " -"statica del progetto. Se il file favicon non viene trovato, viene generato " -"un errore HTTP 404 per indicare che la risorsa non è disponibile." +"Questa funzione tenta di servire il file favicon situato nella cartella statica del progetto. Se il file favicon non viene trovato, viene generato un errore HTTP 404 per indicare che la risorsa non è disponibile." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Reindirizza la richiesta alla pagina indice dell'amministrazione. La " @@ -3310,28 +3333,29 @@ msgstr "Restituisce le variabili personalizzate per Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The schonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "Definisce un insieme di viste per la gestione delle operazioni relative a " "schon. La classe schonViewSet eredita da ModelViewSet e fornisce " "funzionalità per la gestione di azioni e operazioni sulle entità schon. " -"Include il supporto per classi di serializzatori dinamici in base all'azione " -"corrente, permessi personalizzabili e formati di rendering." +"Include il supporto per classi di serializzatori dinamici in base all'azione" +" corrente, permessi personalizzabili e formati di rendering." #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Rappresenta un insieme di viste per la gestione degli oggetti " -"AttributeGroup. Gestisce le operazioni relative agli AttributeGroup, tra cui " -"il filtraggio, la serializzazione e il recupero dei dati. Questa classe fa " +"AttributeGroup. Gestisce le operazioni relative agli AttributeGroup, tra cui" +" il filtraggio, la serializzazione e il recupero dei dati. Questa classe fa " "parte del livello API dell'applicazione e fornisce un modo standardizzato " "per elaborare le richieste e le risposte per i dati di AttributeGroup." @@ -3348,16 +3372,16 @@ msgstr "" "dell'applicazione. Fornisce un insieme di endpoint API per interagire con i " "dati Attribute. Questa classe gestisce l'interrogazione, il filtraggio e la " "serializzazione degli oggetti Attribute, consentendo un controllo dinamico " -"sui dati restituiti, come il filtraggio per campi specifici o il recupero di " -"informazioni dettagliate o semplificate, a seconda della richiesta." +"sui dati restituiti, come il filtraggio per campi specifici o il recupero di" +" informazioni dettagliate o semplificate, a seconda della richiesta." #: engine/core/viewsets.py:198 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Un insieme di viste per la gestione degli oggetti AttributeValue. Questo " "insieme di viste fornisce funzionalità per elencare, recuperare, creare, " @@ -3389,16 +3413,16 @@ msgid "" "endpoints for Brand objects." msgstr "" "Rappresenta un insieme di viste per la gestione delle istanze del marchio. " -"Questa classe fornisce funzionalità per interrogare, filtrare e serializzare " -"gli oggetti Brand. Utilizza il framework ViewSet di Django per semplificare " -"l'implementazione di endpoint API per gli oggetti Brand." +"Questa classe fornisce funzionalità per interrogare, filtrare e serializzare" +" gli oggetti Brand. Utilizza il framework ViewSet di Django per semplificare" +" l'implementazione di endpoint API per gli oggetti Brand." #: engine/core/viewsets.py:458 msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`schonViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3419,9 +3443,9 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Rappresenta un insieme di viste per la gestione degli oggetti Vendor. Questo " -"insieme di viste consente di recuperare, filtrare e serializzare i dati del " -"fornitore. Definisce il queryset, le configurazioni dei filtri e le classi " +"Rappresenta un insieme di viste per la gestione degli oggetti Vendor. Questo" +" insieme di viste consente di recuperare, filtrare e serializzare i dati del" +" fornitore. Definisce il queryset, le configurazioni dei filtri e le classi " "di serializzazione utilizzate per gestire le diverse azioni. Lo scopo di " "questa classe è fornire un accesso semplificato alle risorse relative a " "Vendor attraverso il framework REST di Django." @@ -3431,14 +3455,14 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `schonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Rappresentazione di un insieme di viste che gestisce gli oggetti Feedback. " -"Questa classe gestisce le operazioni relative agli oggetti Feedback, tra cui " -"l'elencazione, il filtraggio e il recupero dei dettagli. Lo scopo di questo " -"insieme di viste è fornire serializzatori diversi per azioni diverse e " +"Questa classe gestisce le operazioni relative agli oggetti Feedback, tra cui" +" l'elencazione, il filtraggio e il recupero dei dettagli. Lo scopo di questo" +" insieme di viste è fornire serializzatori diversi per azioni diverse e " "implementare una gestione basata sui permessi degli oggetti Feedback " "accessibili. Estende l'insieme di base `schonViewSet` e fa uso del sistema " "di filtraggio di Django per interrogare i dati." @@ -3448,9 +3472,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet per la gestione degli ordini e delle operazioni correlate. Questa " @@ -3466,8 +3490,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Fornisce un insieme di viste per la gestione delle entità OrderProduct. " @@ -3480,7 +3504,8 @@ msgstr "" #: engine/core/viewsets.py:974 msgid "Manages operations related to Product images in the application. " msgstr "" -"Gestisce le operazioni relative alle immagini dei prodotti nell'applicazione." +"Gestisce le operazioni relative alle immagini dei prodotti " +"nell'applicazione." #: engine/core/viewsets.py:988 msgid "" @@ -3502,8 +3527,8 @@ msgstr "Gestisce le operazioni relative ai dati delle scorte nel sistema." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3515,8 +3540,8 @@ msgstr "" "ViewSet facilita funzionalità quali l'aggiunta, la rimozione e le azioni di " "massa per i prodotti della lista dei desideri. I controlli delle " "autorizzazioni sono integrati per garantire che gli utenti possano gestire " -"solo la propria lista dei desideri, a meno che non vengano concessi permessi " -"espliciti." +"solo la propria lista dei desideri, a meno che non vengano concessi permessi" +" espliciti." #: engine/core/viewsets.py:1183 msgid "" @@ -3526,8 +3551,8 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Questa classe fornisce la funzionalità viewset per la gestione degli oggetti " -"`Address`. La classe AddressViewSet consente operazioni CRUD, filtri e " +"Questa classe fornisce la funzionalità viewset per la gestione degli oggetti" +" `Address`. La classe AddressViewSet consente operazioni CRUD, filtri e " "azioni personalizzate relative alle entità indirizzo. Include comportamenti " "specializzati per diversi metodi HTTP, override del serializzatore e " "gestione dei permessi in base al contesto della richiesta." diff --git a/engine/core/locale/ja_JP/LC_MESSAGES/django.mo b/engine/core/locale/ja_JP/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..dbe562435cef7d466d9ed005f4ae6738de7735ba GIT binary patch literal 100489 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 z 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 literal 0 HcmV?d00001 diff --git a/engine/core/locale/ja_JP/LC_MESSAGES/django.po b/engine/core/locale/ja_JP/LC_MESSAGES/django.po index 2bbc7834..f69cbb22 100644 --- a/engine/core/locale/ja_JP/LC_MESSAGES/django.po +++ b/engine/core/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -19,8 +19,7 @@ msgstr "ユニークID" #: engine/core/abstract.py:13 msgid "unique id is used to surely identify any database object" -msgstr "" -"ユニークIDは、データベースオブジェクトを確実に識別するために使用されます。" +msgstr "ユニークIDは、データベースオブジェクトを確実に識別するために使用されます。" #: engine/core/abstract.py:20 msgid "is active" @@ -28,10 +27,9 @@ msgstr "アクティブ" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" -msgstr "" -"falseに設定された場合、このオブジェクトは必要なパーミッションのないユーザーに" -"は見えない。" +"if set to false, this object can't be seen by users without needed " +"permission" +msgstr "falseに設定された場合、このオブジェクトは必要なパーミッションのないユーザーには見えない。" #: engine/core/abstract.py:26 engine/core/choices.py:18 msgid "created" @@ -75,8 +73,8 @@ msgstr "タイムスタンプ" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "選択した%(verbose_name_plural)sをアクティブにする" +msgid "Activate selected %(verbose_name_plural)s" +msgstr "選択した%(verbose_name_plural)sを有効化" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -84,21 +82,21 @@ msgstr "選択した項目がアクティブになりました!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "選択された%(verbose_name_plural)sを非アクティブにする" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "選択した %(verbose_name_plural)s を無効化" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "選択されたアイテムは無効化されました!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "属性値" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "属性値" @@ -118,12 +116,12 @@ msgstr "在庫" msgid "stocks" msgstr "株式" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "商品のご注文" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "商品のご注文" @@ -131,7 +129,31 @@ msgstr "商品のご注文" msgid "children" msgstr "子供たち" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "画像があります" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "選択した %(verbose_name_plural)s をマーケットプレイスのフィードにエクスポートする" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "選択された %(verbose_name_plural)s がエクスポート用にマークされました。" + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "%(verbose_name_plural)sをマーケットプレイスのフィードから除外" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "選択された %(verbose_name_plural)s は輸出禁止となりました。" + +#: engine/core/admin.py:1116 msgid "Config" msgstr "コンフィグ" @@ -155,7 +177,8 @@ msgstr "配信" msgid "canceled" msgstr "キャンセル" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "失敗" @@ -193,8 +216,8 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"この API の OpenApi3 スキーマ。フォーマットはコンテントネゴシエーションで選択" -"できる。言語は Accept-Language とクエリパラメータで選択できる。" +"この API の OpenApi3 スキーマ。フォーマットはコンテントネゴシエーションで選択できる。言語は Accept-Language " +"とクエリパラメータで選択できる。" #: engine/core/docs/drf/views.py:46 engine/core/graphene/mutations.py:36 msgid "cache I/O" @@ -206,8 +229,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "許可されたデータをキャッシュから読み出すには、キーのみを適用する。\n" -"キャッシュにデータを書き込むには、認証付きのキー、データ、タイムアウトを適用" -"する。" +"キャッシュにデータを書き込むには、認証付きのキー、データ、タイムアウトを適用する。" #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -241,9 +263,7 @@ msgstr "ビジネスとして注文を購入する" msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." -msgstr "" -"提供された `product` と `product_uuid` と `attributes` を使用して、ビジネスと" -"して注文を購入する。" +msgstr "提供された `product` と `product_uuid` と `attributes` を使用して、ビジネスとして注文を購入する。" #: engine/core/docs/drf/views.py:180 msgid "download a digital asset from purchased digital order" @@ -270,10 +290,9 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "既存の属性グループを書き換えて、編集不可能なものを保存する。" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" -msgstr "" -"既存の属性グループのいくつかのフィールドを書き換え、編集不可能なものを保存す" -"る。" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" +msgstr "既存の属性グループのいくつかのフィールドを書き換え、編集不可能なものを保存する。" #: engine/core/docs/drf/viewsets.py:118 msgid "list all attributes (simple view)" @@ -297,8 +316,7 @@ msgstr "既存の属性を書き換える。" #: engine/core/docs/drf/viewsets.py:156 msgid "rewrite some fields of an existing attribute saving non-editables" -msgstr "" -"既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" +msgstr "既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" #: engine/core/docs/drf/viewsets.py:166 msgid "list all attribute values (simple view)" @@ -321,9 +339,9 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "既存の属性値を書き換える。" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" -msgstr "" -"既存の属性値のいくつかのフィールドを書き換え、編集不可能な値を保存する。" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" +msgstr "既存の属性値のいくつかのフィールドを書き換え、編集不可能な値を保存する。" #: engine/core/docs/drf/viewsets.py:219 engine/core/docs/drf/viewsets.py:220 msgid "list all categories (simple view)" @@ -375,11 +393,10 @@ msgstr "スタッフ以外のユーザーについては、自分の注文のみ #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"human_readable_id、order_products.product.name、order_products.product." -"partnumberの大文字小文字を区別しない部分文字列検索" +"human_readable_id、order_products.product.name、order_products.product.partnumberの大文字小文字を区別しない部分文字列検索" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -399,8 +416,7 @@ msgstr "人間が読み取れる正確な注文IDによるフィルタリング" #: engine/core/docs/drf/viewsets.py:336 msgid "Filter by user's email (case-insensitive exact match)" -msgstr "" -"ユーザーのEメールによるフィルタリング(大文字・小文字を区別しない完全一致)" +msgstr "ユーザーのEメールによるフィルタリング(大文字・小文字を区別しない完全一致)" #: engine/core/docs/drf/viewsets.py:341 msgid "Filter by user's UUID" @@ -408,19 +424,15 @@ msgstr "ユーザーのUUIDによるフィルタリング" #: engine/core/docs/drf/viewsets.py:347 msgid "Filter by order status (case-insensitive substring match)" -msgstr "" -"注文ステータスによるフィルタリング(大文字と小文字を区別しない部分文字列マッ" -"チ)" +msgstr "注文ステータスによるフィルタリング(大文字と小文字を区別しない部分文字列マッチ)" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"uuid、human_readable_id、user_email、user、status、created、modified、" -"buy_time、randomのいずれかによる順序。降順の場合は'-'をプレフィックスとしてつ" -"ける(例:'-buy_time')。" +"uuid、human_readable_id、user_email、user、status、created、modified、buy_time、randomのいずれかによる順序。降順の場合は'-'をプレフィックスとしてつける(例:'-buy_time')。" #: engine/core/docs/drf/viewsets.py:366 msgid "retrieve a single order (detailed view)" @@ -460,9 +472,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"注文の購入を確定する。force_balance` が使用された場合、ユーザーの残高を使用し" -"て購入が完了します。 `force_payment` が使用された場合、トランザクションが開始" -"されます。" +"注文の購入を確定する。force_balance` が使用された場合、ユーザーの残高を使用して購入が完了します。 `force_payment` " +"が使用された場合、トランザクションが開始されます。" #: engine/core/docs/drf/viewsets.py:427 msgid "retrieve current pending order of a user" @@ -488,8 +499,7 @@ msgstr "注文に商品を追加する" msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"指定した `product_uuid` と `attributes` を使用して、商品を注文に追加する。" +msgstr "指定した `product_uuid` と `attributes` を使用して、商品を注文に追加する。" #: engine/core/docs/drf/viewsets.py:461 msgid "add a list of products to order, quantities will not count" @@ -499,9 +509,7 @@ msgstr "数量はカウントされません。" msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"指定された `product_uuid` と `attributes` を使用して、注文に商品のリストを追" -"加する。" +msgstr "指定された `product_uuid` と `attributes` を使用して、注文に商品のリストを追加する。" #: engine/core/docs/drf/viewsets.py:472 msgid "remove product from order" @@ -511,9 +519,7 @@ msgstr "注文から商品を削除する" msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"指定された `product_uuid` と `attributes` を使用して、注文から商品を削除す" -"る。" +msgstr "指定された `product_uuid` と `attributes` を使用して、注文から商品を削除する。" #: engine/core/docs/drf/viewsets.py:483 msgid "remove product from order, quantities will not count" @@ -523,9 +529,7 @@ msgstr "注文から商品を削除すると、数量はカウントされませ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" -msgstr "" -"指定された `product_uuid` と `attributes` を用いて、注文から商品のリストを削" -"除する。" +msgstr "指定された `product_uuid` と `attributes` を用いて、注文から商品のリストを削除する。" #: engine/core/docs/drf/viewsets.py:497 msgid "list all wishlists (simple view)" @@ -557,8 +561,7 @@ msgstr "既存の属性を書き換える。" #: engine/core/docs/drf/viewsets.py:537 msgid "rewrite some fields of an existing wishlist saving non-editables" -msgstr "" -"既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" +msgstr "既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" #: engine/core/docs/drf/viewsets.py:544 msgid "retrieve current pending wishlist of a user" @@ -582,8 +585,7 @@ msgstr "ウィッシュリストから商品を削除する" #: engine/core/docs/drf/viewsets.py:568 msgid "removes a product from an wishlist using the provided `product_uuid`" -msgstr "" -"指定された `product_uuid` を使ってウィッシュリストから商品を削除します。" +msgstr "指定された `product_uuid` を使ってウィッシュリストから商品を削除します。" #: engine/core/docs/drf/viewsets.py:577 msgid "add many products to wishlist" @@ -591,8 +593,7 @@ msgstr "ウィッシュリストに多くの商品を追加する" #: engine/core/docs/drf/viewsets.py:579 msgid "adds many products to an wishlist using the provided `product_uuids`" -msgstr "" -"指定された `product_uuids` を使ってウィッシュリストに多くの商品を追加する。" +msgstr "指定された `product_uuids` を使ってウィッシュリストに多くの商品を追加する。" #: engine/core/docs/drf/viewsets.py:588 msgid "remove many products from wishlist" @@ -601,34 +602,24 @@ msgstr "注文から商品を削除する" #: engine/core/docs/drf/viewsets.py:590 msgid "" "removes many products from an wishlist using the provided `product_uuids`" -msgstr "" -"指定された `product_uuids` を使ってウィッシュリストから多くの商品を削除する。" +msgstr "指定された `product_uuids` を使ってウィッシュリストから多くの商品を削除する。" #: engine/core/docs/drf/viewsets.py:598 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "1つまたは複数の属性名/値のペアでフィルタリングします。 \n" "- シンタックス**:attr_name=method-value[;attr2=method2-value2]...`。\n" -"- メソッド** (省略された場合のデフォルトは `icontains`):`iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- 値の型付け**:boolean, integer, float の場合は `true`/`false`; それ以外の場" -"合は文字列として扱う。 \n" -"- それ以外は文字列として扱われる。 **Base64**: `b64-` をプレフィックスとして" -"つけると、生の値を URL-safe base64-encode することができる。 \n" +"- メソッド** (省略された場合のデフォルトは `icontains`):`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- 値の型付け**:boolean, integer, float の場合は `true`/`false`; それ以外の場合は文字列として扱う。 \n" +"- それ以外は文字列として扱われる。 **Base64**: `b64-` をプレフィックスとしてつけると、生の値を URL-safe base64-encode することができる。 \n" "例 \n" "color=exact-red`、`size=gt-10`、`features=in-[\"wifi\", \"bluetooth\"]`、\n" "b64-description=icontains-aGVhdC1jb2xk`。" @@ -643,12 +634,10 @@ msgstr "(正確には)製品UUID" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"カンマ区切りの並べ替えフィールドのリスト。降順の場合は `-` をプレフィックスと" -"してつける。 \n" +"カンマ区切りの並べ替えフィールドのリスト。降順の場合は `-` をプレフィックスとしてつける。 \n" "**許可:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -672,9 +661,7 @@ msgstr "編集不可能なフィールドを保持したまま、既存の製品 #: engine/core/docs/drf/viewsets.py:697 engine/core/docs/drf/viewsets.py:700 msgid "" "update some fields of an existing product, preserving non-editable fields" -msgstr "" -"編集不可能なフィールドを保持したまま、既存の製品の一部のフィールドを更新す" -"る。" +msgstr "編集不可能なフィールドを保持したまま、既存の製品の一部のフィールドを更新する。" #: engine/core/docs/drf/viewsets.py:719 engine/core/docs/drf/viewsets.py:720 msgid "delete a product" @@ -719,8 +706,8 @@ msgstr "オートコンプリート住所入力" #: engine/core/docs/drf/viewsets.py:848 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " -"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" +" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " "it-it -l ja-jp -l kk-kz -l n-nl -l pl-pl -l pt-br -l ro-ro -l ru-ru -l zh-" "hans -a core -a geo -a payments -a vibes_auth -a blog" @@ -750,9 +737,7 @@ msgstr "既存のフィードバックを書き換える。" #: engine/core/docs/drf/viewsets.py:909 msgid "rewrite some fields of an existing feedback saving non-editables" -msgstr "" -"既存のフィードバックのいくつかのフィールドを書き換えて、編集不可能なものを保" -"存する。" +msgstr "既存のフィードバックのいくつかのフィールドを書き換えて、編集不可能なものを保存する。" #: engine/core/docs/drf/viewsets.py:919 msgid "list all order–product relations (simple view)" @@ -808,8 +793,7 @@ msgstr "編集不可の既存ブランドをリライトする" #: engine/core/docs/drf/viewsets.py:1039 msgid "rewrite some fields of an existing brand saving non-editables" -msgstr "" -"編集不可能なフィールドを保存している既存ブランドのフィールドを書き換える。" +msgstr "編集不可能なフィールドを保存している既存ブランドのフィールドを書き換える。" #: engine/core/docs/drf/viewsets.py:1064 msgid "list all vendors (simple view)" @@ -833,9 +817,7 @@ msgstr "既存のベンダーを書き換え、編集不可能な部分を保存 #: engine/core/docs/drf/viewsets.py:1102 msgid "rewrite some fields of an existing vendor saving non-editables" -msgstr "" -"既存のベンダーのいくつかのフィールドを書き換えて、編集不可能なフィールドを保" -"存する。" +msgstr "既存のベンダーのいくつかのフィールドを書き換えて、編集不可能なフィールドを保存する。" #: engine/core/docs/drf/viewsets.py:1112 msgid "list all product images (simple view)" @@ -859,9 +841,7 @@ msgstr "既存の商品画像を書き換え、編集不可能な部分を保存 #: engine/core/docs/drf/viewsets.py:1154 msgid "rewrite some fields of an existing product image saving non-editables" -msgstr "" -"既存の商品画像のいくつかのフィールドを書き換えて、編集不可能な部分を保存す" -"る。" +msgstr "既存の商品画像のいくつかのフィールドを書き換えて、編集不可能な部分を保存する。" #: engine/core/docs/drf/viewsets.py:1165 msgid "list all promo codes (simple view)" @@ -885,9 +865,7 @@ msgstr "既存のプロモコードを書き換え、編集不可のプロモコ #: engine/core/docs/drf/viewsets.py:1203 msgid "rewrite some fields of an existing promo code saving non-editables" -msgstr "" -"既存のプロモコードの一部のフィールドを書き換えて、編集不可能な部分を保存す" -"る。" +msgstr "既存のプロモコードの一部のフィールドを書き換えて、編集不可能な部分を保存する。" #: engine/core/docs/drf/viewsets.py:1213 msgid "list all promotions (simple view)" @@ -911,9 +889,7 @@ msgstr "既存のプロモーションを書き換える。" #: engine/core/docs/drf/viewsets.py:1251 msgid "rewrite some fields of an existing promotion saving non-editables" -msgstr "" -"既存のプロモーションのいくつかのフィールドを書き換え、編集不可能な部分を保存" -"する。" +msgstr "既存のプロモーションのいくつかのフィールドを書き換え、編集不可能な部分を保存する。" #: engine/core/docs/drf/viewsets.py:1261 msgid "list all stocks (simple view)" @@ -937,9 +913,7 @@ msgstr "既存のストックレコードを書き換え、編集不可能なも #: engine/core/docs/drf/viewsets.py:1297 msgid "rewrite some fields of an existing stock record saving non-editables" -msgstr "" -"編集不可能なフィールドを保存している既存のストックレコードの一部のフィールド" -"を書き換える。" +msgstr "編集不可能なフィールドを保存している既存のストックレコードの一部のフィールドを書き換える。" #: engine/core/docs/drf/viewsets.py:1308 msgid "list all product tags (simple view)" @@ -963,8 +937,7 @@ msgstr "既存の商品タグを書き換え、編集不可能なものを保存 #: engine/core/docs/drf/viewsets.py:1350 msgid "rewrite some fields of an existing product tag saving non-editables" -msgstr "" -"既存の商品タグの一部のフィールドを書き換えて、編集不可能な部分を保存する。" +msgstr "既存の商品タグの一部のフィールドを書き換えて、編集不可能な部分を保存する。" #: engine/core/elasticsearch/__init__.py:128 #: engine/core/elasticsearch/__init__.py:629 @@ -1046,8 +1019,7 @@ msgstr "SKU" #: engine/core/filters.py:212 msgid "there must be a category_uuid to use include_subcategories flag" -msgstr "" -"include_subcategoriesフラグを使うには、category_uuidがなければならない。" +msgstr "include_subcategoriesフラグを使うには、category_uuidがなければならない。" #: engine/core/filters.py:398 msgid "Search (ID, product name or part number)" @@ -1199,10 +1171,9 @@ msgstr "注文する" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" -msgstr "" -"属性は、attr1=value1,attr2=value2のような形式の文字列として送信してください。" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" +msgstr "属性は、attr1=value1,attr2=value2のような形式の文字列として送信してください。" #: engine/core/graphene/mutations.py:580 msgid "add or delete a feedback for orderproduct" @@ -1221,9 +1192,9 @@ msgstr "Orderproduct {order_product_uuid} が見つかりません!" msgid "original address string provided by the user" msgstr "ユーザーが提供したオリジナルのアドレス文字列" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1239,8 +1210,8 @@ msgstr "ElasticSearch - 魅力のように動作" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "属性" @@ -1276,7 +1247,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "このカテゴリのフィルタリングに使用できる属性と値。" #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "このカテゴリーの商品の最低価格と最高価格がある場合。" #: engine/core/graphene/object_types.py:234 @@ -1313,7 +1285,7 @@ msgid "represents feedback from a user." msgstr "ユーザーからのフィードバックを表す。" #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "お知らせ" @@ -1321,7 +1293,7 @@ msgstr "お知らせ" msgid "download url for this order product if applicable" msgstr "該当する場合は、この注文商品のダウンロードURLを入力してください。" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "フィードバック" @@ -1329,7 +1301,7 @@ msgstr "フィードバック" msgid "a list of order products in this order" msgstr "注文商品のリスト" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "請求先住所" @@ -1355,7 +1327,7 @@ msgstr "ご注文の商品はすべてデジタルですか?" msgid "transactions for this order" msgstr "この注文の取引" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "受注状況" @@ -1372,7 +1344,7 @@ msgstr "製品画像" msgid "category" msgstr "カテゴリー" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "フィードバック" @@ -1413,7 +1385,7 @@ msgstr "個人注文のみの商品" msgid "discount price" msgstr "割引価格" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "製品紹介" @@ -1425,7 +1397,7 @@ msgstr "プロモコード" msgid "products on sale" msgstr "販売商品" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "プロモーション" @@ -1433,7 +1405,7 @@ msgstr "プロモーション" msgid "vendor" msgstr "ベンダー" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1441,11 +1413,11 @@ msgstr "ベンダー" msgid "product" msgstr "製品" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "ウィッシュリスト掲載商品" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "ウィッシュリスト" @@ -1543,10 +1515,7 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"属性グループを表し、階層化することができます。このクラスは、属性グループの管" -"理と整理に使用します。属性グループは親グループを持つことができ、階層構造を形" -"成します。これは、複雑なシステムで属性をより効果的に分類・管理するのに便利で" -"す。" +"属性グループを表し、階層化することができます。このクラスは、属性グループの管理と整理に使用します。属性グループは親グループを持つことができ、階層構造を形成します。これは、複雑なシステムで属性をより効果的に分類・管理するのに便利です。" #: engine/core/models.py:88 msgid "parent of this group" @@ -1560,7 +1529,7 @@ msgstr "親属性グループ" msgid "attribute group's name" msgstr "属性グループ名" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "属性グループ" @@ -1574,12 +1543,8 @@ msgid "" "also maintains additional metadata and constraints, making it suitable for " "use in systems that interact with third-party vendors." msgstr "" -"外部ベンダーとその相互作用要件に関する情報を格納できるベンダー・エンティティ" -"を表します。Vendor クラスは、外部ベンダーに関連する情報を定義・管理するために" -"使用します。これは、ベンダーの名前、通信に必要な認証の詳細、ベンダーから取得" -"した商品に適用されるパーセンテージのマークアップを格納します。このモデルは、" -"追加のメタデータと制約も保持するため、サードパーティ・ベンダーとやり取りする" -"システムでの使用に適しています。" +"外部ベンダーとその相互作用要件に関する情報を格納できるベンダー・エンティティを表します。Vendor " +"クラスは、外部ベンダーに関連する情報を定義・管理するために使用します。これは、ベンダーの名前、通信に必要な認証の詳細、ベンダーから取得した商品に適用されるパーセンテージのマークアップを格納します。このモデルは、追加のメタデータと制約も保持するため、サードパーティ・ベンダーとやり取りするシステムでの使用に適しています。" #: engine/core/models.py:122 msgid "stores credentials and endpoints required for vendor communication" @@ -1629,11 +1594,8 @@ msgid "" "display name. It supports operations exported through mixins and provides " "metadata customization for administrative purposes." msgstr "" -"製品を分類または識別するために使用される製品タグを表します。ProductTag クラス" -"は、内部タグ識別子とユーザーフレンドリーな表示名の組み合わせによって、製品を" -"一意に識別および分類するように設計されています。ミキシンを通じてエクスポート" -"される操作をサポートし、管理目的のためにメタデータのカスタマイズを提供しま" -"す。" +"製品を分類または識別するために使用される製品タグを表します。ProductTag " +"クラスは、内部タグ識別子とユーザーフレンドリーな表示名の組み合わせによって、製品を一意に識別および分類するように設計されています。ミキシンを通じてエクスポートされる操作をサポートし、管理目的のためにメタデータのカスタマイズを提供します。" #: engine/core/models.py:204 engine/core/models.py:235 msgid "internal tag identifier for the product tag" @@ -1661,9 +1623,7 @@ msgid "" "tag that can be used to associate and classify products. It includes " "attributes for an internal tag identifier and a user-friendly display name." msgstr "" -"商品に使用されるカテゴリータグを表します。このクラスは、商品の関連付けと分類" -"に使用できるカテゴリタグをモデル化します。内部タグ識別子とユーザーフレンド" -"リーな表示名の属性が含まれます。" +"商品に使用されるカテゴリータグを表します。このクラスは、商品の関連付けと分類に使用できるカテゴリタグをモデル化します。内部タグ識別子とユーザーフレンドリーな表示名の属性が含まれます。" #: engine/core/models.py:249 msgid "category tag" @@ -1685,13 +1645,7 @@ msgid "" "hierarchy of categories, as well as assign attributes like images, tags, or " "priority." msgstr "" -"関連するアイテムを階層構造で整理し、グループ化するためのカテゴリ・エンティ" -"ティを表します。カテゴリは、親子関係をサポートする他のカテゴリとの階層関係を" -"持つことができます。このクラスには、カテゴリ関連機能の基盤となるメタデータお" -"よび視覚表現のためのフィールドが含まれます。このクラスは通常、アプリケーショ" -"ン内で商品カテゴリやその他の類似のグループ化を定義および管理するために使用さ" -"れ、ユーザや管理者がカテゴリの名前、説明、階層を指定したり、画像、タグ、優先" -"度などの属性を割り当てることができます。" +"関連するアイテムを階層構造で整理し、グループ化するためのカテゴリ・エンティティを表します。カテゴリは、親子関係をサポートする他のカテゴリとの階層関係を持つことができます。このクラスには、カテゴリ関連機能の基盤となるメタデータおよび視覚表現のためのフィールドが含まれます。このクラスは通常、アプリケーション内で商品カテゴリやその他の類似のグループ化を定義および管理するために使用され、ユーザや管理者がカテゴリの名前、説明、階層を指定したり、画像、タグ、優先度などの属性を割り当てることができます。" #: engine/core/models.py:269 msgid "upload an image representing this category" @@ -1742,12 +1696,10 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"システム内のブランド・オブジェクトを表します。このクラスは、名前、ロゴ、説" -"明、関連カテゴリ、一意のスラッグ、および優先順位など、ブランドに関連する情報" -"と属性を処理します。このクラスによって、アプリケーション内でブランド関連デー" -"タを整理し、表現することができます。" +"システム内のブランド・オブジェクトを表します。このクラスは、名前、ロゴ、説明、関連カテゴリ、一意のスラッグ、および優先順位など、ブランドに関連する情報と属性を処理します。このクラスによって、アプリケーション内でブランド関連データを整理し、表現することができます。" #: engine/core/models.py:456 msgid "name of this brand" @@ -1791,17 +1743,14 @@ msgstr "カテゴリー" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"システムで管理されている商品の在庫を表します。このクラスは、ベンダー、商品、" -"およびそれらの在庫情報間の関係の詳細や、価格、購入価格、数量、SKU、デジタル資" -"産などの在庫関連プロパティを提供します。これは在庫管理システムの一部で、さま" -"ざまなベンダーから入手可能な製品の追跡と評価を可能にします。" +"システムで管理されている商品の在庫を表します。このクラスは、ベンダー、商品、およびそれらの在庫情報間の関係の詳細や、価格、購入価格、数量、SKU、デジタル資産などの在庫関連プロパティを提供します。これは在庫管理システムの一部で、さまざまなベンダーから入手可能な製品の追跡と評価を可能にします。" #: engine/core/models.py:528 msgid "the vendor supplying this product stock" @@ -1823,8 +1772,8 @@ msgstr "販売価格" msgid "the product associated with this stock entry" msgstr "このストックエントリーに関連する製品" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "関連製品" @@ -1879,13 +1828,9 @@ msgid "" "properties to improve performance. It is used to define and manipulate " "product data and its associated information within an application." msgstr "" -"カテゴリ、ブランド、タグ、デジタルステータス、名前、説明、品番、スラッグなど" -"の属性を持つ製品を表します。評価、フィードバック数、価格、数量、注文総数を取" -"得するための関連ユーティリティ・プロパティを提供します。電子商取引や在庫管理" -"を扱うシステムで使用するように設計されています。このクラスは、関連するモデル " -"(Category、Brand、ProductTag など) と相互作用し、パフォーマンスを向上させるた" -"めに、頻繁にアクセスされるプロパティのキャッシュを管理します。アプリケーショ" -"ン内で商品データとその関連情報を定義し、操作するために使用されます。" +"カテゴリ、ブランド、タグ、デジタルステータス、名前、説明、品番、スラッグなどの属性を持つ製品を表します。評価、フィードバック数、価格、数量、注文総数を取得するための関連ユーティリティ・プロパティを提供します。電子商取引や在庫管理を扱うシステムで使用するように設計されています。このクラスは、関連するモデル" +" (Category、Brand、ProductTag など) " +"と相互作用し、パフォーマンスを向上させるために、頻繁にアクセスされるプロパティのキャッシュを管理します。アプリケーション内で商品データとその関連情報を定義し、操作するために使用されます。" #: engine/core/models.py:595 msgid "category this product belongs to" @@ -1923,7 +1868,7 @@ msgstr "製品の明確な識別名を提供する" msgid "product name" msgstr "商品名" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "商品の詳細説明を追加する" @@ -1943,320 +1888,306 @@ msgstr "品番" msgid "stock keeping unit for this product" msgstr "この製品の在庫管理単位" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "この製品をマーケットプレイスに輸出するか否か" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "マーケットプレイスへのエクスポート" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"システム内の属性を表します。このクラスは、属性を定義および管理するために使用" -"されます。属性は、他のエンティティに関連付けることができる、カスタマイズ可能" -"なデータの部分です。属性には、関連するカテゴリ、グループ、値型、および名前が" -"あります。このモデルは、string、integer、float、boolean、array、object などの" -"複数の型の値をサポートしています。これにより、動的で柔軟なデータ構造化が可能" -"になります。" +"システム内の属性を表します。このクラスは、属性を定義および管理するために使用されます。属性は、他のエンティティに関連付けることができる、カスタマイズ可能なデータの部分です。属性には、関連するカテゴリ、グループ、値型、および名前があります。このモデルは、string、integer、float、boolean、array、object" +" などの複数の型の値をサポートしています。これにより、動的で柔軟なデータ構造化が可能になります。" -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "この属性のグループ" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "ストリング" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "整数" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "フロート" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "ブーリアン" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "配列" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "対象" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "属性値のタイプ" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "値の種類" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "この属性の名前" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "属性名" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "フィルタリング可能" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "この属性がフィルタリングに使用できるかどうかを指定する。" -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "属性" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"製品にリンクされている属性の特定の値を表します。これは、「属性」を一意の" -"「値」にリンクし、製品特性のより良い編成と動的な表現を可能にします。" +"製品にリンクされている属性の特定の値を表します。これは、「属性」を一意の「値」にリンクし、製品特性のより良い編成と動的な表現を可能にします。" -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "この値の属性" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "この属性の値に関連する特定の製品" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "この属性の具体的な値" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" -"システム内の商品に関連付けられた商品画像を表します。このクラスは商品の画像を" -"管理するために設計されており、画像ファイルのアップロード、特定の商品との関連" -"付け、表示順の決定などの機能を提供します。また、画像の代替テキストによるアク" -"セシビリティ機能も備えています。" +"システム内の商品に関連付けられた商品画像を表します。このクラスは商品の画像を管理するために設計されており、画像ファイルのアップロード、特定の商品との関連付け、表示順の決定などの機能を提供します。また、画像の代替テキストによるアクセシビリティ機能も備えています。" -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "アクセシビリティのために、画像に代替テキストを提供する。" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "画像のaltテキスト" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "この商品の画像ファイルをアップロードする" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "商品画像" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "画像の表示順を決める" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "表示優先度" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "この画像が表す製品" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "商品画像" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"割引を伴う商品の販促キャンペーンを表します。このクラスは、商品に対してパーセ" -"ンテージベースの割引を提供する販促キャンペーンを定義および管理するために使用" -"します。このクラスには、割引率を設定し、プロモーションの詳細を提供し、該当す" -"る商品にリンクするための属性が含まれます。商品カタログと統合して、キャンペー" -"ンの対象商品を決定します。" +"割引を伴う商品の販促キャンペーンを表します。このクラスは、商品に対してパーセンテージベースの割引を提供する販促キャンペーンを定義および管理するために使用します。このクラスには、割引率を設定し、プロモーションの詳細を提供し、該当する商品にリンクするための属性が含まれます。商品カタログと統合して、キャンペーンの対象商品を決定します。" -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "選択した商品の割引率" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "割引率" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "このプロモーションのユニークな名前を入力してください。" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "プロモーション名" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "プロモーション内容" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "キャンペーン対象商品をお選びください。" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "含まれる製品" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "プロモーション" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"希望する商品を保存・管理するためのユーザーのウィッシュリストを表します。この" -"クラスは、商品のコレクションを管理する機能を提供し、商品の追加や削除などの操" -"作をサポートし、複数の商品を一度に追加したり削除したりする操作をサポートしま" -"す。" +"希望する商品を保存・管理するためのユーザーのウィッシュリストを表します。このクラスは、商品のコレクションを管理する機能を提供し、商品の追加や削除などの操作をサポートし、複数の商品を一度に追加したり削除したりする操作をサポートします。" -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "ユーザーが欲しいとマークした商品" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "このウィッシュリストを所有しているユーザー" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "ウィッシュリストのオーナー" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "ウィッシュリスト" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"商品に関連付けられたドキュメンタリーのレコードを表します。このクラスは、ファ" -"イルのアップロードとそのメタデータを含む、特定の商品に関連するドキュメンタ" -"リーに関する情報を格納するために使用されます。ドキュメントファイルのファイル" -"タイプと保存パスを処理するメソッドとプロパティが含まれています。特定のミック" -"スインから機能を拡張し、追加のカスタム機能を提供します。" +"商品に関連付けられたドキュメンタリーのレコードを表します。このクラスは、ファイルのアップロードとそのメタデータを含む、特定の商品に関連するドキュメンタリーに関する情報を格納するために使用されます。ドキュメントファイルのファイルタイプと保存パスを処理するメソッドとプロパティが含まれています。特定のミックスインから機能を拡張し、追加のカスタム機能を提供します。" -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "ドキュメンタリー" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "ドキュメンタリー" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "未解決" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" -"場所の詳細とユーザーとの関連付けを含む住所エンティティを表します。地理データ" -"および住所データを保存する機能と、ジオコーディングサービスとの統合機能を提供" -"します。このクラスは、street、city、region、country、geolocation (longitude " -"and latitude) のようなコンポーネントを含む詳細な住所情報を格納するように設計" -"されています。ジオコーディング API との統合をサポートしており、 生の API レス" -"ポンスを保存してさらなる処理や検査を行うことができます。また、このクラスは住" -"所とユーザを関連付けることができ、 パーソナライズされたデータの取り扱いを容易" -"にします。" +"場所の詳細とユーザーとの関連付けを含む住所エンティティを表します。地理データおよび住所データを保存する機能と、ジオコーディングサービスとの統合機能を提供します。このクラスは、street、city、region、country、geolocation" +" (longitude and latitude) のようなコンポーネントを含む詳細な住所情報を格納するように設計されています。ジオコーディング API" +" との統合をサポートしており、 生の API " +"レスポンスを保存してさらなる処理や検査を行うことができます。また、このクラスは住所とユーザを関連付けることができ、 " +"パーソナライズされたデータの取り扱いを容易にします。" -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "お客様の住所" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "住所" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "ストリート" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "地区" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "都市" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "地域" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "郵便番号" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "国名" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "ジオロケーションポイント(経度、緯度)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "この住所に対するジオコーダーからの完全なJSON応答" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "ジオコーディング・サービスからの保存されたJSONレスポンス" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "住所" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "住所" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2265,252 +2196,239 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"割引に使用できるプロモーションコードを表し、その有効期間、割引の種類、適用を" -"管理します。PromoCode クラスは、一意の識別子、割引のプロパティ (金額または" -"パーセンテージ)、有効期間、関連するユーザ (もしあれば)、および使用状況など、" -"プロモーションコードに関する詳細を格納します。これは、制約が満たされているこ" -"とを保証しながら、プロモコードを検証し、注文に適用する機能を含んでいます。" +"割引に使用できるプロモーションコードを表し、その有効期間、割引の種類、適用を管理します。PromoCode クラスは、一意の識別子、割引のプロパティ " +"(金額またはパーセンテージ)、有効期間、関連するユーザ " +"(もしあれば)、および使用状況など、プロモーションコードに関する詳細を格納します。これは、制約が満たされていることを保証しながら、プロモコードを検証し、注文に適用する機能を含んでいます。" -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "ユーザーが割引を利用する際に使用する固有のコード" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "プロモコード識別子" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "パーセントを使用しない場合に適用される固定割引額" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "固定割引額" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "定額を使用しない場合に適用される割引率" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "割引率" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "プロモコードの有効期限が切れるタイムスタンプ" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "終了有効時間" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "このプロモコードが有効なタイムスタンプ" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "開始有効時間" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "プロモコードが使用されたタイムスタンプ、未使用の場合は空白" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "使用タイムスタンプ" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "該当する場合、このプロモコードに割り当てられたユーザー" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "担当ユーザー" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "プロモコード" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "プロモコード" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." -msgstr "" -"割引の種類は1つだけ(金額またはパーセント)定義されるべきで、両方またはどちら" -"も定義してはならない。" +msgstr "割引の種類は1つだけ(金額またはパーセント)定義されるべきで、両方またはどちらも定義してはならない。" -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "プロモコードはすでに使用されています" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "プロモコード {self.uuid} の割引タイプが無効です!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" -"ユーザーによる注文を表します。このクラスは、請求や配送情報、ステータス、関連" -"するユーザ、通知、関連する操作などのさまざまな属性を含む、アプリケーション内" -"の注文をモデル化します。注文は関連する商品を持つことができ、プロモーションを" -"適用し、住所を設定し、配送または請求の詳細を更新することができます。同様に、" -"注文のライフサイクルにおける商品の管理もサポートします。" +"ユーザーによる注文を表します。このクラスは、請求や配送情報、ステータス、関連するユーザ、通知、関連する操作などのさまざまな属性を含む、アプリケーション内の注文をモデル化します。注文は関連する商品を持つことができ、プロモーションを適用し、住所を設定し、配送または請求の詳細を更新することができます。同様に、注文のライフサイクルにおける商品の管理もサポートします。" -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "この注文に使用される請求先住所" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "この注文に適用されるプロモコード" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "プロモーションコード適用" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "この注文に使用された配送先住所" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "配送先住所" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "ライフサイクルにおける現在の注文状況" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "注文状況" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" -msgstr "" -"ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" +msgstr "ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "この注文の注文属性のJSON表現" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "注文を行ったユーザー" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "ユーザー" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "注文が確定したタイムスタンプ" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "時間を買う" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "オーダーの人間が読み取り可能な識別子。" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "人間が読めるID" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "オーダー" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "ユーザーは一度に1つの未決注文しか持つことができません!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "保留中の注文以外の注文に商品を追加することはできません。" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "アクティブでない商品を注文に追加することはできません。" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "在庫以上の商品を追加することはできません。" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "保留中の注文以外の注文から商品を削除することはできません。" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name}はクエリ<{query}と一緒に存在しません!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "プロモコードが存在しない" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "配送先住所が指定された現物商品のみ購入可能!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "アドレスが存在しない" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "現在ご購入いただけません。数分後にもう一度お試しください。" -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "無効なフォース値" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "空注文はできません!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "ユーザーがいない注文は購入できない!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "残高のないユーザーは、残高で購入することはできない!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "注文を完了するための資金不足" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -msgstr "" -"ご登録がない場合はご購入いただけませんので、以下の情報をお知らせください:お" -"客様のお名前、お客様のEメール、お客様の電話番号" +msgstr "ご登録がない場合はご購入いただけませんので、以下の情報をお知らせください:お客様のお名前、お客様のEメール、お客様の電話番号" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" -msgstr "" -"支払方法が無効です:{available_payment_methods}からの{payment_method}が無効で" -"す!" +msgstr "支払方法が無効です:{available_payment_methods}からの{payment_method}が無効です!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2518,37 +2436,34 @@ msgid "" "product in the order, and a user-assigned rating. The class uses database " "fields to effectively model and manage feedback data." msgstr "" -"製品に対するユーザのフィードバックを管理します。このクラスは、購入した特定の" -"商品に対するユーザのフィードバックを取得し、保存するために設計されています。" -"ユーザのコメント、注文の関連商品への参照、そしてユーザが割り当てた評価を保存" -"する属性を含みます。このクラスは、フィードバックデータを効果的にモデル化し、" -"管理するためにデータベースフィールドを使用します。" +"製品に対するユーザのフィードバックを管理します。このクラスは、購入した特定の商品に対するユーザのフィードバックを取得し、保存するために設計されています。ユーザのコメント、注文の関連商品への参照、そしてユーザが割り当てた評価を保存する属性を含みます。このクラスは、フィードバックデータを効果的にモデル化し、管理するためにデータベースフィールドを使用します。" -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "ユーザーから寄せられた製品使用体験に関するコメント" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "フィードバック・コメント" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "このフィードバックが対象としている注文の特定の製品を参照する。" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "関連注文商品" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "ユーザーによる製品の評価" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "製品評価" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2560,144 +2475,133 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"注文に関連する商品とその属性を表す。OrderProductモデルは、購入価格、数量、商" -"品属性、ステータスなどの詳細を含む、注文の一部である商品に関する情報を保持し" -"ます。ユーザーや管理者への通知を管理し、商品残高の返却やフィードバックの追加" -"などの操作を処理します。このモデルはまた、合計価格の計算やデジタル商品のダウ" -"ンロードURLの生成など、ビジネスロジックをサポートするメソッドやプロパティも提" -"供します。このモデルはOrderモデルとProductモデルと統合され、それらへの参照を" -"保存します。" +"注文に関連する商品とその属性を表す。OrderProductモデルは、購入価格、数量、商品属性、ステータスなどの詳細を含む、注文の一部である商品に関する情報を保持します。ユーザーや管理者への通知を管理し、商品残高の返却やフィードバックの追加などの操作を処理します。このモデルはまた、合計価格の計算やデジタル商品のダウンロードURLの生成など、ビジネスロジックをサポートするメソッドやプロパティも提供します。このモデルはOrderモデルとProductモデルと統合され、それらへの参照を保存します。" -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "この商品の購入時に顧客が支払った価格" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "注文時の購入価格" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "この注文商品に関する管理者への内部コメント" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "社内コメント" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "ユーザー通知" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "このアイテムの属性のJSON表現" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "製品属性の順序" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "この商品を含む親注文への参照" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "親注文" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "この注文ラインに関連する特定の製品" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "注文に含まれる特定の商品の数量" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "製品数量" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "この商品の現在のご注文状況" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "製品ラインの状況" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Orderproductには関連する注文がなければならない!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "フィードバックに指定されたアクションが間違っています:{action}です!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "受信していない注文をフィードバックすることはできません。" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "名称" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "統合のURL" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "認証情報" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "デフォルトのCRMプロバイダーは1つだけです。" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "注文のCRMリンク" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "オーダーのCRMリンク" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" -"注文に関連するデジタル資産のダウンロード機能を表します。DigitalAssetDownload" -"クラスは、注文商品に関連するダウンロードを管理し、アクセスする機能を提供しま" -"す。このクラスは、関連する注文商品、ダウンロード数、およびアセットが公開され" -"ているかどうかの情報を保持します。関連する注文が完了したステータスのときに、" -"アセットをダウンロードするための URL を生成するメソッドも含まれています。" +"注文に関連するデジタル資産のダウンロード機能を表します。DigitalAssetDownloadクラスは、注文商品に関連するダウンロードを管理し、アクセスする機能を提供します。このクラスは、関連する注文商品、ダウンロード数、およびアセットが公開されているかどうかの情報を保持します。関連する注文が完了したステータスのときに、アセットをダウンロードするための" +" URL を生成するメソッドも含まれています。" -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "ダウンロード" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "ダウンロード" #: engine/core/serializers/utility.py:91 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." -msgstr "" -"フィードバックを追加するには、コメント、評価、および注文商品の uuid を入力す" -"る必要があります。" +msgstr "フィードバックを追加するには、コメント、評価、および注文商品の uuid を入力する必要があります。" #: engine/core/sitemaps.py:25 msgid "Home" @@ -2889,12 +2793,9 @@ msgstr "こんにちは%(order.user.first_name)s、" #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" -msgstr "" -"ご注文ありがとうございます#%(order.pk)s!ご注文を承りましたことをお知らせいた" -"します。以下、ご注文の詳細です:" +msgstr "ご注文ありがとうございます#%(order.pk)s!ご注文を承りましたことをお知らせいたします。以下、ご注文の詳細です:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2917,9 +2818,7 @@ msgstr "合計価格" msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." -msgstr "" -"ご不明な点がございましたら、%(config.EMAIL_HOST_USER)sまでお気軽にお問い合わ" -"せください。" +msgstr "ご不明な点がございましたら、%(config.EMAIL_HOST_USER)sまでお気軽にお問い合わせください。" #: engine/core/templates/digital_order_created_email.html:133 #, python-format @@ -2947,8 +2846,7 @@ msgstr "こんにちは%(user_first_name)s、" msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" -msgstr "" -"ご注文の№%(order_uuid)sが正常に処理されました!以下はご注文の詳細です:" +msgstr "ご注文の№%(order_uuid)sが正常に処理されました!以下はご注文の詳細です:" #: engine/core/templates/digital_order_delivered_email.html:128 msgid "" @@ -2969,9 +2867,7 @@ msgstr "価値" msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." -msgstr "" -"ご不明な点がございましたら、%(contact_email)sまでお気軽にお問い合わせくださ" -"い。" +msgstr "ご不明な点がございましたら、%(contact_email)sまでお気軽にお問い合わせください。" #: engine/core/templates/digital_order_delivered_email.html:165 #: engine/core/templates/promocode_granted_email.html:108 @@ -3003,12 +2899,9 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" -msgstr "" -"ご注文ありがとうございます!ご購入を確認させていただきました。以下、ご注文の" -"詳細です:" +msgstr "ご注文ありがとうございます!ご購入を確認させていただきました。以下、ご注文の詳細です:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -3074,17 +2967,14 @@ msgstr "NOMINATIM_URLパラメータを設定する必要があります!" #: engine/core/validators.py:23 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" -msgstr "" -"画像のサイズは w{max_width} x h{max_height} ピクセルを超えないようにしてくだ" -"さい!" +msgstr "画像のサイズは w{max_width} x h{max_height} ピクセルを超えないようにしてください!" #: engine/core/views.py:104 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -"サイトマップインデックスのリクエストを処理し、XMLレスポンスを返します。レスポ" -"ンスにXML用の適切なコンテントタイプヘッダーが含まれるようにします。" +"サイトマップインデックスのリクエストを処理し、XMLレスポンスを返します。レスポンスにXML用の適切なコンテントタイプヘッダーが含まれるようにします。" #: engine/core/views.py:119 msgid "" @@ -3092,9 +2982,8 @@ msgid "" "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -"サイトマップの詳細表示レスポンスを処理します。この関数はリクエストを処理し、" -"適切なサイトマップ詳細レスポンスを取得し、XML の Content-Type ヘッダを設定し" -"ます。" +"サイトマップの詳細表示レスポンスを処理します。この関数はリクエストを処理し、適切なサイトマップ詳細レスポンスを取得し、XML の Content-" +"Type ヘッダを設定します。" #: engine/core/views.py:155 msgid "" @@ -3109,9 +2998,7 @@ msgstr "ウェブサイトのパラメータをJSONオブジェクトとして msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." -msgstr "" -"指定されたキーとタイムアウトで、キャッシュ・データの読み取りや設定などの" -"キャッシュ操作を行う。" +msgstr "指定されたキーとタイムアウトで、キャッシュ・データの読み取りや設定などのキャッシュ操作を行う。" #: engine/core/views.py:220 msgid "Handles `contact us` form submissions." @@ -3121,8 +3008,7 @@ msgstr "お問い合わせフォームの送信を処理する。" msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." -msgstr "" -"入ってくる POST リクエストからの URL の処理と検証のリクエストを処理します。" +msgstr "入ってくる POST リクエストからの URL の処理と検証のリクエストを処理します。" #: engine/core/views.py:273 msgid "Handles global search queries." @@ -3135,14 +3021,10 @@ msgstr "登録なしでビジネスとして購入するロジックを扱う。 #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "注文に関連付けられたデジタルアセットのダウンロードを処理します。\n" -"この関数は、プロジェクトのストレージディレクトリにあるデジタルアセットファイ" -"ルの提供を試みます。ファイルが見つからない場合、リソースが利用できないことを" -"示すHTTP 404エラーが発生します。" +"この関数は、プロジェクトのストレージディレクトリにあるデジタルアセットファイルの提供を試みます。ファイルが見つからない場合、リソースが利用できないことを示すHTTP 404エラーが発生します。" #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3171,25 +3053,19 @@ msgstr "ファビコンが見つかりません" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "ウェブサイトのファビコンへのリクエストを処理します。\n" -"この関数は、プロジェクトの静的ディレクトリにあるファビコンファイルの提供を試" -"みます。ファビコンファイルが見つからない場合、リソースが利用できないことを示" -"す HTTP 404 エラーが発生します。" +"この関数は、プロジェクトの静的ディレクトリにあるファビコンファイルの提供を試みます。ファビコンファイルが見つからない場合、リソースが利用できないことを示す HTTP 404 エラーが発生します。" #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"リクエストを admin インデックスページにリダイレクトします。この関数は、HTTP " -"リクエストを処理し、 Django の admin インタフェースインデッ クスページにリダ" -"イレクトします。HTTP リダイレクトの処理には Django の `redirect` 関数を使いま" -"す。" +"リクエストを admin インデックスページにリダイレクトします。この関数は、HTTP リクエストを処理し、 Django の admin " +"インタフェースインデッ クスページにリダイレクトします。HTTP リダイレクトの処理には Django の `redirect` 関数を使います。" #: engine/core/views.py:445 msgid "Returns current version of the Schon. " @@ -3206,29 +3082,27 @@ msgstr "ダッシュボードのカスタム変数を返します。" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"schon 関連の操作を管理するためのビューセットを定義します。SchonViewSet クラ" -"スは ModelViewSet を継承し、schon エンティティに対する アクションや操作を扱" -"うための機能を提供します。現在のアクションに基づいた動的なシリアライザークラ" -"スのサポート、 カスタマイズ可能なパーミッション、レンダリングフォーマットが含" -"まれます。" +"schon 関連の操作を管理するためのビューセットを定義します。SchonViewSet クラスは ModelViewSet を継承し、schon " +"エンティティに対する アクションや操作を扱うための機能を提供します。現在のアクションに基づいた動的なシリアライザークラスのサポート、 " +"カスタマイズ可能なパーミッション、レンダリングフォーマットが含まれます。" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" -"AttributeGroup オブジェクトを管理するためのビューセットを表します。データの" -"フィルタリング、シリアライズ、取得など、AttributeGroup に関連する操作を処理し" -"ます。このクラスは、アプリケーションのAPIレイヤの一部であり、AttributeGroup" -"データの要求と応答を処理する標準化された方法を提供します。" +"AttributeGroup " +"オブジェクトを管理するためのビューセットを表します。データのフィルタリング、シリアライズ、取得など、AttributeGroup " +"に関連する操作を処理します。このクラスは、アプリケーションのAPIレイヤの一部であり、AttributeGroupデータの要求と応答を処理する標準化された方法を提供します。" #: engine/core/viewsets.py:179 msgid "" @@ -3239,25 +3113,22 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"アプリケーション内でAttributeオブジェクトに関連する操作を処理する。Attribute " -"データと対話するための API エンドポイントのセットを提供します。このクラスは、" -"Attribute オブジェクトのクエリ、フィルタリング、およびシリアライズを管理し、" -"特定のフィールドによるフィルタリングや、リクエストに応じた詳細情報と簡略化さ" -"れた情報の取得など、返されるデータの動的な制御を可能にします。" +"アプリケーション内でAttributeオブジェクトに関連する操作を処理する。Attribute データと対話するための API " +"エンドポイントのセットを提供します。このクラスは、Attribute " +"オブジェクトのクエリ、フィルタリング、およびシリアライズを管理し、特定のフィールドによるフィルタリングや、リクエストに応じた詳細情報と簡略化された情報の取得など、返されるデータの動的な制御を可能にします。" #: engine/core/viewsets.py:198 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"AttributeValue オブジェクトを管理するためのビューセットです。このビューセット" -"は、 AttributeValue オブジェクトの一覧表示、取得、作成、更新、削除の機能を提" -"供し ます。Django REST Framework のビューセット機構と統合され、異なるアクショ" -"ンに適切なシリアライザを使います。フィルタリング機能は DjangoFilterBackend を" -"通して提供されます。" +"AttributeValue オブジェクトを管理するためのビューセットです。このビューセットは、 AttributeValue " +"オブジェクトの一覧表示、取得、作成、更新、削除の機能を提供し ます。Django REST Framework " +"のビューセット機構と統合され、異なるアクションに適切なシリアライザを使います。フィルタリング機能は DjangoFilterBackend " +"を通して提供されます。" #: engine/core/viewsets.py:217 msgid "" @@ -3267,11 +3138,7 @@ msgid "" "The viewset also enforces permissions to ensure that only authorized users " "can access specific data." msgstr "" -"Category関連の操作のためのビューを管理します。CategoryViewSetクラスは、システ" -"ム内のCategoryモデルに関連する操作を処理する責任があります。カテゴリデータの" -"取得、フィルタリング、シリアライズをサポートします。ビューセットはまた、許可" -"されたユーザーだけが特定のデータにアクセスできるようにパーミッションを強制し" -"ます。" +"Category関連の操作のためのビューを管理します。CategoryViewSetクラスは、システム内のCategoryモデルに関連する操作を処理する責任があります。カテゴリデータの取得、フィルタリング、シリアライズをサポートします。ビューセットはまた、許可されたユーザーだけが特定のデータにアクセスできるようにパーミッションを強制します。" #: engine/core/viewsets.py:346 msgid "" @@ -3281,9 +3148,8 @@ msgid "" "endpoints for Brand objects." msgstr "" "Brandインスタンスを管理するためのビューセットを表します。このクラスは Brand " -"オブジェクトのクエリ、フィルタリング、シリアライズの機能を提供します。Django " -"の ViewSet フレームワークを使い、 Brand オブジェクトの API エンドポイントの実" -"装を簡素化します。" +"オブジェクトのクエリ、フィルタリング、シリアライズの機能を提供します。Django の ViewSet フレームワークを使い、 Brand " +"オブジェクトの API エンドポイントの実装を簡素化します。" #: engine/core/viewsets.py:458 msgid "" @@ -3295,12 +3161,10 @@ msgid "" "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" -"システム内の `Product` モデルに関連する操作を管理する。このクラスは、商品の" -"フィルタリング、シリアライズ、特定のインスタンスに対する操作など、商品を管理" -"するためのビューセットを提供します。共通の機能を使うために `SchonViewSet` を" -"継承し、 RESTful API 操作のために Django REST フレームワークと統合していま" -"す。商品の詳細を取得したり、パーミッションを適用したり、商品の関連するフィー" -"ドバックにアクセスするためのメソッドを含みます。" +"システム内の `Product` " +"モデルに関連する操作を管理する。このクラスは、商品のフィルタリング、シリアライズ、特定のインスタンスに対する操作など、商品を管理するためのビューセットを提供します。共通の機能を使うために" +" `SchonViewSet` を継承し、 RESTful API 操作のために Django REST " +"フレームワークと統合しています。商品の詳細を取得したり、パーミッションを適用したり、商品の関連するフィードバックにアクセスするためのメソッドを含みます。" #: engine/core/viewsets.py:605 msgid "" @@ -3310,59 +3174,49 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Vendor オブジェクトを管理するためのビューセットを表します。このビューセットを" -"使用すると、 Vendor のデータを取得したりフィルタリングしたりシリアライズした" -"りすることができます。さまざまなアクションを処理するためのクエリセット、 フィ" -"ルタ設定、シリアライザクラスを定義します。このクラスの目的は、 Django REST フ" -"レームワークを通して Vendor 関連リソースへの合理的なアクセスを提供することで" -"す。" +"Vendor オブジェクトを管理するためのビューセットを表します。このビューセットを使用すると、 Vendor " +"のデータを取得したりフィルタリングしたりシリアライズしたりすることができます。さまざまなアクションを処理するためのクエリセット、 " +"フィルタ設定、シリアライザクラスを定義します。このクラスの目的は、 Django REST フレームワークを通して Vendor " +"関連リソースへの合理的なアクセスを提供することです。" #: engine/core/viewsets.py:625 msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" -"Feedback オブジェクトを扱うビューセットの表現。このクラスは、一覧表示、フィル" -"タリング、詳細の取得など、Feedback オブジェクトに関する操作を管理します。この" -"ビューセットの目的は、アクションごとに異なるシリアライザを提供し、アクセス可" -"能な Feedback オブジェクトのパーミッションベースの処理を実装することです。" -"ベースとなる `SchonViewSet` を拡張し、Django のフィルタリングシステムを利用" -"してデータを取得します。" +"Feedback オブジェクトを扱うビューセットの表現。このクラスは、一覧表示、フィルタリング、詳細の取得など、Feedback " +"オブジェクトに関する操作を管理します。このビューセットの目的は、アクションごとに異なるシリアライザを提供し、アクセス可能な Feedback " +"オブジェクトのパーミッションベースの処理を実装することです。ベースとなる `SchonViewSet` を拡張し、Django " +"のフィルタリングシステムを利用してデータを取得します。" #: engine/core/viewsets.py:652 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"注文と関連する操作を管理するための ViewSet。このクラスは、注文オブジェクトを" -"取得、変更、管理する機能を提供します。商品の追加や削除、登録ユーザや未登録" -"ユーザの購入の実行、現在の認証ユーザの保留中の注文の取得など、注文操作を処理" -"するためのさまざまなエンドポイントを含みます。ViewSetは、実行される特定のアク" -"ションに基づいて複数のシリアライザを使用し、注文データを操作している間、それ" -"に応じてパーミッションを強制します。" +"注文と関連する操作を管理するための " +"ViewSet。このクラスは、注文オブジェクトを取得、変更、管理する機能を提供します。商品の追加や削除、登録ユーザや未登録ユーザの購入の実行、現在の認証ユーザの保留中の注文の取得など、注文操作を処理するためのさまざまなエンドポイントを含みます。ViewSetは、実行される特定のアクションに基づいて複数のシリアライザを使用し、注文データを操作している間、それに応じてパーミッションを強制します。" #: engine/core/viewsets.py:914 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" -"OrderProduct エンティティを管理するためのビューセットを提供します。このビュー" -"セットは、OrderProduct モデルに固有の CRUD 操作とカスタムアクションを可能にし" -"ます。これは、要求されたアクションに基づくフィルタリング、パーミッション" -"チェック、シリアライザーの切り替えを含みます。さらに、OrderProduct インスタン" -"スに関するフィードバックを処理するための詳細なアクションを提供します。" +"OrderProduct エンティティを管理するためのビューセットを提供します。このビューセットは、OrderProduct モデルに固有の CRUD " +"操作とカスタムアクションを可能にします。これは、要求されたアクションに基づくフィルタリング、パーミッションチェック、シリアライザーの切り替えを含みます。さらに、OrderProduct" +" インスタンスに関するフィードバックを処理するための詳細なアクションを提供します。" #: engine/core/viewsets.py:974 msgid "Manages operations related to Product images in the application. " @@ -3372,8 +3226,7 @@ msgstr "アプリケーション内の商品画像に関する操作を管理し msgid "" "Manages the retrieval and handling of PromoCode instances through various " "API actions." -msgstr "" -"様々なAPIアクションによるプロモコードインスタンスの取得と処理を管理します。" +msgstr "様々なAPIアクションによるプロモコードインスタンスの取得と処理を管理します。" #: engine/core/viewsets.py:1019 msgid "Represents a view set for managing promotions. " @@ -3387,18 +3240,13 @@ msgstr "システム内のストックデータに関する操作を行う。" msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" -"ウィッシュリスト操作を管理するためのViewSet。WishlistViewSetは、ユーザーの" -"ウィッシュリストと対話するためのエンドポイントを提供し、ウィッシュリスト内の" -"商品の検索、変更、カスタマイズを可能にします。このViewSetは、ウィッシュリスト" -"商品の追加、削除、一括アクションなどの機能を容易にします。明示的なパーミッ" -"ションが付与されていない限り、ユーザーが自分のウィッシュリストのみを管理でき" -"るよう、パーミッションチェックが統合されています。" +"ウィッシュリスト操作を管理するためのViewSet。WishlistViewSetは、ユーザーのウィッシュリストと対話するためのエンドポイントを提供し、ウィッシュリスト内の商品の検索、変更、カスタマイズを可能にします。このViewSetは、ウィッシュリスト商品の追加、削除、一括アクションなどの機能を容易にします。明示的なパーミッションが付与されていない限り、ユーザーが自分のウィッシュリストのみを管理できるよう、パーミッションチェックが統合されています。" #: engine/core/viewsets.py:1183 msgid "" @@ -3408,11 +3256,9 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"このクラスは `Address` オブジェクトを管理するためのビューセット機能を提供す" -"る。AddressViewSet クラスは、住所エンティティに関連する CRUD 操作、フィルタリ" -"ング、カスタムアクションを可能にします。異なる HTTP メソッドに特化した振る舞" -"いや、シリアライザのオーバーライド、 リクエストコンテキストに基づいたパーミッ" -"ション処理などを含みます。" +"このクラスは `Address` オブジェクトを管理するためのビューセット機能を提供する。AddressViewSet " +"クラスは、住所エンティティに関連する CRUD 操作、フィルタリング、カスタムアクションを可能にします。異なる HTTP " +"メソッドに特化した振る舞いや、シリアライザのオーバーライド、 リクエストコンテキストに基づいたパーミッション処理などを含みます。" #: engine/core/viewsets.py:1254 #, python-brace-format @@ -3427,8 +3273,4 @@ msgid "" "using the specified filter backend and dynamically uses different " "serializers based on the action being performed." msgstr "" -"アプリケーション内で商品タグに関連する操作を処理します。このクラスは、商品タ" -"グオブジェクトの取得、フィルタリング、シリアライズの機能を提供します。指定さ" -"れたフィルタバックエンドを使用して特定の属性に対する柔軟なフィルタリングをサ" -"ポートし、実行されるアクションに基づいて動的に異なるシリアライザを使用しま" -"す。" +"アプリケーション内で商品タグに関連する操作を処理します。このクラスは、商品タグオブジェクトの取得、フィルタリング、シリアライズの機能を提供します。指定されたフィルタバックエンドを使用して特定の属性に対する柔軟なフィルタリングをサポートし、実行されるアクションに基づいて動的に異なるシリアライザを使用します。" diff --git a/engine/core/locale/kk_KZ/LC_MESSAGES/django.mo b/engine/core/locale/kk_KZ/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6cc44c8c5901a79fda3b034713704baadc22b52f GIT binary patch literal 358 zcmaivPfvqD5XEcs#L=^dJ$SQ&OOq11{)rSRk`%T<=zWD1F?E+L+eSZ#U(e6taIr^U z^2;PM?_ve(8!Hnd#>%Y8dQsTpxL913~p#sEADE7|Cu1NFi42@TkMaYa2!owXP<!pw zC#*J%#0f75vaE8xCASgJ%P=Y*R#g$>CN12EXZILW?OwDJN+~`VS%-O2g-QIcADd-q z79W4{TmWm(Dtq EUqPc^dH?_b literal 0 HcmV?d00001 diff --git a/engine/core/locale/kk_KZ/LC_MESSAGES/django.po b/engine/core/locale/kk_KZ/LC_MESSAGES/django.po index 46ae61de..3fb1df4a 100644 --- a/engine/core/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/core/locale/kk_KZ/LC_MESSAGES/django.po @@ -1,13 +1,9 @@ -# SCHON GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the SCHON package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:13+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -75,7 +71,7 @@ msgstr "" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "" #: engine/core/admin.py:166 @@ -84,7 +80,7 @@ msgstr "" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "" #: engine/core/admin.py:184 @@ -92,13 +88,13 @@ msgid "selected items have been deactivated." msgstr "" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "" @@ -118,12 +114,12 @@ msgstr "" msgid "stocks" msgstr "" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "" @@ -131,7 +127,31 @@ msgstr "" msgid "children" msgstr "" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "" + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "" + +#: engine/core/admin.py:1116 msgid "Config" msgstr "" @@ -1151,9 +1171,9 @@ msgstr "" msgid "original address string provided by the user" msgstr "" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1169,8 +1189,8 @@ msgstr "" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "" @@ -1243,7 +1263,7 @@ msgid "represents feedback from a user." msgstr "" #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "" @@ -1251,7 +1271,7 @@ msgstr "" msgid "download url for this order product if applicable" msgstr "" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "" @@ -1259,7 +1279,7 @@ msgstr "" msgid "a list of order products in this order" msgstr "" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "" @@ -1285,7 +1305,7 @@ msgstr "" msgid "transactions for this order" msgstr "" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "" @@ -1302,7 +1322,7 @@ msgstr "" msgid "category" msgstr "" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "" @@ -1343,7 +1363,7 @@ msgstr "" msgid "discount price" msgstr "" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "" @@ -1355,7 +1375,7 @@ msgstr "" msgid "products on sale" msgstr "" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "" @@ -1363,7 +1383,7 @@ msgstr "" msgid "vendor" msgstr "" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1371,11 +1391,11 @@ msgstr "" msgid "product" msgstr "" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "" @@ -1486,7 +1506,7 @@ msgstr "" msgid "attribute group's name" msgstr "" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "" @@ -1720,8 +1740,8 @@ msgstr "" msgid "the product associated with this stock entry" msgstr "" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "" @@ -1813,7 +1833,7 @@ msgstr "" msgid "product name" msgstr "" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "" @@ -1833,7 +1853,15 @@ msgstr "" msgid "stock keeping unit for this product" msgstr "" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " @@ -1843,83 +1871,83 @@ msgid "" "for dynamic and flexible data structuring." msgstr "" -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" "Represents a specific value for an attribute that is linked to a product. It " "links the 'attribute' to a unique 'value', allowing better organization and " "dynamic representation of product characteristics." msgstr "" -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " "class is designed to manage images for products, including functionality for " @@ -1928,39 +1956,39 @@ msgid "" "with alternative text for the images." msgstr "" -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" @@ -1970,39 +1998,39 @@ msgid "" "affected items in the campaign." msgstr "" -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2010,23 +2038,23 @@ msgid "" "operations for adding and removing multiple products at once." msgstr "" -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " @@ -2036,19 +2064,19 @@ msgid "" "custom features." msgstr "" -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" "Represents an address entity that includes location details and associations " "with a user. Provides functionality for geographic and address data storage, " @@ -2060,59 +2088,59 @@ msgid "" "address with a user, facilitating personalized data handling." msgstr "" -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2122,86 +2150,86 @@ msgid "" "apply the promo code to an order while ensuring constraints are met." msgstr "" -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " @@ -2211,145 +2239,145 @@ msgid "" "supports managing the products in the order lifecycle." msgstr "" -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2358,31 +2386,31 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "" -#: engine/core/models.py:1827 +#: engine/core/models.py:1834 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2395,108 +2423,108 @@ msgid "" "Product models and stores a reference to them." msgstr "" -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " @@ -2506,11 +2534,11 @@ msgid "" "the asset when the associated order is in a completed status." msgstr "" -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "" @@ -2989,9 +3017,9 @@ msgstr "" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The schonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3045,7 +3073,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`schonViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3066,7 +3094,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `schonViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" diff --git a/engine/core/locale/ko_KR/LC_MESSAGES/django.mo b/engine/core/locale/ko_KR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7f11b56882119168e2e65d6b94248b6f4498bde7 GIT binary patch literal 95036 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "활성 상태" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "false로 설정하면 필요한 권한이 없는 사용자는 이 개체를 볼 수 없습니다." #: engine/core/abstract.py:26 engine/core/choices.py:18 @@ -72,8 +73,8 @@ msgstr "타임스탬프" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "선택한 %(verbose_name_plural)s 활성화" +msgid "Activate selected %(verbose_name_plural)s" +msgstr "선택된 %(verbose_name_plural)s 활성화" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -81,21 +82,21 @@ msgstr "선택한 아이템이 활성화되었습니다!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "선택한 %(verbose_name_plural)s 비활성화하기" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "선택된 %(verbose_name_plural)s 비활성화" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "선택한 아이템이 비활성화되었습니다!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "속성 값" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "속성 값" @@ -115,12 +116,12 @@ msgstr "재고" msgid "stocks" msgstr "주식" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "제품 주문" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "제품 주문" @@ -128,7 +129,31 @@ msgstr "제품 주문" msgid "children" msgstr "어린이" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "이미지가 있습니다" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "선택한 %(verbose_name_plural)s를 마켓플레이스 피드로 내보내기" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "선택된 %(verbose_name_plural)s가 내보내기로 표시되었습니다." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "%(verbose_name_plural)s를 마켓플레이스 피드에서 선택해 차단했습니다" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "선택된 %(verbose_name_plural)s는 수출이 금지되었습니다." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "구성" @@ -152,7 +177,8 @@ msgstr "배달됨" msgid "canceled" msgstr "취소됨" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "실패" @@ -190,8 +216,8 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"OpenApi3 스키마를 사용합니다. 형식은 콘텐츠 협상을 통해 선택할 수 있습니다. " -"언어는 Accept-Language와 쿼리 매개변수를 모두 사용하여 선택할 수 있습니다." +"OpenApi3 스키마를 사용합니다. 형식은 콘텐츠 협상을 통해 선택할 수 있습니다. 언어는 Accept-Language와 쿼리 " +"매개변수를 모두 사용하여 선택할 수 있습니다." #: engine/core/docs/drf/views.py:46 engine/core/graphene/mutations.py:36 msgid "cache I/O" @@ -237,9 +263,7 @@ msgstr "비즈니스로 주문 구매" msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." -msgstr "" -"제공된 '제품'과 '제품_uuid' 및 '속성'을 사용하여 비즈니스로서 주문을 구매합니" -"다." +msgstr "제공된 '제품'과 '제품_uuid' 및 '속성'을 사용하여 비즈니스로서 주문을 구매합니다." #: engine/core/docs/drf/views.py:180 msgid "download a digital asset from purchased digital order" @@ -266,9 +290,9 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "편집할 수 없는 항목을 저장하는 기존 속성 그룹 다시 작성하기" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" -msgstr "" -"기존 속성 그룹의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" +msgstr "기존 속성 그룹의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." #: engine/core/docs/drf/viewsets.py:118 msgid "list all attributes (simple view)" @@ -315,9 +339,9 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "편집할 수 없는 기존 속성 값을 저장하여 다시 작성하기" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" -msgstr "" -"기존 속성 값의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" +msgstr "기존 속성 값의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." #: engine/core/docs/drf/viewsets.py:219 engine/core/docs/drf/viewsets.py:220 msgid "list all categories (simple view)" @@ -369,11 +393,11 @@ msgstr "직원이 아닌 사용자의 경우 자신의 주문만 반환됩니다 #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"대소문자를 구분하지 않는 하위 문자열 검색(human_readable_id, order_products." -"product.name 및 order_products.product.partnerumber)" +"대소문자를 구분하지 않는 하위 문자열 검색(human_readable_id, order_products.product.name 및 " +"order_products.product.partnerumber)" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -405,13 +429,12 @@ msgstr "주문 상태별 필터링(대소문자를 구분하지 않는 하위 #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"uuid, human_readable_id, user_email, 사용자, 상태, 생성됨, 수정됨, 구매 시" -"간, 무작위 중 하나로 정렬합니다. 접두사 앞에 '-'를 붙여 내림차순으로 정렬합니" -"다(예: '-buy_time')." +"uuid, human_readable_id, user_email, 사용자, 상태, 생성됨, 수정됨, 구매 시간, 무작위 중 하나로 " +"정렬합니다. 접두사 앞에 '-'를 붙여 내림차순으로 정렬합니다(예: '-buy_time')." #: engine/core/docs/drf/viewsets.py:366 msgid "retrieve a single order (detailed view)" @@ -451,8 +474,7 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"주문 구매를 완료합니다. 강제 잔액`을 사용하면 사용자의 잔액을 사용하여 구매" -"가 완료되고, `강제 결제`를 사용하면 거래가 시작됩니다." +"주문 구매를 완료합니다. 강제 잔액`을 사용하면 사용자의 잔액을 사용하여 구매가 완료되고, `강제 결제`를 사용하면 거래가 시작됩니다." #: engine/core/docs/drf/viewsets.py:427 msgid "retrieve current pending order of a user" @@ -478,8 +500,7 @@ msgstr "주문에 제품 추가" msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"제공된 `product_uuid` 및 `attributes`를 사용하여 주문에 제품을 추가합니다." +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에 제품을 추가합니다." #: engine/core/docs/drf/viewsets.py:461 msgid "add a list of products to order, quantities will not count" @@ -489,9 +510,7 @@ msgstr "주문할 제품 목록을 추가하면 수량은 계산되지 않습니 msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"제공된 `product_uuid` 및 `attributes`를 사용하여 주문에 제품 목록을 추가합니" -"다." +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에 제품 목록을 추가합니다." #: engine/core/docs/drf/viewsets.py:472 msgid "remove product from order" @@ -501,8 +520,7 @@ msgstr "주문에서 제품 제거" msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"제공된 `product_uuid` 및 `attributes`를 사용하여 주문에서 제품을 제거합니다." +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에서 제품을 제거합니다." #: engine/core/docs/drf/viewsets.py:483 msgid "remove product from order, quantities will not count" @@ -512,9 +530,7 @@ msgstr "주문에서 제품을 제거하면 수량이 계산되지 않습니다. msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" -msgstr "" -"제공된 `product_uuid` 및 `attributes`를 사용하여 주문에서 제품 목록을 제거합" -"니다." +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에서 제품 목록을 제거합니다." #: engine/core/docs/drf/viewsets.py:497 msgid "list all wishlists (simple view)" @@ -587,34 +603,24 @@ msgstr "주문에서 제품 제거" #: engine/core/docs/drf/viewsets.py:590 msgid "" "removes many products from an wishlist using the provided `product_uuids`" -msgstr "" -"제공된 `product_uuids`를 사용하여 위시리스트에서 많은 제품을 제거합니다." +msgstr "제공된 `product_uuids`를 사용하여 위시리스트에서 많은 제품을 제거합니다." #: engine/core/docs/drf/viewsets.py:598 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "하나 이상의 속성 이름/값 쌍을 기준으로 필터링합니다. \n" "- 구문**: `attr_name=메소드-값[;attr2=메소드2-값2]...`\n" -"- **방법**(생략 시 기본값은 `icontains`): `iexact`, `exact`, `icontains`, " -"`contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, " -"`regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- **값 입력**: JSON이 먼저 시도되며(목록/딕을 전달할 수 있도록), 부울, 정수, " -"부동 소수점의 경우 `true`/`false`, 그렇지 않으면 문자열로 처리됩니다. \n" -"- Base64**: 접두사 앞에 `b64-`를 추가하여 URL에 안전한 base64로 원시 값을 인" -"코딩합니다. \n" +"- **방법**(생략 시 기본값은 `icontains`): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **값 입력**: JSON이 먼저 시도되며(목록/딕을 전달할 수 있도록), 부울, 정수, 부동 소수점의 경우 `true`/`false`, 그렇지 않으면 문자열로 처리됩니다. \n" +"- Base64**: 접두사 앞에 `b64-`를 추가하여 URL에 안전한 base64로 원시 값을 인코딩합니다. \n" "예시: \n" "색상=정확-빨간색`, `크기=gt-10`, `기능=in-[\"wifi\",\"블루투스\"]`,\n" "b64-description=icontains-aGVhdC1jb2xk`" @@ -629,12 +635,10 @@ msgstr "(정확한) 제품 UUID" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"정렬할 필드의 쉼표로 구분된 목록입니다. 접두사 앞에 `-`를 붙여 내림차순으로 " -"정렬합니다. \n" +"정렬할 필드의 쉼표로 구분된 목록입니다. 접두사 앞에 `-`를 붙여 내림차순으로 정렬합니다. \n" "**허용됨:** uuid, 등급, 이름, 슬러그, 생성, 수정, 가격, 랜덤" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -730,8 +734,7 @@ msgstr "편집할 수 없는 기존 피드백을 다시 작성합니다." #: engine/core/docs/drf/viewsets.py:909 msgid "rewrite some fields of an existing feedback saving non-editables" -msgstr "" -"기존 피드백의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." +msgstr "기존 피드백의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." #: engine/core/docs/drf/viewsets.py:919 msgid "list all order–product relations (simple view)" @@ -1013,8 +1016,7 @@ msgstr "SKU" #: engine/core/filters.py:212 msgid "there must be a category_uuid to use include_subcategories flag" -msgstr "" -"include_subcategories 플래그를 사용하려면 category_uuid가 있어야 합니다." +msgstr "include_subcategories 플래그를 사용하려면 category_uuid가 있어야 합니다." #: engine/core/filters.py:398 msgid "Search (ID, product name or part number)" @@ -1166,8 +1168,8 @@ msgstr "주문 구매" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "속성을 attr1=value1,attr2=value2와 같은 형식의 문자열로 보내주세요." #: engine/core/graphene/mutations.py:580 @@ -1187,9 +1189,9 @@ msgstr "주문 제품 {order_product_uuid}을 찾을 수 없습니다!" msgid "original address string provided by the user" msgstr "사용자가 제공한 원본 주소 문자열" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1205,8 +1207,8 @@ msgstr "ElasticSearch - 마법처럼 작동" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "속성" @@ -1242,7 +1244,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "이 카테고리를 필터링하는 데 사용할 수 있는 속성 및 값입니다." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "이 카테고리의 제품에 대한 최소 및 최대 가격(가능한 경우)." #: engine/core/graphene/object_types.py:234 @@ -1279,7 +1282,7 @@ msgid "represents feedback from a user." msgstr "사용자의 피드백을 나타냅니다." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "알림" @@ -1287,7 +1290,7 @@ msgstr "알림" msgid "download url for this order product if applicable" msgstr "해당되는 경우 이 주문 제품의 URL 다운로드" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "피드백" @@ -1295,7 +1298,7 @@ msgstr "피드백" msgid "a list of order products in this order" msgstr "주문 제품 목록은 다음 순서로 표시됩니다." -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "청구서 수신 주소" @@ -1303,9 +1306,7 @@ msgstr "청구서 수신 주소" msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" -msgstr "" -"이 주문의 배송 주소는 청구지 주소와 동일하거나 해당되지 않는 경우 비워 둡니" -"다." +msgstr "이 주문의 배송 주소는 청구지 주소와 동일하거나 해당되지 않는 경우 비워 둡니다." #: engine/core/graphene/object_types.py:468 msgid "total price of this order" @@ -1323,7 +1324,7 @@ msgstr "주문에 포함된 모든 제품이 디지털 제품인가요?" msgid "transactions for this order" msgstr "이 주문에 대한 거래" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "주문" @@ -1340,7 +1341,7 @@ msgstr "제품 이미지" msgid "category" msgstr "카테고리" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "피드백" @@ -1381,7 +1382,7 @@ msgstr "개인 주문만 가능한 제품" msgid "discount price" msgstr "할인 가격" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "제품" @@ -1393,7 +1394,7 @@ msgstr "프로모션 코드" msgid "products on sale" msgstr "판매 중인 제품" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "프로모션" @@ -1401,7 +1402,7 @@ msgstr "프로모션" msgid "vendor" msgstr "공급업체" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1409,11 +1410,11 @@ msgstr "공급업체" msgid "product" msgstr "제품" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "위시리스트 제품" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "위시리스트" @@ -1452,8 +1453,7 @@ msgstr "회사 전화번호" #: engine/core/graphene/object_types.py:761 msgid "email from, sometimes it must be used instead of host user value" -msgstr "" -"'이메일 보낸 사람'을 호스트 사용자 값 대신 사용해야 하는 경우가 있습니다." +msgstr "'이메일 보낸 사람'을 호스트 사용자 값 대신 사용해야 하는 경우가 있습니다." #: engine/core/graphene/object_types.py:764 msgid "email host user" @@ -1512,10 +1512,8 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"계층적일 수 있는 속성 그룹을 나타냅니다. 이 클래스는 속성 그룹을 관리하고 구" -"성하는 데 사용됩니다. 속성 그룹은 상위 그룹을 가질 수 있으며 계층 구조를 형성" -"할 수 있습니다. 이는 복잡한 시스템에서 속성을 보다 효과적으로 분류하고 관리하" -"는 데 유용할 수 있습니다." +"계층적일 수 있는 속성 그룹을 나타냅니다. 이 클래스는 속성 그룹을 관리하고 구성하는 데 사용됩니다. 속성 그룹은 상위 그룹을 가질 수 " +"있으며 계층 구조를 형성할 수 있습니다. 이는 복잡한 시스템에서 속성을 보다 효과적으로 분류하고 관리하는 데 유용할 수 있습니다." #: engine/core/models.py:88 msgid "parent of this group" @@ -1529,7 +1527,7 @@ msgstr "상위 속성 그룹" msgid "attribute group's name" msgstr "속성 그룹의 이름" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "속성 그룹" @@ -1543,12 +1541,10 @@ msgid "" "also maintains additional metadata and constraints, making it suitable for " "use in systems that interact with third-party vendors." msgstr "" -"외부 공급업체 및 해당 공급업체의 상호 작용 요구 사항에 대한 정보를 저장할 수 " -"있는 공급업체 엔티티를 나타냅니다. 공급업체 클래스는 외부 공급업체와 관련된 " -"정보를 정의하고 관리하는 데 사용됩니다. 공급업체의 이름, 통신에 필요한 인증 " -"세부 정보, 공급업체에서 검색한 제품에 적용된 마크업 비율을 저장합니다. 또한 " -"이 모델은 추가 메타데이터 및 제약 조건을 유지하므로 타사 공급업체와 상호 작용" -"하는 시스템에서 사용하기에 적합합니다." +"외부 공급업체 및 해당 공급업체의 상호 작용 요구 사항에 대한 정보를 저장할 수 있는 공급업체 엔티티를 나타냅니다. 공급업체 클래스는 " +"외부 공급업체와 관련된 정보를 정의하고 관리하는 데 사용됩니다. 공급업체의 이름, 통신에 필요한 인증 세부 정보, 공급업체에서 검색한 " +"제품에 적용된 마크업 비율을 저장합니다. 또한 이 모델은 추가 메타데이터 및 제약 조건을 유지하므로 타사 공급업체와 상호 작용하는 " +"시스템에서 사용하기에 적합합니다." #: engine/core/models.py:122 msgid "stores credentials and endpoints required for vendor communication" @@ -1598,10 +1594,9 @@ msgid "" "display name. It supports operations exported through mixins and provides " "metadata customization for administrative purposes." msgstr "" -"제품을 분류하거나 식별하는 데 사용되는 제품 태그를 나타냅니다. ProductTag 클" -"래스는 내부 태그 식별자와 사용자 친화적인 표시 이름의 조합을 통해 제품을 고유" -"하게 식별하고 분류하도록 설계되었습니다. 믹스인을 통해 내보낸 작업을 지원하" -"며 관리 목적으로 메타데이터 사용자 지정을 제공합니다." +"제품을 분류하거나 식별하는 데 사용되는 제품 태그를 나타냅니다. ProductTag 클래스는 내부 태그 식별자와 사용자 친화적인 표시 " +"이름의 조합을 통해 제품을 고유하게 식별하고 분류하도록 설계되었습니다. 믹스인을 통해 내보낸 작업을 지원하며 관리 목적으로 메타데이터 " +"사용자 지정을 제공합니다." #: engine/core/models.py:204 engine/core/models.py:235 msgid "internal tag identifier for the product tag" @@ -1629,9 +1624,8 @@ msgid "" "tag that can be used to associate and classify products. It includes " "attributes for an internal tag identifier and a user-friendly display name." msgstr "" -"제품에 사용되는 카테고리 태그를 나타냅니다. 이 클래스는 제품을 연결하고 분류" -"하는 데 사용할 수 있는 카테고리 태그를 모델링합니다. 내부 태그 식별자 및 사용" -"자 친화적인 표시 이름에 대한 속성을 포함합니다." +"제품에 사용되는 카테고리 태그를 나타냅니다. 이 클래스는 제품을 연결하고 분류하는 데 사용할 수 있는 카테고리 태그를 모델링합니다. 내부" +" 태그 식별자 및 사용자 친화적인 표시 이름에 대한 속성을 포함합니다." #: engine/core/models.py:249 msgid "category tag" @@ -1653,13 +1647,10 @@ msgid "" "hierarchy of categories, as well as assign attributes like images, tags, or " "priority." msgstr "" -"관련 항목을 계층 구조로 정리하고 그룹화할 카테고리 엔티티를 나타냅니다. 카테" -"고리는 다른 카테고리와 계층적 관계를 가질 수 있으며, 상위-하위 관계를 지원합" -"니다. 이 클래스에는 카테고리 관련 기능의 기반이 되는 메타데이터 및 시각적 표" -"현을 위한 필드가 포함되어 있습니다. 이 클래스는 일반적으로 애플리케이션 내에" -"서 제품 카테고리 또는 기타 유사한 그룹을 정의하고 관리하는 데 사용되며, 사용" -"자나 관리자가 카테고리의 이름, 설명 및 계층 구조를 지정하고 이미지, 태그 또" -"는 우선순위와 같은 속성을 할당할 수 있도록 합니다." +"관련 항목을 계층 구조로 정리하고 그룹화할 카테고리 엔티티를 나타냅니다. 카테고리는 다른 카테고리와 계층적 관계를 가질 수 있으며, " +"상위-하위 관계를 지원합니다. 이 클래스에는 카테고리 관련 기능의 기반이 되는 메타데이터 및 시각적 표현을 위한 필드가 포함되어 " +"있습니다. 이 클래스는 일반적으로 애플리케이션 내에서 제품 카테고리 또는 기타 유사한 그룹을 정의하고 관리하는 데 사용되며, 사용자나 " +"관리자가 카테고리의 이름, 설명 및 계층 구조를 지정하고 이미지, 태그 또는 우선순위와 같은 속성을 할당할 수 있도록 합니다." #: engine/core/models.py:269 msgid "upload an image representing this category" @@ -1710,11 +1701,11 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"시스템에서 브랜드 객체를 나타냅니다. 이 클래스는 이름, 로고, 설명, 관련 카테" -"고리, 고유 슬러그, 우선순위 등 브랜드와 관련된 정보 및 속성을 처리합니다. 이" -"를 통해 애플리케이션 내에서 브랜드 관련 데이터를 구성하고 표현할 수 있습니다." +"시스템에서 브랜드 객체를 나타냅니다. 이 클래스는 이름, 로고, 설명, 관련 카테고리, 고유 슬러그, 우선순위 등 브랜드와 관련된 정보 " +"및 속성을 처리합니다. 이를 통해 애플리케이션 내에서 브랜드 관련 데이터를 구성하고 표현할 수 있습니다." #: engine/core/models.py:456 msgid "name of this brand" @@ -1758,17 +1749,16 @@ msgstr "카테고리" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"시스템에서 관리되는 제품의 재고를 나타냅니다. 이 클래스는 공급업체, 제품, 재" -"고 정보 간의 관계와 가격, 구매 가격, 수량, SKU 및 디지털 자산과 같은 재고 관" -"련 속성에 대한 세부 정보를 제공합니다. 다양한 공급업체에서 제공하는 제품을 추" -"적하고 평가할 수 있도록 하는 재고 관리 시스템의 일부입니다." +"시스템에서 관리되는 제품의 재고를 나타냅니다. 이 클래스는 공급업체, 제품, 재고 정보 간의 관계와 가격, 구매 가격, 수량, SKU 및" +" 디지털 자산과 같은 재고 관련 속성에 대한 세부 정보를 제공합니다. 다양한 공급업체에서 제공하는 제품을 추적하고 평가할 수 있도록 하는" +" 재고 관리 시스템의 일부입니다." #: engine/core/models.py:528 msgid "the vendor supplying this product stock" @@ -1790,8 +1780,8 @@ msgstr "판매 가격" msgid "the product associated with this stock entry" msgstr "이 주식 항목과 관련된 제품" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "관련 제품" @@ -1846,13 +1836,10 @@ msgid "" "properties to improve performance. It is used to define and manipulate " "product data and its associated information within an application." msgstr "" -"카테고리, 브랜드, 태그, 디지털 상태, 이름, 설명, 부품 번호, 슬러그 등의 속성" -"을 가진 제품을 나타냅니다. 평점, 피드백 수, 가격, 수량, 총 주문 수 등을 검색" -"할 수 있는 관련 유틸리티 속성을 제공합니다. 이커머스 또는 재고 관리를 처리하" -"는 시스템에서 사용하도록 설계되었습니다. 이 클래스는 관련 모델(예: 카테고리, " -"브랜드, 제품 태그)과 상호 작용하고 자주 액세스하는 속성에 대한 캐싱을 관리하" -"여 성능을 개선합니다. 애플리케이션 내에서 제품 데이터 및 관련 정보를 정의하" -"고 조작하는 데 사용됩니다." +"카테고리, 브랜드, 태그, 디지털 상태, 이름, 설명, 부품 번호, 슬러그 등의 속성을 가진 제품을 나타냅니다. 평점, 피드백 수, " +"가격, 수량, 총 주문 수 등을 검색할 수 있는 관련 유틸리티 속성을 제공합니다. 이커머스 또는 재고 관리를 처리하는 시스템에서 " +"사용하도록 설계되었습니다. 이 클래스는 관련 모델(예: 카테고리, 브랜드, 제품 태그)과 상호 작용하고 자주 액세스하는 속성에 대한 " +"캐싱을 관리하여 성능을 개선합니다. 애플리케이션 내에서 제품 데이터 및 관련 정보를 정의하고 조작하는 데 사용됩니다." #: engine/core/models.py:595 msgid "category this product belongs to" @@ -1890,7 +1877,7 @@ msgstr "제품에 대한 명확한 식별 이름 제공" msgid "product name" msgstr "제품 이름" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "제품에 대한 자세한 설명 추가" @@ -1910,317 +1897,313 @@ msgstr "부품 번호" msgid "stock keeping unit for this product" msgstr "이 제품의 재고 보관 단위" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "이 제품을 마켓플레이스에 수출할지 여부" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "마켓플레이스로 내보내기" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"시스템의 속성을 나타냅니다. 이 클래스는 다른 엔티티와 연결할 수 있는 사용자 " -"지정 가능한 데이터 조각인 속성을 정의하고 관리하는 데 사용됩니다. 속성에는 연" -"관된 카테고리, 그룹, 값 유형 및 이름이 있습니다. 이 모델은 문자열, 정수, 실" -"수, 부울, 배열, 객체 등 여러 유형의 값을 지원합니다. 이를 통해 동적이고 유연" -"한 데이터 구조화가 가능합니다." +"시스템의 속성을 나타냅니다. 이 클래스는 다른 엔티티와 연결할 수 있는 사용자 지정 가능한 데이터 조각인 속성을 정의하고 관리하는 데 " +"사용됩니다. 속성에는 연관된 카테고리, 그룹, 값 유형 및 이름이 있습니다. 이 모델은 문자열, 정수, 실수, 부울, 배열, 객체 등 " +"여러 유형의 값을 지원합니다. 이를 통해 동적이고 유연한 데이터 구조화가 가능합니다." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "이 속성의 그룹" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "문자열" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "정수" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Float" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "부울" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "배열" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "개체" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "속성 값의 유형" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "값 유형" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "이 속성의 이름" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "속성 이름" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "필터링 가능" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "는 이 속성을 필터링에 사용할 수 있는지 여부를 지정합니다." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "속성" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"상품에 연결된 속성의 특정 값을 나타냅니다. '속성'을 고유한 '값'에 연결하여 제" -"품 특성을 더 잘 구성하고 동적으로 표현할 수 있습니다." +"상품에 연결된 속성의 특정 값을 나타냅니다. '속성'을 고유한 '값'에 연결하여 제품 특성을 더 잘 구성하고 동적으로 표현할 수 " +"있습니다." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "이 값의 속성" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "이 속성 값과 연관된 특정 제품" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "이 속성의 구체적인 값은 다음과 같습니다." -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" -"시스템에서 제품과 연관된 제품 이미지를 나타냅니다. 이 클래스는 이미지 파일 업" -"로드, 특정 제품과의 연결, 표시 순서 결정 등의 기능을 포함하여 제품의 이미지" -"를 관리하도록 설계되었습니다. 또한 이미지에 대한 대체 텍스트가 포함된 접근성 " -"기능도 포함되어 있습니다." +"시스템에서 제품과 연관된 제품 이미지를 나타냅니다. 이 클래스는 이미지 파일 업로드, 특정 제품과의 연결, 표시 순서 결정 등의 기능을 " +"포함하여 제품의 이미지를 관리하도록 설계되었습니다. 또한 이미지에 대한 대체 텍스트가 포함된 접근성 기능도 포함되어 있습니다." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "접근성을 위해 이미지에 대체 텍스트 제공" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "이미지 대체 텍스트" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "이 제품의 이미지 파일 업로드" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "제품 이미지" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "이미지가 표시되는 순서를 결정합니다." -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "우선순위 표시" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "이 이미지가 나타내는 제품" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "제품 이미지" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"할인이 적용되는 제품에 대한 프로모션 캠페인을 나타냅니다. 이 클래스는 제품에 " -"대해 백분율 기반 할인을 제공하는 프로모션 캠페인을 정의하고 관리하는 데 사용" -"됩니다. 이 클래스에는 할인율 설정, 프로모션에 대한 세부 정보 제공 및 해당 제" -"품에 대한 링크를 위한 속성이 포함되어 있습니다. 제품 카탈로그와 통합되어 캠페" -"인에서 영향을 받는 품목을 결정합니다." +"할인이 적용되는 제품에 대한 프로모션 캠페인을 나타냅니다. 이 클래스는 제품에 대해 백분율 기반 할인을 제공하는 프로모션 캠페인을 " +"정의하고 관리하는 데 사용됩니다. 이 클래스에는 할인율 설정, 프로모션에 대한 세부 정보 제공 및 해당 제품에 대한 링크를 위한 속성이 " +"포함되어 있습니다. 제품 카탈로그와 통합되어 캠페인에서 영향을 받는 품목을 결정합니다." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "선택한 제품에 대한 할인 비율" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "할인 비율" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "이 프로모션의 고유한 이름을 입력하세요." -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "프로모션 이름" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "프로모션 설명" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "이 프로모션에 포함되는 제품 선택" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "포함된 제품" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "프로모션" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"원하는 상품을 저장하고 관리하기 위한 사용자의 위시리스트를 나타냅니다. 이 클" -"래스는 제품 컬렉션을 관리하는 기능을 제공하여 제품 추가 및 제거와 같은 작업" -"을 지원할 뿐만 아니라 여러 제품을 한 번에 추가 및 제거하는 작업도 지원합니다." +"원하는 상품을 저장하고 관리하기 위한 사용자의 위시리스트를 나타냅니다. 이 클래스는 제품 컬렉션을 관리하는 기능을 제공하여 제품 추가 및" +" 제거와 같은 작업을 지원할 뿐만 아니라 여러 제품을 한 번에 추가 및 제거하는 작업도 지원합니다." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "사용자가 원하는 것으로 표시한 제품" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "이 위시리스트를 소유한 사용자" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "위시리스트의 소유자" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "위시리스트" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"상품에 연결된 다큐멘터리 레코드를 나타냅니다. 이 클래스는 파일 업로드 및 메타" -"데이터를 포함하여 특정 제품과 관련된 다큐멘터리에 대한 정보를 저장하는 데 사" -"용됩니다. 여기에는 다큐멘터리 파일의 파일 유형과 저장 경로를 처리하는 메서드" -"와 프로퍼티가 포함되어 있습니다. 특정 믹스인의 기능을 확장하고 추가 사용자 정" -"의 기능을 제공합니다." +"상품에 연결된 다큐멘터리 레코드를 나타냅니다. 이 클래스는 파일 업로드 및 메타데이터를 포함하여 특정 제품과 관련된 다큐멘터리에 대한 " +"정보를 저장하는 데 사용됩니다. 여기에는 다큐멘터리 파일의 파일 유형과 저장 경로를 처리하는 메서드와 프로퍼티가 포함되어 있습니다. 특정" +" 믹스인의 기능을 확장하고 추가 사용자 정의 기능을 제공합니다." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "다큐멘터리" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "다큐멘터리" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "해결되지 않음" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" -"위치 세부 정보 및 사용자와의 연결을 포함하는 주소 엔티티를 나타냅니다. 지리" -"적 및 주소 데이터 저장과 지오코딩 서비스와의 통합을 위한 기능을 제공합니다. " -"이 클래스는 거리, 도시, 지역, 국가, 지리적 위치(경도 및 위도)와 같은 구성 요" -"소를 포함한 상세한 주소 정보를 저장하도록 설계되었습니다. 지오코딩 API와의 통" -"합을 지원하여 추가 처리 또는 검사를 위해 원시 API 응답을 저장할 수 있습니다. " -"또한 이 클래스를 사용하면 주소를 사용자와 연결하여 개인화된 데이터 처리를 용" -"이하게 할 수 있습니다." +"위치 세부 정보 및 사용자와의 연결을 포함하는 주소 엔티티를 나타냅니다. 지리적 및 주소 데이터 저장과 지오코딩 서비스와의 통합을 위한 " +"기능을 제공합니다. 이 클래스는 거리, 도시, 지역, 국가, 지리적 위치(경도 및 위도)와 같은 구성 요소를 포함한 상세한 주소 정보를 " +"저장하도록 설계되었습니다. 지오코딩 API와의 통합을 지원하여 추가 처리 또는 검사를 위해 원시 API 응답을 저장할 수 있습니다. 또한" +" 이 클래스를 사용하면 주소를 사용자와 연결하여 개인화된 데이터 처리를 용이하게 할 수 있습니다." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "고객 주소 라인" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "주소 라인" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "거리" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "지구" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "도시" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "지역" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "우편 번호" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "국가" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "지리적 위치 포인트(경도, 위도)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "이 주소에 대한 지오코더의 전체 JSON 응답" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "지오코딩 서비스의 저장된 JSON 응답" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "주소" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "주소" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2229,252 +2212,241 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"할인에 사용할 수 있는 프로모션 코드를 나타내며, 유효 기간, 할인 유형 및 적용" -"을 관리합니다. 프로모션 코드 클래스는 고유 식별자, 할인 속성(금액 또는 백분" -"율), 유효 기간, 관련 사용자(있는 경우), 사용 상태 등 프로모션 코드에 대한 세" -"부 정보를 저장합니다. 여기에는 제약 조건이 충족되는지 확인하면서 프로모션 코" -"드의 유효성을 검사하고 주문에 적용하는 기능이 포함되어 있습니다." +"할인에 사용할 수 있는 프로모션 코드를 나타내며, 유효 기간, 할인 유형 및 적용을 관리합니다. 프로모션 코드 클래스는 고유 식별자, " +"할인 속성(금액 또는 백분율), 유효 기간, 관련 사용자(있는 경우), 사용 상태 등 프로모션 코드에 대한 세부 정보를 저장합니다. " +"여기에는 제약 조건이 충족되는지 확인하면서 프로모션 코드의 유효성을 검사하고 주문에 적용하는 기능이 포함되어 있습니다." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "사용자가 할인을 받기 위해 사용하는 고유 코드" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "프로모션 코드 식별자" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "퍼센트를 사용하지 않을 경우 고정 할인 금액 적용" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "고정 할인 금액" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "고정 금액 미사용 시 적용되는 할인 비율" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "백분율 할인" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "프로모션 코드 만료 시 타임스탬프" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "유효 기간 종료 시간" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "이 프로모코드의 타임스탬프가 유효한 시점" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "유효 기간 시작 시간" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "프로모코드가 사용된 타임스탬프, 아직 사용되지 않은 경우 비워둡니다." -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "사용 타임스탬프" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "해당되는 경우 이 프로모코드에 할당된 사용자" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "할당된 사용자" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "프로모션 코드" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "프로모션 코드" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." -msgstr "" -"할인 유형(금액 또는 백분율)은 한 가지 유형만 정의해야 하며, 두 가지 모두 또" -"는 둘 다 정의해서는 안 됩니다." +msgstr "할인 유형(금액 또는 백분율)은 한 가지 유형만 정의해야 하며, 두 가지 모두 또는 둘 다 정의해서는 안 됩니다." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "프로모코드가 이미 사용되었습니다." -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "프로모션 코드 {self.uuid}의 할인 유형이 잘못되었습니다!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" -"사용자가 진행한 주문을 나타냅니다. 이 클래스는 청구 및 배송 정보, 상태, 연결" -"된 사용자, 알림 및 관련 작업과 같은 다양한 속성을 포함하여 애플리케이션 내에" -"서 주문을 모델링합니다. 주문에는 연결된 제품, 프로모션 적용, 주소 설정, 배송 " -"또는 청구 세부 정보 업데이트가 가능합니다. 또한 주문 수명 주기에서 제품을 관" -"리하는 기능도 지원합니다." +"사용자가 진행한 주문을 나타냅니다. 이 클래스는 청구 및 배송 정보, 상태, 연결된 사용자, 알림 및 관련 작업과 같은 다양한 속성을 " +"포함하여 애플리케이션 내에서 주문을 모델링합니다. 주문에는 연결된 제품, 프로모션 적용, 주소 설정, 배송 또는 청구 세부 정보 " +"업데이트가 가능합니다. 또한 주문 수명 주기에서 제품을 관리하는 기능도 지원합니다." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "이 주문에 사용된 청구 주소" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "이 주문에 적용된 프로모션 코드(선택 사항)" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "프로모션 코드 적용" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "이 주문에 사용된 배송지 주소" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "배송 주소" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "라이프사이클 내 주문의 현재 상태" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "주문 상태" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" -msgstr "" -"사용자에게 표시할 알림의 JSON 구조, 관리자 UI에서는 테이블 보기가 사용됩니다." +msgstr "사용자에게 표시할 알림의 JSON 구조, 관리자 UI에서는 테이블 보기가 사용됩니다." -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "이 주문에 대한 주문 속성의 JSON 표현" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "주문한 사용자" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "사용자" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "주문이 완료된 타임스탬프" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "시간 확보" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "사람이 읽을 수 있는 주문 식별자" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "사람이 읽을 수 있는 ID" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "주문" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "사용자는 한 번에 하나의 대기 주문만 보유해야 합니다!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "보류 중인 주문이 아닌 주문에는 제품을 추가할 수 없습니다." -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "주문에 비활성 제품을 추가할 수 없습니다." -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "재고가 있는 제품보다 많은 제품을 추가할 수 없습니다." -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "보류 중인 주문이 아닌 주문에서는 제품을 제거할 수 없습니다." -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "쿼리 <{query}>에 {name}가 존재하지 않습니다!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "프로모코드가 존재하지 않습니다." -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "배송 주소가 지정된 실제 제품만 구매할 수 있습니다!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "주소가 존재하지 않습니다." -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "지금은 구매할 수 없습니다. 몇 분 후에 다시 시도해 주세요." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "잘못된 힘 값" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "빈 주문은 구매할 수 없습니다!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "사용자 없이는 주문을 구매할 수 없습니다!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "잔액이 없는 사용자는 잔액으로 구매할 수 없습니다!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "주문을 완료하기에 자금이 부족합니다." -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -msgstr "" -"등록하지 않으면 구매할 수 없으므로 고객 이름, 고객 이메일, 고객 전화 번호 등" -"의 정보를 제공하세요." +msgstr "등록하지 않으면 구매할 수 없으므로 고객 이름, 고객 이메일, 고객 전화 번호 등의 정보를 제공하세요." -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" -msgstr "" -"결제 방법이 잘못되었습니다: {payment_method}에서 {available_payment_methods}" -"로!" +msgstr "결제 방법이 잘못되었습니다: {payment_method}에서 {available_payment_methods}로!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2482,37 +2454,36 @@ msgid "" "product in the order, and a user-assigned rating. The class uses database " "fields to effectively model and manage feedback data." msgstr "" -"제품에 대한 사용자 피드백을 관리합니다. 이 클래스는 사용자가 구매한 특정 제품" -"에 대한 사용자 피드백을 캡처하고 저장하도록 설계되었습니다. 여기에는 사용자 " -"댓글, 주문에서 관련 제품에 대한 참조 및 사용자가 지정한 등급을 저장하는 속성" -"이 포함되어 있습니다. 이 클래스는 데이터베이스 필드를 사용하여 피드백 데이터" -"를 효과적으로 모델링하고 관리합니다." +"제품에 대한 사용자 피드백을 관리합니다. 이 클래스는 사용자가 구매한 특정 제품에 대한 사용자 피드백을 캡처하고 저장하도록 " +"설계되었습니다. 여기에는 사용자 댓글, 주문에서 관련 제품에 대한 참조 및 사용자가 지정한 등급을 저장하는 속성이 포함되어 있습니다. 이" +" 클래스는 데이터베이스 필드를 사용하여 피드백 데이터를 효과적으로 모델링하고 관리합니다." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "제품 사용 경험에 대한 사용자 제공 의견" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "피드백 댓글" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "이 피드백에 대한 순서대로 특정 제품을 참조합니다." -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "관련 주문 제품" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "제품에 대한 사용자 지정 평점" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "제품 평가" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2524,135 +2495,130 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"주문과 관련된 제품 및 해당 속성을 나타냅니다. 주문 제품 모델은 구매 가격, 수" -"량, 제품 속성 및 상태 등의 세부 정보를 포함하여 주문의 일부인 제품에 대한 정" -"보를 유지 관리합니다. 사용자 및 관리자에 대한 알림을 관리하고 제품 잔액 반환 " -"또는 피드백 추가와 같은 작업을 처리합니다. 또한 이 모델은 총 가격 계산이나 디" -"지털 제품의 다운로드 URL 생성 등 비즈니스 로직을 지원하는 메서드와 속성을 제" -"공합니다. 이 모델은 주문 및 제품 모델과 통합되며 해당 모델에 대한 참조를 저장" -"합니다." +"주문과 관련된 제품 및 해당 속성을 나타냅니다. 주문 제품 모델은 구매 가격, 수량, 제품 속성 및 상태 등의 세부 정보를 포함하여 " +"주문의 일부인 제품에 대한 정보를 유지 관리합니다. 사용자 및 관리자에 대한 알림을 관리하고 제품 잔액 반환 또는 피드백 추가와 같은 " +"작업을 처리합니다. 또한 이 모델은 총 가격 계산이나 디지털 제품의 다운로드 URL 생성 등 비즈니스 로직을 지원하는 메서드와 속성을 " +"제공합니다. 이 모델은 주문 및 제품 모델과 통합되며 해당 모델에 대한 참조를 저장합니다." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "구매 시점에 고객이 이 제품에 대해 지불한 가격입니다." -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "주문 시점의 구매 가격" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "주문한 제품에 대한 관리자용 내부 댓글" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "내부 의견" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "사용자 알림" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "이 항목의 속성에 대한 JSON 표현" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "주문한 제품 속성" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "이 제품이 포함된 상위 주문 참조" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "상위 주문" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "이 주문 라인과 연결된 특정 제품" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "이 특정 제품의 주문 수량" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "제품 수량" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "이 제품의 현재 상태 순서" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "제품 라인 상태" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "주문제품에는 연결된 주문이 있어야 합니다!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "피드백에 지정된 작업이 잘못되었습니다: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "받지 않은 주문에 대해서는 피드백을 제공할 수 없습니다." -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "이름" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "통합 URL" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "인증 자격 증명" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "기본 CRM 공급업체는 하나만 사용할 수 있습니다." -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "주문의 CRM 링크" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "주문의 CRM 링크" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" -"주문과 관련된 디지털 자산의 다운로드 기능을 나타냅니다. 디지털 자산 다운로드 " -"클래스는 주문 상품과 관련된 다운로드를 관리하고 액세스할 수 있는 기능을 제공" -"합니다. 연결된 주문 상품, 다운로드 횟수, 자산이 공개적으로 표시되는지 여부에 " -"대한 정보를 유지 관리합니다. 여기에는 연결된 주문이 완료 상태일 때 자산을 다" -"운로드할 수 있는 URL을 생성하는 메서드가 포함되어 있습니다." +"주문과 관련된 디지털 자산의 다운로드 기능을 나타냅니다. 디지털 자산 다운로드 클래스는 주문 상품과 관련된 다운로드를 관리하고 액세스할 " +"수 있는 기능을 제공합니다. 연결된 주문 상품, 다운로드 횟수, 자산이 공개적으로 표시되는지 여부에 대한 정보를 유지 관리합니다. " +"여기에는 연결된 주문이 완료 상태일 때 자산을 다운로드할 수 있는 URL을 생성하는 메서드가 포함되어 있습니다." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "다운로드" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "다운로드" @@ -2851,12 +2817,10 @@ msgstr "안녕하세요 %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"주문해 주셔서 감사합니다 #%(order.pk)s! 주문하신 상품이 입고되었음을 알려드립" -"니다. 주문 세부 정보는 아래와 같습니다:" +"주문해 주셔서 감사합니다 #%(order.pk)s! 주문하신 상품이 입고되었음을 알려드립니다. 주문 세부 정보는 아래와 같습니다:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2879,8 +2843,7 @@ msgstr "총 가격" msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." -msgstr "" -"궁금한 점이 있으면 언제든지 %(config.EMAIL_HOST_USER)s로 지원팀에 문의하세요." +msgstr "궁금한 점이 있으면 언제든지 %(config.EMAIL_HOST_USER)s로 지원팀에 문의하세요." #: engine/core/templates/digital_order_created_email.html:133 #, python-format @@ -2908,9 +2871,7 @@ msgstr "안녕하세요 %(user_first_name)s," msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" -msgstr "" -"주문이 성공적으로 처리되었습니다 №%(order_uuid)s! 주문 세부 정보는 아래와 같" -"습니다:" +msgstr "주문이 성공적으로 처리되었습니다 №%(order_uuid)s! 주문 세부 정보는 아래와 같습니다:" #: engine/core/templates/digital_order_delivered_email.html:128 msgid "" @@ -2963,12 +2924,9 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" -msgstr "" -"주문해 주셔서 감사합니다! 구매를 확인하게 되어 기쁩니다. 주문 세부 정보는 아" -"래와 같습니다:" +msgstr "주문해 주셔서 감사합니다! 구매를 확인하게 되어 기쁩니다. 주문 세부 정보는 아래와 같습니다:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -3034,16 +2992,14 @@ msgstr "NOMINATIM_URL 파라미터를 설정해야 합니다!" #: engine/core/validators.py:23 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" -msgstr "" -"이미지 크기는 w{max_width} x h{max_height} 픽셀을 초과하지 않아야 합니다!" +msgstr "이미지 크기는 w{max_width} x h{max_height} 픽셀을 초과하지 않아야 합니다!" #: engine/core/views.py:104 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -"사이트맵 색인에 대한 요청을 처리하고 XML 응답을 반환합니다. 응답에 XML에 적합" -"한 콘텐츠 유형 헤더가 포함되어 있는지 확인합니다." +"사이트맵 색인에 대한 요청을 처리하고 XML 응답을 반환합니다. 응답에 XML에 적합한 콘텐츠 유형 헤더가 포함되어 있는지 확인합니다." #: engine/core/views.py:119 msgid "" @@ -3051,9 +3007,8 @@ msgid "" "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -"사이트맵에 대한 상세 보기 응답을 처리합니다. 이 함수는 요청을 처리하고 적절" -"한 사이트맵 상세 보기 응답을 가져온 다음 XML의 Content-Type 헤더를 설정합니" -"다." +"사이트맵에 대한 상세 보기 응답을 처리합니다. 이 함수는 요청을 처리하고 적절한 사이트맵 상세 보기 응답을 가져온 다음 XML의 " +"Content-Type 헤더를 설정합니다." #: engine/core/views.py:155 msgid "" @@ -3068,9 +3023,7 @@ msgstr "웹사이트의 매개변수를 JSON 객체로 반환합니다." msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." -msgstr "" -"지정된 키와 시간 초과로 캐시 데이터를 읽고 설정하는 등의 캐시 작업을 처리합니" -"다." +msgstr "지정된 키와 시간 초과로 캐시 데이터를 읽고 설정하는 등의 캐시 작업을 처리합니다." #: engine/core/views.py:220 msgid "Handles `contact us` form submissions." @@ -3093,14 +3046,10 @@ msgstr "등록하지 않고 비즈니스로 구매하는 로직을 처리합니 #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "주문과 관련된 디지털 자산의 다운로드를 처리합니다.\n" -"이 함수는 프로젝트의 저장소 디렉토리에 있는 디지털 자산 파일을 제공하려고 시" -"도합니다. 파일을 찾을 수 없으면 HTTP 404 오류가 발생하여 리소스를 사용할 수 " -"없음을 나타냅니다." +"이 함수는 프로젝트의 저장소 디렉토리에 있는 디지털 자산 파일을 제공하려고 시도합니다. 파일을 찾을 수 없으면 HTTP 404 오류가 발생하여 리소스를 사용할 수 없음을 나타냅니다." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3129,24 +3078,19 @@ msgstr "파비콘을 찾을 수 없습니다." #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "웹사이트의 파비콘 요청을 처리합니다.\n" -"이 함수는 프로젝트의 정적 디렉토리에 있는 파비콘 파일을 제공하려고 시도합니" -"다. 파비콘 파일을 찾을 수 없는 경우 HTTP 404 오류가 발생하여 리소스를 사용할 " -"수 없음을 나타냅니다." +"이 함수는 프로젝트의 정적 디렉토리에 있는 파비콘 파일을 제공하려고 시도합니다. 파비콘 파일을 찾을 수 없는 경우 HTTP 404 오류가 발생하여 리소스를 사용할 수 없음을 나타냅니다." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"요청을 관리자 색인 페이지로 리디렉션합니다. 이 함수는 들어오는 HTTP 요청을 처" -"리하여 Django 관리자 인터페이스 인덱스 페이지로 리디렉션합니다. HTTP 리디렉션" -"을 처리하기 위해 Django의 `redirect` 함수를 사용합니다." +"요청을 관리자 색인 페이지로 리디렉션합니다. 이 함수는 들어오는 HTTP 요청을 처리하여 Django 관리자 인터페이스 인덱스 페이지로 " +"리디렉션합니다. HTTP 리디렉션을 처리하기 위해 Django의 `redirect` 함수를 사용합니다." #: engine/core/views.py:445 msgid "Returns current version of the Schon. " @@ -3163,28 +3107,27 @@ msgstr "대시보드에 대한 사용자 지정 변수를 반환합니다." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"schon 관련 작업을 관리하기 위한 뷰셋을 정의합니다. SchonViewSet 클래스는 " -"ModelViewSet에서 상속되며 schon 엔티티에 대한 액션 및 연산을 처리하는 기능" -"을 제공합니다. 여기에는 현재 작업을 기반으로 하는 동적 직렬화기 클래스, 사용" -"자 지정 가능한 권한 및 렌더링 형식에 대한 지원이 포함됩니다." +"schon 관련 작업을 관리하기 위한 뷰셋을 정의합니다. SchonViewSet 클래스는 ModelViewSet에서 상속되며 schon " +"엔티티에 대한 액션 및 연산을 처리하는 기능을 제공합니다. 여기에는 현재 작업을 기반으로 하는 동적 직렬화기 클래스, 사용자 지정 가능한" +" 권한 및 렌더링 형식에 대한 지원이 포함됩니다." #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" -"속성 그룹 객체를 관리하기 위한 뷰셋을 나타냅니다. 데이터의 필터링, 직렬화, 검" -"색 등 AttributeGroup과 관련된 작업을 처리합니다. 이 클래스는 애플리케이션의 " -"API 계층의 일부이며 AttributeGroup 데이터에 대한 요청 및 응답을 처리하는 표준" -"화된 방법을 제공합니다." +"속성 그룹 객체를 관리하기 위한 뷰셋을 나타냅니다. 데이터의 필터링, 직렬화, 검색 등 AttributeGroup과 관련된 작업을 " +"처리합니다. 이 클래스는 애플리케이션의 API 계층의 일부이며 AttributeGroup 데이터에 대한 요청 및 응답을 처리하는 표준화된" +" 방법을 제공합니다." #: engine/core/viewsets.py:179 msgid "" @@ -3195,24 +3138,21 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"애플리케이션 내에서 속성 개체와 관련된 작업을 처리합니다. 속성 데이터와 상호 " -"작용할 수 있는 API 엔드포인트 세트를 제공합니다. 이 클래스는 속성 개체의 쿼" -"리, 필터링 및 직렬화를 관리하여 특정 필드별로 필터링하거나 요청에 따라 단순화" -"된 정보와 상세한 정보를 검색하는 등 반환되는 데이터를 동적으로 제어할 수 있도" -"록 합니다." +"애플리케이션 내에서 속성 개체와 관련된 작업을 처리합니다. 속성 데이터와 상호 작용할 수 있는 API 엔드포인트 세트를 제공합니다. 이 " +"클래스는 속성 개체의 쿼리, 필터링 및 직렬화를 관리하여 특정 필드별로 필터링하거나 요청에 따라 단순화된 정보와 상세한 정보를 검색하는 " +"등 반환되는 데이터를 동적으로 제어할 수 있도록 합니다." #: engine/core/viewsets.py:198 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"속성값 객체를 관리하기 위한 뷰셋입니다. 이 뷰셋은 AttributeValue 객체를 나" -"열, 검색, 생성, 업데이트 및 삭제하기 위한 기능을 제공합니다. 이 뷰셋은 장고 " -"REST 프레임워크의 뷰셋 메커니즘과 통합되며 다양한 작업에 적절한 직렬화기를 사" -"용합니다. 필터링 기능은 DjangoFilterBackend를 통해 제공됩니다." +"속성값 객체를 관리하기 위한 뷰셋입니다. 이 뷰셋은 AttributeValue 객체를 나열, 검색, 생성, 업데이트 및 삭제하기 위한 " +"기능을 제공합니다. 이 뷰셋은 장고 REST 프레임워크의 뷰셋 메커니즘과 통합되며 다양한 작업에 적절한 직렬화기를 사용합니다. 필터링 " +"기능은 DjangoFilterBackend를 통해 제공됩니다." #: engine/core/viewsets.py:217 msgid "" @@ -3222,10 +3162,9 @@ msgid "" "The viewset also enforces permissions to ensure that only authorized users " "can access specific data." msgstr "" -"카테고리 관련 작업에 대한 보기를 관리합니다. CategoryViewSet 클래스는 시스템" -"에서 카테고리 모델과 관련된 작업을 처리하는 역할을 담당합니다. 카테고리 데이" -"터 검색, 필터링 및 직렬화를 지원합니다. 또한 이 뷰 집합은 권한이 부여된 사용" -"자만 특정 데이터에 액세스할 수 있도록 권한을 적용합니다." +"카테고리 관련 작업에 대한 보기를 관리합니다. CategoryViewSet 클래스는 시스템에서 카테고리 모델과 관련된 작업을 처리하는 " +"역할을 담당합니다. 카테고리 데이터 검색, 필터링 및 직렬화를 지원합니다. 또한 이 뷰 집합은 권한이 부여된 사용자만 특정 데이터에 " +"액세스할 수 있도록 권한을 적용합니다." #: engine/core/viewsets.py:346 msgid "" @@ -3234,9 +3173,8 @@ msgid "" "uses Django's ViewSet framework to simplify the implementation of API " "endpoints for Brand objects." msgstr "" -"브랜드 인스턴스를 관리하기 위한 뷰셋을 나타냅니다. 이 클래스는 브랜드 객체를 " -"쿼리, 필터링 및 직렬화하기 위한 기능을 제공합니다. 이 클래스는 장고의 뷰셋 프" -"레임워크를 사용하여 브랜드 객체에 대한 API 엔드포인트의 구현을 간소화합니다." +"브랜드 인스턴스를 관리하기 위한 뷰셋을 나타냅니다. 이 클래스는 브랜드 객체를 쿼리, 필터링 및 직렬화하기 위한 기능을 제공합니다. 이 " +"클래스는 장고의 뷰셋 프레임워크를 사용하여 브랜드 객체에 대한 API 엔드포인트의 구현을 간소화합니다." #: engine/core/viewsets.py:458 msgid "" @@ -3248,11 +3186,10 @@ msgid "" "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" -"시스템에서 `Product` 모델과 관련된 작업을 관리합니다. 이 클래스는 필터링, 직" -"렬화 및 특정 인스턴스에 대한 작업을 포함하여 제품을 관리하기 위한 뷰셋을 제공" -"합니다. 이 클래스는 공통 기능을 사용하기 위해 `SchonViewSet`에서 확장되며 " -"RESTful API 작업을 위해 Django REST 프레임워크와 통합됩니다. 제품 세부 정보 " -"검색, 권한 적용, 제품의 관련 피드백에 액세스하는 메서드가 포함되어 있습니다." +"시스템에서 `Product` 모델과 관련된 작업을 관리합니다. 이 클래스는 필터링, 직렬화 및 특정 인스턴스에 대한 작업을 포함하여 " +"제품을 관리하기 위한 뷰셋을 제공합니다. 이 클래스는 공통 기능을 사용하기 위해 `SchonViewSet`에서 확장되며 RESTful " +"API 작업을 위해 Django REST 프레임워크와 통합됩니다. 제품 세부 정보 검색, 권한 적용, 제품의 관련 피드백에 액세스하는 " +"메서드가 포함되어 있습니다." #: engine/core/viewsets.py:605 msgid "" @@ -3262,56 +3199,49 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"벤더 객체를 관리하기 위한 뷰셋을 나타냅니다. 이 뷰셋을 통해 벤더 데이터를 가" -"져오고, 필터링하고, 직렬화할 수 있습니다. 다양한 작업을 처리하는 데 사용되는 " -"쿼리 집합, 필터 구성 및 직렬화기 클래스를 정의합니다. 이 클래스의 목적은 " -"Django REST 프레임워크를 통해 공급업체 관련 리소스에 대한 간소화된 액세스를 " -"제공하는 것입니다." +"벤더 객체를 관리하기 위한 뷰셋을 나타냅니다. 이 뷰셋을 통해 벤더 데이터를 가져오고, 필터링하고, 직렬화할 수 있습니다. 다양한 작업을" +" 처리하는 데 사용되는 쿼리 집합, 필터 구성 및 직렬화기 클래스를 정의합니다. 이 클래스의 목적은 Django REST 프레임워크를 " +"통해 공급업체 관련 리소스에 대한 간소화된 액세스를 제공하는 것입니다." #: engine/core/viewsets.py:625 msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" -"피드백 개체를 처리하는 뷰 집합의 표현입니다. 이 클래스는 세부 정보 나열, 필터" -"링 및 검색을 포함하여 피드백 개체에 관련된 작업을 관리합니다. 이 뷰 세트의 목" -"적은 다양한 작업에 대해 서로 다른 직렬화기를 제공하고 접근 가능한 피드백 객체" -"에 대한 권한 기반 처리를 구현하는 것입니다. 이 클래스는 기본 `SchonViewSet`" -"을 확장하고 데이터 쿼리를 위해 Django의 필터링 시스템을 사용합니다." +"피드백 개체를 처리하는 뷰 집합의 표현입니다. 이 클래스는 세부 정보 나열, 필터링 및 검색을 포함하여 피드백 개체에 관련된 작업을 " +"관리합니다. 이 뷰 세트의 목적은 다양한 작업에 대해 서로 다른 직렬화기를 제공하고 접근 가능한 피드백 객체에 대한 권한 기반 처리를 " +"구현하는 것입니다. 이 클래스는 기본 `SchonViewSet`을 확장하고 데이터 쿼리를 위해 Django의 필터링 시스템을 사용합니다." #: engine/core/viewsets.py:652 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"주문 및 관련 작업을 관리하기 위한 뷰셋입니다. 이 클래스는 주문 객체를 검색, " -"수정, 관리하는 기능을 제공합니다. 여기에는 제품 추가 또는 제거, 등록 및 미등" -"록 사용자에 대한 구매 수행, 현재 인증된 사용자의 보류 중인 주문 검색 등 주문 " -"작업을 처리하기 위한 다양한 엔드포인트가 포함되어 있습니다. 뷰셋은 수행되는 " -"특정 작업에 따라 여러 직렬화기를 사용하며 주문 데이터와 상호 작용하는 동안 그" -"에 따라 권한을 적용합니다." +"주문 및 관련 작업을 관리하기 위한 뷰셋입니다. 이 클래스는 주문 객체를 검색, 수정, 관리하는 기능을 제공합니다. 여기에는 제품 추가 " +"또는 제거, 등록 및 미등록 사용자에 대한 구매 수행, 현재 인증된 사용자의 보류 중인 주문 검색 등 주문 작업을 처리하기 위한 다양한 " +"엔드포인트가 포함되어 있습니다. 뷰셋은 수행되는 특정 작업에 따라 여러 직렬화기를 사용하며 주문 데이터와 상호 작용하는 동안 그에 따라 " +"권한을 적용합니다." #: engine/core/viewsets.py:914 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" -"주문 제품 엔티티를 관리하기 위한 뷰셋을 제공합니다. 이 뷰셋을 사용하면 주문 " -"제품 모델에 특정한 CRUD 작업 및 사용자 지정 작업을 수행할 수 있습니다. 여기에" -"는 요청된 작업을 기반으로 필터링, 권한 확인 및 직렬화기 전환이 포함됩니다. 또" -"한 주문 제품 인스턴스에 대한 피드백 처리를 위한 세부 작업도 제공합니다." +"주문 제품 엔티티를 관리하기 위한 뷰셋을 제공합니다. 이 뷰셋을 사용하면 주문 제품 모델에 특정한 CRUD 작업 및 사용자 지정 작업을 " +"수행할 수 있습니다. 여기에는 요청된 작업을 기반으로 필터링, 권한 확인 및 직렬화기 전환이 포함됩니다. 또한 주문 제품 인스턴스에 대한" +" 피드백 처리를 위한 세부 작업도 제공합니다." #: engine/core/viewsets.py:974 msgid "Manages operations related to Product images in the application. " @@ -3321,8 +3251,7 @@ msgstr "애플리케이션에서 제품 이미지와 관련된 작업을 관리 msgid "" "Manages the retrieval and handling of PromoCode instances through various " "API actions." -msgstr "" -"다양한 API 작업을 통해 프로모션 코드 인스턴스의 검색 및 처리를 관리합니다." +msgstr "다양한 API 작업을 통해 프로모션 코드 인스턴스의 검색 및 처리를 관리합니다." #: engine/core/viewsets.py:1019 msgid "Represents a view set for managing promotions. " @@ -3336,18 +3265,15 @@ msgstr "시스템에서 주식 데이터와 관련된 작업을 처리합니다. msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" -"위시리스트 작업을 관리하기 위한 뷰셋입니다. 위시리스트뷰셋은 사용자의 위시리" -"스트와 상호 작용할 수 있는 엔드포인트를 제공하여 위시리스트 내의 제품을 검" -"색, 수정 및 사용자 지정할 수 있도록 합니다. 이 뷰셋은 위시리스트 제품에 대한 " -"추가, 제거 및 대량 작업과 같은 기능을 용이하게 합니다. 명시적인 권한이 부여되" -"지 않는 한 사용자가 자신의 위시리스트만 관리할 수 있도록 권한 검사가 통합되" -"어 있습니다." +"위시리스트 작업을 관리하기 위한 뷰셋입니다. 위시리스트뷰셋은 사용자의 위시리스트와 상호 작용할 수 있는 엔드포인트를 제공하여 위시리스트 " +"내의 제품을 검색, 수정 및 사용자 지정할 수 있도록 합니다. 이 뷰셋은 위시리스트 제품에 대한 추가, 제거 및 대량 작업과 같은 기능을" +" 용이하게 합니다. 명시적인 권한이 부여되지 않는 한 사용자가 자신의 위시리스트만 관리할 수 있도록 권한 검사가 통합되어 있습니다." #: engine/core/viewsets.py:1183 msgid "" @@ -3357,10 +3283,9 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"이 클래스는 `주소` 객체를 관리하기 위한 뷰셋 기능을 제공합니다. 주소 뷰셋 클" -"래스는 주소 엔티티와 관련된 CRUD 작업, 필터링 및 사용자 정의 작업을 가능하게 " -"합니다. 여기에는 다양한 HTTP 메서드, 직렬화기 재정의, 요청 컨텍스트에 따른 권" -"한 처리를 위한 특수 동작이 포함되어 있습니다." +"이 클래스는 `주소` 객체를 관리하기 위한 뷰셋 기능을 제공합니다. 주소 뷰셋 클래스는 주소 엔티티와 관련된 CRUD 작업, 필터링 및 " +"사용자 정의 작업을 가능하게 합니다. 여기에는 다양한 HTTP 메서드, 직렬화기 재정의, 요청 컨텍스트에 따른 권한 처리를 위한 특수 " +"동작이 포함되어 있습니다." #: engine/core/viewsets.py:1254 #, python-brace-format @@ -3375,7 +3300,6 @@ msgid "" "using the specified filter backend and dynamically uses different " "serializers based on the action being performed." msgstr "" -"애플리케이션 내에서 제품 태그와 관련된 작업을 처리합니다. 이 클래스는 제품 태" -"그 객체를 검색, 필터링 및 직렬화하기 위한 기능을 제공합니다. 지정된 필터 백엔" -"드를 사용하여 특정 속성에 대한 유연한 필터링을 지원하며 수행 중인 작업에 따" -"라 다양한 직렬화기를 동적으로 사용합니다." +"애플리케이션 내에서 제품 태그와 관련된 작업을 처리합니다. 이 클래스는 제품 태그 객체를 검색, 필터링 및 직렬화하기 위한 기능을 " +"제공합니다. 지정된 필터 백엔드를 사용하여 특정 속성에 대한 유연한 필터링을 지원하며 수행 중인 작업에 따라 다양한 직렬화기를 동적으로 " +"사용합니다." diff --git a/engine/core/locale/nl_NL/LC_MESSAGES/django.mo b/engine/core/locale/nl_NL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7a202079edf4e60eace35f5142c13a350053878b GIT binary patch literal 94636 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 O=d|YdQqgGg%=CX9#@Z$T literal 0 HcmV?d00001 diff --git a/engine/core/locale/nl_NL/LC_MESSAGES/django.po b/engine/core/locale/nl_NL/LC_MESSAGES/django.po index 99091a68..7eff3454 100644 --- a/engine/core/locale/nl_NL/LC_MESSAGES/django.po +++ b/engine/core/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "Is actief" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Als false is ingesteld, kan dit object niet worden gezien door gebruikers " "zonder de benodigde toestemming" @@ -74,8 +75,8 @@ msgstr "Tijdstempels" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "Activeer geselecteerde %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" +msgstr "Geselecteerde %(verbose_name_plural)s activeren" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -83,21 +84,21 @@ msgstr "Geselecteerde items zijn geactiveerd!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Deactiveer geselecteerd %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "Geselecteerde %(verbose_name_plural)s deactiveren" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "Geselecteerde items zijn gedeactiveerd!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Attribuut Waarde" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Attribuutwaarden" @@ -117,12 +118,12 @@ msgstr "Voorraad" msgid "stocks" msgstr "Aandelen" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Product bestellen" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Producten bestellen" @@ -130,7 +131,32 @@ msgstr "Producten bestellen" msgid "children" msgstr "Kinderen" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Heeft afbeeldingen" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "" +"Exporteer geselecteerde %(verbose_name_plural)s naar feeds van marktplaatsen" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "Geselecteerde %(verbose_name_plural)s zijn gemarkeerd voor export." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Verwijder %(verbose_name_plural)s uit de feeds van marktplaatsen" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Geselecteerde %(verbose_name_plural)s zijn verboden voor export." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Config" @@ -154,7 +180,8 @@ msgstr "Geleverd" msgid "canceled" msgstr "Geannuleerd" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Mislukt" @@ -206,8 +233,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Alleen een sleutel gebruiken om toegestane gegevens uit de cache te lezen.\n" -"Sleutel, gegevens en time-out met verificatie toepassen om gegevens naar de " -"cache te schrijven." +"Sleutel, gegevens en time-out met verificatie toepassen om gegevens naar de cache te schrijven." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -273,7 +299,8 @@ msgstr "" "opslaan" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Enkele velden van een bestaande attribuutgroep herschrijven door niet-" "wijzigbare velden op te slaan" @@ -328,7 +355,8 @@ msgstr "" "attributen worden opgeslagen" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Herschrijf sommige velden van een bestaande attribuutwaarde door niet-" "wijzigbare velden op te slaan" @@ -374,7 +402,8 @@ msgstr "SEO Meta momentopname" #: engine/core/docs/drf/viewsets.py:281 msgid "returns a snapshot of the category's SEO meta data" msgstr "" -"Geeft als resultaat een momentopname van de SEO-metagegevens van de categorie" +"Geeft als resultaat een momentopname van de SEO-metagegevens van de " +"categorie" #: engine/core/docs/drf/viewsets.py:302 msgid "list all orders (simple view)" @@ -383,15 +412,16 @@ msgstr "Alle categorieën weergeven (eenvoudige weergave)" #: engine/core/docs/drf/viewsets.py:303 msgid "for non-staff users, only their own orders are returned." msgstr "" -"Voor niet-personeelsleden worden alleen hun eigen bestellingen geretourneerd." +"Voor niet-personeelsleden worden alleen hun eigen bestellingen " +"geretourneerd." #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Hoofdlettergevoelig substring zoeken in human_readable_id, order_products." -"product.name en order_products.product.partnumber" +"Hoofdlettergevoelig substring zoeken in human_readable_id, " +"order_products.product.name en order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -424,13 +454,13 @@ msgstr "Filter op bestelstatus (hoofdlettergevoelige substringmatch)" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Sorteer op een van: uuid, human_readable_id, user_email, gebruiker, status, " -"gemaakt, gewijzigd, buy_time, willekeurig. Voorvoegsel met '-' voor aflopend " -"(bijv. '-buy_time')." +"gemaakt, gewijzigd, buy_time, willekeurig. Voorvoegsel met '-' voor aflopend" +" (bijv. '-buy_time')." #: engine/core/docs/drf/viewsets.py:366 msgid "retrieve a single order (detailed view)" @@ -491,7 +521,8 @@ msgstr "een bestelling kopen zonder een account aan te maken" #: engine/core/docs/drf/viewsets.py:439 msgid "finalizes the order purchase for a non-registered user." msgstr "" -"Rondt de aankoop van de bestelling af voor een niet-geregistreerde gebruiker." +"Rondt de aankoop van de bestelling af voor een niet-geregistreerde " +"gebruiker." #: engine/core/docs/drf/viewsets.py:450 msgid "add product to order" @@ -635,28 +666,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filter op een of meer attribuutnaam-/waardeparen. \n" "- **Syntaxis**: `attr_name=methode-waarde[;attr2=methode2-waarde2]...`\n" -"- **Methodes** (standaard op `icontains` indien weggelaten): `iexact`, " -"`exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, " -"`endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- Waarde typen**: JSON wordt eerst geprobeerd (zodat je lijsten/dicten kunt " -"doorgeven), `true`/`false` voor booleans, integers, floats; anders behandeld " -"als string. \n" -"- **Base64**: prefix met `b64-` om URL-veilige base64-encodering van de ruwe " -"waarde. \n" +"- **Methodes** (standaard op `icontains` indien weggelaten): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- Waarde typen**: JSON wordt eerst geprobeerd (zodat je lijsten/dicten kunt doorgeven), `true`/`false` voor booleans, integers, floats; anders behandeld als string. \n" +"- **Base64**: prefix met `b64-` om URL-veilige base64-encodering van de ruwe waarde. \n" "Voorbeelden: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." @@ -671,14 +692,11 @@ msgstr "(exacte) UUID van product" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Door komma's gescheiden lijst van velden om op te sorteren. Voorvoegsel met " -"`-` voor aflopend. \n" -"**Toegestaan:** uuid, beoordeling, naam, slug, gemaakt, gewijzigd, prijs, " -"willekeurig" +"Door komma's gescheiden lijst van velden om op te sorteren. Voorvoegsel met `-` voor aflopend. \n" +"**Toegestaan:** uuid, beoordeling, naam, slug, gemaakt, gewijzigd, prijs, willekeurig" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "retrieve a single product (detailed view)" @@ -791,7 +809,8 @@ msgstr "alle order-productrelaties weergeven (eenvoudige weergave)" #: engine/core/docs/drf/viewsets.py:929 msgid "retrieve a single order–product relation (detailed view)" -msgstr "een enkele bestelling-productrelatie ophalen (gedetailleerde weergave)" +msgstr "" +"een enkele bestelling-productrelatie ophalen (gedetailleerde weergave)" #: engine/core/docs/drf/viewsets.py:939 msgid "create a new order–product relation" @@ -1239,8 +1258,8 @@ msgstr "Een bestelling kopen" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Stuur de attributen als de string opgemaakt als attr1=waarde1,attr2=waarde2" @@ -1261,9 +1280,9 @@ msgstr "Orderproduct {order_product_uuid} niet gevonden!" msgid "original address string provided by the user" msgstr "Originele adresstring geleverd door de gebruiker" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1279,8 +1298,8 @@ msgstr "ElasticSearch - werkt als een charme" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Attributen" @@ -1318,7 +1337,8 @@ msgstr "" "filteren." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimale en maximale prijzen voor producten in deze categorie, indien " "beschikbaar." @@ -1357,7 +1377,7 @@ msgid "represents feedback from a user." msgstr "Vertegenwoordigt feedback van een gebruiker." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Meldingen" @@ -1365,7 +1385,7 @@ msgstr "Meldingen" msgid "download url for this order product if applicable" msgstr "Download url voor dit bestelproduct indien van toepassing" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Feedback" @@ -1373,7 +1393,7 @@ msgstr "Feedback" msgid "a list of order products in this order" msgstr "Een lijst met bestelde producten in deze bestelling" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Factuuradres" @@ -1401,7 +1421,7 @@ msgstr "Zijn alle producten in de bestelling digitaal" msgid "transactions for this order" msgstr "Transacties voor deze bestelling" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Bestellingen" @@ -1418,7 +1438,7 @@ msgstr "Afbeeldingen van het product" msgid "category" msgstr "Categorie" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Reacties" @@ -1459,7 +1479,7 @@ msgstr "Producten alleen beschikbaar voor persoonlijke bestellingen" msgid "discount price" msgstr "Korting" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Producten" @@ -1471,7 +1491,7 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Producten te koop" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Promoties" @@ -1479,7 +1499,7 @@ msgstr "Promoties" msgid "vendor" msgstr "Verkoper" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1487,11 +1507,11 @@ msgstr "Verkoper" msgid "product" msgstr "Product" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Gewenste producten" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Verlanglijst" @@ -1594,8 +1614,8 @@ msgstr "" "Vertegenwoordigt een groep attributen, die hiërarchisch kan zijn. Deze " "klasse wordt gebruikt om groepen van attributen te beheren en te " "organiseren. Een attribuutgroep kan een bovenliggende groep hebben, die een " -"hiërarchische structuur vormt. Dit kan nuttig zijn voor het categoriseren en " -"effectiever beheren van attributen in een complex systeem." +"hiërarchische structuur vormt. Dit kan nuttig zijn voor het categoriseren en" +" effectiever beheren van attributen in een complex systeem." #: engine/core/models.py:88 msgid "parent of this group" @@ -1609,7 +1629,7 @@ msgstr "Ouderattribuutgroep" msgid "attribute group's name" msgstr "Naam attribuutgroep" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Attribuutgroep" @@ -1623,8 +1643,8 @@ msgid "" "also maintains additional metadata and constraints, making it suitable for " "use in systems that interact with third-party vendors." msgstr "" -"Vertegenwoordigt een verkopersentiteit die informatie over externe verkopers " -"en hun interactievereisten kan opslaan. De klasse Vendor wordt gebruikt om " +"Vertegenwoordigt een verkopersentiteit die informatie over externe verkopers" +" en hun interactievereisten kan opslaan. De klasse Vendor wordt gebruikt om " "informatie over een externe verkoper te definiëren en te beheren. Het slaat " "de naam van de verkoper op, authenticatiegegevens die nodig zijn voor " "communicatie en het opmaakpercentage dat wordt toegepast op producten die " @@ -1685,8 +1705,8 @@ msgid "" msgstr "" "Vertegenwoordigt een producttag die wordt gebruikt om producten te " "classificeren of te identificeren. De klasse ProductTag is ontworpen om " -"producten uniek te identificeren en te classificeren door een combinatie van " -"een interne tagidentifier en een gebruiksvriendelijke weergavenaam. Het " +"producten uniek te identificeren en te classificeren door een combinatie van" +" een interne tagidentifier en een gebruiksvriendelijke weergavenaam. Het " "ondersteunt bewerkingen die geëxporteerd worden door mixins en biedt " "aanpassing van metadata voor administratieve doeleinden." @@ -1744,12 +1764,12 @@ msgstr "" "Vertegenwoordigt een categorie-entiteit voor het organiseren en groeperen " "van gerelateerde items in een hiërarchische structuur. Categorieën kunnen " "hiërarchische relaties hebben met andere categorieën, waarbij ouder-kind " -"relaties worden ondersteund. De klasse bevat velden voor metadata en visuele " -"weergave, die dienen als basis voor categorie-gerelateerde functies. Deze " -"klasse wordt meestal gebruikt om productcategorieën of andere gelijksoortige " -"groeperingen binnen een applicatie te definiëren en te beheren, waarbij " -"gebruikers of beheerders de naam, beschrijving en hiërarchie van categorieën " -"kunnen specificeren en attributen zoals afbeeldingen, tags of prioriteit " +"relaties worden ondersteund. De klasse bevat velden voor metadata en visuele" +" weergave, die dienen als basis voor categorie-gerelateerde functies. Deze " +"klasse wordt meestal gebruikt om productcategorieën of andere gelijksoortige" +" groeperingen binnen een applicatie te definiëren en te beheren, waarbij " +"gebruikers of beheerders de naam, beschrijving en hiërarchie van categorieën" +" kunnen specificeren en attributen zoals afbeeldingen, tags of prioriteit " "kunnen toekennen." #: engine/core/models.py:269 @@ -1801,7 +1821,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Vertegenwoordigt een merkobject in het systeem. Deze klasse behandelt " "informatie en attributen met betrekking tot een merk, inclusief de naam, " @@ -1851,8 +1872,8 @@ msgstr "Categorieën" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1886,8 +1907,8 @@ msgstr "Verkoopprijs" msgid "the product associated with this stock entry" msgstr "Het product dat bij deze voorraadvermelding hoort" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Bijbehorend product" @@ -1988,7 +2009,7 @@ msgstr "Zorg voor een duidelijke identificerende naam voor het product" msgid "product name" msgstr "Naam product" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Voeg een gedetailleerde beschrijving van het product toe" @@ -2008,110 +2029,118 @@ msgstr "Onderdeelnummer" msgid "stock keeping unit for this product" msgstr "Voorraadhoudende eenheid voor dit product" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Of dit product naar marktplaatsen moet worden geëxporteerd" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Exporteren naar marktplaatsen" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"Vertegenwoordigt een attribuut in het systeem. Deze klasse wordt gebruikt om " -"attributen te definiëren en te beheren. Dit zijn aanpasbare stukjes data die " -"kunnen worden geassocieerd met andere entiteiten. Attributen hebben " +"Vertegenwoordigt een attribuut in het systeem. Deze klasse wordt gebruikt om" +" attributen te definiëren en te beheren. Dit zijn aanpasbare stukjes data " +"die kunnen worden geassocieerd met andere entiteiten. Attributen hebben " "geassocieerde categorieën, groepen, waardetypes en namen. Het model " "ondersteunt meerdere typen waarden, waaronder string, integer, float, " "boolean, array en object. Dit maakt dynamische en flexibele " "gegevensstructurering mogelijk." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Groep van dit kenmerk" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "String" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Integer" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Vlotter" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Booleaans" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Array" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Object" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Type waarde van het kenmerk" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Waardetype" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Naam van dit kenmerk" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Naam attribuut" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "kan worden gefilterd" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Welke attributen en waarden kunnen worden gebruikt om deze categorie te " "filteren." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribuut" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Vertegenwoordigt een specifieke waarde voor een kenmerk dat is gekoppeld aan " -"een product. Het koppelt het 'kenmerk' aan een unieke 'waarde', wat een " +"Vertegenwoordigt een specifieke waarde voor een kenmerk dat is gekoppeld aan" +" een product. Het koppelt het 'kenmerk' aan een unieke 'waarde', wat een " "betere organisatie en dynamische weergave van productkenmerken mogelijk " "maakt." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Attribuut van deze waarde" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Het specifieke product geassocieerd met de waarde van dit kenmerk" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "De specifieke waarde voor dit kenmerk" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2122,46 +2151,46 @@ msgstr "" "weergavevolgorde te bepalen. Het bevat ook een toegankelijkheidsfunctie met " "alternatieve tekst voor de afbeeldingen." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Geef alternatieve tekst voor de afbeelding voor toegankelijkheid" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Alt-tekst afbeelding" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Upload het afbeeldingsbestand voor dit product" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Product afbeelding" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Bepaalt de volgorde waarin afbeeldingen worden weergegeven" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Prioriteit weergeven" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Het product dat deze afbeelding vertegenwoordigt" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Product afbeeldingen" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Vertegenwoordigt een promotiecampagne voor producten met een korting. Deze " "klasse wordt gebruikt om promotiecampagnes te definiëren en beheren die een " @@ -2171,39 +2200,39 @@ msgstr "" "integreert met de productcatalogus om de betreffende artikelen in de " "campagne te bepalen." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Kortingspercentage voor de geselecteerde producten" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Kortingspercentage" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Geef deze promotie een unieke naam" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Naam promotie" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Promotie beschrijving" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Selecteer welke producten onder deze promotie vallen" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Meegeleverde producten" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Promotie" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2216,30 +2245,30 @@ msgstr "" "toevoegen en verwijderen van producten, maar ook bewerkingen voor het " "toevoegen en verwijderen van meerdere producten tegelijk." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Producten die de gebruiker als gewenst heeft gemarkeerd" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Gebruiker die eigenaar is van deze verlanglijst" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Eigenaar verlanglijstje" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Verlanglijst" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Vertegenwoordigt een documentair record gekoppeld aan een product. Deze " "klasse wordt gebruikt om informatie op te slaan over documentaires met " @@ -2249,92 +2278,92 @@ msgstr "" "Het breidt functionaliteit uit van specifieke mixins en biedt extra " "aangepaste functies." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Documentaire" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Documentaires" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Onopgelost" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Vertegenwoordigt een adresentiteit met locatiegegevens en associaties met " "een gebruiker. Biedt functionaliteit voor het opslaan van geografische en " "adresgegevens, evenals integratie met geocoderingsservices. Deze klasse is " -"ontworpen om gedetailleerde adresgegevens op te slaan, inclusief componenten " -"als straat, stad, regio, land en geolocatie (lengtegraad en breedtegraad). " +"ontworpen om gedetailleerde adresgegevens op te slaan, inclusief componenten" +" als straat, stad, regio, land en geolocatie (lengtegraad en breedtegraad). " "Het ondersteunt integratie met geocodering API's, waardoor de opslag van " "ruwe API antwoorden voor verdere verwerking of inspectie mogelijk wordt. De " "klasse maakt het ook mogelijk om een adres met een gebruiker te associëren, " "wat het verwerken van gepersonaliseerde gegevens vergemakkelijkt." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Adresregel voor de klant" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Adresregel" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Straat" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "District" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Stad" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Regio" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Postcode" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Land" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocatie Punt (lengtegraad, breedtegraad)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Volledig JSON-antwoord van geocoder voor dit adres" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Opgeslagen JSON-antwoord van de geocoderingsservice" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Adres" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adressen" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2352,97 +2381,98 @@ msgstr "" "te valideren en toe te passen op een bestelling, waarbij ervoor wordt " "gezorgd dat aan de beperkingen wordt voldaan." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Unieke code die een gebruiker gebruikt om een korting te verzilveren" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Promo code identificatie" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "" "Vast kortingsbedrag dat wordt toegepast als percentage niet wordt gebruikt" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Vast kortingsbedrag" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "" "Kortingspercentage dat wordt toegepast als het vaste bedrag niet wordt " "gebruikt" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Kortingspercentage" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Tijdstempel wanneer de promocode verloopt" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Geldigheidsduur einde" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Tijdstempel vanaf wanneer deze promocode geldig is" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Begin geldigheidsduur" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -"Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet gebruikt" +"Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet " +"gebruikt" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Gebruik tijdstempel" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Gebruiker toegewezen aan deze promocode indien van toepassing" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Toegewezen gebruiker" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Kortingscode" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Actiecodes" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Er moet slechts één type korting worden gedefinieerd (bedrag of percentage), " -"maar niet beide of geen van beide." +"Er moet slechts één type korting worden gedefinieerd (bedrag of percentage)," +" maar niet beide of geen van beide." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Promocode is al gebruikt" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ongeldig kortingstype voor promocode {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2455,142 +2485,142 @@ msgstr "" "bijgewerkt. De functionaliteit ondersteunt ook het beheer van de producten " "in de levenscyclus van de bestelling." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Het factuuradres dat voor deze bestelling is gebruikt" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Optionele promotiecode toegepast op deze bestelling" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Kortingscode toegepast" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Het verzendadres dat voor deze bestelling is gebruikt" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Verzendadres" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Huidige status van de order in zijn levenscyclus" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Bestelstatus" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "JSON-structuur van meldingen om weer te geven aan gebruikers, in admin UI " "wordt de tabelweergave gebruikt" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "JSON-weergave van bestelattributen voor deze bestelling" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "De gebruiker die de bestelling heeft geplaatst" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Gebruiker" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "De tijdstempel waarop de bestelling is afgerond" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Tijd kopen" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Een menselijk leesbare identificatiecode voor de bestelling" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "menselijk leesbare ID" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Bestel" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "Een gebruiker mag maar één lopende order tegelijk hebben!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" "U kunt geen producten toevoegen aan een bestelling die niet in behandeling " "is." -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "U kunt geen inactieve producten toevoegen aan uw bestelling" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "Je kunt niet meer producten toevoegen dan er op voorraad zijn" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -"U kunt geen producten verwijderen uit een bestelling die niet in behandeling " -"is." +"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" +" is." -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} bestaat niet met query <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Promocode bestaat niet" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "Je kunt alleen fysieke producten kopen met opgegeven verzendadres!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Adres bestaat niet" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "U kunt op dit moment niet kopen. Probeer het over een paar minuten nog eens." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Ongeldige krachtwaarde" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Je kunt geen lege bestelling kopen!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "" -"U kunt geen producten verwijderen uit een bestelling die niet in behandeling " -"is." +"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" +" is." -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Een gebruiker zonder saldo kan niet kopen met saldo!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Onvoldoende fondsen om de bestelling te voltooien" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2598,14 +2628,15 @@ msgstr "" "u niet kunt kopen zonder registratie, geef dan de volgende informatie: " "klantnaam, e-mail klant, telefoonnummer klant" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -"Ongeldige betalingsmethode: {payment_method} van {available_payment_methods}!" +"Ongeldige betalingsmethode: {payment_method} van " +"{available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2614,40 +2645,41 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "Beheert gebruikersfeedback voor producten. Deze klasse is ontworpen om " -"feedback van gebruikers over specifieke producten die ze hebben gekocht vast " -"te leggen en op te slaan. De klasse bevat attributen voor het opslaan van " +"feedback van gebruikers over specifieke producten die ze hebben gekocht vast" +" te leggen en op te slaan. De klasse bevat attributen voor het opslaan van " "opmerkingen van gebruikers, een verwijzing naar het betreffende product in " "de bestelling en een door de gebruiker toegekende beoordeling. De klasse " "gebruikt databasevelden om feedbackgegevens effectief te modelleren en te " "beheren." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "Opmerkingen van gebruikers over hun ervaring met het product" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Reacties" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Verwijst naar het specifieke product in een bestelling waar deze feedback " "over gaat" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Gerelateerd product bestellen" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Door de gebruiker toegekende waardering voor het product" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Productbeoordeling" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2667,120 +2699,120 @@ msgstr "" "het producttegoed of het toevoegen van feedback. Dit model biedt ook " "methoden en eigenschappen die bedrijfslogica ondersteunen, zoals het " "berekenen van de totaalprijs of het genereren van een download-URL voor " -"digitale producten. Het model integreert met de modellen Order en Product en " -"slaat een verwijzing ernaar op." +"digitale producten. Het model integreert met de modellen Order en Product en" +" slaat een verwijzing ernaar op." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "De prijs die de klant bij aankoop voor dit product heeft betaald" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Aankoopprijs bij bestelling" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Interne opmerkingen voor beheerders over dit bestelde product" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Interne opmerkingen" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Meldingen van gebruikers" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "JSON weergave van de attributen van dit item" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Geordende producteigenschappen" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Verwijzing naar de bovenliggende bestelling die dit product bevat" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Ouderlijk bevel" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Het specifieke product dat bij deze bestelregel hoort" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Hoeveelheid van dit specifieke product in de bestelling" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Hoeveelheid product" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Huidige status van dit product in de bestelling" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Status productlijn" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Orderproduct moet een bijbehorende order hebben!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Verkeerde actie opgegeven voor feedback: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "" -"U kunt geen producten verwijderen uit een bestelling die niet in behandeling " -"is." +"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" +" is." -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Naam" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL van de integratie" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Authenticatiegegevens" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Je kunt maar één standaard CRM-provider hebben" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM's" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "CRM link van bestelling" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "CRM-koppelingen voor bestellingen" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Vertegenwoordigt de downloadfunctionaliteit voor digitale activa gekoppeld " "aan bestellingen. De DigitalAssetDownload klasse biedt de mogelijkheid om " @@ -2790,11 +2822,11 @@ msgstr "" "om een URL te genereren voor het downloaden van de activa wanneer de " "bijbehorende order een voltooide status heeft." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Downloaden" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Downloads" @@ -2995,8 +3027,7 @@ msgstr "Hallo %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Hartelijk dank voor uw bestelling #%(order.pk)s! We zijn blij om u te " @@ -3111,8 +3142,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Bedankt voor uw bestelling! We zijn blij om uw aankoop te bevestigen. " @@ -3149,7 +3179,8 @@ msgstr "Zowel gegevens als time-out zijn vereist" #: engine/core/utils/caching.py:52 msgid "invalid timeout value, it must be between 0 and 216000 seconds" -msgstr "Ongeldige time-outwaarde, deze moet tussen 0 en 216000 seconden liggen" +msgstr "" +"Ongeldige time-outwaarde, deze moet tussen 0 en 216000 seconden liggen" #: engine/core/utils/emailing.py:27 #, python-brace-format @@ -3219,8 +3250,8 @@ msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Verwerkt cachebewerkingen zoals het lezen en instellen van cachegegevens met " -"een opgegeven sleutel en time-out." +"Verwerkt cachebewerkingen zoals het lezen en instellen van cachegegevens met" +" een opgegeven sleutel en time-out." #: engine/core/views.py:220 msgid "Handles `contact us` form submissions." @@ -3231,8 +3262,8 @@ msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -"Handelt verzoeken af voor het verwerken en valideren van URL's van inkomende " -"POST-verzoeken." +"Handelt verzoeken af voor het verwerken en valideren van URL's van inkomende" +" POST-verzoeken." #: engine/core/views.py:273 msgid "Handles global search queries." @@ -3245,16 +3276,10 @@ msgstr "Behandelt de logica van kopen als bedrijf zonder registratie." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" -"Handelt het downloaden af van een digitaal actief dat is gekoppeld aan een " -"bestelling.\n" -"Deze functie probeert het digitale activabestand te serveren dat zich in de " -"opslagmap van het project bevindt. Als het bestand niet wordt gevonden, " -"wordt er een HTTP 404-fout weergegeven om aan te geven dat de bron niet " -"beschikbaar is." +"Handelt het downloaden af van een digitaal actief dat is gekoppeld aan een bestelling.\n" +"Deze functie probeert het digitale activabestand te serveren dat zich in de opslagmap van het project bevindt. Als het bestand niet wordt gevonden, wordt er een HTTP 404-fout weergegeven om aan te geven dat de bron niet beschikbaar is." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3285,20 +3310,15 @@ msgstr "favicon niet gevonden" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Handelt verzoeken af voor de favicon van een website.\n" -"Deze functie probeert het favicon-bestand te serveren dat zich in de " -"statische map van het project bevindt. Als het favicon-bestand niet wordt " -"gevonden, wordt er een HTTP 404-fout weergegeven om aan te geven dat de bron " -"niet beschikbaar is." +"Deze functie probeert het favicon-bestand te serveren dat zich in de statische map van het project bevindt. Als het favicon-bestand niet wordt gevonden, wordt er een HTTP 404-fout weergegeven om aan te geven dat de bron niet beschikbaar is." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Stuurt het verzoek door naar de admin-indexpagina. De functie handelt " @@ -3321,9 +3341,9 @@ msgstr "Geeft aangepaste variabelen voor Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3335,10 +3355,11 @@ msgstr "" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Vertegenwoordigt een viewset voor het beheren van AttributeGroup objecten. " "Verwerkt bewerkingen met betrekking tot AttributeGroup, inclusief filteren, " @@ -3359,20 +3380,21 @@ msgstr "" "applicatie. Biedt een set API-eindpunten voor interactie met " "Attribuutgegevens. Deze klasse beheert het opvragen, filteren en seriëren " "van Attribuutobjecten, waardoor dynamische controle over de geretourneerde " -"gegevens mogelijk is, zoals filteren op specifieke velden of het ophalen van " -"gedetailleerde versus vereenvoudigde informatie afhankelijk van het verzoek." +"gegevens mogelijk is, zoals filteren op specifieke velden of het ophalen van" +" gedetailleerde versus vereenvoudigde informatie afhankelijk van het " +"verzoek." #: engine/core/viewsets.py:198 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"Een viewset voor het beheren van AttributeValue-objecten. Deze viewset biedt " -"functionaliteit voor het opsommen, ophalen, maken, bijwerken en verwijderen " -"van AttributeValue objecten. Het integreert met Django REST Framework's " +"Een viewset voor het beheren van AttributeValue-objecten. Deze viewset biedt" +" functionaliteit voor het opsommen, ophalen, maken, bijwerken en verwijderen" +" van AttributeValue objecten. Het integreert met Django REST Framework's " "viewset mechanismen en gebruikt passende serializers voor verschillende " "acties. Filtermogelijkheden worden geleverd door de DjangoFilterBackend." @@ -3388,8 +3410,8 @@ msgstr "" "CategoryViewSet is verantwoordelijk voor het afhandelen van bewerkingen met " "betrekking tot het categoriemodel in het systeem. Het ondersteunt het " "ophalen, filteren en seriëren van categoriegegevens. De viewset dwingt ook " -"rechten af om ervoor te zorgen dat alleen bevoegde gebruikers toegang hebben " -"tot specifieke gegevens." +"rechten af om ervoor te zorgen dat alleen bevoegde gebruikers toegang hebben" +" tot specifieke gegevens." #: engine/core/viewsets.py:346 msgid "" @@ -3416,11 +3438,10 @@ msgstr "" "Beheert bewerkingen met betrekking tot het `Product` model in het systeem. " "Deze klasse biedt een viewset voor het beheren van producten, inclusief hun " "filtering, serialisatie en bewerkingen op specifieke instanties. Het breidt " -"uit van `SchonViewSet` om gemeenschappelijke functionaliteit te gebruiken " -"en integreert met het Django REST framework voor RESTful API operaties. " -"Bevat methoden voor het ophalen van productdetails, het toepassen van " -"machtigingen en het verkrijgen van toegang tot gerelateerde feedback over " -"een product." +"uit van `SchonViewSet` om gemeenschappelijke functionaliteit te gebruiken en" +" integreert met het Django REST framework voor RESTful API operaties. Bevat " +"methoden voor het ophalen van productdetails, het toepassen van machtigingen" +" en het verkrijgen van toegang tot gerelateerde feedback over een product." #: engine/core/viewsets.py:605 msgid "" @@ -3433,8 +3454,8 @@ msgstr "" "Vertegenwoordigt een viewset voor het beheren van Vendor-objecten. Met deze " "viewset kunnen gegevens van een verkoper worden opgehaald, gefilterd en " "geserialiseerd. Het definieert de queryset, filter configuraties, en " -"serializer klassen gebruikt om verschillende acties af te handelen. Het doel " -"van deze klasse is om gestroomlijnde toegang te bieden tot Vendor-" +"serializer klassen gebruikt om verschillende acties af te handelen. Het doel" +" van deze klasse is om gestroomlijnde toegang te bieden tot Vendor-" "gerelateerde bronnen via het Django REST framework." #: engine/core/viewsets.py:625 @@ -3442,8 +3463,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Weergave van een weergaveset die Feedback-objecten afhandelt. Deze klasse " @@ -3459,9 +3480,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet voor het beheren van orders en gerelateerde operaties. Deze klasse " @@ -3478,15 +3499,15 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" -"Biedt een viewset voor het beheren van OrderProduct-entiteiten. Deze viewset " -"maakt CRUD-bewerkingen en aangepaste acties mogelijk die specifiek zijn voor " -"het OrderProduct-model. Het omvat filteren, toestemmingscontroles en " -"serializer-omschakeling op basis van de gevraagde actie. Bovendien biedt het " -"een gedetailleerde actie voor het afhandelen van feedback op OrderProduct " +"Biedt een viewset voor het beheren van OrderProduct-entiteiten. Deze viewset" +" maakt CRUD-bewerkingen en aangepaste acties mogelijk die specifiek zijn " +"voor het OrderProduct-model. Het omvat filteren, toestemmingscontroles en " +"serializer-omschakeling op basis van de gevraagde actie. Bovendien biedt het" +" een gedetailleerde actie voor het afhandelen van feedback op OrderProduct " "instanties" #: engine/core/viewsets.py:974 @@ -3499,8 +3520,8 @@ msgid "" "Manages the retrieval and handling of PromoCode instances through various " "API actions." msgstr "" -"Beheert het ophalen en afhandelen van PromoCode-instanties via verschillende " -"API-acties." +"Beheert het ophalen en afhandelen van PromoCode-instanties via verschillende" +" API-acties." #: engine/core/viewsets.py:1019 msgid "Represents a view set for managing promotions. " @@ -3515,8 +3536,8 @@ msgstr "" msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3538,9 +3559,9 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Deze klasse biedt viewsetfunctionaliteit voor het beheren van `Adres`-" -"objecten. De klasse AddressViewSet maakt CRUD-bewerkingen, filteren en " -"aangepaste acties met betrekking tot adresentiteiten mogelijk. Het bevat " +"Deze klasse biedt viewsetfunctionaliteit voor het beheren van " +"`Adres`-objecten. De klasse AddressViewSet maakt CRUD-bewerkingen, filteren " +"en aangepaste acties met betrekking tot adresentiteiten mogelijk. Het bevat " "gespecialiseerde gedragingen voor verschillende HTTP methoden, serializer " "omzeilingen en toestemmingsafhandeling gebaseerd op de verzoekcontext." @@ -3558,8 +3579,8 @@ msgid "" "serializers based on the action being performed." msgstr "" "Behandelt bewerkingen met betrekking tot Product Tags binnen de applicatie. " -"Deze klasse biedt functionaliteit voor het ophalen, filteren en serialiseren " -"van Product Tag objecten. Het ondersteunt flexibel filteren op specifieke " +"Deze klasse biedt functionaliteit voor het ophalen, filteren en serialiseren" +" van Product Tag objecten. Het ondersteunt flexibel filteren op specifieke " "attributen met behulp van de gespecificeerde filter backend en gebruikt " "dynamisch verschillende serializers op basis van de actie die wordt " "uitgevoerd." diff --git a/engine/core/locale/no_NO/LC_MESSAGES/django.mo b/engine/core/locale/no_NO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..fd22d7c2a409ccb92deeffba3db8ea9640d6dd2f GIT binary patch literal 92147 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 literal 0 HcmV?d00001 diff --git a/engine/core/locale/no_NO/LC_MESSAGES/django.po b/engine/core/locale/no_NO/LC_MESSAGES/django.po index ce4e1d4f..d8a2f9e5 100644 --- a/engine/core/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/core/locale/no_NO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -28,7 +28,8 @@ msgstr "Er aktiv" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Hvis dette objektet er satt til false, kan det ikke ses av brukere uten " "nødvendig tillatelse" @@ -75,7 +76,7 @@ msgstr "Tidsstempler" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "Aktiver valgt %(verbose_name_plural)s" #: engine/core/admin.py:166 @@ -84,7 +85,7 @@ msgstr "Utvalgte elementer har blitt aktivert!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "Deaktiver valgt %(verbose_name_plural)s" #: engine/core/admin.py:184 @@ -92,13 +93,13 @@ msgid "selected items have been deactivated." msgstr "Utvalgte elementer har blitt deaktivert!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Attributtverdi" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Attributtverdier" @@ -118,12 +119,12 @@ msgstr "Lager" msgid "stocks" msgstr "Aksjer" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Bestill produkt" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Bestill produkter" @@ -131,7 +132,31 @@ msgstr "Bestill produkter" msgid "children" msgstr "Barn" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Har bilder" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Eksporter valgt %(verbose_name_plural)s til markedsplassers feeds" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "Utvalgte %(verbose_name_plural)s er merket for eksport." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Utelukk valgt %(verbose_name_plural)s fra markedsplassers feeds" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Utvalgte %(verbose_name_plural)s er forbudt å eksportere." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Konfigurer" @@ -155,7 +180,8 @@ msgstr "Leveres" msgid "canceled" msgstr "Avlyst" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Mislyktes" @@ -193,8 +219,8 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"OpenApi3-skjema for dette API-et. Format kan velges via innholdsforhandling. " -"Språk kan velges både med Accept-Language og spørringsparameteren." +"OpenApi3-skjema for dette API-et. Format kan velges via innholdsforhandling." +" Språk kan velges både med Accept-Language og spørringsparameteren." #: engine/core/docs/drf/views.py:46 engine/core/graphene/mutations.py:36 msgid "cache I/O" @@ -206,8 +232,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Bruk bare en nøkkel for å lese tillatte data fra hurtigbufferen.\n" -"Bruk nøkkel, data og tidsavbrudd med autentisering for å skrive data til " -"hurtigbufferen." +"Bruk nøkkel, data og tidsavbrudd med autentisering for å skrive data til hurtigbufferen." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -272,7 +297,8 @@ msgstr "" "attributter" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Skriv om noen av feltene i en eksisterende attributtgruppe for å lagre ikke-" "redigerbare felt" @@ -327,7 +353,8 @@ msgstr "" "attributter" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Skriv om noen av feltene i en eksisterende attributtverdi og lagre ikke-" "redigerbare felt" @@ -384,8 +411,8 @@ msgstr "For ikke-ansatte brukere returneres bare deres egne bestillinger." #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Søk etter store og små bokstaver på tvers av human_readable_id, " "order_products.product.name og order_products.product.partnumber" @@ -420,13 +447,13 @@ msgstr "Filtrer etter ordrestatus (skiller mellom store og små bokstaver)" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Bestill etter en av: uuid, human_readable_id, user_email, user, status, " -"created, modified, buy_time, random. Prefiks med '-' for synkende rekkefølge " -"(f.eks. '-buy_time')." +"created, modified, buy_time, random. Prefiks med '-' for synkende rekkefølge" +" (f.eks. '-buy_time')." #: engine/core/docs/drf/viewsets.py:366 msgid "retrieve a single order (detailed view)" @@ -497,8 +524,8 @@ msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"Legger til et produkt i en bestilling ved hjelp av de angitte `product_uuid` " -"og `attributtene`." +"Legger til et produkt i en bestilling ved hjelp av de angitte `product_uuid`" +" og `attributtene`." #: engine/core/docs/drf/viewsets.py:461 msgid "add a list of products to order, quantities will not count" @@ -598,7 +625,8 @@ msgstr "Fjern et produkt fra ønskelisten" #: engine/core/docs/drf/viewsets.py:568 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" -"Fjerner et produkt fra en ønskeliste ved hjelp av den angitte `product_uuid`." +"Fjerner et produkt fra en ønskeliste ved hjelp av den angitte " +"`product_uuid`." #: engine/core/docs/drf/viewsets.py:577 msgid "add many products to wishlist" @@ -625,28 +653,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrer etter ett eller flere attributtnavn/verdipar. \n" "- **Syntaks**: `attr_name=metode-verdi[;attr2=metode2-verdi2]...`.\n" -"- **Metoder** (standardinnstilling er `icontains` hvis utelatt): `iexact`, " -"`exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, " -"`endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- **Vertyping av verdi**: JSON forsøkes først (slik at du kan sende lister/" -"dikter), `true`/`false` for booleans, heltall, floats; ellers behandlet som " -"streng. \n" -"- **Base64**: prefiks med `b64-` for URL-sikker base64-koding av " -"råverdien. \n" +"- **Metoder** (standardinnstilling er `icontains` hvis utelatt): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- **Vertyping av verdi**: JSON forsøkes først (slik at du kan sende lister/dikter), `true`/`false` for booleans, heltall, floats; ellers behandlet som streng. \n" +"- **Base64**: prefiks med `b64-` for URL-sikker base64-koding av råverdien. \n" "Eksempler: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-beskrivelse=icontains-aGVhdC1jb2xk`" @@ -661,12 +679,10 @@ msgstr "(nøyaktig) Produkt UUID" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Kommaseparert liste over felt som skal sorteres etter. Prefiks med `-` for " -"synkende sortering. \n" +"Kommaseparert liste over felt som skal sorteres etter. Prefiks med `-` for synkende sortering. \n" "**Tillatt:** uuid, vurdering, navn, slug, opprettet, endret, pris, tilfeldig" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -1223,8 +1239,8 @@ msgstr "Kjøp en ordre" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Send attributtene som en streng formatert som attr1=verdi1,attr2=verdi2" @@ -1245,9 +1261,9 @@ msgstr "Bestill produkt {order_product_uuid} ikke funnet!" msgid "original address string provided by the user" msgstr "Opprinnelig adressestreng oppgitt av brukeren" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1263,8 +1279,8 @@ msgstr "ElasticSearch - fungerer som en drøm" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Egenskaper" @@ -1298,10 +1314,12 @@ msgstr "Påslag i prosent" #: engine/core/graphene/object_types.py:224 msgid "which attributes and values can be used for filtering this category." msgstr "" -"Hvilke attributter og verdier som kan brukes til å filtrere denne kategorien." +"Hvilke attributter og verdier som kan brukes til å filtrere denne " +"kategorien." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimums- og maksimumspriser for produkter i denne kategorien, hvis " "tilgjengelig." @@ -1340,7 +1358,7 @@ msgid "represents feedback from a user." msgstr "Representerer tilbakemeldinger fra en bruker." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Varsler" @@ -1348,7 +1366,7 @@ msgstr "Varsler" msgid "download url for this order product if applicable" msgstr "Last ned url for dette bestillingsproduktet, hvis aktuelt" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Tilbakemeldinger" @@ -1356,7 +1374,7 @@ msgstr "Tilbakemeldinger" msgid "a list of order products in this order" msgstr "En liste over bestillingsprodukter i denne rekkefølgen" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Faktureringsadresse" @@ -1384,7 +1402,7 @@ msgstr "Er alle produktene i bestillingen digitale" msgid "transactions for this order" msgstr "Transaksjoner for denne bestillingen" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Bestillinger" @@ -1401,7 +1419,7 @@ msgstr "Bilder av produktet" msgid "category" msgstr "Kategori" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Tilbakemeldinger" @@ -1442,7 +1460,7 @@ msgstr "Produkter kun tilgjengelig for personlige bestillinger" msgid "discount price" msgstr "Rabattert pris" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Produkter" @@ -1454,7 +1472,7 @@ msgstr "Promokoder" msgid "products on sale" msgstr "Produkter på salg" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Kampanjer" @@ -1462,7 +1480,7 @@ msgstr "Kampanjer" msgid "vendor" msgstr "Leverandør" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1470,11 +1488,11 @@ msgstr "Leverandør" msgid "product" msgstr "Produkt" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Produkter på ønskelisten" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Ønskelister" @@ -1513,8 +1531,7 @@ msgstr "Telefonnummer til selskapet" #: engine/core/graphene/object_types.py:761 msgid "email from, sometimes it must be used instead of host user value" -msgstr "" -"\"e-post fra\", noen ganger må den brukes i stedet for vertsbrukerverdien" +msgstr "\"e-post fra\", noen ganger må den brukes i stedet for vertsbrukerverdien" #: engine/core/graphene/object_types.py:764 msgid "email host user" @@ -1573,11 +1590,11 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"Representerer en gruppe attributter, som kan være hierarkiske. Denne klassen " -"brukes til å administrere og organisere attributtgrupper. En attributtgruppe " -"kan ha en overordnet gruppe som danner en hierarkisk struktur. Dette kan " -"være nyttig for å kategorisere og administrere attributter på en mer " -"effektiv måte i et komplekst system." +"Representerer en gruppe attributter, som kan være hierarkiske. Denne klassen" +" brukes til å administrere og organisere attributtgrupper. En " +"attributtgruppe kan ha en overordnet gruppe som danner en hierarkisk " +"struktur. Dette kan være nyttig for å kategorisere og administrere " +"attributter på en mer effektiv måte i et komplekst system." #: engine/core/models.py:88 msgid "parent of this group" @@ -1591,7 +1608,7 @@ msgstr "Overordnet attributtgruppe" msgid "attribute group's name" msgstr "Attributtgruppens navn" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Attributtgruppe" @@ -1606,8 +1623,8 @@ msgid "" "use in systems that interact with third-party vendors." msgstr "" "Representerer en leverandørenhet som kan lagre informasjon om eksterne " -"leverandører og deres interaksjonskrav. Vendor-klassen brukes til å definere " -"og administrere informasjon knyttet til en ekstern leverandør. Den lagrer " +"leverandører og deres interaksjonskrav. Vendor-klassen brukes til å definere" +" og administrere informasjon knyttet til en ekstern leverandør. Den lagrer " "leverandørens navn, autentiseringsdetaljer som kreves for kommunikasjon, og " "prosentmarkeringen som brukes på produkter som hentes fra leverandøren. " "Denne modellen inneholder også ytterligere metadata og begrensninger, noe " @@ -1665,8 +1682,8 @@ msgid "" "metadata customization for administrative purposes." msgstr "" "Representerer en produkttagg som brukes til å klassifisere eller " -"identifisere produkter. ProductTag-klassen er utformet for å identifisere og " -"klassifisere produkter på en unik måte ved hjelp av en kombinasjon av en " +"identifisere produkter. ProductTag-klassen er utformet for å identifisere og" +" klassifisere produkter på en unik måte ved hjelp av en kombinasjon av en " "intern tagg-identifikator og et brukervennlig visningsnavn. Den støtter " "operasjoner som eksporteres gjennom mixins, og gir metadatatilpasning for " "administrative formål." @@ -1699,8 +1716,8 @@ msgid "" msgstr "" "Representerer en kategorikode som brukes for produkter. Denne klassen " "modellerer en kategorikode som kan brukes til å knytte til og klassifisere " -"produkter. Den inneholder attributter for en intern tagg-identifikator og et " -"brukervennlig visningsnavn." +"produkter. Den inneholder attributter for en intern tagg-identifikator og et" +" brukervennlig visningsnavn." #: engine/core/models.py:249 msgid "category tag" @@ -1723,8 +1740,8 @@ msgid "" "priority." msgstr "" "Representerer en kategorienhet for å organisere og gruppere relaterte " -"elementer i en hierarkisk struktur. Kategorier kan ha hierarkiske relasjoner " -"med andre kategorier, noe som støtter foreldre-barn-relasjoner. Klassen " +"elementer i en hierarkisk struktur. Kategorier kan ha hierarkiske relasjoner" +" med andre kategorier, noe som støtter foreldre-barn-relasjoner. Klassen " "inneholder felt for metadata og visuell representasjon, som danner " "grunnlaget for kategorirelaterte funksjoner. Denne klassen brukes vanligvis " "til å definere og administrere produktkategorier eller andre lignende " @@ -1781,7 +1798,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Representerer et merkevareobjekt i systemet. Denne klassen håndterer " "informasjon og attributter knyttet til et merke, inkludert navn, logoer, " @@ -1831,16 +1849,16 @@ msgstr "Kategorier" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"Representerer lagerbeholdningen til et produkt som administreres i systemet. " -"Denne klassen gir informasjon om forholdet mellom leverandører, produkter og " -"deres lagerinformasjon, samt lagerrelaterte egenskaper som pris, " +"Representerer lagerbeholdningen til et produkt som administreres i systemet." +" Denne klassen gir informasjon om forholdet mellom leverandører, produkter " +"og deres lagerinformasjon, samt lagerrelaterte egenskaper som pris, " "innkjøpspris, antall, SKU og digitale eiendeler. Den er en del av " "lagerstyringssystemet for å muliggjøre sporing og evaluering av produkter " "som er tilgjengelige fra ulike leverandører." @@ -1865,8 +1883,8 @@ msgstr "Salgspris" msgid "the product associated with this stock entry" msgstr "Produktet som er knyttet til denne lagerposten" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Tilhørende produkt" @@ -1967,7 +1985,7 @@ msgstr "Gi produktet et tydelig navn som identifiserer det" msgid "product name" msgstr "Produktnavn" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Legg til en detaljert beskrivelse av produktet" @@ -1987,13 +2005,21 @@ msgstr "Delenummer" msgid "stock keeping unit for this product" msgstr "Lagerholdsenhet for dette produktet" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Om dette produktet skal eksporteres til markedsplasser" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Eksporter til markedsplasser" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Representerer et attributt i systemet. Denne klassen brukes til å definere " @@ -2003,310 +2029,311 @@ msgstr "" "float, boolsk, matrise og objekt. Dette gir mulighet for dynamisk og " "fleksibel datastrukturering." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Gruppe av dette attributtet" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Streng" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Heltall" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Flyter" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Boolsk" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Array" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Objekt" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Type av attributtets verdi" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Verditype" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Navn på dette attributtet" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Attributtets navn" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "er filtrerbar" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" -"Hvilke attributter og verdier som kan brukes til å filtrere denne kategorien." +"Hvilke attributter og verdier som kan brukes til å filtrere denne " +"kategorien." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attributt" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Representerer en spesifikk verdi for et attributt som er knyttet til et " "produkt. Den knytter \"attributtet\" til en unik \"verdi\", noe som gir " "bedre organisering og dynamisk representasjon av produktegenskaper." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Attributt for denne verdien" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Det spesifikke produktet som er knyttet til dette attributtets verdi" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Den spesifikke verdien for dette attributtet" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Representerer et produktbilde som er knyttet til et produkt i systemet. " -"Denne klassen er utviklet for å administrere bilder for produkter, inkludert " -"funksjonalitet for å laste opp bildefiler, knytte dem til spesifikke " +"Denne klassen er utviklet for å administrere bilder for produkter, inkludert" +" funksjonalitet for å laste opp bildefiler, knytte dem til spesifikke " "produkter og bestemme visningsrekkefølgen. Den inneholder også en " "tilgjengelighetsfunksjon med alternativ tekst for bildene." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Gi alternativ tekst til bildet for tilgjengelighet" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Alt-tekst til bilder" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Last opp bildefilen for dette produktet" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Produktbilde" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Bestemmer rekkefølgen bildene skal vises i" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Prioritet på skjermen" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Produktet som dette bildet representerer" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Produktbilder" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"Representerer en kampanje for produkter med rabatt. Denne klassen brukes til " -"å definere og administrere kampanjekampanjer som tilbyr en prosentbasert " +"Representerer en kampanje for produkter med rabatt. Denne klassen brukes til" +" å definere og administrere kampanjekampanjer som tilbyr en prosentbasert " "rabatt for produkter. Klassen inneholder attributter for å angi " "rabattsatsen, gi detaljer om kampanjen og knytte den til de aktuelle " "produktene. Den integreres med produktkatalogen for å finne de berørte " "varene i kampanjen." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Prosentvis rabatt for de valgte produktene" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Rabattprosent" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Oppgi et unikt navn for denne kampanjen" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Navn på kampanjen" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Beskrivelse av kampanjen" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Velg hvilke produkter som er inkludert i denne kampanjen" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Inkluderte produkter" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Markedsføring" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"Representerer en brukers ønskeliste for lagring og administrasjon av ønskede " -"produkter. Klassen tilbyr funksjonalitet for å administrere en samling " +"Representerer en brukers ønskeliste for lagring og administrasjon av ønskede" +" produkter. Klassen tilbyr funksjonalitet for å administrere en samling " "produkter, og støtter operasjoner som å legge til og fjerne produkter, samt " "operasjoner for å legge til og fjerne flere produkter samtidig." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Produkter som brukeren har merket som ønsket" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Bruker som eier denne ønskelisten" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Ønskelistens eier" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Ønskeliste" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"Representerer en dokumentarpost knyttet til et produkt. Denne klassen brukes " -"til å lagre informasjon om dokumentarer knyttet til bestemte produkter, " +"Representerer en dokumentarpost knyttet til et produkt. Denne klassen brukes" +" til å lagre informasjon om dokumentarer knyttet til bestemte produkter, " "inkludert filopplastinger og metadata for disse. Den inneholder metoder og " "egenskaper for å håndtere filtype og lagringsbane for dokumentarfilene. Den " "utvider funksjonaliteten fra spesifikke mixins og tilbyr flere tilpassede " "funksjoner." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Dokumentarfilm" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Dokumentarfilmer" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Uavklart" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Representerer en adresseenhet som inneholder stedsdetaljer og assosiasjoner " "til en bruker. Tilbyr funksjonalitet for lagring av geografiske data og " "adressedata, samt integrering med geokodingstjenester. Denne klassen er " -"utformet for å lagre detaljert adresseinformasjon, inkludert komponenter som " -"gate, by, region, land og geolokalisering (lengde- og breddegrad). Den " +"utformet for å lagre detaljert adresseinformasjon, inkludert komponenter som" +" gate, by, region, land og geolokalisering (lengde- og breddegrad). Den " "støtter integrasjon med API-er for geokoding, og gjør det mulig å lagre rå " -"API-svar for videre behandling eller inspeksjon. Klassen gjør det også mulig " -"å knytte en adresse til en bruker, noe som gjør det enklere å tilpasse " +"API-svar for videre behandling eller inspeksjon. Klassen gjør det også mulig" +" å knytte en adresse til en bruker, noe som gjør det enklere å tilpasse " "datahåndteringen." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Adresselinje for kunden" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Adresselinje" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Gate" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Distrikt" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "By" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Region" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Postnummer" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Land" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokaliseringspunkt(lengdegrad, breddegrad)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Fullstendig JSON-svar fra geokoderen for denne adressen" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Lagret JSON-svar fra geokodingstjenesten" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Adresse" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adresser" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2317,78 +2344,79 @@ msgid "" msgstr "" "Representerer en kampanjekode som kan brukes til rabatter, og styrer dens " "gyldighet, rabattype og anvendelse. PromoCode-klassen lagrer informasjon om " -"en kampanjekode, inkludert dens unike identifikator, rabattegenskaper (beløp " -"eller prosent), gyldighetsperiode, tilknyttet bruker (hvis noen) og status " +"en kampanjekode, inkludert dens unike identifikator, rabattegenskaper (beløp" +" eller prosent), gyldighetsperiode, tilknyttet bruker (hvis noen) og status " "for bruken av den. Den inneholder funksjonalitet for å validere og bruke " -"kampanjekoden på en bestilling, samtidig som den sikrer at begrensningene er " -"oppfylt." +"kampanjekoden på en bestilling, samtidig som den sikrer at begrensningene er" +" oppfylt." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Unik kode som brukes av en bruker for å løse inn en rabatt" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Kampanjekode-identifikator" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Fast rabattbeløp som brukes hvis prosent ikke brukes" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Fast rabattbeløp" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Prosentvis rabatt hvis fast beløp ikke brukes" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Prosentvis rabatt" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Tidsstempel for når kampanjekoden utløper" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Slutt gyldighetstid" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Tidsstempel som denne kampanjekoden er gyldig fra" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Start gyldighetstid" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -"Tidsstempel for når kampanjekoden ble brukt, tomt hvis den ikke er brukt ennå" +"Tidsstempel for når kampanjekoden ble brukt, tomt hvis den ikke er brukt " +"ennå" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Tidsstempel for bruk" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Bruker som er tilordnet denne kampanjekoden, hvis aktuelt" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Tilordnet bruker" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Kampanjekode" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Kampanjekoder" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2396,167 +2424,167 @@ msgstr "" "Bare én type rabatt skal defineres (beløp eller prosent), men ikke begge " "eller ingen av delene." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Promokoden har allerede blitt brukt" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ugyldig rabattype for kampanjekode {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Representerer en bestilling som er lagt inn av en bruker. Denne klassen " "modellerer en bestilling i applikasjonen, inkludert ulike attributter som " -"fakturerings- og leveringsinformasjon, status, tilknyttet bruker, varsler og " -"relaterte operasjoner. Bestillinger kan ha tilknyttede produkter, kampanjer " -"kan brukes, adresser kan angis, og frakt- eller faktureringsopplysninger kan " -"oppdateres. På samme måte støtter funksjonaliteten håndtering av produktene " -"i bestillingens livssyklus." +"fakturerings- og leveringsinformasjon, status, tilknyttet bruker, varsler og" +" relaterte operasjoner. Bestillinger kan ha tilknyttede produkter, kampanjer" +" kan brukes, adresser kan angis, og frakt- eller faktureringsopplysninger " +"kan oppdateres. På samme måte støtter funksjonaliteten håndtering av " +"produktene i bestillingens livssyklus." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Faktureringsadressen som brukes for denne bestillingen" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Valgfri kampanjekode brukt på denne bestillingen" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Anvendt kampanjekode" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Leveringsadressen som brukes for denne bestillingen" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Leveringsadresse" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Ordrens nåværende status i livssyklusen" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Order status" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "JSON-struktur for varsler som skal vises til brukere, i admin-grensesnittet " "brukes tabellvisningen" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "JSON-representasjon av ordreattributter for denne ordren" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "Brukeren som har lagt inn bestillingen" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Bruker" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Tidsstempel for når bestillingen ble fullført" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Kjøp tid" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "En menneskelig lesbar identifikator for bestillingen" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "ID som kan leses av mennesker" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Bestilling" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "En bruker kan bare ha én ventende ordre om gangen!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" "Du kan ikke legge til produkter i en bestilling som ikke er en pågående " "bestilling" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Du kan ikke legge til inaktive produkter i bestillingen" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "" "Du kan ikke legge til flere produkter enn det som er tilgjengelig på lager" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Du kan ikke fjerne produkter fra en bestilling som ikke er en pågående " "bestilling" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} finnes ikke med spørring <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Promokoden finnes ikke" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "Du kan bare kjøpe fysiske produkter med oppgitt leveringsadresse!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Adressen eksisterer ikke" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "Du kan ikke kjøpe for øyeblikket, vennligst prøv igjen om noen minutter." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Ugyldig kraftverdi" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Du kan ikke kjøpe en tom ordre!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "Du kan ikke kjøpe en ordre uten en bruker!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "En bruker uten saldo kan ikke kjøpe med saldo!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Utilstrekkelige midler til å fullføre bestillingen" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2564,14 +2592,14 @@ msgstr "" "du kan ikke kjøpe uten registrering, vennligst oppgi følgende informasjon: " "kundenavn, kundens e-postadresse, kundens telefonnummer" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Ugyldig betalingsmetode: {payment_method} fra {available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2579,40 +2607,41 @@ msgid "" "product in the order, and a user-assigned rating. The class uses database " "fields to effectively model and manage feedback data." msgstr "" -"Håndterer brukernes tilbakemeldinger på produkter. Denne klassen er utformet " -"for å fange opp og lagre tilbakemeldinger fra brukerne om spesifikke " +"Håndterer brukernes tilbakemeldinger på produkter. Denne klassen er utformet" +" for å fange opp og lagre tilbakemeldinger fra brukerne om spesifikke " "produkter de har kjøpt. Den inneholder attributter for å lagre " "brukerkommentarer, en referanse til det relaterte produktet i bestillingen " "og en brukertildelt vurdering. Klassen bruker databasefelt for å modellere " "og administrere tilbakemeldingsdata på en effektiv måte." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "Brukerkommentarer om deres erfaringer med produktet" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Tilbakemeldinger og kommentarer" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Refererer til det spesifikke produktet i en ordre som denne tilbakemeldingen " -"handler om" +"Refererer til det spesifikke produktet i en ordre som denne tilbakemeldingen" +" handler om" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Relatert bestillingsprodukt" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Brukertildelt vurdering for produktet" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Produktvurdering" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2635,130 +2664,130 @@ msgstr "" "Modellen integreres med Order- og Product-modellene og lagrer en referanse " "til disse." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "Prisen kunden betalte for dette produktet på kjøpstidspunktet" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Innkjøpspris på bestillingstidspunktet" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Interne kommentarer for administratorer om dette bestilte produktet" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Interne kommentarer" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Brukervarsler" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "JSON-representasjon av dette elementets attributter" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Bestilte produktegenskaper" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "" "Referanse til den overordnede bestillingen som inneholder dette produktet" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Overordnet ordre" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Det spesifikke produktet som er knyttet til denne ordrelinjen" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Antall av dette spesifikke produktet i bestillingen" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Produktmengde" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Nåværende status for dette produktet i bestillingen" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Status for produktlinjen" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Orderproduct må ha en tilknyttet ordre!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Feil handling angitt for tilbakemelding: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "du kan ikke gi tilbakemelding på en bestilling som ikke er mottatt" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Navn" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL-adressen til integrasjonen" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Legitimasjon for autentisering" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Du kan bare ha én standard CRM-leverandør" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Ordre CRM-kobling" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "CRM-koblinger for bestillinger" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" -"Representerer nedlastingsfunksjonaliteten for digitale ressurser knyttet til " -"bestillinger. DigitalAssetDownload-klassen gir mulighet til å administrere " +"Representerer nedlastingsfunksjonaliteten for digitale ressurser knyttet til" +" bestillinger. DigitalAssetDownload-klassen gir mulighet til å administrere " "og få tilgang til nedlastinger knyttet til bestillingsprodukter. Den " "inneholder informasjon om det tilknyttede bestillingsproduktet, antall " "nedlastinger og om ressursen er offentlig synlig. Den inneholder en metode " "for å generere en URL for nedlasting av ressursen når den tilknyttede " "bestillingen har status som fullført." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Last ned" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Nedlastinger" @@ -2959,13 +2988,12 @@ msgstr "Hallo %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"Takk for din bestilling #%(order.pk)s! Vi er glade for å informere deg om at " -"vi har tatt bestillingen din i arbeid. Nedenfor er detaljene i bestillingen " -"din:" +"Takk for din bestilling #%(order.pk)s! Vi er glade for å informere deg om at" +" vi har tatt bestillingen din i arbeid. Nedenfor er detaljene i bestillingen" +" din:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -3075,8 +3103,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Takk for bestillingen din! Vi er glade for å kunne bekrefte kjøpet ditt. " @@ -3154,8 +3181,8 @@ msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -"Håndterer forespørselen om områdekartindeksen og returnerer et XML-svar. Den " -"sørger for at svaret inneholder riktig innholdstypeoverskrift for XML." +"Håndterer forespørselen om områdekartindeksen og returnerer et XML-svar. Den" +" sørger for at svaret inneholder riktig innholdstypeoverskrift for XML." #: engine/core/views.py:119 msgid "" @@ -3194,8 +3221,8 @@ msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -"Håndterer forespørsler om behandling og validering av URL-er fra innkommende " -"POST-forespørsler." +"Håndterer forespørsler om behandling og validering av URL-er fra innkommende" +" POST-forespørsler." #: engine/core/views.py:273 msgid "Handles global search queries." @@ -3208,15 +3235,10 @@ msgstr "Håndterer logikken med å kjøpe som en bedrift uten registrering." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" -"Håndterer nedlastingen av en digital ressurs som er knyttet til en " -"bestilling.\n" -"Denne funksjonen forsøker å levere den digitale ressursfilen som ligger i " -"lagringskatalogen til prosjektet. Hvis filen ikke blir funnet, vises en HTTP " -"404-feil for å indikere at ressursen ikke er tilgjengelig." +"Håndterer nedlastingen av en digital ressurs som er knyttet til en bestilling.\n" +"Denne funksjonen forsøker å levere den digitale ressursfilen som ligger i lagringskatalogen til prosjektet. Hvis filen ikke blir funnet, vises en HTTP 404-feil for å indikere at ressursen ikke er tilgjengelig." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3245,19 +3267,15 @@ msgstr "favicon ble ikke funnet" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Håndterer forespørsler om faviconet til et nettsted.\n" -"Denne funksjonen forsøker å vise favicon-filen som ligger i den statiske " -"katalogen i prosjektet. Hvis favicon-filen ikke blir funnet, vises en HTTP " -"404-feil for å indikere at ressursen ikke er tilgjengelig." +"Denne funksjonen forsøker å vise favicon-filen som ligger i den statiske katalogen i prosjektet. Hvis favicon-filen ikke blir funnet, vises en HTTP 404-feil for å indikere at ressursen ikke er tilgjengelig." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Omdirigerer forespørselen til admin-indekssiden. Funksjonen håndterer " @@ -3280,9 +3298,9 @@ msgstr "Returnerer egendefinerte variabler for Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The schonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3294,10 +3312,11 @@ msgstr "" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Representerer et visningssett for håndtering av AttributeGroup-objekter. " "Håndterer operasjoner knyttet til AttributeGroup, inkludert filtrering, " @@ -3314,20 +3333,20 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"Håndterer operasjoner knyttet til Attribute-objekter i applikasjonen. Tilbyr " -"et sett med API-endepunkter for interaksjon med attributtdata. Denne klassen " -"håndterer spørring, filtrering og serialisering av Attribute-objekter, noe " -"som gir dynamisk kontroll over dataene som returneres, for eksempel " -"filtrering etter bestemte felt eller henting av detaljert versus forenklet " -"informasjon avhengig av forespørselen." +"Håndterer operasjoner knyttet til Attribute-objekter i applikasjonen. Tilbyr" +" et sett med API-endepunkter for interaksjon med attributtdata. Denne " +"klassen håndterer spørring, filtrering og serialisering av Attribute-" +"objekter, noe som gir dynamisk kontroll over dataene som returneres, for " +"eksempel filtrering etter bestemte felt eller henting av detaljert versus " +"forenklet informasjon avhengig av forespørselen." #: engine/core/viewsets.py:198 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Et visningssett for administrasjon av AttributeValue-objekter. Dette " "visningssettet inneholder funksjonalitet for å liste opp, hente, opprette, " @@ -3366,7 +3385,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`schonViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3376,8 +3395,8 @@ msgstr "" "filtrering, serialisering og operasjoner på spesifikke forekomster. Den " "utvides fra `schonViewSet` for å bruke felles funksjonalitet og integreres " "med Django REST-rammeverket for RESTful API-operasjoner. Inkluderer metoder " -"for å hente produktdetaljer, tildele tillatelser og få tilgang til relaterte " -"tilbakemeldinger om et produkt." +"for å hente produktdetaljer, tildele tillatelser og få tilgang til relaterte" +" tilbakemeldinger om et produkt." #: engine/core/viewsets.py:605 msgid "" @@ -3389,9 +3408,9 @@ msgid "" msgstr "" "Representerer et visningssett for håndtering av Vendor-objekter. Dette " "visningssettet gjør det mulig å hente, filtrere og serialisere Vendor-data. " -"Den definerer spørresettet, filterkonfigurasjonene og serialiseringsklassene " -"som brukes til å håndtere ulike handlinger. Formålet med denne klassen er å " -"gi strømlinjeformet tilgang til Vendor-relaterte ressurser gjennom Django " +"Den definerer spørresettet, filterkonfigurasjonene og serialiseringsklassene" +" som brukes til å håndtere ulike handlinger. Formålet med denne klassen er å" +" gi strømlinjeformet tilgang til Vendor-relaterte ressurser gjennom Django " "REST-rammeverket." #: engine/core/viewsets.py:625 @@ -3399,8 +3418,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `schonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representasjon av et visningssett som håndterer Feedback-objekter. Denne " @@ -3416,9 +3435,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet for håndtering av bestillinger og relaterte operasjoner. Denne " @@ -3427,22 +3446,22 @@ msgstr "" "ordreoperasjoner, for eksempel å legge til eller fjerne produkter, utføre " "kjøp for både registrerte og uregistrerte brukere og hente den aktuelle " "autentiserte brukerens ventende bestillinger. ViewSet bruker flere " -"serialisatorer basert på den spesifikke handlingen som utføres, og håndhever " -"tillatelser i samsvar med dette under samhandling med ordredata." +"serialisatorer basert på den spesifikke handlingen som utføres, og håndhever" +" tillatelser i samsvar med dette under samhandling med ordredata." #: engine/core/viewsets.py:914 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Tilbyr et visningssett for håndtering av OrderProduct-enheter. Dette " -"visningssettet muliggjør CRUD-operasjoner og egendefinerte handlinger som er " -"spesifikke for OrderProduct-modellen. Det inkluderer filtrering, kontroll av " -"tillatelser og bytte av serializer basert på den forespurte handlingen. I " -"tillegg inneholder det en detaljert handling for håndtering av " +"visningssettet muliggjør CRUD-operasjoner og egendefinerte handlinger som er" +" spesifikke for OrderProduct-modellen. Det inkluderer filtrering, kontroll " +"av tillatelser og bytte av serializer basert på den forespurte handlingen. I" +" tillegg inneholder det en detaljert handling for håndtering av " "tilbakemeldinger på OrderProduct-instanser" #: engine/core/viewsets.py:974 @@ -3454,8 +3473,8 @@ msgid "" "Manages the retrieval and handling of PromoCode instances through various " "API actions." msgstr "" -"Administrerer henting og håndtering av PromoCode-instanser gjennom ulike API-" -"handlinger." +"Administrerer henting og håndtering av PromoCode-instanser gjennom ulike " +"API-handlinger." #: engine/core/viewsets.py:1019 msgid "Represents a view set for managing promotions. " @@ -3469,8 +3488,8 @@ msgstr "Håndterer operasjoner knyttet til lagerdata i systemet." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3480,8 +3499,8 @@ msgstr "" "gjør det mulig å hente, endre og tilpasse produkter i ønskelisten. Dette " "ViewSetet legger til rette for funksjonalitet som å legge til, fjerne og " "utføre massehandlinger for ønskelisteprodukter. Tillatelseskontroller er " -"integrert for å sikre at brukere bare kan administrere sine egne ønskelister " -"med mindre eksplisitte tillatelser er gitt." +"integrert for å sikre at brukere bare kan administrere sine egne ønskelister" +" med mindre eksplisitte tillatelser er gitt." #: engine/core/viewsets.py:1183 msgid "" @@ -3491,11 +3510,11 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Denne klassen tilbyr visningssettfunksjonalitet for håndtering av `Address`-" -"objekter. AddressViewSet-klassen muliggjør CRUD-operasjoner, filtrering og " -"egendefinerte handlinger knyttet til adresseenheter. Den inkluderer " -"spesialisert atferd for ulike HTTP-metoder, overstyring av serializer og " -"håndtering av tillatelser basert på forespørselskonteksten." +"Denne klassen tilbyr visningssettfunksjonalitet for håndtering av " +"`Address`-objekter. AddressViewSet-klassen muliggjør CRUD-operasjoner, " +"filtrering og egendefinerte handlinger knyttet til adresseenheter. Den " +"inkluderer spesialisert atferd for ulike HTTP-metoder, overstyring av " +"serializer og håndtering av tillatelser basert på forespørselskonteksten." #: engine/core/viewsets.py:1254 #, python-brace-format diff --git a/engine/core/locale/pl_PL/LC_MESSAGES/django.mo b/engine/core/locale/pl_PL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..15855bcd19d426aac454e0be4b71c57edf2f0fa6 GIT binary patch literal 93904 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

OVmO!@PYNg!Zm{n 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 literal 0 HcmV?d00001 diff --git a/engine/core/locale/pl_PL/LC_MESSAGES/django.po b/engine/core/locale/pl_PL/LC_MESSAGES/django.po index 65172bc6..92d2fb4b 100644 --- a/engine/core/locale/pl_PL/LC_MESSAGES/django.po +++ b/engine/core/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Jest aktywny" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Jeśli ustawione na false, obiekt ten nie może być widoczny dla użytkowników " "bez wymaganych uprawnień." @@ -76,7 +77,7 @@ msgstr "Znaczniki czasu" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "Aktywuj wybrane %(verbose_name_plural)s" #: engine/core/admin.py:166 @@ -85,21 +86,21 @@ msgstr "Wybrane elementy zostały aktywowane!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Dezaktywacja wybranego %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "Wyłącz wybrane %(verbose_name_plural)s" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "Wybrane elementy zostały dezaktywowane!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Wartość atrybutu" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Wartości atrybutów" @@ -119,12 +120,12 @@ msgstr "Stan magazynowy" msgid "stocks" msgstr "Akcje" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Zamów produkt" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Zamawianie produktów" @@ -132,7 +133,31 @@ msgstr "Zamawianie produktów" msgid "children" msgstr "Dzieci" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Zawiera obrazy" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Eksportuj wybrane %(verbose_name_plural)s do kanałów rynkowych" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "Wybrane %(verbose_name_plural)s zostały oznaczone do eksportu." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Zablokuj wybrany %(verbose_name_plural)s z kanałów rynkowych" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Wybrane %(verbose_name_plural)s zostały objęte zakazem eksportu." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Konfiguracja" @@ -156,7 +181,8 @@ msgstr "Dostarczone" msgid "canceled" msgstr "Anulowane" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Nie powiodło się" @@ -208,8 +234,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Zastosuj tylko klucz, aby odczytać dozwolone dane z pamięci podręcznej.\n" -"Zastosuj klucz, dane i limit czasu z uwierzytelnianiem, aby zapisać dane w " -"pamięci podręcznej." +"Zastosuj klucz, dane i limit czasu z uwierzytelnianiem, aby zapisać dane w pamięci podręcznej." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -274,7 +299,8 @@ msgstr "" "nieedytowalnych" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Przepisanie niektórych pól istniejącej grupy atrybutów z zachowaniem " "atrybutów nieedytowalnych" @@ -329,7 +355,8 @@ msgstr "" "nieedytowalnych" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Przepisz niektóre pola istniejącej wartości atrybutu, zapisując wartości " "nieedytowalne" @@ -388,11 +415,11 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Wyszukiwanie podciągów z uwzględnieniem wielkości liter w human_readable_id, " -"order_products.product.name i order_products.product.partnumber." +"Wyszukiwanie podciągów z uwzględnieniem wielkości liter w human_readable_id," +" order_products.product.name i order_products.product.partnumber." #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -425,14 +452,14 @@ msgstr "Filtrowanie według identyfikatora UUID użytkownika" #: engine/core/docs/drf/viewsets.py:347 msgid "Filter by order status (case-insensitive substring match)" msgstr "" -"Filtrowanie według statusu zamówienia (dopasowanie podciągu z uwzględnieniem " -"wielkości liter)" +"Filtrowanie według statusu zamówienia (dopasowanie podciągu z uwzględnieniem" +" wielkości liter)" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Kolejność według jednego z: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Prefiks z \"-\" dla malejącego " @@ -444,7 +471,8 @@ msgstr "Pobieranie pojedynczej kategorii (widok szczegółowy)" #: engine/core/docs/drf/viewsets.py:371 msgid "Order UUID or human-readable id" -msgstr "Identyfikator UUID zamówienia lub identyfikator czytelny dla człowieka" +msgstr "" +"Identyfikator UUID zamówienia lub identyfikator czytelny dla człowieka" #: engine/core/docs/drf/viewsets.py:381 msgid "create an order" @@ -632,28 +660,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrowanie według jednej lub więcej par atrybut/wartość. \n" "- Składnia**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- **Metody** (domyślnie `icontains` jeśli pominięte): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- Wpisywanie wartości**: JSON jest próbowany jako pierwszy (więc można " -"przekazywać listy/dykty), `true`/`false` dla booleans, integers, floats; w " -"przeciwnym razie traktowane jako string. \n" -"- Base64**: prefiks z `b64-` do bezpiecznego dla adresów URL kodowania " -"base64 surowej wartości. \n" +"- **Metody** (domyślnie `icontains` jeśli pominięte): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- Wpisywanie wartości**: JSON jest próbowany jako pierwszy (więc można przekazywać listy/dykty), `true`/`false` dla booleans, integers, floats; w przeciwnym razie traktowane jako string. \n" +"- Base64**: prefiks z `b64-` do bezpiecznego dla adresów URL kodowania base64 surowej wartości. \n" "Przykłady: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -668,12 +686,10 @@ msgstr "(dokładny) UUID produktu" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Rozdzielana przecinkami lista pól do posortowania. Prefiks z `-` dla " -"sortowania malejącego. \n" +"Rozdzielana przecinkami lista pól do posortowania. Prefiks z `-` dla sortowania malejącego. \n" "**Dozwolone:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -1228,8 +1244,8 @@ msgstr "Kup zamówienie" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Prześlij atrybuty jako ciąg znaków sformatowany w następujący sposób: " "attr1=value1,attr2=value2" @@ -1251,9 +1267,9 @@ msgstr "Orderproduct {order_product_uuid} nie został znaleziony!" msgid "original address string provided by the user" msgstr "Oryginalny ciąg adresu podany przez użytkownika" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1269,8 +1285,8 @@ msgstr "ElasticSearch - działa jak urok" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Atrybuty" @@ -1307,7 +1323,8 @@ msgstr "" "Które atrybuty i wartości mogą być używane do filtrowania tej kategorii." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimalne i maksymalne ceny produktów w tej kategorii, jeśli są dostępne." @@ -1345,7 +1362,7 @@ msgid "represents feedback from a user." msgstr "Reprezentuje informacje zwrotne od użytkownika." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Powiadomienia" @@ -1353,7 +1370,7 @@ msgstr "Powiadomienia" msgid "download url for this order product if applicable" msgstr "Adres URL pobierania dla tego produktu zamówienia, jeśli dotyczy" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Informacje zwrotne" @@ -1361,7 +1378,7 @@ msgstr "Informacje zwrotne" msgid "a list of order products in this order" msgstr "Lista zamówionych produktów w tym zamówieniu" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Adres rozliczeniowy" @@ -1389,7 +1406,7 @@ msgstr "Czy wszystkie produkty w zamówieniu są cyfrowe?" msgid "transactions for this order" msgstr "Transakcje dla tego zamówienia" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Zamówienia" @@ -1406,7 +1423,7 @@ msgstr "Zdjęcia produktu" msgid "category" msgstr "Kategoria" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Informacje zwrotne" @@ -1447,7 +1464,7 @@ msgstr "Produkty dostępne tylko dla zamówień osobistych" msgid "discount price" msgstr "Cena rabatowa" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Produkty" @@ -1459,7 +1476,7 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Produkty w sprzedaży" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Promocje" @@ -1467,7 +1484,7 @@ msgstr "Promocje" msgid "vendor" msgstr "Sprzedawca" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1475,11 +1492,11 @@ msgstr "Sprzedawca" msgid "product" msgstr "Produkt" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Produkty z listy życzeń" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Listy życzeń" @@ -1518,8 +1535,7 @@ msgstr "Numer telefonu firmy" #: engine/core/graphene/object_types.py:761 msgid "email from, sometimes it must be used instead of host user value" -msgstr "" -"\"email from\", czasami musi być użyty zamiast wartości użytkownika hosta" +msgstr "\"email from\", czasami musi być użyty zamiast wartości użytkownika hosta" #: engine/core/graphene/object_types.py:764 msgid "email host user" @@ -1596,7 +1612,7 @@ msgstr "Grupa atrybutów nadrzędnych" msgid "attribute group's name" msgstr "Nazwa grupy atrybutów" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Grupa atrybutów" @@ -1613,8 +1629,8 @@ msgstr "" "Reprezentuje jednostkę dostawcy zdolną do przechowywania informacji o " "zewnętrznych dostawcach i ich wymaganiach dotyczących interakcji. Klasa " "Vendor służy do definiowania i zarządzania informacjami związanymi z " -"zewnętrznym dostawcą. Przechowuje nazwę dostawcy, szczegóły uwierzytelniania " -"wymagane do komunikacji oraz procentowe znaczniki stosowane do produktów " +"zewnętrznym dostawcą. Przechowuje nazwę dostawcy, szczegóły uwierzytelniania" +" wymagane do komunikacji oraz procentowe znaczniki stosowane do produktów " "pobieranych od dostawcy. Model ten zachowuje również dodatkowe metadane i " "ograniczenia, dzięki czemu nadaje się do użytku w systemach, które " "współpracują z zewnętrznymi dostawcami." @@ -1786,11 +1802,12 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Reprezentuje obiekt marki w systemie. Ta klasa obsługuje informacje i " -"atrybuty związane z marką, w tym jej nazwę, logo, opis, powiązane kategorie, " -"unikalny slug i kolejność priorytetów. Pozwala na organizację i " +"atrybuty związane z marką, w tym jej nazwę, logo, opis, powiązane kategorie," +" unikalny slug i kolejność priorytetów. Pozwala na organizację i " "reprezentację danych związanych z marką w aplikacji." #: engine/core/models.py:456 @@ -1835,8 +1852,8 @@ msgstr "Kategorie" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1869,8 +1886,8 @@ msgstr "Cena sprzedaży" msgid "the product associated with this stock entry" msgstr "Produkt powiązany z tym wpisem magazynowym" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Produkt powiązany" @@ -1972,7 +1989,7 @@ msgstr "Wyraźna nazwa identyfikująca produkt" msgid "product name" msgstr "Nazwa produktu" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Dodaj szczegółowy opis produktu" @@ -1992,13 +2009,21 @@ msgstr "Numer części" msgid "stock keeping unit for this product" msgstr "Jednostka magazynowa dla tego produktu" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Czy eksportować ten produkt na rynki" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Eksport do serwisów handlowych" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Reprezentuje atrybut w systemie. Ta klasa jest używana do definiowania i " @@ -2008,91 +2033,91 @@ msgstr "" "string, integer, float, boolean, array i object. Pozwala to na dynamiczną i " "elastyczną strukturę danych." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Grupa tego atrybutu" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "String" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Integer" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Pływak" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Wartość logiczna" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Tablica" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Obiekt" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Typ wartości atrybutu" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Typ wartości" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Nazwa tego atrybutu" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Nazwa atrybutu" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "można filtrować" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Które atrybuty i wartości mogą być używane do filtrowania tej kategorii." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atrybut" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Reprezentuje określoną wartość atrybutu powiązanego z produktem. Łączy " "\"atrybut\" z unikalną \"wartością\", umożliwiając lepszą organizację i " "dynamiczną reprezentację cech produktu." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Atrybut tej wartości" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Konkretny produkt powiązany z wartością tego atrybutu" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Konkretna wartość dla tego atrybutu" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2102,87 +2127,88 @@ msgstr "" "określania kolejności ich wyświetlania. Zawiera również funkcję dostępności " "z tekstem alternatywnym dla obrazów." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" -msgstr "Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" +msgstr "" +"Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Tekst alternatywny obrazu" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Prześlij plik obrazu dla tego produktu" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Obraz produktu" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Określa kolejność wyświetlania obrazów" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Priorytet wyświetlania" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Produkt, który przedstawia ten obraz" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Zdjęcia produktów" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Reprezentuje kampanię promocyjną dla produktów z rabatem. Ta klasa służy do " -"definiowania i zarządzania kampaniami promocyjnymi, które oferują procentowy " -"rabat na produkty. Klasa zawiera atrybuty do ustawiania stopy rabatu, " +"definiowania i zarządzania kampaniami promocyjnymi, które oferują procentowy" +" rabat na produkty. Klasa zawiera atrybuty do ustawiania stopy rabatu, " "dostarczania szczegółów na temat promocji i łączenia jej z odpowiednimi " "produktami. Integruje się z katalogiem produktów w celu określenia pozycji, " "których dotyczy kampania." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Rabat procentowy na wybrane produkty" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Procent rabatu" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Podaj unikalną nazwę tej promocji" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Nazwa promocji" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Opis promocji" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Wybierz produkty objęte promocją" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Dołączone produkty" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Promocja" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2190,64 +2216,64 @@ msgid "" "operations for adding and removing multiple products at once." msgstr "" "Reprezentuje listę życzeń użytkownika do przechowywania i zarządzania " -"pożądanymi produktami. Klasa zapewnia funkcjonalność do zarządzania kolekcją " -"produktów, wspierając operacje takie jak dodawanie i usuwanie produktów, a " +"pożądanymi produktami. Klasa zapewnia funkcjonalność do zarządzania kolekcją" +" produktów, wspierając operacje takie jak dodawanie i usuwanie produktów, a " "także wspierając operacje dodawania i usuwania wielu produktów jednocześnie." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Produkty, które użytkownik oznaczył jako poszukiwane" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Użytkownik posiadający tę listę życzeń" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Właściciel listy życzeń" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Lista życzeń" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Reprezentuje rekord dokumentu powiązany z produktem. Ta klasa służy do " -"przechowywania informacji o dokumentach związanych z określonymi produktami, " -"w tym przesyłanych plików i ich metadanych. Zawiera metody i właściwości do " -"obsługi typu pliku i ścieżki przechowywania plików dokumentów. Rozszerza " +"przechowywania informacji o dokumentach związanych z określonymi produktami," +" w tym przesyłanych plików i ich metadanych. Zawiera metody i właściwości do" +" obsługi typu pliku i ścieżki przechowywania plików dokumentów. Rozszerza " "funkcjonalność z określonych miksów i zapewnia dodatkowe niestandardowe " "funkcje." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Film dokumentalny" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Filmy dokumentalne" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Nierozwiązany" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Reprezentuje jednostkę adresu, która zawiera szczegóły lokalizacji i " "powiązania z użytkownikiem. Zapewnia funkcjonalność przechowywania danych " @@ -2255,64 +2281,64 @@ msgstr "" "Klasa ta została zaprojektowana do przechowywania szczegółowych informacji " "adresowych, w tym elementów takich jak ulica, miasto, region, kraj i " "geolokalizacja (długość i szerokość geograficzna). Obsługuje integrację z " -"interfejsami API geokodowania, umożliwiając przechowywanie nieprzetworzonych " -"odpowiedzi API do dalszego przetwarzania lub kontroli. Klasa umożliwia " +"interfejsami API geokodowania, umożliwiając przechowywanie nieprzetworzonych" +" odpowiedzi API do dalszego przetwarzania lub kontroli. Klasa umożliwia " "również powiązanie adresu z użytkownikiem, ułatwiając spersonalizowaną " "obsługę danych." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Linia adresu dla klienta" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Linia adresowa" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "ul." -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Okręg" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Miasto" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Region" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Kod pocztowy" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Kraj" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Pełna odpowiedź JSON z geokodera dla tego adresu" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Przechowywana odpowiedź JSON z usługi geokodowania" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Adres" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adresy" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2329,73 +2355,73 @@ msgstr "" "Obejmuje funkcję sprawdzania poprawności i stosowania kodu promocyjnego do " "zamówienia, zapewniając jednocześnie spełnienie ograniczeń." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Unikalny kod używany przez użytkownika do realizacji rabatu." -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Identyfikator kodu promocyjnego" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Stała kwota rabatu stosowana, jeśli procent nie jest używany" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Stała kwota rabatu" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Rabat procentowy stosowany w przypadku niewykorzystania stałej kwoty" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Rabat procentowy" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Znacznik czasu wygaśnięcia kodu promocyjnego" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Końcowy czas ważności" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Znacznik czasu, od którego ten kod promocyjny jest ważny" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Czas rozpoczęcia ważności" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Znacznik czasu użycia kodu promocyjnego, pusty, jeśli nie został jeszcze " "użyty." -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Znacznik czasu użycia" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Użytkownik przypisany do tego kodu promocyjnego, jeśli dotyczy" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Przypisany użytkownik" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Kod promocyjny" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Kody promocyjne" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2403,21 +2429,21 @@ msgstr "" "Należy zdefiniować tylko jeden rodzaj rabatu (kwotowy lub procentowy), ale " "nie oba lub żaden z nich." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Kod promocyjny został już wykorzystany" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Nieprawidłowy typ rabatu dla kodu promocyjnego {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2429,142 +2455,143 @@ msgstr "" "Funkcjonalność wspiera również zarządzanie produktami w cyklu życia " "zamówienia." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Adres rozliczeniowy użyty dla tego zamówienia" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Opcjonalny kod promocyjny zastosowany do tego zamówienia" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Zastosowany kod promocyjny" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Adres wysyłki użyty dla tego zamówienia" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Adres wysyłki" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Aktualny status zamówienia w jego cyklu życia" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Status zamówienia" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "Struktura JSON powiadomień do wyświetlenia użytkownikom, w interfejsie " "administratora używany jest widok tabeli" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "Reprezentacja JSON atrybutów zamówienia dla tego zamówienia" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "Użytkownik, który złożył zamówienie" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Użytkownik" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Znacznik czasu, kiedy zamówienie zostało sfinalizowane" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Kup czas" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Czytelny dla człowieka identyfikator zamówienia" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "Identyfikator czytelny dla człowieka" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Zamówienie" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" -msgstr "Użytkownik może mieć tylko jedno oczekujące zlecenie w danym momencie!" +msgstr "" +"Użytkownik może mieć tylko jedno oczekujące zlecenie w danym momencie!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" "Nie można dodać produktów do zamówienia, które nie jest zamówieniem " "oczekującym." -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Nie można dodać nieaktywnych produktów do zamówienia" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "Nie można dodać więcej produktów niż jest dostępnych w magazynie" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Nie można usunąć produktów z zamówienia, które nie jest zamówieniem " "oczekującym." -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nie istnieje z zapytaniem <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Kod promocyjny nie istnieje" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "Możesz kupować tylko produkty fizyczne z podanym adresem wysyłki!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Adres nie istnieje" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "W tej chwili nie możesz dokonać zakupu, spróbuj ponownie za kilka minut." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Nieprawidłowa wartość siły" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Nie można kupić pustego zamówienia!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "" "Nie można usunąć produktów z zamówienia, które nie jest zamówieniem " "oczekującym." -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Użytkownik bez salda nie może kupować za saldo!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Niewystarczające środki do zrealizowania zamówienia" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2573,7 +2600,7 @@ msgstr "" "informacje: imię i nazwisko klienta, adres e-mail klienta, numer telefonu " "klienta." -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2581,7 +2608,7 @@ msgstr "" "Nieprawidłowa metoda płatności: {payment_method} z " "{available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2594,36 +2621,37 @@ msgstr "" "temat konkretnych produktów, które zostały przez nich zakupione. Zawiera " "atrybuty do przechowywania komentarzy użytkowników, odniesienie do " "powiązanego produktu w zamówieniu oraz ocenę przypisaną przez użytkownika. " -"Klasa wykorzystuje pola bazy danych do efektywnego modelowania i zarządzania " -"danymi opinii." +"Klasa wykorzystuje pola bazy danych do efektywnego modelowania i zarządzania" +" danymi opinii." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "Komentarze użytkowników na temat ich doświadczeń z produktem" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Komentarze zwrotne" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Odnosi się do konkretnego produktu w zamówieniu, którego dotyczy ta " "informacja zwrotna." -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Powiązany produkt zamówienia" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Ocena produktu przypisana przez użytkownika" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Ocena produktu" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2637,126 +2665,127 @@ msgid "" msgstr "" "Reprezentuje produkty powiązane z zamówieniami i ich atrybutami. Model " "OrderProduct przechowuje informacje o produkcie, który jest częścią " -"zamówienia, w tym szczegóły, takie jak cena zakupu, ilość, atrybuty produktu " -"i status. Zarządza powiadomieniami dla użytkownika i administratorów oraz " -"obsługuje operacje, takie jak zwracanie salda produktu lub dodawanie opinii. " -"Model ten zapewnia również metody i właściwości, które obsługują logikę " +"zamówienia, w tym szczegóły, takie jak cena zakupu, ilość, atrybuty produktu" +" i status. Zarządza powiadomieniami dla użytkownika i administratorów oraz " +"obsługuje operacje, takie jak zwracanie salda produktu lub dodawanie opinii." +" Model ten zapewnia również metody i właściwości, które obsługują logikę " "biznesową, taką jak obliczanie całkowitej ceny lub generowanie adresu URL " -"pobierania dla produktów cyfrowych. Model ten integruje się z modelami Order " -"i Product i przechowuje odniesienia do nich." +"pobierania dla produktów cyfrowych. Model ten integruje się z modelami Order" +" i Product i przechowuje odniesienia do nich." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "Cena zapłacona przez klienta za ten produkt w momencie zakupu." -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Cena zakupu w momencie zamówienia" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "" -"Wewnętrzne komentarze dla administratorów dotyczące tego zamówionego produktu" +"Wewnętrzne komentarze dla administratorów dotyczące tego zamówionego " +"produktu" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Uwagi wewnętrzne" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Powiadomienia użytkownika" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "Reprezentacja JSON atrybutów tego elementu" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Zamówione atrybuty produktu" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Odniesienie do zamówienia nadrzędnego zawierającego ten produkt" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Zamówienie nadrzędne" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Konkretny produkt powiązany z tą linią zamówienia" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Ilość tego konkretnego produktu w zamówieniu" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Ilość produktu" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Aktualny status tego produktu w zamówieniu" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Status linii produktów" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Orderproduct musi mieć powiązane zamówienie!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Nieprawidłowa akcja określona dla informacji zwrotnej: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "" "Nie można usunąć produktów z zamówienia, które nie jest zamówieniem " "oczekującym." -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Nazwa" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "Adres URL integracji" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Dane uwierzytelniające" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Można mieć tylko jednego domyślnego dostawcę CRM" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Łącze CRM zamówienia" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Łącza CRM zamówień" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Reprezentuje funkcjonalność pobierania zasobów cyfrowych powiązanych z " "zamówieniami. Klasa DigitalAssetDownload zapewnia możliwość zarządzania i " @@ -2766,11 +2795,11 @@ msgstr "" "generowania adresu URL do pobrania zasobu, gdy powiązane zamówienie ma " "status ukończonego." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Pobierz" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Pliki do pobrania" @@ -2971,8 +3000,7 @@ msgstr "Witaj %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Dziękujemy za zamówienie #%(order.pk)s! Z przyjemnością informujemy, że " @@ -3031,8 +3059,8 @@ msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" msgstr "" -"Pomyślnie przetworzyliśmy Twoje zamówienie №%(order_uuid)s! Poniżej znajdują " -"się szczegóły zamówienia:" +"Pomyślnie przetworzyliśmy Twoje zamówienie №%(order_uuid)s! Poniżej znajdują" +" się szczegóły zamówienia:" #: engine/core/templates/digital_order_delivered_email.html:128 msgid "" @@ -3087,8 +3115,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Dziękujemy za zamówienie! Z przyjemnością potwierdzamy zakup. Poniżej " @@ -3178,8 +3205,8 @@ msgid "" "Content-Type header for XML." msgstr "" "Obsługuje szczegółową odpowiedź widoku dla mapy witryny. Ta funkcja " -"przetwarza żądanie, pobiera odpowiednią szczegółową odpowiedź mapy witryny i " -"ustawia nagłówek Content-Type dla XML." +"przetwarza żądanie, pobiera odpowiednią szczegółową odpowiedź mapy witryny i" +" ustawia nagłówek Content-Type dla XML." #: engine/core/views.py:155 msgid "" @@ -3221,14 +3248,10 @@ msgstr "Obsługuje logikę zakupu jako firma bez rejestracji." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Obsługuje pobieranie zasobu cyfrowego powiązanego z zamówieniem.\n" -"Ta funkcja próbuje obsłużyć plik zasobu cyfrowego znajdujący się w katalogu " -"przechowywania projektu. Jeśli plik nie zostanie znaleziony, zgłaszany jest " -"błąd HTTP 404 wskazujący, że zasób jest niedostępny." +"Ta funkcja próbuje obsłużyć plik zasobu cyfrowego znajdujący się w katalogu przechowywania projektu. Jeśli plik nie zostanie znaleziony, zgłaszany jest błąd HTTP 404 wskazujący, że zasób jest niedostępny." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3257,19 +3280,15 @@ msgstr "nie znaleziono favicon" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Obsługuje żądania favicon strony internetowej.\n" -"Ta funkcja próbuje obsłużyć plik favicon znajdujący się w katalogu " -"statycznym projektu. Jeśli plik favicon nie zostanie znaleziony, zgłaszany " -"jest błąd HTTP 404 wskazujący, że zasób jest niedostępny." +"Ta funkcja próbuje obsłużyć plik favicon znajdujący się w katalogu statycznym projektu. Jeśli plik favicon nie zostanie znaleziony, zgłaszany jest błąd HTTP 404 wskazujący, że zasób jest niedostępny." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Przekierowuje żądanie na stronę indeksu administratora. Funkcja obsługuje " @@ -3292,30 +3311,31 @@ msgstr "Zwraca zmienne niestandardowe dla Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Definiuje zestaw widoków do zarządzania operacjami związanymi z schon. " -"Klasa SchonViewSet dziedziczy z ModelViewSet i zapewnia funkcjonalność do " -"obsługi akcji i operacji na encjach schon. Obejmuje ona obsługę " -"dynamicznych klas serializatora w oparciu o bieżącą akcję, konfigurowalne " -"uprawnienia i formaty renderowania." +"Definiuje zestaw widoków do zarządzania operacjami związanymi z schon. Klasa" +" SchonViewSet dziedziczy z ModelViewSet i zapewnia funkcjonalność do obsługi" +" akcji i operacji na encjach schon. Obejmuje ona obsługę dynamicznych klas " +"serializatora w oparciu o bieżącą akcję, konfigurowalne uprawnienia i " +"formaty renderowania." #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Reprezentuje zestaw widoków do zarządzania obiektami AttributeGroup. " "Obsługuje operacje związane z AttributeGroup, w tym filtrowanie, " "serializację i pobieranie danych. Klasa ta jest częścią warstwy API " -"aplikacji i zapewnia ustandaryzowany sposób przetwarzania żądań i odpowiedzi " -"dla danych AttributeGroup." +"aplikacji i zapewnia ustandaryzowany sposób przetwarzania żądań i odpowiedzi" +" dla danych AttributeGroup." #: engine/core/viewsets.py:179 msgid "" @@ -3338,14 +3358,14 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"Zestaw widoków do zarządzania obiektami AttributeValue. Ten viewset zapewnia " -"funkcjonalność do listowania, pobierania, tworzenia, aktualizowania i " +"Zestaw widoków do zarządzania obiektami AttributeValue. Ten viewset zapewnia" +" funkcjonalność do listowania, pobierania, tworzenia, aktualizowania i " "usuwania obiektów AttributeValue. Integruje się z mechanizmami viewset " -"Django REST Framework i używa odpowiednich serializatorów dla różnych akcji. " -"Możliwości filtrowania są dostarczane przez DjangoFilterBackend." +"Django REST Framework i używa odpowiednich serializatorów dla różnych akcji." +" Możliwości filtrowania są dostarczane przez DjangoFilterBackend." #: engine/core/viewsets.py:217 msgid "" @@ -3356,8 +3376,8 @@ msgid "" "can access specific data." msgstr "" "Zarządza widokami dla operacji związanych z kategoriami. Klasa " -"CategoryViewSet jest odpowiedzialna za obsługę operacji związanych z modelem " -"kategorii w systemie. Obsługuje pobieranie, filtrowanie i serializowanie " +"CategoryViewSet jest odpowiedzialna za obsługę operacji związanych z modelem" +" kategorii w systemie. Obsługuje pobieranie, filtrowanie i serializowanie " "danych kategorii. Zestaw widoków wymusza również uprawnienia, aby zapewnić, " "że tylko autoryzowani użytkownicy mają dostęp do określonych danych." @@ -3387,8 +3407,8 @@ msgstr "" "zapewnia zestaw widoków do zarządzania produktami, w tym ich filtrowania, " "serializacji i operacji na konkretnych instancjach. Rozszerza się z " "`SchonViewSet`, aby używać wspólnej funkcjonalności i integruje się z " -"frameworkiem Django REST dla operacji RESTful API. Zawiera metody pobierania " -"szczegółów produktu, stosowania uprawnień i uzyskiwania dostępu do " +"frameworkiem Django REST dla operacji RESTful API. Zawiera metody pobierania" +" szczegółów produktu, stosowania uprawnień i uzyskiwania dostępu do " "powiązanych informacji zwrotnych o produkcie." #: engine/core/viewsets.py:605 @@ -3401,8 +3421,8 @@ msgid "" msgstr "" "Reprezentuje zestaw widoków do zarządzania obiektami Vendor. Ten zestaw " "widoków umożliwia pobieranie, filtrowanie i serializowanie danych dostawcy. " -"Definiuje zestaw zapytań, konfiguracje filtrów i klasy serializatora używane " -"do obsługi różnych działań. Celem tej klasy jest zapewnienie usprawnionego " +"Definiuje zestaw zapytań, konfiguracje filtrów i klasy serializatora używane" +" do obsługi różnych działań. Celem tej klasy jest zapewnienie usprawnionego " "dostępu do zasobów związanych z Vendorem poprzez framework Django REST." #: engine/core/viewsets.py:625 @@ -3410,8 +3430,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Reprezentacja zestawu widoków obsługujących obiekty opinii. Ta klasa " @@ -3427,9 +3447,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet do zarządzania zamówieniami i powiązanymi operacjami. Klasa ta " @@ -3445,8 +3465,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Udostępnia zestaw widoków do zarządzania jednostkami OrderProduct. Ten " @@ -3479,8 +3499,8 @@ msgstr "Obsługuje operacje związane z danymi Stock w systemie." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3504,8 +3524,8 @@ msgstr "" "Ta klasa zapewnia funkcjonalność zestawu widoków do zarządzania obiektami " "`Address`. Klasa AddressViewSet umożliwia operacje CRUD, filtrowanie i " "niestandardowe akcje związane z jednostkami adresowymi. Obejmuje ona " -"wyspecjalizowane zachowania dla różnych metod HTTP, zastępowanie serializera " -"i obsługę uprawnień w oparciu o kontekst żądania." +"wyspecjalizowane zachowania dla różnych metod HTTP, zastępowanie serializera" +" i obsługę uprawnień w oparciu o kontekst żądania." #: engine/core/viewsets.py:1254 #, python-brace-format diff --git a/engine/core/locale/pt_BR/LC_MESSAGES/django.mo b/engine/core/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..fe8da408c29f2f839581e8fbdf86d509dba40cbd GIT binary patch literal 94504 zcmcef37j28wf{TphJAGdZNidF$V?Uzz>omh8OTO97QxJ&nL9I=%*-9{ok=nvilVq7 z!UIJGl|^Jx+!xgM)aQu%bKm!e`}!1j-$Vc3-#Jy?eeWzp-~a!gPddM@?&|8QQ)jDF z)pfsn#6GV`_&zr+0S^TC2N!|U!KL6*@Lcc-;I-fr!PkTPg6{*506zq(yf1?LfL{fl4Sow$IhQO+ zlEc6^;LYH5;C|royhQnCfk%R;f(L?Yz{i1`K{e$va4GeFF{pZe{H!E79Q+)3 zJouj=|B}7WPLgB5<={;4V(>}ebHR5*quW48kZfA+^|=mQMEcHvUk`Z53UAj+Q1m+& zRJ$(&_1-Sbguttb&_lZ=dMYTKY~|- zZwGgsOS{R}(w-z#F!V$e;g00or}Rk!3#jqs|1RkJHW?-J3-a^ zdQi{Z3@YCP;4<*N;0Jl{U%+joA6%Ct7m_}7eUhvIdpCIgH&JOl_ij-1_z-w3_+?Q2 z_FM3HaNi5OzB9qSNzVZf1m}UG*Ah_lIuC3Cp9!izZv_tm?*dic+X8+Rd@AX$gJ*z$ z2F396H~ICCgSV3Y2`GNLX0y}jC7{x`fmSZ4dcO_aNV^^a#s9}__4+*({2u93Li#|6 zaWDBE56%HUd|{G2eXk_>)kR72P4cxroxbP#iI>7>;A<|UP2fkKkt7#^2X{bU^7oXI zKD@@by`QxEhbJ=U8fzXQMD2TySQ%a?8D)fe0(;j=eL34v!{dN<1#o#{vmL0+PUyKNz%&oGoI`G(*vqKH-PiO_k#1l zpMmP%Cq2*gzzN_9q|XQEfYosQHc)){QE)N%Yw$^6%QZ=I9Jn%IC#ZZ^gNwlXLGjb~ zLCM)4K+*T$=es;!1d6Zwz+=E6P<;48Q03kXs-5ouVXfp}K}0S&>IE+UUEoU6cY#NM zKLt+#{~J6KoOx}M90HyR>i&5kBuy>@PXfOI?hF1Ml-%w6Lf3akg38|ls-KsDs>gaz zdgLNd_3Z->1D^w`eK&;r_lD~a2K*$be)=XTy8Q@L{gM}X{~iU-Cb`rPXTp*KB)RG1NFYmA^i++Khi^>+PMqV^Dh8J?|Z=mz;}a> z13w5#AAJH;y}k_U{@+2Bd%#QleMf@2egdd|o&$>B%Rtd@BdGUvfqKs~L;BfZO8Pob z&p!a}1HK1T`#u1wJ!9a};Fmx>|1(hU`6Hg3ueH)a1{vG%T%@t zUd{=i@+|^Y-}ZoApz>V>s{daGs+_lhj|0cR>EM5W%fYXM3&1D8-08m_lw3a@RQWf8 zhk$p3s_(l%_2)z2!Qf}X1Ho^D$Ado&_ov_B#?BvZ7wLft^`wX11LQ(1Rf5) z6kG?s7TgK`0vrH4U*YxoJSaMU6C_dc^&IO+f9tpl3YzH3#8o8so?Lxy}_BU_WGOx>iI3;lfllAel{q-@H%iI_$E;0e;=F){x0B?U*q&&0m@F4 zL;4ypC4G0e{xNVK=^uiU|D$hp`*tQMe`z}?etQn6{=5@Zc^?H;kB7k&oOYYjX9g&} zvmO-vHiJ(B%b@t`>X3dhxQ6r_!u4MU`~#?d{2Qop4t}l6_Yt7l*#e60OTZ_98$r>j z60Yw8#s4n_+rWPTRsVknF9v@IivDN4&iQ`?RKC}P;_uIbdjFR}z3&I01-m~B9 z-CsQlOi9lN=YX3)J@*{&AnWJ737!sK1d8u&0L4Ea4A*}L zt|WcRoldVI@B-2|fqLJMK-J^7py;&UUEZGufqLK3px$#FC_2ptMUS(?_4T0Y-wCSS z)o}l6Q02co+`l#4zZVq0ybpXL_>pk^+u-9#{|Y<>-1iM$?tD=C<1FxKupLyn+reYN z9iaH-d7$|6R#5pL0Hr4$1ohlUK-K%};r>rR$;TsL3Z8Jc%jZf^{WAcnyf=bR1s?>v z!LNg}!KH8Xe(D3&o)>`1e?8a+-VTZ%KL@S=_q)f-Jr7(%`WkRQ@YA5`_eD_k{VAyT zJp#@EkGR)y5qJ{mi$eO@py+o8sQ&%{D8Bg(sP-RxAGQj70=O9*23LZg0NZu{e&^2% z!Ibp#LGi)ep!)g!pvwOQsQ!2uoDUxICdYHYnWSsrZ16P!9}3rh11{$J6W;9dxEYjw zy$TecJ^;=EzXhHG9`Jydw-B5~`chEkz96LE1}fh-K$W}iTRi@74tN0RXM+pC7lNwi z`$6^NFT?ed-s|F>F0w>Nq+`B2b}&+$MZp5zYbglehL)79QH2vL$-h_=N3@? z_YLqY@G0;1=Pv^nl71bi>t6y@-VyI{eZLVD-wcBXgRcR_SNDR4fu9C11-}g*0zU1% zF7M}p`;xvC)N`HS3E&VYzP%Y#yKe=TgP#u94|&k<9}Q0D`mx}V;7ssv@JvweT?eY) zo)ND1f`^hG1&;w=462`Q2V23nW;cn0`ZQ04v< zd;<78P;z|GhrHd}K=t$0pz8ldQ0@H!D7yX`+y^}1!%mlj!6QhY2|gKI52_uPgL>}e z;91~%K(*r!px*!Ap!$EmfA@ME461!6gGYl4K;=6ZdgV%5;`v5FrEdkr@1Fw2Cx?zXe?9@6L3$=AzB&&Sot^=zzxzP->np)!;1|K=;87n9 z`VJI*o)5NwZw1x=-vF0_hdku%UkhGCx(+S?{{)@@&i8^QCzkAkOxhke}3 zUjrUTx(2E}H-OT29|HB>UxKHA$9#e@;xx(xA5Z#?pG1~Pe-PZ8^ktuRdX_-dyB}14 z-U2=jyazl7d^@Oqd<1+Fc*tkG-&#QR%Un?9tpfJ}+reAG^`QFe=b+^C51{yT|Np>u z29F010e=CC@BRv^ydyvB^=JXbM^6LQziYt(>i;Zof6_nyoZF>GK*`OapLhMX3N$$f zPv!dU;8VdbgTLM@Nq!IZlm5Y%{P~SvCe}!L02H0S67Zm}c)M1BqW2nbU$6`w4DJXx z3W_gY2v)%{@MQ4RuX^0=60kz)sK&YD*x#3I=z+z+yoxT^*&H^9|o2GIpBWaEuiT9I#Bh0FSr_f2>d?p zJ?MM1jr6a+@AcmNpUy7_{J{I^o*z2C2Rus8flmRy2_6mp1)K*S`XlFqbHKw$uL`&g zJcM*FsC+v?@%cTV+V@RR!Z z%k@_tJT3VM>EjNYmb@AK{^8S%o-aFcn%RN7z;(R$ZQ$|X-$2PndX(c9@I=xt0@c3{ zfRgKvfCqpd1Jz%j1LuHy9X-wHJr@*RPY3q}H-Mu1R&XEiQc%yAz+Uij@OtX^MR2yR zKYp6&+v`B(za13c+zm?p-vch9eV+tR1^@m;ukWb@u~q+Ga4vW&cslrLQ1#sVIIqWP zpxU(*JO%6oCFj?N^h01P>ED7|z^6WCn(_5;z?(qbe+T$9@cZCW@JUbgd=~}W1zyPY zSAvqWUxU)4`=?Hy!$GyD1w0O10!{}n0Xx7lxE1^uxE4J2cu!YA@#BZUh2R%J$;W;( z{Q3!?(u=?wz)hgq`2$e>aOeq6-(x_%Z#Jm%7J=&LHK6+EQc(3PgVOW6!6U(&K;^p! z)N}tD(w_y@Pd@i+{<{QAiO&j8hq^FZ;}1)${WDsTpPC%6WD z2$Y^ac(%819VoqiDX90=K=IkNp!nt0px*c1aQ}z3*~R{r$X< zei5km-45#g_kk+sBj7ynGvHG2QSdF`nM~fPeLn|9zdwNLhlA!#GrwRhcme5)z%qD0 zxCA^5Bcu1O1EohdgC~L4fa>S_KW7O!)vq5s7rYHr{eA@Q4<5eA z-}gjN{4yVG2iJhI2RDM!KOY5Ezx_{}X7l04gR4l_K(*sRQ1AaJsP=vlRQ{iUqW84Z z-5#6`zMS*`DEd7LN)Gov!{z1_@C4FJLGeooOu-@WEbvB9eE)e+{qPG=<9}$E%x?wgJ*L89#Hn_2cY=+IGhr_X9KtpydD(ajDh0U--Dvd>?L0Q zWuW-&Mo{g24Jf&K7bw2_LP&oL6#f4UirYw!&451{JTcGk4y8DI%i`#ubc9)ATzpSH98xo3dt_cAEHyAnJU zya|+ky9*S5z8jQ1`U_d3Vxy$F;ZKNpn#xEPeYJ{y!Cx&suSeHfHHegYI7{}YtF zJ${*&(*{cJmw|f!vp}`;I#A``3aZ>UgW`|Rf$I0)fui&L(dm3p{dgHD zxf}x3j_W|t_cl=Z-vO$Ap9Ix^-vRa9BcS+b-&IbhLqL@~6I4B(2DXBif-3hVpvrj- zD7wD|)O)@JiatLB<*y#R+V%ZhQ1{n?;=e9X{5lBg{VxI~$G3vwqkBM=`+aaOxbGU* z|BFEBxvN0c>n>1w>SN*hoOAvDCQ$F$4eGtufNkKb!FAv#z)Qhn+MS>3;Dw~$2#UUc z1CImuJI~8G5tLlb4Y(FmJ1ZgmvVivo{5ZIV`#%Iv2Irjb^xOD&G?} zI6qzt>iHW$>76fv%fZ7px;$(F#kVg9Rj-eMD(}yr^wPWwJYNZvKD-T7yT1WSE{@;i z^*9C8b7gQf_*zi%@k4MWm~M6~gR0N{pzPo;Lwe2@w+n-yo_{dl-^2CQTfN>lfTHJ@ zK$Y{izEor9U46#b4hAPX&+KJ}r4QcrK{-Jq$`-*LFDlp9Rh&{Xy^?@W-I^_{@^)lP#d+ z{COdL4=6tQ3MjrixYOllC8&1o07Zv4fa1pwgYDoWpy<7%%jv%xRQe&X51iKRdf;+! zU(#2DqQkYI+IoPQaVKKgCA|0pPadVJZRyBNHfbPp(f{b5k{=5wIv^E+|6oY}7F7P3y{>mxgR&|vw3yMFw zLGjV;py>TYP;&S`;51NwqnzB~r^#o)D@a35Tkm+lUi2B)5C{9)FW^z&kGXOj_ut0( z;&5G=rWeki&HWn3Y>ts|{o~|O%qsqE;pE>6&wMeQuL7^-*iBxw@sjY&D+9hBoD=fi z$9+^tg4#(Q=KO+?=TXj|#<|u5znOcl0_Spkfb07EAlHrt?+07C{s-`5q*rkMY|iiJ z{3qZpj$W>zK9h?<{rxuwWVgSc^Z&CsP9uFE_x~2I>*kh_U*~sl{T`k0_xF(JaBu^8 zwsBm@@lDdt3imD~-!R9!NJ~!QpLjrj&kgy+8-L{d#T=-_WGUs`6z(kmmvKK0>0fca zFZVwX(j=1~70w?=`W>Vn&+(;j9W!NrZ{+_!a6I72-rZtj@Jo)$8eN5&gNO^;3t81aL6tl z!ZYs+&pnH4y{rhpwj|4Y@ zFADd6MEYvZ2RJY{ z`@aB>A^l8_`1eUpocm_uY*FO!m@ca+J7lLo#+HstJEWGop;5v>M zaXgQEf8pLMz{A1oIriiHJnl^cH-Y+_24a?zey-u(CyO{<&e6{CLGEA5b*;Jo3g_?Q zz%@zwNbB!EIi6!@@F~|1;rdOar-OTu{#VWiIlq_lKXd+S&VRtU=7Ks%|D5yRauomW z=icwbg=@e!aQ|~04{%+7SAzS1o4}r?XRjvxJ&sw0>!%dXwMPG*kbVZ|TFbBb6#bch z2p-S%j{+{)2m;;dm9t<=j6Ad@*W<+g}LhFW|oZzQnOLoG%COCB2;EJKz9H0JB;%k;29hTa=e&Be`Ssx+|zuL{!)5b$K4IfDC_arATTU%)ls6`=msJJ@$j;nd*!{C@&@jtTEy$@xdP_CKUw z7OuSn+{(3YaJ+@{Z5&VK*qdW5$3a}*#L>pN{yM-Lz<=ZTyDsqeCLNUhI1c@NjXa;= zn8|q^+@IqOocD2zaOiI~$BpFwA@{E3e0_L!1?Mm2{Ks5>ghPLS;+Vs=xujpg`IX_i z?!6+MzZ?9UE`-0Cq(95?ThgBg|H5%ic*i2H9ZLEt(wB1nHjZ|V`1kmb?*J}b883pP z;rw8p)!$+V`~TZqdw^pj&;AU2YPk1xa0cnyIc9U*8p?iuxZeuS=csahZMdgfXOLHa zU0hqw`FA~;JRw}amg|4z{1&dC7_L2mYrp3FU$}M{=X-O^3-^|TT^wKL*v(Pl-ccL} zllOem(?j_Yp3l9Xka!{ZUheDfbnqzfH%rzj8CUQfEj@kh?z$8iSN-wDnK zp9S8`@hOgbN$YQ~fS&SoAWK5xQ1FwK^@5Pz36{v;7Sc<>=Z5pAa{YCjf0^T*JhPqS zE{^w*{wc?a9QwO}Yx*1GIFDli&)v;&Y`Fe)@HA!M?@65B$1#ul%Q!kYt|R^L+&iE1 zi#VRgc^z!wsBrH_j!$zG{~jX!Ajj$C`2u(g_$lx}j_;9iCg~$N|Bu2$Z{gZLTzegu z%qs6Lbq%+q8*A0>k*?u%>(=&_$+C23rM#T>T zQvXOft#)2s?i#MQrCa(c_3VkET6JfoyIfCuMh3fvE7ieLe`R>o3hJ-ahbd=HS}Rjf zd8eIs)ygHmIx^H9&Ps#bX?MB5tm~7$wS73P3=WrjYo%e{wyQGSm#)0LG}v2BH?7*d zC0$)B4U~6PYddDzj8&nM)hfVccrJN zTq_R_r_hL|(AL$J{$X-auddQisk1`kDk`N`PD9JP)8W2ab)>fsEQc!jQ_D+TJIaII zZOO6?+mdCS)e*>DPnJ>iPJeqp^elI$C(YVfu60)HA*1_SC8a^kQvCd3dP5)K#v}Onb`ZZk|>(X!8ZFWM{kCJfIB63Z=2(|al3}P+8y*}P z=q%TGJv>o`y;PHUnr^0w*@e-jnpXz~O0D%Wh44UkDmG24J!wy++}~YKhpTD5S{qI~ zN86B+a!+NqGh0V%hcijJ-bJs{zP2=-K701E{{HH&a`)odv(u3gHHuQXIVbg2h*)z{ zR?X=s#XVw;XU!mijn$obwI2+Kow@4IoxL%w4*L62 z>8;Rq?=wb5?8JeKc>8S zpi-}^wa$BFg*#P4-Z4;uKa-V}-pX*PKM9HlhA*e3?t#i+va(vP56&D;rGczYgV3=) zTIy@ zs)J~G41knCDJp;CicJ1Sk01r$q1TIorv1C?Qf zwS`wztfd`u(vIvT&&$>9InFEf!IA!c<)trb!*!Vrr4adIlAg|Q6%(~`Z+W*pke&4p zD~(kU^jf0V6P3ZdRc#at&U(_2Gb!4 zl(bQOZg&NJ*uo2jYa`{3xg9;F{(9NFcEA2|H zV^!L!-KBvcG|^(tA$otcw$wTV?(2p&kQ~dpw0F35{yaY8tGP-@ZGEh#JEQMxt zdHd!K=^3ZZo1fzD;NlFFV+|&J>a0nhTC;9jvZh?6Go+KswOX~dIK7fD&)3Mj`v2*y zp$c79MM<@UE4A{@^5950Iam4?jp*`$jTu3*q}gP!qvmVNvUQcZ(3rUeAeT&e9cQj& z6_9$zWi+47Gt<73+saZ}A1Zg5p-Xp^M@_Y><+wok8+!Yzou&ThBs_BjU0X&^#(EZB z9qkd!xhzvl!5y_1R$Ra1+x1tv%woxQ2gj7kV6HIm%Qm)SOuC1v2#)C(2~bVu*1XBQ zXf-6bxo+jmC5CpY*}J6X17W+OyMn&X-D|vPRAxVNPmy)Rpro!ciOybTYWZc~{5ywZ~rQ}rvnF&}{72L$tvW6@vUU6K9H zsYIJHD#`xX7^V)tt3deyIdl3$Xgc%MjZZ`G&|9NEV#r4Yv6tnPH8>XT!la#Ly#Yr; zlrH1=PtD7lhpSyXq!mi2af#zDfw>gkQ@j|8TKkJn5x`S7q;rDnd$!Vpbsb__VECMu*C2AKDb@S1m4Dx3;Oq z)m?)ac9&E2Pq(|DXklqI{;zgv9NQg~F1@Jn)Sh);V_6e-VzpN4g>aAAi{gO)$Gz8I z?S-LWBh0J#8$(p$9BDu#to<5Zk1;^{Y}upjOmhdH55)aMK8U5Wzw#}I9?XYqplc= zcV)RdyMd8z6~l+IF8L|QOow7ONqaqAra@p?XK|Ra7AYK7sk1IlyQ(lpWsnkDlC`)5 z{mI(uAfp+(eNp4>>Moo{bW^fUp&(i~wKb>=Sf+_=!DEyl%5?-4-=VQ_xj$1Ot_nTa z)MQO28N4E`7Dte0ENY5RctZv8%B^+O;by5_G7GIMnhu5@!=*t~uCu^y`jqg1jdMGS zBVluzaT=lFzyJkA?csqisp{sqm6~0QUG>D+m9eM7Sv@2D=C0&bqY};{!~=Z9WSMg_ zD&=a%*%h4zvA9DfEaQf@rLJg6qHCo9k*uH_f>2aj)_tmRcon>3M*4ZNask#s+iI1MDM8t^G+ zs^Vg#+v!C7qKP~l$Wl~MW{tqC}Ckj3=Vmm zH2tQB!^uzLD_I>|(b?V%4-%=B@Qp=MXami}8IWfYy*tV;6O%N_#vgGB5&7LC z&1t6xbGlkM*Z5&TIjM{i*pm?y5?px6_d56PJCOyjI?G9v!Wlb!}MXxPq z+bO-jpzubGE>0|KnygVwT3ERlyiuRHzVeu6_No zE$!>Jj``&>&wGBDB1^Z>v2~+QiW|u){Fnm41_>nWHy*+ zI6ZY9tr%q#rEDR9XkxchLHVGe$K_PR^@K1TEi()tL2PaZ@{l`Ix)v=%Do@8>;}lRN z&_toJ@C}SJB>8pxr2%tuv-lT1#~|8Wm+WFc0sRrINn#HURZfjhN;lYOn$n2M`?Kmq zD40FHvr-Z{&G-&tDTncn81A&CYeTWt?Zqd2;DGT5uPCOEseF^LJV_EGcek-0LFx&;uunh(c;Fy z^vqV``&36!lQ62ARc<3XJ+n1FII|_xz3x>cPO`dvef#EfSFLPGHZqwpIGk(@=EI^P z#e|w_A%8CVRL>;#*QgVpq{tApwZTLb+w!11^Ln~s)7F(mw?Z^`hK*Jtm&>4C8j3ef zXsX+7Jw+Cbd~Wbk7_V!Gv^Fn@wx2#!xUZ{E9zw%FF1U#Zt=p=$lt~!cA(yOw6vqNJ zkW(QWQiSoJdLdJjxkVjJ8>*h!$mD{NlBhJwNd?opRuY$ND!aoSy-gdKM?+)5W<*U+ z>kx9{Ix%`2{&GkGO?((=L#Q|mG#a31%%8X72V%Lw8;Qlk@jXl&HM|J*Z6?aI5;p6I zMG-~{bAQH%83kk+Lk0Yul117_?rzPJlsP8^$;^?4i*XPtPO*qhR?h0oH))uGbW7!i za55LQ`O%_lm`zU>7)M-^+omv(vnfyW7>1an^RX-jGOH-(uxQ|m!X#qOZa#p|0|~(q zvJO#%rYzT@V8mLTDKiRabnY&jA|1_*YVc1*bn_sZd{nh;ptJ+#pcmDKtRJ)Hr*-qW ztrKIUD;UMBqcrUD*+7rKMYZpbiXEYb_l(uvm=U=^)vJe9i$X}I;6E^$(^OcogEXz= zlW2_os>pC5E{s6u!{1;K2_MQk8yT!ndsA61_RO?l`>}sj8y;&K$zpNdD^En;QH+7#lbI3>Kz9oSyn7ZtKeqg zqY~yINXk4wmz>_VbcI`g%|Z{9f-~EY*UEy}^}fnbh)LVLK&*<9Da6mD05NjZt(7sWjXh5GdFFv;o+AY50lvWv$ zJ{f7_G(iI|NyL~-ffOE!ivuGo4LXX%d7W``9P~Keb?>B1LaG)p={goZ4 zT^mr(NrwruYLc9GIR{I7294RkTV#}2GpS^m!*qI47|mXed&b5@!HcrzX<8;%Mp*0o zO3!E{tq+DXn_G}&y&6(lOkDvC)ro~67&tgaw~%~uby|A}^fMQMS6`{KKw;D<*wnP{ zYS)OAVu|1(K|~}sW#NT&dnwkXnL}a=eAHHqcb9DOMP8;DBZ^$so5YvU;o~9*s7D5v zLkh$}KUzVb6H|`#=kf001I157%P4nO*wa+V z>Sl@fZq%qk2*qKx^e+w+c6oQOiA~%Y_{0S@mzWrcjeInPaYUgNLmGi(A(Ez=Psoam z{Z20DOSQ)ybzVV*1>2|_u+u;oW%-<3kn!+fgoy_L9+dF7=|1MUZSk z6fEjfyCDv(6;lKnwH9c&yxW&(h^f7GlaR7Og+;BSD$&ZIMm&}kMAU85Mo(=)*90@w zNLTj-P&KiLiIo~e@@SRDj{}_wlSY5^f1%OjXk_zLc_fdO8d?b=WftB#k<3Q@5+pV{ zCt{6)ITDSDWXUgOG~QqwB9Gb-HxRQHoci)B zcd#@%EKImY%{nry<#J{^3W_ke*TfScGG2m;+-jjaO%I8c1_`Rzl$48{Y)qpb3vhp*SLHj`0 zTz4~pjh;_MaVe(4VvlDonH=b-3V2P?A_m_Tg<0@@#&ggBF%+AQ=whu$iO^+(hY{pm z`og-dk&u&B*NmMa#!W?QL`p!Ysx_Fh0A;!i2cWkcMnmx}4OMV8(Bz^PxLqWVs}#(z zhN{~5Q=F!dhSW@mny2n6C@c58j^4S7hbbc=0L-~E1j=bh7DykxBjR%!-v%BEg;{VO zsVgy>Q4vw^`Wz-J#e6krHU!XPk?d3Tj4#fCaz#f@?T!RPqB655mav&)1QQ2SGgO%S znA2NYj(+SS}3Aa;H$*#yLj>j3O|rG$1`7 zY0Y_nwNSCzx>~7fiZ~wuq5-s`6~|?8l&tPo*@7Tir#6q&En0#`&a7ArTKGH-9TH~L zeMBK5xPNbafL+iUDBR;P%c_A59dD6lu?2BQ%{i0q0J zCBU*WEp`sZIMfY(E(~7_hBYeZ68>(eNUc1;OGxC;G7633uZfGXo|&MC0oEo~a0;`s z=sY65sOLt@i-qZ?b5UNheztC$hoG(GMs+DFViz9VB>7DJtlQDE#eqg#q$C>1c0f*> zh;mA9^LJ&=4;?dsg^>wIxUkh;6=34VA1oILm!8HHF61_NYmk)6=&q<6} z5KC#nsKM(atmBp9R$mAA!JUU-g(B76#1ZGIb+^jz8I3*E+~+ZBsRA?Zr%kRA;rk{Y zA-@)JG-O{Ebpb2-AWrtd#ksUZLGuEu7kaSqsiM-&B6|o7f{dc`5SRBzpfgM-3xHh; z^v!t5{5( z6!({%KyYU)KvHCLl-3f|uOusS6ii?o1977A39*iG@oraHVZ0))L#|@9SP{NFh>j^O zmjY}uD8?ZY=!K1^lUM?qQVG)gO0x4WCC>rqFWCM zQ8b`78Et0uXUm6ltDj11Em4bG5C1qr6H${k2w{MeY(7xcQP%~Mh%>a(T;kHGCwfL| zS$@J5VZxI{Na(P$jG$u4KU9Mte&x!lLbPg5#onj6(LZ^@ng*fP4? zTH~>9b3F)h5@n0k&3QN(<~AH5t7dT~%>ew%9jFkWY$C z&?^=uNbT#lZmpV*vRaUx7!l9>`3YxpimmanlP_n=do2s75DPG!(9{B{RYYQJ`nyrX<*X3D7?lvmnnZc;Bdb^BoP=<}(=)jq|Ggu&cad2t_a98!L7*Y@mrj6sdVn;^;#PLL2 zD@NOz0#l&@h3dJc^qw|d=wlgM+no2Y`F*06`rn#a2(z@Je)zI(mPloZz__cYgrY|s@ z%83;*`izUH$6CRWW%;VPzAP}NS2ZlNU8bBXW9!`bWYpCQ{j*{7h2y{$$qQ~xtWCp& zR8U`8s2l%mD(<$I>lkp74!Mb3J*V&3DTm;S+ESSrDG)exr+<)~EVF zizg;Gy;(;@na<;TreWpIp{toT8s1f=iaywdIFTz|o@oe5$ZJs0F5E0SZ#=Bfa^|2? z29AWy0Gf*x)W_uNWb^r3{e6vG==9HZmdH9$AUiJLpkvH{@)aOUdd25b^<~*-_bt(T zv3>apKOb(#^}2x&lAfq);)23@xRxQkA3vfF8iPKGOZkei4CZm&p)=)FAY^FiHacSfmxEy~9O}c!?33t1Mm>zK_ho$ML+MKR(nZ}@@^3SP z`$5xaIX=+I(b~?k6^$p&(z?nPzQNwSYD2n?$Y)v~EDhEBs>2DrmTb09-2A zWMLBvX6Dl-l;WSpN4AT-fy147W!7o7?4+J-mOsJQ00GmT*&_e&Ww<_gPd1x>kuV!p z=fB-${>O&wun$Z%+C;Ey4$U;#Nd5TqLcULsSIC$H53SoW+RYHmRnT*KI>nz#fqkj1u%`_OE=tJKKc zjlDTu6dOrHy+e;MKZCQy+8(D$sIof`S$wG|B+)c9azz{%qvEtUINgzX>lskUsuVWpEZ8f<@CWPJCe z;GvjJB=b)d%upC}YjJx64OOQS>$CWH!3Wx=9`r#Tt2)D&gvm*L-N}k{*B#+{A~#t3 zA#h@0ulQL+8Tsec9WW0Df)nGNa>pe3$d)k}wIIcaBYq5xYL5E}1Ug7c+|Z6rl{x5K zGs1h2FHkY$j1J@vCzRwrx z>EVXE5YaYSlCvJig+>l5zF7AtsZ5W=r5Si)aisk4)i=dTL>JoL9xujbHeW1OCM>C+ z(zlq*?I^g7dPOJ-&h4oxt+;MP#(I!ge8)%P_2KNY0?Q4FOgy5G8}F8_EP06&b!Q|A znk8x;s36xCj zg@*Y^+ZMD-hb1@!X|2M(Q}s!En=aG(V01v17gG_hF)cc(DQKG(O5%(mWEVTTIWPX)`NVTgo@HRMDO zl$(^7lgMJL)}a@(&!9}ESl;0K1zDIgA(r4D|4FGT6+hq3eg5LrP-O9v56Y5^jq)>( z;5Mhjq;2zMcshoK-K|6&TJW}TeZq9%!Er@%uW@FWJ+Ex}FM;^xTP~|34Cuq4KMjJ5 z&(O;U$L5+P*|%r8I~){plo=dE8sGZeUBui{<0E=Pn)aW0g34%91Ka&5D?G-6gFXrY??j)Gjb}J9QJgC(G!>R;Edzr_;gIZW zG%+#VFgKdz@=An9hS*ds#^A_NEAyXCt0lfK9DU@yo+V@T^9<1v=T`>#PAaPm`c8Y1 zrMhUkXCf<|6(3bg^My#=SXv~G5wUPFYTn}WKIxEG&x2*Yc0a!wG+2BPuOe!qEKlKD z&}tLp4*Dv;<33WJ&RE(n!FnOEXfvLYUS_B%59COQr zB#AS91Uzi13&tp{XEbLckTw_$%FenxJScS(9@S7f%O6K?+42~k4OGqCJLje>Stwc& zR@fxtrYuiniRKG|CB|JAOB63gmT0^tMV@DCV2LbaQ|0OYpfqES0z+hF6|My)nILyy zlKf8SFl{vo6@s3dNK*1gGCtxGtF5tVs)Nq(_&AkGNAz&yvq(A}l5sWN8ox>KrBT_M z91U0SOeun>3d`>)BJ=gdMLriCz6g+oV6CLSmQe-58f|?U(vV0CPK8Bih@mjqXMuAq zj`Yu*h?nwITzHwWW#O8A{vO^3=lRD+y3c%W7gf$a&S3;oNR4v-Slb}R`3|y%`Jm=~ zZOn$mSOB&rG&b~Id8l2cCaY-hV@gxnVr=H#7jBgXMCy!19*04^wkYM(UiS`tFn+jqmvJh^bTCd@bH<1 z@`g&Iva^Nq@Uw|a*F#`{0{KQopY&^|1n59S4Ow7+R(d33XJ0!!@m1%4^&it8&h~NJ zB6VwGyC^17woRLN@(rE_7Z5u{^Nin+a`W3XAz@Y8g9oEF8TTx^RQf!G&yQ#a5C%9} zaibv)pAAsB33F7AKJ(U}6xZa~!m`C_zBFe}zAlH13dh7z>;&^Po+JMfl5WzMDs@{Y znNOi4jr;b+V4%3s7S<72we5b9M!Ch5Vk<4{N%nD>w|L?=?m4w zdV}FFv|}D4B)d_WYz3{@I`&xwr+{A^n}T~ zVB`7@-drE)VW|#Zu%frw$Uq~8Ow*Y@c0*-T1?3tK!dGqEWr3elCm?NDs3T$@9nLAXHWu+nu#K=qGlJ%Y7!l=Ni!HfOnrBPQN^SWM5c9pH(9M>F2wn< zN}B3^7^qF1#pgyRA&-qGCVk$AbCcfAJ)rTWBR>jHWl`I_AEc=AK$f-xNyZJUxw5-5 zFfx#a@5fBJxl@^-nQW(uMBh12mM7lAWsgOfqwVvNf&B79-9d<>Y7@3h*|jA$smfjj zoXDYNyLfg5M5r0Ko2QtV6zab$_?oE=yO&+|VSGc*FjyYsTLT})Xz(blXOj+XNrR3_ z@?~EcDHHc=67y(@&1rbZ!W2zk*od)jcz9@5y=C#-x#r%|A^LR#&z?2XG$Z{~*s8Mb zSrq7M{;Dwg0a#X#ZFHyOzwzU%J$`D$d<6@V(&2+X2iTTWZ7XmYNX)WtfJqlH>1e9g zs3b?eY4Dpr26+P4XF~wfq&(xAJ-$FQ2r(@0g-4+?+Qcwjc*y3v`3($|;^2RC*M+Pxr z)FD4B6ORz;374Y)#%wk@K=tBv^XOT9jpitBTcJ0)QEqm<15yaCf3>8H?ir_~1C`LntFp z9Kv=__?+~mD4%Vo7n)XAZf-(Hn&h+enhu8TG5Qca=5x&$r>ptiT=0ks5r4T`w>x& z`Rq=(mzqnE~MTG%xTiJ`HishD$g1Uvmmx*(^+#j`MgJ=qUJlP5a~0-gpVHBb}B5z zvGtc`(WAJLQ6DB09w^){XtP3w@F9I;zN~_I#wj;qF%{;E&?~-;OOgfeGAlFgin<6h z7&hJ>|3u?`?QJ>f!U%qT!mMgXpunUHCB|1GMqjj=N?Qfk9FKx8Syqpb!e*v8Jo1`J zLp+hfGG{i)u0$J>E$|AJYt(HnMm{X|(e8X18x4vqSfO9lvW>guX&@%8%lNG=(MN4I zTjYT$OrBU8xH zByv+IyP+EYiz4A*>s8gaxy;zQsU+TOniVoZe^9wSE{Nqu#BlTjcVgVf_NTIdPl2nQ z$mVRSaTcqkaVs`#+Kf5U(uF)8ugSJJ`AQxsHr8fFA8&#?(V@@}Tg9Jcv5?19c|A)0 zk3318W>sfv0oB%nv?Snl#GwGXSw5W zbC0SLJc!56>l3+;ozH^=dr;F%)+Q}8u9|3E?~9f6g}%8!G-u3;9-mk0qdB{?hw@^E z@^xegp$!D1#7y*P!<#01+9NL%V_y&DAMbdqC0}BV=c^BV6fg2sPLn?pm}r70e5GJf zDP@BTAHm`$+om*{XJkL-FhN!;PxatG@rY}NJ$}#?#2#nQ^u!)Nk*SM4e!|&ekFz(* z^*{WW#QPt82=@&Wq0Jc>%NP5T!MA=-6bTvMtJE`Uh=1gLK~e1SBd#yP_NjaPRL~xK zoIjJlDWA}4ia-*{+&?WGdsNQ-rYK;~Y+l%x z2xS#)&eNU!UNQ@b$Yr~Bcx=w1f%?F`uKfZvrniV__^n}EH=ga75k3Fr3wdnV#E3OG zWqo7Y$qeldg#+rE`5}xFx7!HiD6ScT1%-8bS>d66nyYDAQ05T~=Q5(@_EXrN+EFgs zCM3j*e5bL7fPm$xCx8|e*c$G9u!DiJruzaU**3Fr{3?#+C&-?!?njyPb$Pb0Rh%6# zIt0Ge%7$!1IEv6#Ljnp;_*he$`LJa(r}m@HR3}bnQ$PPvg3N=eC(;OU>fFMex)4u# zc{nIgEl%W?u0*C*+Nbl36j9UqWeZEPv}h=V_?WMvPkcc3&twlTO(?hU5jKm1LI68G zA+BH=+R?(-*t=j0WX{7u_Jyf`>SXJQRJkb^2l2Ft!7xAaFsMi3TWr~YewVt9WlZ`7 zAH76u9k)cl94q^jr5h_Rp0p_wRX$9Gc~xRyu26?5-#0=1Jd~$8AWV(lS7?yn%WJKl ztg@ER4Ov{g$qu&qycP57yKbe>QX?`B^WZNS-h3iX3G*J=o}_ z`|MS=Cex$51kz$Tgd`&^JSwSI6$%I{C&*3ntP7gm&AL{W}f-P}mDJd+3~CSYDZTCO;KsNV?7 zAEq4r-n9SktXw?LRx<<|D{sRGU4gbXvlQ~=%YF;Wx^OQBnd3?W@kz!H8Ow!f5-pE% z1(9t8CUVPuu`|9_pZikyB;<#B*_p!LCJE{vetw1N-8hkh)$`w_vtQc@t19$)dcE4O zZyEDxV1yBJXOY5iV+wCAP~hA$N?H=LI*o$~@D z!RT7JmN+$W-4ej&JlW+npVp5z%#{gxD6AA8X+WW1XODWT$*-Y9@+Nc-oSTTjPm1 z8Og|!SH?3VTyZH+yg^$-$55xZxk$3B#z%~Ckw&nbx($93b{>*>SInH zpqZL&9D*bf=|9Uxl+WxDj$p3q^C=X zFDY1ZrQua)O`H|k_vQU8^&eJ^>kXgAUzI*f3mEOQ6n?Tf``jv-Ji9lxVb$YfWzN?_ zPM#AI2VXTV%Gu}(f?C_VTetbvaEsH;E6&}pK3y#bX=i__^FH?*>)8~YeC)v^*leX;T{YMnQ~mEX#pck1E=r=P;71@oq_<=ep4Epj|@ zE~~Z0>8dpwHl-ZPx31r?EnTu=!}=}DR%|(E_0~= zgJ;^8ige%7ty@;No{{HM)%oR=)>ZuWr*y^Q^o-8R@br!SBehb0>uMIU)fcCOLzb*B zU2rDDAKh6xYcM^2X*$2<%;~nDSURh`8v?YzWX{8U5WjUmY;id&ZS<=pnriQ?jNLQ# zZbrncJ}L2)8p|}hDy(vnQ68?cL42J1-lpHWU%8J+0h!Q(Aqa#L;Or5fwkARhL+O&-qt5$?6^?lxCRlq;BVVQYLX^C16l(E>A z`T(c2w%Ekx>T$cculVY0(|1{WW)s6cQ6+x60iu*(U;H&vfk5oCB@*c~;m}|<^VK?9 zra|j^I}PV2>h(Kt{FK|+U3`gV^r%<~coGBU3Z##fSZzONznr}tF$-*Ri%@am7sdc^GHr$rzse_A{Y;7&4WF8)XZMOo}GxCM|XImr%13FYRJK z54KhhzkA?&lg16?#_mfQO>{Fhq&utWI)V@V@gDpmJus=7Fs{h&sTe!}iy_h}lu%`BD^HTr9vem|$Pd`)F7ldmI z{NjSk+S=MWC}G{$eZy50F|s|2c9gnnA}QS2LElp}gSifPBjtC(;i+m1uc=V)uHlY3 zX-9UF=jCel9Osq#AfK!&uWa+MeonnlDKpi166VNn6%!0Y%De4>?5y8j&6;Ih?zKd( zCn|$#k#m;wDFidhm1*B%pSz-Ia+qXtu)P?}S~ZS?wCTpYCH`4`T4YOdeIQ z&&33m>U@3F!B-*Wj=3H74S3L@VcRDC_Ozlb6vyFOSG2OZ0qY@G5_+;1-o~2G_X5_<(q_p z0I?BQ-1&Lzez}Tj$3JblTN+;GvZtWCYmkPUrX+$s z9U0xOaA&$?X-aI}B2l)BNZP)6Lwd$(^XBK(o9MB#CVgzpx^2m-8cYr4!mO-V#pHo; zUHPhHxp*bnq>(h*OPo_`N^KEqrs&x6AUhnJ{uVQh^as^D0|CNk8gH#E51Y!wp8`-`@ELQF$b5Y=%^3jgCSrUaHpzQ zQ`;$i;k<=WL&(LjpPi#r@gie>_i(+hw3ekhXiU_`KoD_J*Gl}j9)^W6=7JBGiJjPp zR}Peh%vUwCxVFj25_?8kr6_`ob32E}?rVBW5a&F8VdWOfkJ?@I=_++H_(KC!(-o*m zxYdGH-sp?gt<88&v<-WGd5uly(hIgZYFx$u{a91Zx9nyX_ppB{ud%R6J6bszwOqk3 z2}rP}=9$#y%AXk3GOV0pm+f zo4PGn0V_0PEcFs94!cCKLE1(_Utl~NTA~1peN8R-6;!dIOxSRF?EUIF7|kPIh3;>M zry1cT42>onK(*Vzl|ffj?-=)bRbwPc7`cpjTCV8V>E!!qh=w&Rr5Cp_4%MhGS)2WoUGe@!Eh^6RU}p($Jy{dNoRb?Z z2IHDIXHuGXWzA}|T6r;3nLok|%uupiEA80mA*c>%uBeS0oC`(?66;N2~m(R zw8GM9OAq}xfr0=b-b=SjiNfwS;3D{+Vr?l3XI7(~Vi4BaQ}iErncOn{@*|50`OzE? zj0}X4uybbS3(!TF&Ra&(wPUDQfaX|ty3(+kLfbzXb?-+XJ)wY`NVTtQY9-EJC$fHLapGWb)AAg zcsxOty)H$*ZA&&t2^Plt`JgB)|UqrtW33X$K8v_LUd|99eY2&XRgUFW{TxC zjJhR+McRB;Nk+^(XARva^SCz1_i^(gzL3UI7*R0{4aJ?hi^F7)#km_N$F#7-H-Xg7 z4*Ee?kMwDBNE?tde-_tOX*(wmg=uvJgHdb%;-wvFtT{7VXF7d7WL}t^B5JEamPaz@ zq%&J%K{H#BP!F0#OlPe|cGk9EvTWss%`MCpX_hr7hzqQzA&Y(_tzhkw)&G>^#2ZXD z>i!FHCgIEw$|bX2ncM-h3AaX1YQ?6lOgCi49rYi6ci6%zxptzbhSxNW_^fG0C=MHmA*9RtrHT>aI-XMQ zb!M|i`N-6CvwS))GaA6)k~H}}#pWazD70?$WhgA2Q5(BsND38gr*XSa88r=Oos%%> zV|QqCDQT_3NGShlRoW=ynGKIsLu<4IAs-)$U^a&5bsn8i7iqpeuYt92;x}qaj-Vhv zPiFcve|=B~aT?#9BDovp2m9TQ@Descro)53+eA)Vyc}uahF#TVTv*y|jpy^4fzE1w zUD05TA7R;C7d^%>L56f7i}i-Z6c9A_p)q=JtO^0mq9dOB#t@C+CqQUYFmWht|9|UH=uYYjrc<09- zlqlrGNGJ{!kSoYEL1W$J&`=YrXTzg7HX=$-In1GHHa8m|LF>{L=vT_iMtmwdCr=Y+ zL{kt#?rnu$#|aKqQVF(>qS2u%1gA4;Xbkhh`kB9;_bhIM!Zl%SMzKHZ_K7n5x=>kGPGO4VY{~m8uh6z>||t;v_VxD}9Fs6GSBj2?xlfJWjGfeGqJ^vfz9O_#sfhD^P+5x9swY~{-|ya*l< zq4H6zcB5mEgA>;!t%~cD6GUEtCPwsQd0~WU63*|p=TFJWlNU3BYhQetu%5@N75t6i zYSE*yB)(K?g_-(@bY>$73-vG{^yMce558%pT<5~406~xV;6+>Dm?N~4I#Z*n^RqoI z0k*|W+1phTiX&@lTe@EES-&~$bD)m~UOrEP)S?$PNYnZ<+cgp&KUX)Hm8=+bOc)B< zM1-iKH(7@S+UW^Vp$bE~PBIwQGUvNS5mM9jz-!bogIt|<`eP+QG>_ohCYwOfpe>f!jq6c#~XfIX;nUx~thLwgI_vJo`tdqplYZ*nrwMxc>MZMR^$Bmtr$6{!HunGEnm*So1 zvHZ4l>qM`0wwLD3YK5XSM;Cuc9XN#&Z^w@1ax?aR7}j-H6iZ*En%6Ox5oika%#tef zEvNko`4!Y6gnOl0@j`YJ`EQ_I2sh)BXBsd!s0~a%sm)gq5YA=VE7P`l9VZB87Y+Tm z=q=S?q6>k<4(1#tABvzjF=f{wV|TQ&LWSy0C^3ixo}Pv(T9#TLk$sm%r0iTZIG1Lz zA&>JyufTmKV)nh0Ha3*Zn7P!C6rc;TT@mRpSr>G3Xy`cdHqHhY6>CukqMmd8R#b_Z zaos50&^5e;$>j+MUVM0B?WzVjk3`=H>J?(d;!Jp?6PjiIGUUh${s**fP`SJj?ay#& zq8V^H1^L#yG*t4>rfk4ktW;DKnQkbkgshgC=JUQ_rKWU6TskQ8JWgQ*wy`eFrO3=? z6t)s^2rU_Q`x&DYIQBN<7?-sc3^td>-p^`4Q$$0W)|6@{T#&B};kCI2HiKk=YPctN za7bjnj|haDB7deZ5Z4k6#u9OkC=ROdLBdK}--*(A7At8V%hDAd+QB@)NhYg-cQr_8 zR28z{nIjKT#_p>zWKQ*ySGBQs4Qi$vevL97EP~C}DDc*(U&GoKmmZHj6kCfBGhc?& zx59lfeoNDqZ$rAA;af<>w_%kUO_AIn{g#0_NDTz`D6RQTIJ*31$}>koVBH8TZ>}o( zs>5*Zi1^8yWy-JMvgB@K9M2ZkB=I(1Q$jzFNCoKEng=3F=fjdf-YEtMa+yo4o|iu3 zqZOOYayH1`0hLrwbv?BtQ1lNux?Vi2m6ea3P(KG}-%Ld;-aPO)GS!cF7`HJ>m8y#s z8t?b#f@B#Z>G%nz5K@TcXMrEBS`8Cu?j8jKxM(wPW!{&RJt`JfiSKsL+t(7ib}3Bu zmE^Y|SN55*_&)Yhs8wbdD9}e*r5>3sl7xL?Pc-TAv}^30h(02d5l~;CQ+f>JifMvG z#db1gjcn_KDZ=PsmJ+QJ{H>T79(M+@#uuo&F`LqhjNeQ()bs?^E1Fr2ryDhSGy)pB z6txlr%W5>s*ND`fy*oiy6qbEJbf3@>&DBMwUbToe*cwfsXtczP28Ml{ZSY3t zVbiE4^8uEXihs)-#iZi{0;=I2`ejBGjT!Dy&9HaO!0O@Hv(azk_|YOFrkpY#Gz!GH zs6<$aABTrE7GJA#^c!_FTMX&k-@wkkQ>;dt>g)35a6YGSQPzb<`^avMgXW?b+S5Mf z$o!PJ(yhtsw-Tc?$UT;~(T|nX1P*Tx^+aUC+@N}|=pmSuh(iEX$v@l7eI;fKWD8_W ziqBDYjAD4J!YHCxgw2mPHq2^RAA2W3@GBaKXC8bZo)bnb7W!rt)fH+?PPs;t;7Trk z!W@HF7^p%QoZ|mQDKUba zeM7mXR{cNiolS3C*Llb9x}Rd`E@A>U9T{jBj+=rJ}x( zcKr<92U!#ekX3fw>YMbF^!I<>&bc#}qoLv~3M4TS^Ugizp7WgN{q5Xb?#(>uODa)M zB4fn3XqA^Xs+S|>KAuSK$y4$}g$mLe(WxqON`n&0Ni|U`gON8CY2{#>g2ai%DH|Pf zqQDmAfD)7o`DuL^u!=zZO5nxL+wvYmnYN|q6Dt52+roD_rm&Cqkj8eNH|`{cO%<6PR^cV#a1O1hzG|S{EJ)vtTXs1Ra#WI+n|639l8n!DnNZ zpQr;yR<5x|vOGoO4Uy1n=N>(}jJFk@!dsmvQ?8w7uSjhQy{zZ-nHlQ{BzRc&uz-{- zlun6gX73aMq=+f&(a(&klo!M`ynsOG#R6kdoqQJ`Ca=$zq0e#@uTk$LA0+>D7hxLA z6cnyd<(juD*Rm=wee33w7%#*@BMpU*Lqq@(5x~C_RlNa2kIiAEYV#MT=r?H0b96Eg zh^38T*zQ^7SGA;4is`OXd1_Lrz7T9$+c=zaa?hrut1Qpds8UD@+L^wq=1yey+Z^J; zCa;sP`rC3%y&^Twp)IZom+~NZU~URt1i4k=1X`FAw2lu#?T`b$M?LHrMMl2BF29Uf zDt`ghP-ki?<_hOYmHJk<~p_ba<8XeVH1fs{g1yBHghO*!=sQ_W#t!a7V`D<>8D zr~YbzQjtJR)QfJfBGeNrLgWBw=XDKHU7&`~UxB1#IibJsap%+|znVij54Fh~$AqjC zlAEimV7cwQBD3f@g=JVJ;+W0e7*lA4mcnJlhE%pa)(}QpQ~V=gQ1F(U41yf%z`*7? zb%pA^pag!g7pmCOyQhpKF92+ym#5DghXtDhK43?Bc^V^@_~*RC&1Q}P55lHt)8^#t zJ3TL6g@={?%L_#~!VILAB?O8iHpSc4E>~Q?C3c68!O|7?W(U@X7F!F+a_*vYoGcy2 z77{U4&|nc9W38L`+VSZzS)jr!Ses75w>c6g^?pNJh$7(;_Dvm6htYlV4p`{g`}o}4 zasp-IBSx^DHfiRof2zlff|j9z`$x445zrOzXr5AJe-Wy-=Vmhq;$91J z{lvabWOH{?C5uN`2UZNJTtPZ=wfz2!_-8Bz5kQ>K{K;C8P$pzB8{%v{_mqW4rA`VH zcapm2TJ30}ScPuf_> zQk0*LWie_OT#_bbUm9T=JKo^RXBDxaP6=gEEtu1b0qNuQddGP56(b?0n_@s}p16jd zju9QFt9=V?5+K2}Ynh?Pndr7+Msj@EbV)tTM^uDLF7BCqpI@y{q+D&Ll<4h#wp6{`ebob)oZ%wHawzoGJ0aqYviGm(MQdSF}CKF#G0RpXdP9PgqlG^G+~o|`Lzra7l~D zU4w8u4u{XUVAUL9sAhMKJ=~9d1|!*ZFj$ zWSir|a~M$LIjCCI#}Cr1u=qWHYeYgBjymZ6HMc8tc% zFR$MI1>wjPwg@AOI7IpHz*5+T+1wV3b6%ogoWnlwmZT8Ml8$i_AOI3tD_GOai=K{q z@`MUIr)+9&V@Uf>(}PWjBM(`MT-#f67ZAq3JEHKElp9d7c?SE{)^uX!vRRw5j~rN! zb0NsRW1)D8vUd$8iNDe_Uqsg|b0tXIA3v&%T4kq~!>}Xu+K?lwqu&E-lR*(T8&Cv>2hEuUqwa=_4Ae1|3 zcq0yH`04^Okd7Wc7t1x_R}30Q!FywY`-h8NHL4s(%Fh<-jk_G;`60#>wMmo6goEU- z(sEuQj1p_~jXW)w50z=S)Uf?Aa3oAKT`dp9STJG8ozXb88gfI?3g#>i!STWQoc*>l z>`Pg>820lJ>~nH89MKW>NX~;JN3bK_U3=++!o&~s>IZ>~AMmb+QN=kG!f9#C@!TrQFfNy!=g~aWrNQ6E=rV;6!x&woGBT(P+{< zSE=_t)Am1~-&jPqFauZaDtGQC1JafmfW$&BrM+J`7p{rI^Pvt&XO!%shMB?T3H(ki zzW9%0G2M6hSUlW*kNNG>q#x*H3)uFDvEd(i){YQD{NDP3T4Y;dvi8yTH%!U4dr*vaJ{*{_2h`^nHfq=~ zSZ_h&+ti_nK5oSzG~gQ# zlx=ebamh&760bPbX8!5F(o0R=`r+$xSR1~{mC`khMW^?A^Kx=!!Kz}G?csj-K8Ihf zWzt*SxVF8XWbbbS6L~GN>u*jap@77*NW}1sx2Ti~;qUnq=^FjmFRg&1dn+g7AgO7z z2GLk28Z!ba{arxc%Di0v{Q)i?TmTwbOu_UBJTlDsl5Tqn2dLDa!hNAmS40ZTtGSW@ z5r-pBR=9c8jaWG8DW$TwZcxm8Qgph{pI!ZYKU$FDBS6LwVIFl&-&MsD=*a?cIqs*Lf5pg4wkC&ez4gf57C_Rv7l}O@N5tQvTi{I;CggPp z{^R=VUm5+`7B$oG;FBjsw84Z}xDj0ZY1h`t0UBWwtw{!Msc*E6)}0k91L|o@P7~hk zt>yMJzOYUw>Q$fwUH|NUYN*Q~xBf>`z3s^Ioq-2N1f|!u&#Ki8y3Ls|vy>lzMaqrt zuegs*rc;NW%x5jcB^?9b`c;n~ARe%zXB5A;Y=}Qx)Z+5zFI&d@HIDe_b{j@N`f5Qz zJ+W{5vd%EkKr8XT+b%#IdsZq>je-H$XgYmXb|DPL`0vBpI`j)JzcvRVb9{2j3+XJ0tm)bo@|Jl@!Og zI00e%*pA3~0-d^1H6)E(liIf8@D&N(2P$R&Y;m{MgJ}FO{A~C*p@h>wTD5pRH|icW ztSZ_Y{knozwFuS>8S0X;(d+iuw$?qKM5%67-6p%IjdZ$)g(BUv32f_rUB|cX$C_?Y zFxo(xQv)TY=_LXb>|dl`OAaeYm-+?jwJic6E0fo=FqC{HY!TLYZWw->5yH?^JS)OD zbT0>Euv}0u@TlGL3=k_3GvhBBKzgL`Y}g#-N;#1Bcr6WPuj& za`tgKLb)N4O)Il|_=#N;WViGDgeKYacEu+G8bHY`F*+U@CWwXcn|N9vY;#EK;Y-3C zO>vF~25)m#52Zpd+C#fAt@+vTg<91P*+|sf21r%TQk^@8FCs24nOf(gS<@1)H@K3( z1A#Ve+V$BZX@2>Z5DQpo+7slD3xBXT$?A|d%QU2pVY~OQb1B)%n#XUCcG2pNH#vGw zjY^MT8pn&L&*o>+bIf3sov7xd^*t;wymjo>1GZSgY5!KbLZaHwL;x}8<@|d=V>G9@ zEHHbu3~ujJBNxa$P@macEnrh$X zRsq=tx4HACh_u3;_Rx!?wX5r|UjL-&+x+tvPpqo63ah>Gs)@!Mc4BZ ztDogZv+R7iOJGorN*!OhM%Dwm@s{)BXix@~a`A$Ki&|gH^KL6x>5aY8quciY@>$Zf z#fos#p^@8s$Vv6wE#p;oX9|pVA5C;~Ku}EDtq^_6f#Hy5<``WP6IXj`QnhDS1coK` zQT}eNtj53G)-?+v%PcMtuypRTCGAa2ZbW$5aRi|zLgS<4S^+Wh{xG8)Drr?a!Bs(-$wV-^?!Q7F_9kK!ao@Gz3~ax6?e8pNjj5 zzPLf>Q6=f}hA3TJYhwiLoR@KB`#$8$Tql9?S6vz+cIS+3B!?_q!ikTiQ$BV2T1{8; z)R~bem%L-k@(c_Q6)v)1qPPrPMCxtK7!%qfC_Vr!~pMkKzR zYthjz*WXh{@+b>7t-REhi5PUD;h!n&ZK&WK%*OiH2+vUEvQZDg#8bk@(o}qhhErnm z!+l-&;Q#BG0!Gmr2*4Ba&?O~GQYkAly}lrW%cp^>aBSYdRDWvfsMn{?KBJR!cpqcP zAwtd)MAlCE9;bZor-S`0jjRQegi=6RS4{xgk7oB~pXV%}GlbLvzeMM=**^`xhP$)q z@`9IeUatLQMj5Bu#2RJuE3mR!k;QU%Z7@o#C7-_E=!RQcd=PQWKc=^CwLpKr4DJnM zOyB5$l{)o?Aq~Fo^BEr#NrOtFaWeWiMZwn4NZYb;!EKJtKc9}i_~=%fg$()U?js_D z%Z5e^0_^Usx5)>yZgKlTB6GoZi?8^$nsehWqqe|d*Jq0s8+vu2A7iO4Y&ZNmTGOo> z_-VJ{FLgU5dI1OHO3^eZN6=jC^_ukvUVY7NMaYVFl(gD~_vC!y-gVF`9x~%?EpVZp zNsl6N3DNz?OjIm@17f98A|%S(ela!}ywK!9La&^^w!h+*?MR~auaX&9ChVq^cr~o? z_mK2^4DCe;PK#=rQgFwJFqQs^Ep#zMb#n)X)DOhIG+FLmyuQBtaJl>0C!a*|jwfyb zm!{SAFi1nrPBP86yfJ`qU?gCy_hu+Xu9W!OdLxjF!-+*;EGo?{TV~FA(gx^FEGp0CeHm{se^7(sUHRn# z`!MxOm5Ih3na#uCQ2>vx5sb8x)tz=Eq}tVXru)ck7k}#o*O-T<&4~Z`>t^Rftp3m& z;M(hC`Wu|x#>}@940N!zI+1+!2eZ!d9?iVtTozID$?R~asb3n@+61I4yVjGdjtNc8 zjC_J}?(7WfUz6TK6pc*TxV3V>e3W|GZc8#41}Gdj67JTE=%zP|dmrhK zPyLTi8@Iz>goMJ)73#Ds<`OB5$D}tEmY=@!8kNg+$e#JZMFHp(P3&F_dk zsy484?vA>IyS;%)$5|w}V^A4e&Vk&ZTW*Q~Wb{br$y}~SuTkrtLX7gbIFa%~U1%eC z1(4h(fPY!_d?w?&UUd&|g4_h=iiG>(A%^_qObU%8is(`el~$QbLwd)hpLynvUHpm{ zg6=8Yn1D#~$2zZc{I9s(A3jznAUiO?IcNplU6$ke8_I+QPUTBhi`jn9#K?Y!2V^{K z0vsmt0wU4T---v%v{f&XwQ18JU@6v0A^Dy*8R}%q^;fHUEAkT^ZcH26>c_GM<2;== zJEm_nL9-P*8hP)LoTJ$afs7mTmZv^4p%lbxpJY<%RY2_)bp)7eOO6FerQ@8>Bg|6} zt*6G)T)hpalDTY}z>2@!r0W|l*0Q?j=f<=p7#t*3)zFS!i{3C}V^+qJMjUIX@-0{U z!m9+yJ1ono)O6S8>qQ(V5eVryfK>en%D8o7PZivN?al5V{^kim-LRWwA!B9!kuRy* z&CKuY@XT!ZDixNqYk+Qe#jF4>^|2nGO%JE!aqZXC^wyj=RRFLHFxSVeCz#xI2DB=V zH{5jzTm+|`rJ23zb-HEYHLCoSn--i|M<)LRkad24^Dov~Z$&XJK}PZ|o6WON5q8%V zo43>QLf?0WagNj`P)}jkl;(KXJ+SgDv)giLLM=3cyDr+fk9zCb$Ssa%8_aK*n0y8% z;C3+9m*xD8*vZfaOz^qwhIaB{ zBcKlXJ;tu{$h%Eq`$$IFhAzJO~wf9}i3V(aQX%hBrKh|7=q>(}`H8KX>S0S7GG7OvI zmhZQq-so(Lde<@MVw`FsV@X%o+HTKrH+r+s(A;nn% zL*1>eP+E#*OG-ta@aZaMEd;;g6 z^d&K4ayRK*V!q2g%~%(+++juwGkU~`eA~4tovDxJ^OY!ZO35^Y|FU2I#9KJt+KbIu z=?-v@PRM*Gwz0IrHS?{q46mo>4aDB8r20}N8O!N=@kyWf6RpE%YWZp z?##%ChWe%Dt2$68>m~Vi^^*S7XS?Bw&3Gan;DZLpW&gdJ!qb3Bg(W<5X2qoLdmw{{ zS=tPrjr&fuAEwrV9YW%@qShn~%J0Q8@A9Pg3QB-gMKHj?GCnJ<^Dwz~a|OF@PPV04%|UK@&q6Ks0SonKVF*lE=ilNBeGDdn zKxC|+VBR;|wp8+d27B34n=8!%%rhht?;|})N16Pi?LlYH)6AuYGx1SNE@jFQhYJ?! zVY_v}wki8yNw=7czI$XP1!uSLTgLe&TIANx@h}3|{h**m;M&dJ+akJ~9JjVE3lcP( zjR(e*svaEE@+H21#Lb^yCI_!-SO%j|-D=i)^Y)tV^^cq*W5?{@!5Zd7P=3jP5 zg00psv=*Qa*3{>mES}U|GxPF@ZQedu1ikI3 zVw+Qgl4_|1vCn~&v04s2D^S%WtLd?hc;$(lCRc5i%e=piej)WQfk~=+an_GGT+cVO zbka^K9j9>Ww3G3*iM2bmhr2m-to9sR;X~vk-KT!5F17NpAsP2|_yw|H1wO5=>ztef$7yx>I|1uTa~c@g?nSPcq@6?~)c(~y-c<~AAp z`h{^Kuz63TNygdDu{SX9v{m0pFQ1d203z3D1lMka8pMvDRO!zcH=v;*I959pJ1ED~j;9<~*&bA=8}(DcRClESglF#q>I|0{G%lVN6T+GPy( zc|I&aOKT_db!U6EQM{JH{MT8}9A1S*pwDu>nDt@N10L3cS^a7(KcBWq-;mXab{FXBpvJvCR9{NcHvnCj58sux!(mgX?D z0W9OF*|I#uy=OPyf4Iw_>+dfYAA02Gc(J>)eB;7HVQlzG-FsjuJ~Y?j(V0Kz=FiFK<-7et|9^>ZPxCA*pA9RaV6 zJ0CfeI1zDesXo>7NV)0F2G}%LDz3;8Cl;vq@Aznyqv`eDcG55iQqX7j3Vo!=O+c%iMTO>`WlC=j)uV%D?Ni)kd2FS5a z!8;DuKG-lZ!KPZ{5*c`w$oq7v6C%l}=BL@{^0VOwwYW;&W-6i4u54nj7@vLq0}#3T z{>{&KCSHc)L~$vVrq|q=^I|#b&h=*YAHD<;f^=rDptg?K;FPs3xEO99o6d^xA0+@b Xj0gzjzBj#T>9pcwYQc5AI2ryA*`U50 literal 0 HcmV?d00001 diff --git a/engine/core/locale/pt_BR/LC_MESSAGES/django.po b/engine/core/locale/pt_BR/LC_MESSAGES/django.po index f0eb1ae5..20472144 100644 --- a/engine/core/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/core/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Está ativo" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Se definido como false, esse objeto não poderá ser visto por usuários sem a " "permissão necessária" @@ -76,8 +77,8 @@ msgstr "Carimbos de data/hora" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "Ativar o %(verbose_name_plural)s selecionado" +msgid "Activate selected %(verbose_name_plural)s" +msgstr "Ativar %(verbose_name_plural)s selecionado" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -85,21 +86,21 @@ msgstr "Os itens selecionados foram ativados!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Desativar o %(verbose_name_plural)s selecionado" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "Desativar o selecionado %(verbose_name_plural)s" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "Os itens selecionados foram desativados!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Valor do atributo" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Valores de atributos" @@ -119,12 +120,12 @@ msgstr "Estoque" msgid "stocks" msgstr "Ações" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Pedido de produto" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Solicitar produtos" @@ -132,7 +133,35 @@ msgstr "Solicitar produtos" msgid "children" msgstr "Crianças" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Tem imagens" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Exportar %(verbose_name_plural)s selecionado para feeds de mercados" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "" +"Os arquivos selecionados %(verbose_name_plural)s foram marcados para " +"exportação." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Banir %(verbose_name_plural)s selecionado dos feeds dos mercados" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "" +"Os produtos selecionados %(verbose_name_plural)s foram proibidos de " +"exportação." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Configuração" @@ -156,7 +185,8 @@ msgstr "Entregue" msgid "canceled" msgstr "Cancelado" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Falha" @@ -208,8 +238,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicar somente uma chave para ler dados permitidos do cache.\n" -"Aplicar chave, dados e tempo limite com autenticação para gravar dados no " -"cache." +"Aplicar chave, dados e tempo limite com autenticação para gravar dados no cache." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -273,7 +302,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Reescrever um grupo de atributos existente salvando os não editáveis" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Reescreva alguns campos de um grupo de atributos existente salvando os não " "editáveis" @@ -324,7 +354,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Reescreva um valor de atributo existente salvando os não editáveis" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Reescreva alguns campos de um valor de atributo existente salvando os não " "editáveis" @@ -381,12 +412,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Pesquisa de substring sem distinção entre maiúsculas e minúsculas em " -"human_readable_id, order_products.product.name e order_products.product." -"partnumber" +"human_readable_id, order_products.product.name e " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -422,9 +453,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordene por uma das seguintes opções: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Prefixe com '-' para " @@ -580,7 +611,8 @@ msgstr "recuperar a lista de desejos pendente atual de um usuário" #: engine/core/docs/drf/viewsets.py:545 msgid "retrieves a current pending wishlist of an authenticated user" -msgstr "recupera uma lista de desejos pendente atual de um usuário autenticado" +msgstr "" +"recupera uma lista de desejos pendente atual de um usuário autenticado" #: engine/core/docs/drf/viewsets.py:555 msgid "add product to wishlist" @@ -625,28 +657,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrar por um ou mais pares de nome/valor de atributo. \n" "- **Sintaxe**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- Métodos** (o padrão é `icontains` se omitido): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- Digitação de valores**: JSON é tentado primeiro (para que você possa " -"passar listas/dicas), `true`/`false` para booleanos, inteiros, flutuantes; " -"caso contrário, é tratado como string. \n" -"- Base64**: prefixo com `b64-` para codificar o valor bruto com base64 de " -"forma segura para a URL. \n" +"- Métodos** (o padrão é `icontains` se omitido): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- Digitação de valores**: JSON é tentado primeiro (para que você possa passar listas/dicas), `true`/`false` para booleanos, inteiros, flutuantes; caso contrário, é tratado como string. \n" +"- Base64**: prefixo com `b64-` para codificar o valor bruto com base64 de forma segura para a URL. \n" "Exemplos: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -661,14 +683,11 @@ msgstr "UUID (exato) do produto" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Lista de campos separada por vírgulas para classificação. Prefixe com `-` " -"para classificação decrescente. \n" -"**Permitido:** uuid, classificação, nome, slug, criado, modificado, preço, " -"aleatório" +"Lista de campos separada por vírgulas para classificação. Prefixe com `-` para classificação decrescente. \n" +"**Permitido:** uuid, classificação, nome, slug, criado, modificado, preço, aleatório" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "retrieve a single product (detailed view)" @@ -896,7 +915,8 @@ msgstr "Delete a promo code" #: engine/core/docs/drf/viewsets.py:1196 msgid "rewrite an existing promo code saving non-editables" -msgstr "Reescreva um código promocional existente salvando itens não editáveis" +msgstr "" +"Reescreva um código promocional existente salvando itens não editáveis" #: engine/core/docs/drf/viewsets.py:1203 msgid "rewrite some fields of an existing promo code saving non-editables" @@ -1212,8 +1232,8 @@ msgstr "Comprar um pedido" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Envie os atributos como uma string formatada como attr1=value1,attr2=value2" @@ -1234,9 +1254,9 @@ msgstr "Orderproduct {order_product_uuid} não encontrado!" msgid "original address string provided by the user" msgstr "Cadeia de endereços original fornecida pelo usuário" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1252,8 +1272,8 @@ msgstr "ElasticSearch - funciona muito bem" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Atributos" @@ -1290,7 +1310,8 @@ msgstr "" "Quais atributos e valores podem ser usados para filtrar essa categoria." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "Preços mínimo e máximo dos produtos dessa categoria, se disponíveis." #: engine/core/graphene/object_types.py:234 @@ -1328,7 +1349,7 @@ msgid "represents feedback from a user." msgstr "Representa o feedback de um usuário." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Notificações" @@ -1336,7 +1357,7 @@ msgstr "Notificações" msgid "download url for this order product if applicable" msgstr "URL de download para este produto do pedido, se aplicável" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Feedback" @@ -1344,7 +1365,7 @@ msgstr "Feedback" msgid "a list of order products in this order" msgstr "Uma lista dos produtos solicitados nesse pedido" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Endereço de cobrança" @@ -1372,7 +1393,7 @@ msgstr "Todos os produtos estão no pedido digital?" msgid "transactions for this order" msgstr "Transações para esta ordem" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Pedidos" @@ -1389,7 +1410,7 @@ msgstr "Imagens do produto" msgid "category" msgstr "Categoria" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Feedbacks" @@ -1430,7 +1451,7 @@ msgstr "Produtos disponíveis apenas para pedidos pessoais" msgid "discount price" msgstr "Preço com desconto" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Produtos" @@ -1442,7 +1463,7 @@ msgstr "Códigos promocionais" msgid "products on sale" msgstr "Produtos à venda" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Promoções" @@ -1450,7 +1471,7 @@ msgstr "Promoções" msgid "vendor" msgstr "Vendor" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1458,11 +1479,11 @@ msgstr "Vendor" msgid "product" msgstr "Produto" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Produtos da lista de desejos" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Listas de desejos" @@ -1579,7 +1600,7 @@ msgstr "Grupo de atributos pai" msgid "attribute group's name" msgstr "Nome do grupo de atributos" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Grupo de atributos" @@ -1597,9 +1618,9 @@ msgstr "" "fornecedores externos e seus requisitos de interação. A classe Vendor é " "usada para definir e gerenciar informações relacionadas a um fornecedor " "externo. Ela armazena o nome do fornecedor, os detalhes de autenticação " -"necessários para a comunicação e a marcação percentual aplicada aos produtos " -"recuperados do fornecedor. Esse modelo também mantém metadados e restrições " -"adicionais, tornando-o adequado para uso em sistemas que interagem com " +"necessários para a comunicação e a marcação percentual aplicada aos produtos" +" recuperados do fornecedor. Esse modelo também mantém metadados e restrições" +" adicionais, tornando-o adequado para uso em sistemas que interagem com " "fornecedores terceirizados." #: engine/core/models.py:122 @@ -1770,13 +1791,14 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"Representa um objeto de marca no sistema. Essa classe lida com informações e " -"atributos relacionados a uma marca, incluindo seu nome, logotipos, " +"Representa um objeto de marca no sistema. Essa classe lida com informações e" +" atributos relacionados a uma marca, incluindo seu nome, logotipos, " "descrição, categorias associadas, um slug exclusivo e ordem de prioridade. " -"Ela permite a organização e a representação de dados relacionados à marca no " -"aplicativo." +"Ela permite a organização e a representação de dados relacionados à marca no" +" aplicativo." #: engine/core/models.py:456 msgid "name of this brand" @@ -1820,8 +1842,8 @@ msgstr "Categorias" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1854,8 +1876,8 @@ msgstr "Preço de venda" msgid "the product associated with this stock entry" msgstr "O produto associado a essa entrada em estoque" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Produto associado" @@ -1915,8 +1937,8 @@ msgstr "" "utilitárias relacionadas para recuperar classificações, contagens de " "feedback, preço, quantidade e total de pedidos. Projetado para uso em um " "sistema que lida com comércio eletrônico ou gerenciamento de estoque. Essa " -"classe interage com modelos relacionados (como Category, Brand e ProductTag) " -"e gerencia o armazenamento em cache das propriedades acessadas com " +"classe interage com modelos relacionados (como Category, Brand e ProductTag)" +" e gerencia o armazenamento em cache das propriedades acessadas com " "frequência para melhorar o desempenho. É usada para definir e manipular " "dados de produtos e suas informações associadas em um aplicativo." @@ -1957,7 +1979,7 @@ msgstr "Fornecer um nome de identificação claro para o produto" msgid "product name" msgstr "Nome do produto" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Adicione uma descrição detalhada do produto" @@ -1977,156 +1999,165 @@ msgstr "Número da peça" msgid "stock keeping unit for this product" msgstr "Unidade de Manutenção de Estoque para este produto" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Se exportar este produto para mercados" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Exportar para mercados" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Representa um atributo no sistema. Essa classe é usada para definir e " "gerenciar atributos, que são partes personalizáveis de dados que podem ser " -"associadas a outras entidades. Os atributos têm categorias, grupos, tipos de " -"valores e nomes associados. O modelo é compatível com vários tipos de " +"associadas a outras entidades. Os atributos têm categorias, grupos, tipos de" +" valores e nomes associados. O modelo é compatível com vários tipos de " "valores, incluindo string, inteiro, float, booleano, matriz e objeto. Isso " "permite a estruturação dinâmica e flexível dos dados." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Grupo desse atributo" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Cordas" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Inteiro" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Flutuação" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Booleano" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Matriz" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Objeto" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Tipo do valor do atributo" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Tipo de valor" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Nome desse atributo" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Nome do atributo" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "é filtrável" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Quais atributos e valores podem ser usados para filtrar essa categoria." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atributo" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Representa um valor específico para um atributo que está vinculado a um " -"produto. Ele vincula o \"atributo\" a um \"valor\" exclusivo, permitindo uma " -"melhor organização e representação dinâmica das características do produto." +"produto. Ele vincula o \"atributo\" a um \"valor\" exclusivo, permitindo uma" +" melhor organização e representação dinâmica das características do produto." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Atributo desse valor" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "O produto específico associado ao valor desse atributo" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "O valor específico para esse atributo" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Representa uma imagem de produto associada a um produto no sistema. Essa " "classe foi projetada para gerenciar imagens de produtos, incluindo a " "funcionalidade de carregar arquivos de imagem, associá-los a produtos " -"específicos e determinar sua ordem de exibição. Ela também inclui um recurso " -"de acessibilidade com texto alternativo para as imagens." +"específicos e determinar sua ordem de exibição. Ela também inclui um recurso" +" de acessibilidade com texto alternativo para as imagens." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" -msgstr "Forneça um texto alternativo para a imagem para fins de acessibilidade" +msgstr "" +"Forneça um texto alternativo para a imagem para fins de acessibilidade" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Texto alternativo da imagem" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Faça o upload do arquivo de imagem para este produto" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Imagem do produto" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Determina a ordem em que as imagens são exibidas" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Prioridade de exibição" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "O produto que esta imagem representa" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Imagens do produto" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Representa uma campanha promocional para produtos com desconto. Essa classe " "é usada para definir e gerenciar campanhas promocionais que oferecem um " @@ -2135,39 +2166,39 @@ msgstr "" "vinculá-la aos produtos aplicáveis. Ela se integra ao catálogo de produtos " "para determinar os itens afetados na campanha." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Desconto percentual para os produtos selecionados" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Porcentagem de desconto" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Forneça um nome exclusivo para essa promoção" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Nome da promoção" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Descrição da promoção" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Selecione quais produtos estão incluídos nessa promoção" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Produtos incluídos" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Promoção" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2176,129 +2207,129 @@ msgid "" msgstr "" "Representa a lista de desejos de um usuário para armazenar e gerenciar os " "produtos desejados. A classe oferece funcionalidade para gerenciar uma " -"coleção de produtos, suportando operações como adicionar e remover produtos, " -"bem como operações de suporte para adicionar e remover vários produtos de " +"coleção de produtos, suportando operações como adicionar e remover produtos," +" bem como operações de suporte para adicionar e remover vários produtos de " "uma só vez." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Produtos que o usuário marcou como desejados" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Usuário que possui esta lista de desejos" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Proprietário da lista de desejos" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Lista de desejos" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"Representa um registro de documentário vinculado a um produto. Essa classe é " -"usada para armazenar informações sobre documentários relacionados a produtos " -"específicos, incluindo uploads de arquivos e seus metadados. Ela contém " -"métodos e propriedades para lidar com o tipo de arquivo e o caminho de " -"armazenamento dos arquivos do documentário. Ela estende a funcionalidade de " -"mixins específicos e fornece recursos personalizados adicionais." +"Representa um registro de documentário vinculado a um produto. Essa classe é" +" usada para armazenar informações sobre documentários relacionados a " +"produtos específicos, incluindo uploads de arquivos e seus metadados. Ela " +"contém métodos e propriedades para lidar com o tipo de arquivo e o caminho " +"de armazenamento dos arquivos do documentário. Ela estende a funcionalidade " +"de mixins específicos e fornece recursos personalizados adicionais." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Documentário" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Documentários" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Não resolvido" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Representa uma entidade de endereço que inclui detalhes de localização e " "associações com um usuário. Fornece funcionalidade para armazenamento de " "dados geográficos e de endereço, bem como integração com serviços de " "geocodificação. Essa classe foi projetada para armazenar informações " -"detalhadas de endereço, incluindo componentes como rua, cidade, região, país " -"e geolocalização (longitude e latitude). Ela oferece suporte à integração " +"detalhadas de endereço, incluindo componentes como rua, cidade, região, país" +" e geolocalização (longitude e latitude). Ela oferece suporte à integração " "com APIs de geocodificação, permitindo o armazenamento de respostas brutas " "de API para processamento ou inspeção posterior. A classe também permite " "associar um endereço a um usuário, facilitando o tratamento personalizado " "dos dados." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Linha de endereço do cliente" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Linha de endereço" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Rua" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Distrito" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Cidade" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Região" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Código postal" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "País" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Ponto de geolocalização (Longitude, Latitude)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Resposta JSON completa do geocodificador para este endereço" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Resposta JSON armazenada do serviço de geocodificação" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Endereço" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Endereços" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2315,96 +2346,96 @@ msgstr "" "funcionalidade para validar e aplicar o código promocional a um pedido, " "garantindo que as restrições sejam atendidas." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Código exclusivo usado por um usuário para resgatar um desconto" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Identificador de código promocional" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Valor de desconto fixo aplicado se a porcentagem não for usada" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Valor do desconto fixo" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Desconto percentual aplicado se o valor fixo não for usado" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Desconto percentual" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Registro de data e hora em que o código promocional expira" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Tempo de validade final" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "" "Registro de data e hora a partir do qual esse código promocional é válido" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Hora de início da validade" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Registro de data e hora em que o código promocional foi usado, em branco se " "ainda não tiver sido usado" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Registro de data e hora de uso" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Usuário atribuído a esse código promocional, se aplicável" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Usuário atribuído" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Código promocional" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Códigos promocionais" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não " -"ambos ou nenhum." +"Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não" +" ambos ou nenhum." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "O código promocional já foi usado" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Tipo de desconto inválido para o código promocional {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2416,138 +2447,139 @@ msgstr "" "atualizados. Da mesma forma, a funcionalidade suporta o gerenciamento dos " "produtos no ciclo de vida do pedido." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "O endereço de cobrança usado para esse pedido" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Código promocional aplicado" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "O endereço de entrega usado para esse pedido" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Endereço de entrega" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Status atual do pedido em seu ciclo de vida" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Status do pedido" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "Estrutura JSON de notificações a serem exibidas aos usuários; na interface " "do usuário do administrador, é usada a visualização de tabela" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "Representação JSON dos atributos do pedido para esse pedido" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "O usuário que fez o pedido" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Usuário" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "O registro de data e hora em que o pedido foi finalizado" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Tempo de compra" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Um identificador legível por humanos para o pedido" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "ID legível por humanos" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Pedido" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "Um usuário deve ter apenas uma ordem pendente por vez!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "Não é possível adicionar produtos a um pedido que não esteja pendente" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Não é possível adicionar produtos inativos ao pedido" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "" "Não é possível adicionar mais produtos do que os disponíveis em estoque" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "Não é possível remover produtos de um pedido que não esteja pendente" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} não existe com a consulta <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "O código promocional não existe" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" -"Você só pode comprar produtos físicos com o endereço de entrega especificado!" +"Você só pode comprar produtos físicos com o endereço de entrega " +"especificado!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "O endereço não existe" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "Não é possível comprar neste momento, tente novamente em alguns minutos." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Valor de força inválido" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Você não pode comprar um pedido vazio!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "Não é possível comprar um pedido sem um usuário!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Um usuário sem saldo não pode comprar com saldo!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Fundos insuficientes para concluir o pedido" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2555,7 +2587,7 @@ msgstr "" "Não é possível comprar sem registro, forneça as seguintes informações: nome " "do cliente, e-mail do cliente, número de telefone do cliente" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2563,7 +2595,7 @@ msgstr "" "Método de pagamento inválido: {payment_method} de " "{available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2572,40 +2604,41 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "Gerencia o feedback dos usuários sobre os produtos. Essa classe foi criada " -"para capturar e armazenar o feedback dos usuários sobre produtos específicos " -"que eles compraram. Ela contém atributos para armazenar comentários de " +"para capturar e armazenar o feedback dos usuários sobre produtos específicos" +" que eles compraram. Ela contém atributos para armazenar comentários de " "usuários, uma referência ao produto relacionado no pedido e uma " "classificação atribuída pelo usuário. A classe usa campos de banco de dados " "para modelar e gerenciar com eficiência os dados de feedback." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "" "Comentários fornecidos pelo usuário sobre sua experiência com o produto" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Comentários de feedback" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Faz referência ao produto específico em um pedido sobre o qual se trata esse " -"feedback" +"Faz referência ao produto específico em um pedido sobre o qual se trata esse" +" feedback" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Produto de pedido relacionado" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Classificação atribuída pelo usuário ao produto" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Avaliação do produto" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2618,138 +2651,138 @@ msgid "" "Product models and stores a reference to them." msgstr "" "Representa produtos associados a pedidos e seus atributos. O modelo " -"OrderProduct mantém informações sobre um produto que faz parte de um pedido, " -"incluindo detalhes como preço de compra, quantidade, atributos do produto e " -"status. Ele gerencia as notificações para o usuário e os administradores e " +"OrderProduct mantém informações sobre um produto que faz parte de um pedido," +" incluindo detalhes como preço de compra, quantidade, atributos do produto e" +" status. Ele gerencia as notificações para o usuário e os administradores e " "trata de operações como devolver o saldo do produto ou adicionar feedback. " "Esse modelo também fornece métodos e propriedades que dão suporte à lógica " "comercial, como o cálculo do preço total ou a geração de um URL de download " "para produtos digitais. O modelo se integra aos modelos Order e Product e " "armazena uma referência a eles." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "O preço pago pelo cliente por esse produto no momento da compra" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Preço de compra no momento do pedido" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "" "Comentários internos para administradores sobre este produto encomendado" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Comentários internos" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Notificações do usuário" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "Representação JSON dos atributos desse item" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Atributos ordenados do produto" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Referência ao pedido pai que contém esse produto" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Ordem dos pais" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "O produto específico associado a essa linha de pedido" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Quantidade desse produto específico no pedido" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Quantidade do produto" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Status atual desse produto no pedido" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Status da linha de produtos" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "O Orderproduct deve ter um pedido associado!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Ação incorreta especificada para o feedback: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "você não pode dar feedback a um pedido que não foi recebido" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Nome" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL da integração" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Credenciais de autenticação" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Você só pode ter um provedor de CRM padrão" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRMs" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Link do CRM do pedido" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Links de CRM dos pedidos" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Representa a funcionalidade de download de ativos digitais associados a " "pedidos. A classe DigitalAssetDownload oferece a capacidade de gerenciar e " -"acessar downloads relacionados a produtos de pedidos. Ela mantém informações " -"sobre o produto do pedido associado, o número de downloads e se o ativo está " -"visível publicamente. Ela inclui um método para gerar um URL para download " -"do ativo quando o pedido associado estiver em um status concluído." +"acessar downloads relacionados a produtos de pedidos. Ela mantém informações" +" sobre o produto do pedido associado, o número de downloads e se o ativo " +"está visível publicamente. Ela inclui um método para gerar um URL para " +"download do ativo quando o pedido associado estiver em um status concluído." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Baixar" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Downloads" @@ -2950,8 +2983,7 @@ msgstr "Olá %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Obrigado por seu pedido #%(order.pk)s! Temos o prazer de informá-lo de que " @@ -3065,8 +3097,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Obrigado por seu pedido! Temos o prazer de confirmar sua compra. Abaixo " @@ -3145,8 +3176,8 @@ msgid "" "ensures the response includes the appropriate content type header for XML." msgstr "" "Trata a solicitação do índice do mapa do site e retorna uma resposta XML. " -"Ele garante que a resposta inclua o cabeçalho de tipo de conteúdo apropriado " -"para XML." +"Ele garante que a resposta inclua o cabeçalho de tipo de conteúdo apropriado" +" para XML." #: engine/core/views.py:119 msgid "" @@ -3173,8 +3204,8 @@ msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Manipula operações de cache, como ler e definir dados de cache com uma chave " -"e um tempo limite especificados." +"Manipula operações de cache, como ler e definir dados de cache com uma chave" +" e um tempo limite especificados." #: engine/core/views.py:220 msgid "Handles `contact us` form submissions." @@ -3199,14 +3230,10 @@ msgstr "Lida com a lógica de comprar como uma empresa sem registro." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Trata do download de um ativo digital associado a um pedido.\n" -"Essa função tenta servir o arquivo de ativo digital localizado no diretório " -"de armazenamento do projeto. Se o arquivo não for encontrado, será gerado um " -"erro HTTP 404 para indicar que o recurso não está disponível." +"Essa função tenta servir o arquivo de ativo digital localizado no diretório de armazenamento do projeto. Se o arquivo não for encontrado, será gerado um erro HTTP 404 para indicar que o recurso não está disponível." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3235,23 +3262,19 @@ msgstr "favicon não encontrado" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Trata as solicitações do favicon de um site.\n" -"Essa função tenta servir o arquivo favicon localizado no diretório estático " -"do projeto. Se o arquivo favicon não for encontrado, será gerado um erro " -"HTTP 404 para indicar que o recurso não está disponível." +"Essa função tenta servir o arquivo favicon localizado no diretório estático do projeto. Se o arquivo favicon não for encontrado, será gerado um erro HTTP 404 para indicar que o recurso não está disponível." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"Redireciona a solicitação para a página de índice do administrador. A função " -"lida com as solicitações HTTP recebidas e as redireciona para a página de " +"Redireciona a solicitação para a página de índice do administrador. A função" +" lida com as solicitações HTTP recebidas e as redireciona para a página de " "índice da interface de administração do Django. Ela usa a função `redirect` " "do Django para lidar com o redirecionamento HTTP." @@ -3270,24 +3293,25 @@ msgstr "Retorna variáveis personalizadas para o Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Define um conjunto de visualizações para gerenciar operações relacionadas ao " -"schon. A classe SchonViewSet é herdeira do ModelViewSet e oferece " +"Define um conjunto de visualizações para gerenciar operações relacionadas ao" +" schon. A classe SchonViewSet é herdeira do ModelViewSet e oferece " "funcionalidade para lidar com ações e operações em entidades schon. Ela " "inclui suporte para classes de serializadores dinâmicos com base na ação " "atual, permissões personalizáveis e formatos de renderização." #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Representa um conjunto de visualizações para gerenciar objetos " "AttributeGroup. Trata das operações relacionadas ao AttributeGroup, " @@ -3304,11 +3328,11 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"Trata de operações relacionadas a objetos de atributo no aplicativo. Fornece " -"um conjunto de pontos de extremidade de API para interagir com dados de " +"Trata de operações relacionadas a objetos de atributo no aplicativo. Fornece" +" um conjunto de pontos de extremidade de API para interagir com dados de " "atributos. Essa classe gerencia a consulta, a filtragem e a serialização de " -"objetos Attribute, permitindo o controle dinâmico dos dados retornados, como " -"a filtragem por campos específicos ou a recuperação de informações " +"objetos Attribute, permitindo o controle dinâmico dos dados retornados, como" +" a filtragem por campos específicos ou a recuperação de informações " "detalhadas ou simplificadas, dependendo da solicitação." #: engine/core/viewsets.py:198 @@ -3316,8 +3340,8 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Um conjunto de exibições para gerenciar objetos AttributeValue. Esse " "conjunto de visualizações fornece funcionalidade para listar, recuperar, " @@ -3337,8 +3361,8 @@ msgstr "" "Gerencia as visualizações das operações relacionadas à categoria. A classe " "CategoryViewSet é responsável pelo tratamento das operações relacionadas ao " "modelo de categoria no sistema. Ela suporta a recuperação, a filtragem e a " -"serialização de dados de categoria. O conjunto de visualizações também impõe " -"permissões para garantir que somente usuários autorizados possam acessar " +"serialização de dados de categoria. O conjunto de visualizações também impõe" +" permissões para garantir que somente usuários autorizados possam acessar " "dados específicos." #: engine/core/viewsets.py:346 @@ -3348,8 +3372,8 @@ msgid "" "uses Django's ViewSet framework to simplify the implementation of API " "endpoints for Brand objects." msgstr "" -"Representa um conjunto de visualizações para gerenciar instâncias de marcas. " -"Essa classe fornece funcionalidade para consulta, filtragem e serialização " +"Representa um conjunto de visualizações para gerenciar instâncias de marcas." +" Essa classe fornece funcionalidade para consulta, filtragem e serialização " "de objetos de marca. Ela usa a estrutura ViewSet do Django para simplificar " "a implementação de pontos de extremidade da API para objetos de marca." @@ -3365,8 +3389,8 @@ msgid "" msgstr "" "Gerencia as operações relacionadas ao modelo `Product` no sistema. Essa " "classe fornece um conjunto de visualizações para gerenciar produtos, " -"incluindo filtragem, serialização e operações em instâncias específicas. Ela " -"se estende do `SchonViewSet` para usar a funcionalidade comum e se integra " +"incluindo filtragem, serialização e operações em instâncias específicas. Ela" +" se estende do `SchonViewSet` para usar a funcionalidade comum e se integra " "à estrutura Django REST para operações de API RESTful. Inclui métodos para " "recuperar detalhes do produto, aplicar permissões e acessar o feedback " "relacionado de um produto." @@ -3383,21 +3407,21 @@ msgstr "" "fornecedor. Esse conjunto de visualizações permite a busca, a filtragem e a " "serialização de dados do fornecedor. Ele define o conjunto de consultas, as " "configurações de filtro e as classes de serializador usadas para lidar com " -"diferentes ações. O objetivo dessa classe é fornecer acesso simplificado aos " -"recursos relacionados ao Vendor por meio da estrutura Django REST." +"diferentes ações. O objetivo dessa classe é fornecer acesso simplificado aos" +" recursos relacionados ao Vendor por meio da estrutura Django REST." #: engine/core/viewsets.py:625 msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representação de um conjunto de visualizações que manipula objetos de " -"feedback. Essa classe gerencia operações relacionadas a objetos de feedback, " -"incluindo listagem, filtragem e recuperação de detalhes. O objetivo desse " +"feedback. Essa classe gerencia operações relacionadas a objetos de feedback," +" incluindo listagem, filtragem e recuperação de detalhes. O objetivo desse " "conjunto de visualizações é fornecer serializadores diferentes para ações " "diferentes e implementar o manuseio baseado em permissão de objetos de " "feedback acessíveis. Ela estende a base `schonViewSet` e faz uso do sistema " @@ -3408,14 +3432,14 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"ViewSet para gerenciar pedidos e operações relacionadas. Essa classe oferece " -"funcionalidade para recuperar, modificar e gerenciar objetos de pedido. Ela " -"inclui vários pontos de extremidade para lidar com operações de pedidos, " +"ViewSet para gerenciar pedidos e operações relacionadas. Essa classe oferece" +" funcionalidade para recuperar, modificar e gerenciar objetos de pedido. Ela" +" inclui vários pontos de extremidade para lidar com operações de pedidos, " "como adicionar ou remover produtos, realizar compras para usuários " "registrados e não registrados e recuperar os pedidos pendentes do usuário " "autenticado atual. O ViewSet usa vários serializadores com base na ação " @@ -3426,13 +3450,13 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Fornece um conjunto de visualizações para gerenciar entidades OrderProduct. " -"Esse conjunto de visualizações permite operações CRUD e ações personalizadas " -"específicas do modelo OrderProduct. Ele inclui filtragem, verificações de " +"Esse conjunto de visualizações permite operações CRUD e ações personalizadas" +" específicas do modelo OrderProduct. Ele inclui filtragem, verificações de " "permissão e troca de serializador com base na ação solicitada. Além disso, " "fornece uma ação detalhada para lidar com feedback sobre instâncias de " "OrderProduct" @@ -3461,8 +3485,8 @@ msgstr "Trata de operações relacionadas a dados de estoque no sistema." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3485,8 +3509,8 @@ msgid "" "on the request context." msgstr "" "Essa classe fornece a funcionalidade de conjunto de visualizações para " -"gerenciar objetos `Address`. A classe AddressViewSet permite operações CRUD, " -"filtragem e ações personalizadas relacionadas a entidades de endereço. Ela " +"gerenciar objetos `Address`. A classe AddressViewSet permite operações CRUD," +" filtragem e ações personalizadas relacionadas a entidades de endereço. Ela " "inclui comportamentos especializados para diferentes métodos HTTP, " "substituições de serializadores e tratamento de permissões com base no " "contexto da solicitação." diff --git a/engine/core/locale/ro_RO/LC_MESSAGES/django.mo b/engine/core/locale/ro_RO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..63988d56eebfe46bbcbba9a2ec8ab729024fdc2e GIT binary patch literal 96380 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -29,10 +29,11 @@ msgstr "Este activ" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"Dacă este setat la false, acest obiect nu poate fi văzut de utilizatori fără " -"permisiunea necesară" +"Dacă este setat la false, acest obiect nu poate fi văzut de utilizatori fără" +" permisiunea necesară" #: engine/core/abstract.py:26 engine/core/choices.py:18 msgid "created" @@ -76,7 +77,7 @@ msgstr "Timestamps" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "Activați %(verbose_name_plural)s selectat" #: engine/core/admin.py:166 @@ -85,21 +86,21 @@ msgstr "Articolele selectate au fost activate!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Dezactivați %(verbose_name_plural)s selectat" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "Dezactivează selectat %(verbose_name_plural)s" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "Articolele selectate au fost dezactivate!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Atribut Valoare" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Valori ale atributului" @@ -119,12 +120,12 @@ msgstr "Stoc" msgid "stocks" msgstr "Stocuri" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Comanda Produs" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Comandați produse" @@ -132,7 +133,32 @@ msgstr "Comandați produse" msgid "children" msgstr "Copii" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Are imagini" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Exportați %(verbose_name_plural)s selectat în fluxurile piețelor" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "%(verbose_name_plural)s selectate au fost marcate pentru export." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Interziceți %(verbose_name_plural)s selectat din fluxurile piețelor" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "" +"Produsele selectate %(verbose_name_plural)s au fost interzise la export." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Configurare" @@ -156,7 +182,8 @@ msgstr "Livrat" msgid "canceled" msgstr "Anulată" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Eșuat" @@ -194,8 +221,8 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"Schema OpenApi3 pentru acest API. Formatul poate fi selectat prin negocierea " -"conținutului. Limba poate fi selectată atât cu Accept-Language, cât și cu " +"Schema OpenApi3 pentru acest API. Formatul poate fi selectat prin negocierea" +" conținutului. Limba poate fi selectată atât cu Accept-Language, cât și cu " "parametrul de interogare." #: engine/core/docs/drf/views.py:46 engine/core/graphene/mutations.py:36 @@ -208,8 +235,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicați doar o cheie pentru a citi datele permise din cache.\n" -"Aplicați o cheie, date și timeout cu autentificare pentru a scrie date în " -"cache." +"Aplicați o cheie, date și timeout cu autentificare pentru a scrie date în cache." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -234,8 +260,8 @@ msgstr "Căutare între produse, categorii și mărci" #: engine/core/docs/drf/views.py:144 msgid "global search endpoint to query across project's tables" msgstr "" -"Punct final de căutare globală pentru a efectua interogări în toate tabelele " -"proiectului" +"Punct final de căutare globală pentru a efectua interogări în toate tabelele" +" proiectului" #: engine/core/docs/drf/views.py:153 msgid "purchase an order as a business" @@ -246,8 +272,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"Achiziționați o comandă ca o afacere, utilizând `products` cu `product_uuid` " -"și `attributes` furnizate." +"Achiziționați o comandă ca o afacere, utilizând `products` cu `product_uuid`" +" și `attributes` furnizate." #: engine/core/docs/drf/views.py:180 msgid "download a digital asset from purchased digital order" @@ -272,10 +298,12 @@ msgstr "Ștergerea unui grup de atribute" #: engine/core/docs/drf/viewsets.py:99 msgid "rewrite an existing attribute group saving non-editables" msgstr "" -"Rescrierea unui grup de atribute existent cu salvarea elementelor needitabile" +"Rescrierea unui grup de atribute existent cu salvarea elementelor " +"needitabile" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rescrierea unor câmpuri ale unui grup de atribute existent, cu salvarea " "elementelor needitabile" @@ -328,7 +356,8 @@ msgstr "" "Rescrierea unei valori de atribut existente care salvează non-editabile" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rescrierea unor câmpuri ale unei valori de atribut existente salvând " "elementele needitabile" @@ -387,8 +416,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Căutare de substring insensibilă la majuscule în human_readable_id, " "order_products.product.name și order_products.product.partnumber" @@ -427,9 +456,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordonați după unul dintre: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Prefixați cu \"-\" pentru " @@ -634,29 +663,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrați după una sau mai multe perechi nume de atribut/valoare. \n" "- **Sintaxa**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- **Metode** (valoarea implicită este `icontains` dacă este omisă): " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`\n" -"- **Value typing**: JSON este încercat în primul rând (astfel încât să " -"puteți trece liste/dicte), `true`/`false` pentru booleeni, întregi, float; " -"în caz contrar tratat ca string. \n" -"- **Base64**: prefix cu `b64-` pentru a codifica valoarea brută în baza64 în " -"condiții de siguranță URL. \n" +"- **Metode** (valoarea implicită este `icontains` dacă este omisă): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Value typing**: JSON este încercat în primul rând (astfel încât să puteți trece liste/dicte), `true`/`false` pentru booleeni, întregi, float; în caz contrar tratat ca string. \n" +"- **Base64**: prefix cu `b64-` pentru a codifica valoarea brută în baza64 în condiții de siguranță URL. \n" "Exemple: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -671,12 +689,10 @@ msgstr "(exact) UUID al produsului" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Lista de câmpuri separate prin virgulă după care se face sortarea. Prefixați " -"cu `-` pentru descrescător. \n" +"Lista de câmpuri separate prin virgulă după care se face sortarea. Prefixați cu `-` pentru descrescător. \n" "**Autorizate:** uuid, rating, nume, slug, creat, modificat, preț, aleatoriu" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -748,8 +764,8 @@ msgstr "Autocompletare adresă de intrare" #: engine/core/docs/drf/viewsets.py:848 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " -"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" +" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " "it-it -l ja-jp -l kk-kz -l nl-nl -l pl-pl -l pt-br -l ro-ro -l ru-ru -l zh-" "hans -a core -a geo -a plăți -a vibes_auth -a blog" @@ -833,7 +849,8 @@ msgstr "Ștergeți un brand" #: engine/core/docs/drf/viewsets.py:1032 msgid "rewrite an existing brand saving non-editables" -msgstr "Rescrierea unui brand existent care economisește materiale needitabile" +msgstr "" +"Rescrierea unui brand existent care economisește materiale needitabile" #: engine/core/docs/drf/viewsets.py:1039 msgid "rewrite some fields of an existing brand saving non-editables" @@ -885,7 +902,8 @@ msgstr "Ștergeți imaginea unui produs" #: engine/core/docs/drf/viewsets.py:1146 msgid "rewrite an existing product image saving non-editables" -msgstr "Rescrieți o imagine de produs existentă salvând elementele needitabile" +msgstr "" +"Rescrieți o imagine de produs existentă salvând elementele needitabile" #: engine/core/docs/drf/viewsets.py:1154 msgid "rewrite some fields of an existing product image saving non-editables" @@ -937,7 +955,8 @@ msgstr "Ștergeți o promovare" #: engine/core/docs/drf/viewsets.py:1244 msgid "rewrite an existing promotion saving non-editables" -msgstr "Rescrierea unei promoții existente cu salvarea elementelor needitabile" +msgstr "" +"Rescrierea unei promoții existente cu salvarea elementelor needitabile" #: engine/core/docs/drf/viewsets.py:1251 msgid "rewrite some fields of an existing promotion saving non-editables" @@ -1234,8 +1253,8 @@ msgstr "Cumpărați o comandă" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Vă rugăm să trimiteți atributele sub formă de șir format ca attr1=valoare1, " "attr2=valoare2" @@ -1257,9 +1276,9 @@ msgstr "Comandaprodus {order_product_uuid} nu a fost găsită!" msgid "original address string provided by the user" msgstr "Șirul de adrese original furnizat de utilizator" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1275,8 +1294,8 @@ msgstr "ElasticSearch - funcționează ca un farmec" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Atribute" @@ -1314,10 +1333,11 @@ msgstr "" "categorii." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" -"Prețurile minime și maxime pentru produsele din această categorie, dacă sunt " -"disponibile." +"Prețurile minime și maxime pentru produsele din această categorie, dacă sunt" +" disponibile." #: engine/core/graphene/object_types.py:234 msgid "tags for this category" @@ -1353,7 +1373,7 @@ msgid "represents feedback from a user." msgstr "Reprezintă feedback de la un utilizator." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Notificări" @@ -1361,7 +1381,7 @@ msgstr "Notificări" msgid "download url for this order product if applicable" msgstr "URL de descărcare pentru acest produs de comandă, dacă este cazul" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Feedback" @@ -1369,7 +1389,7 @@ msgstr "Feedback" msgid "a list of order products in this order" msgstr "O listă a produselor comandate în această comandă" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Adresa de facturare" @@ -1397,7 +1417,7 @@ msgstr "Sunt toate produsele din comanda digitală" msgid "transactions for this order" msgstr "Tranzacții pentru această comandă" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Ordine" @@ -1414,7 +1434,7 @@ msgstr "Imagini ale produsului" msgid "category" msgstr "Categorie" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Feedback-uri" @@ -1455,7 +1475,7 @@ msgstr "Produse disponibile numai pentru comenzi personale" msgid "discount price" msgstr "Preț redus" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Produse" @@ -1467,7 +1487,7 @@ msgstr "Coduri promoționale" msgid "products on sale" msgstr "Produse scoase la vânzare" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Promoții" @@ -1475,7 +1495,7 @@ msgstr "Promoții" msgid "vendor" msgstr "Furnizor" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1483,11 +1503,11 @@ msgstr "Furnizor" msgid "product" msgstr "Produs" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Produse dorite" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Liste de dorințe" @@ -1589,8 +1609,8 @@ msgid "" msgstr "" "Reprezintă un grup de atribute, care poate fi ierarhic. Această clasă este " "utilizată pentru gestionarea și organizarea grupurilor de atribute. Un grup " -"de atribute poate avea un grup părinte, formând o structură ierarhică. Acest " -"lucru poate fi util pentru clasificarea și gestionarea mai eficientă a " +"de atribute poate avea un grup părinte, formând o structură ierarhică. Acest" +" lucru poate fi util pentru clasificarea și gestionarea mai eficientă a " "atributelor în cadrul unui sistem complex." #: engine/core/models.py:88 @@ -1605,7 +1625,7 @@ msgstr "Grup de atribute părinte" msgid "attribute group's name" msgstr "Numele grupului de atribute" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Grup de atribute" @@ -1714,8 +1734,8 @@ msgid "" msgstr "" "Reprezintă o etichetă de categorie utilizată pentru produse. Această clasă " "modelează o etichetă de categorie care poate fi utilizată pentru asocierea " -"și clasificarea produselor. Aceasta include atribute pentru un identificator " -"intern al etichetei și un nume de afișare ușor de utilizat." +"și clasificarea produselor. Aceasta include atribute pentru un identificator" +" intern al etichetei și un nume de afișare ușor de utilizat." #: engine/core/models.py:249 msgid "category tag" @@ -1743,9 +1763,9 @@ msgstr "" "include câmpuri pentru metadate și reprezentare vizuală, care servesc drept " "bază pentru caracteristicile legate de categorie. Această clasă este " "utilizată de obicei pentru a defini și gestiona categoriile de produse sau " -"alte grupări similare în cadrul unei aplicații, permițând utilizatorilor sau " -"administratorilor să specifice numele, descrierea și ierarhia categoriilor, " -"precum și să atribuie atribute precum imagini, etichete sau prioritate." +"alte grupări similare în cadrul unei aplicații, permițând utilizatorilor sau" +" administratorilor să specifice numele, descrierea și ierarhia categoriilor," +" precum și să atribuie atribute precum imagini, etichete sau prioritate." #: engine/core/models.py:269 msgid "upload an image representing this category" @@ -1757,7 +1777,8 @@ msgstr "Categorie imagine" #: engine/core/models.py:277 msgid "define a markup percentage for products in this category" -msgstr "Definiți un procent de majorare pentru produsele din această categorie" +msgstr "" +"Definiți un procent de majorare pentru produsele din această categorie" #: engine/core/models.py:286 msgid "parent of this category to form a hierarchical structure" @@ -1796,10 +1817,11 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"Reprezintă un obiect Brand în sistem. Această clasă gestionează informațiile " -"și atributele legate de o marcă, inclusiv numele acesteia, logo-urile, " +"Reprezintă un obiect Brand în sistem. Această clasă gestionează informațiile" +" și atributele legate de o marcă, inclusiv numele acesteia, logo-urile, " "descrierea, categoriile asociate, un slug unic și ordinea de prioritate. " "Aceasta permite organizarea și reprezentarea datelor legate de marcă în " "cadrul aplicației." @@ -1846,8 +1868,8 @@ msgstr "Categorii" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1880,8 +1902,8 @@ msgstr "Prețul de vânzare" msgid "the product associated with this stock entry" msgstr "Produsul asociat cu această intrare în stoc" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Produs asociat" @@ -1936,14 +1958,14 @@ msgid "" "properties to improve performance. It is used to define and manipulate " "product data and its associated information within an application." msgstr "" -"Reprezintă un produs cu atribute precum categoria, marca, etichetele, starea " -"digitală, numele, descrierea, numărul piesei și slug-ul. Oferă proprietăți " +"Reprezintă un produs cu atribute precum categoria, marca, etichetele, starea" +" digitală, numele, descrierea, numărul piesei și slug-ul. Oferă proprietăți " "utilitare conexe pentru a prelua evaluări, numărul de comentarii, prețul, " "cantitatea și comenzile totale. Concepută pentru a fi utilizată într-un " "sistem care gestionează comerțul electronic sau inventarul. Această clasă " "interacționează cu modele conexe (cum ar fi Category, Brand și ProductTag) " -"și gestionează memoria cache pentru proprietățile accesate frecvent pentru a " -"îmbunătăți performanța. Este utilizată pentru a defini și manipula datele " +"și gestionează memoria cache pentru proprietățile accesate frecvent pentru a" +" îmbunătăți performanța. Este utilizată pentru a defini și manipula datele " "despre produse și informațiile asociate acestora în cadrul unei aplicații." #: engine/core/models.py:595 @@ -1983,7 +2005,7 @@ msgstr "Furnizați o denumire clară de identificare a produsului" msgid "product name" msgstr "Denumirea produsului" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Adăugați o descriere detaliată a produsului" @@ -2003,108 +2025,116 @@ msgstr "Numărul piesei" msgid "stock keeping unit for this product" msgstr "Stock Keeping Unit pentru acest produs" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Dacă să exportați acest produs pe piețele comerciale" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Export către piețe" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Reprezintă un atribut în sistem. Această clasă este utilizată pentru " "definirea și gestionarea atributelor, care sunt elemente de date " "personalizabile care pot fi asociate cu alte entități. Atributele au " "asociate categorii, grupuri, tipuri de valori și nume. Modelul acceptă mai " -"multe tipuri de valori, inclusiv șir, număr întreg, float, boolean, array și " -"obiect. Acest lucru permite structurarea dinamică și flexibilă a datelor." +"multe tipuri de valori, inclusiv șir, număr întreg, float, boolean, array și" +" obiect. Acest lucru permite structurarea dinamică și flexibilă a datelor." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Grupul acestui atribut" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Șir de caractere" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Număr întreg" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Float" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Boolean" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Array" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Obiect" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Tipul valorii atributului" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Tipul de valoare" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Denumirea acestui atribut" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Numele atributului" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "este filtrabil" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Atributele și valorile care pot fi utilizate pentru filtrarea acestei " "categorii." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atribut" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Reprezintă o valoare specifică pentru un atribut care este legat de un " "produs. Leagă \"atributul\" de o \"valoare\" unică, permițând o mai bună " "organizare și reprezentare dinamică a caracteristicilor produsului." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Atributul acestei valori" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Produsul specific asociat cu valoarea acestui atribut" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Valoarea specifică pentru acest atribut" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2115,46 +2145,46 @@ msgstr "" "asemenea, include o funcție de accesibilitate cu text alternativ pentru " "imagini." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Furnizați text alternativ pentru imagine pentru accesibilitate" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Textul alt al imaginii" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Încărcați fișierul de imagine pentru acest produs" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Imaginea produsului" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Determină ordinea în care sunt afișate imaginile" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Prioritatea afișării" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Produsul pe care îl reprezintă această imagine" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Imagini ale produsului" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Reprezintă o campanie promoțională pentru produse cu o reducere. Această " "clasă este utilizată pentru a defini și gestiona campanii promoționale care " @@ -2163,75 +2193,75 @@ msgstr "" "asocierea acesteia la produsele aplicabile. Se integrează cu catalogul de " "produse pentru a determina articolele afectate în cadrul campaniei." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Procentul de reducere pentru produsele selectate" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Procent de reducere" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Furnizați un nume unic pentru această promoție" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Numele promoției" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Descrierea promoției" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Selectați ce produse sunt incluse în această promoție" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Produse incluse" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Promovare" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"Reprezintă lista de dorințe a unui utilizator pentru stocarea și gestionarea " -"produselor dorite. Clasa oferă funcționalitatea de a gestiona o colecție de " -"produse, suportând operațiuni precum adăugarea și eliminarea de produse, " +"Reprezintă lista de dorințe a unui utilizator pentru stocarea și gestionarea" +" produselor dorite. Clasa oferă funcționalitatea de a gestiona o colecție de" +" produse, suportând operațiuni precum adăugarea și eliminarea de produse, " "precum și operațiuni pentru adăugarea și eliminarea mai multor produse " "simultan." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Produse pe care utilizatorul le-a marcat ca fiind dorite" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Utilizatorul care deține această listă de dorințe" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Proprietarul listei de dorințe" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Lista dorințelor" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Reprezintă o înregistrare documentară legată de un produs. Această clasă " "este utilizată pentru a stoca informații despre documentarele legate de " @@ -2241,28 +2271,28 @@ msgstr "" "funcționalitatea mixinilor specifici și oferă caracteristici personalizate " "suplimentare." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Documentar" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Documentare" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Nerezolvat" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Reprezintă o entitate de adresă care include detalii despre locație și " "asocieri cu un utilizator. Oferă funcționalitate pentru stocarea datelor " @@ -2272,61 +2302,62 @@ msgstr "" "geolocalizarea (longitudine și latitudine). Aceasta suportă integrarea cu " "API-urile de geocodare, permițând stocarea răspunsurilor API brute pentru " "procesare sau inspecție ulterioară. De asemenea, clasa permite asocierea " -"unei adrese cu un utilizator, facilitând gestionarea personalizată a datelor." +"unei adrese cu un utilizator, facilitând gestionarea personalizată a " +"datelor." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Linia de adresă pentru client" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Linia de adresă" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Strada" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Districtul" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Oraș" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Regiunea" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Cod poștal" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Țara" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Punct de geolocație (longitudine, latitudine)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Răspuns JSON complet de la geocoder pentru această adresă" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Răspuns JSON stocat de la serviciul de geocodare" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Adresă" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adrese" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2340,77 +2371,77 @@ msgstr "" "PromoCode stochează detalii despre un cod promoțional, inclusiv " "identificatorul său unic, proprietățile de reducere (sumă sau procent), " "perioada de valabilitate, utilizatorul asociat (dacă există) și starea " -"utilizării acestuia. Aceasta include funcționalități de validare și aplicare " -"a codului promoțional la o comandă, asigurându-se în același timp că sunt " +"utilizării acestuia. Aceasta include funcționalități de validare și aplicare" +" a codului promoțional la o comandă, asigurându-se în același timp că sunt " "respectate constrângerile." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Cod unic utilizat de un utilizator pentru a răscumpăra o reducere" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Cod promoțional de identificare" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Valoarea fixă a reducerii aplicate dacă procentul nu este utilizat" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Valoarea fixă a reducerii" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentul de reducere aplicat dacă suma fixă nu este utilizată" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Reducere procentuală" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Data la care expiră codul promoțional" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Timpul final de valabilitate" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Timestamp de la care acest cod promoțional este valabil" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Ora de începere a valabilității" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Momentul în care codul promoțional a fost utilizat, gol dacă nu a fost " "utilizat încă" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Timestamp de utilizare" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Utilizatorul atribuit acestui cod promoțional, dacă este cazul" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Utilizator atribuit" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Cod promoțional" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Coduri promoționale" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2418,167 +2449,167 @@ msgstr "" "Trebuie definit un singur tip de reducere (sumă sau procent), dar nu ambele " "sau niciuna." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Codul promoțional a fost deja utilizat" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Tip de reducere invalid pentru codul promoțional {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Reprezintă o comandă plasată de un utilizator. Această clasă modelează o " "comandă în cadrul aplicației, inclusiv diferitele sale atribute, cum ar fi " -"informațiile privind facturarea și expedierea, starea, utilizatorul asociat, " -"notificările și operațiunile conexe. Comenzile pot avea produse asociate, se " -"pot aplica promoții, se pot stabili adrese și se pot actualiza detaliile de " -"expediere sau de facturare. În egală măsură, funcționalitatea sprijină " +"informațiile privind facturarea și expedierea, starea, utilizatorul asociat," +" notificările și operațiunile conexe. Comenzile pot avea produse asociate, " +"se pot aplica promoții, se pot stabili adrese și se pot actualiza detaliile " +"de expediere sau de facturare. În egală măsură, funcționalitatea sprijină " "gestionarea produselor în ciclul de viață al comenzii." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Adresa de facturare utilizată pentru această comandă" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Cod promoțional opțional aplicat la această comandă" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Cod promoțional aplicat" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Adresa de expediere utilizată pentru această comandă" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Adresa de expediere" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Stadiul actual al comenzii în ciclul său de viață" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Stadiul comenzii" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "Structura JSON a notificărilor care urmează să fie afișate utilizatorilor, " "în interfața de administrare este utilizată vizualizarea tabelară" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "Reprezentarea JSON a atributelor comenzii pentru această comandă" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "Utilizatorul care a plasat comanda" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Utilizator" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Momentul în care comanda a fost finalizată" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Cumpărați timp" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Un identificator ușor de citit pentru comandă" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "ID lizibil de către om" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Comandă" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "" "Un utilizator trebuie să aibă un singur ordin în așteptare la un moment dat!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "Nu puteți adăuga produse la o comandă care nu este în așteptare" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Nu puteți adăuga produse inactive la comandă" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "Nu puteți adăuga mai multe produse decât cele disponibile în stoc" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Nu puteți elimina produse dintr-o comandă care nu este o comandă în curs" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nu există cu interogarea <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Codul promoțional nu există" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" "Puteți cumpăra numai produse fizice cu adresa de expediere specificată!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Adresa nu există" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "Nu puteți achiziționa în acest moment, vă rugăm să încercați din nou în " "câteva minute." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Valoare forță invalidă" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Nu puteți achiziționa o comandă goală!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "" "Nu puteți elimina produse dintr-o comandă care nu este o comandă în curs" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Un utilizator fără sold nu poate cumpăra cu sold!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Insuficiența fondurilor pentru finalizarea comenzii" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2586,14 +2617,15 @@ msgstr "" "nu puteți cumpăra fără înregistrare, vă rugăm să furnizați următoarele " "informații: nume client, e-mail client, număr de telefon client" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -"Metodă de plată invalidă: {payment_method} de la {available_payment_methods}!" +"Metodă de plată invalidă: {payment_method} de la " +"{available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2608,34 +2640,35 @@ msgstr "" "un rating atribuit de utilizator. Clasa utilizează câmpuri din baza de date " "pentru a modela și gestiona în mod eficient datele de feedback." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "" "Comentarii furnizate de utilizatori cu privire la experiența lor cu produsul" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Comentarii de feedback" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Face referire la produsul specific dintr-o comandă despre care este vorba în " -"acest feedback" +"Face referire la produsul specific dintr-o comandă despre care este vorba în" +" acest feedback" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Produs aferent comenzii" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Rating atribuit de utilizator pentru produs" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Evaluarea produsului" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2649,8 +2682,8 @@ msgid "" msgstr "" "Reprezintă produsele asociate comenzilor și atributele acestora. Modelul " "OrderProduct păstrează informații despre un produs care face parte dintr-o " -"comandă, inclusiv detalii precum prețul de achiziție, cantitatea, atributele " -"produsului și starea acestuia. Acesta gestionează notificările pentru " +"comandă, inclusiv detalii precum prețul de achiziție, cantitatea, atributele" +" produsului și starea acestuia. Acesta gestionează notificările pentru " "utilizator și administratori și se ocupă de operațiuni precum returnarea " "soldului produsului sau adăugarea de feedback. Acest model oferă, de " "asemenea, metode și proprietăți care susțin logica de afaceri, cum ar fi " @@ -2658,131 +2691,131 @@ msgstr "" "produsele digitale. Modelul se integrează cu modelele Order și Product și " "stochează o referință la acestea." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "Prețul plătit de client pentru acest produs la momentul achiziției" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Prețul de achiziție la momentul comenzii" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarii interne pentru administratori cu privire la acest produs comandat" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Observații interne" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Notificări pentru utilizatori" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "Reprezentarea JSON a atributelor acestui element" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Atribute de produs ordonate" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Trimitere la comanda mamă care conține acest produs" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Ordinul părinților" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Produsul specific asociat cu această linie de comandă" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Cantitatea acestui produs specific din comandă" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Cantitatea produsului" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Starea actuală a acestui produs în comandă" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Starea liniei de produse" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Comandaprodusul trebuie să aibă o comandă asociată!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Acțiune greșită specificată pentru feedback: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "" "Nu puteți elimina produse dintr-o comandă care nu este o comandă în curs" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Nume și prenume" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "Adresa URL a integrării" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Acreditări de autentificare" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Puteți avea un singur furnizor CRM implicit" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM-uri" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Legătura CRM a comenzii" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Legături CRM pentru comenzi" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Reprezintă funcționalitatea de descărcare pentru activele digitale asociate " "comenzilor. Clasa DigitalAssetDownload oferă posibilitatea de a gestiona și " "de a accesa descărcările legate de produsele de comandă. Aceasta păstrează " -"informații despre produsul de comandă asociat, numărul de descărcări și dacă " -"activul este vizibil public. Aceasta include o metodă de generare a unei " -"adrese URL pentru descărcarea activului atunci când comanda asociată este în " -"stare finalizată." +"informații despre produsul de comandă asociat, numărul de descărcări și dacă" +" activul este vizibil public. Aceasta include o metodă de generare a unei " +"adrese URL pentru descărcarea activului atunci când comanda asociată este în" +" stare finalizată." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Descărcare" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Descărcări" @@ -2790,8 +2823,8 @@ msgstr "Descărcări" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"trebuie să furnizați un comentariu, un rating și uuid-ul produsului comandat " -"pentru a adăuga feedback." +"trebuie să furnizați un comentariu, un rating și uuid-ul produsului comandat" +" pentru a adăuga feedback." #: engine/core/sitemaps.py:25 msgid "Home" @@ -2983,8 +3016,7 @@ msgstr "Bună ziua %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Vă mulțumim pentru comanda dvs. #%(order.pk)s! Suntem încântați să vă " @@ -3099,12 +3131,11 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" -"Vă mulțumim pentru comanda dvs.! Suntem încântați să vă confirmăm achiziția. " -"Mai jos sunt detaliile comenzii dvs:" +"Vă mulțumim pentru comanda dvs.! Suntem încântați să vă confirmăm achiziția." +" Mai jos sunt detaliile comenzii dvs:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -3189,8 +3220,8 @@ msgid "" "Content-Type header for XML." msgstr "" "Gestionează răspunsul de vizualizare detaliată pentru o hartă a site-ului. " -"Această funcție procesează cererea, extrage răspunsul detaliat corespunzător " -"al hărții site-ului și stabilește antetul Content-Type pentru XML." +"Această funcție procesează cererea, extrage răspunsul detaliat corespunzător" +" al hărții site-ului și stabilește antetul Content-Type pentru XML." #: engine/core/views.py:155 msgid "" @@ -3207,8 +3238,8 @@ msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Gestionează operațiunile din cache, cum ar fi citirea și setarea datelor din " -"cache cu o cheie și un timeout specificate." +"Gestionează operațiunile din cache, cum ar fi citirea și setarea datelor din" +" cache cu o cheie și un timeout specificate." #: engine/core/views.py:220 msgid "Handles `contact us` form submissions." @@ -3219,8 +3250,8 @@ msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -"Gestionează cererile de procesare și validare a URL-urilor din cererile POST " -"primite." +"Gestionează cererile de procesare și validare a URL-urilor din cererile POST" +" primite." #: engine/core/views.py:273 msgid "Handles global search queries." @@ -3233,15 +3264,10 @@ msgstr "Gestionează logica cumpărării ca o afacere fără înregistrare." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestionează descărcarea unui bun digital asociat cu o comandă.\n" -"Această funcție încearcă să servească fișierul activului digital situat în " -"directorul de stocare al proiectului. Dacă fișierul nu este găsit, este " -"generată o eroare HTTP 404 pentru a indica faptul că resursa nu este " -"disponibilă." +"Această funcție încearcă să servească fișierul activului digital situat în directorul de stocare al proiectului. Dacă fișierul nu este găsit, este generată o eroare HTTP 404 pentru a indica faptul că resursa nu este disponibilă." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3270,24 +3296,20 @@ msgstr "favicon nu a fost găsit" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestionează cererile pentru favicon-ul unui site web.\n" -"Această funcție încearcă să servească fișierul favicon situat în directorul " -"static al proiectului. Dacă fișierul favicon nu este găsit, este generată o " -"eroare HTTP 404 pentru a indica faptul că resursa nu este disponibilă." +"Această funcție încearcă să servească fișierul favicon situat în directorul static al proiectului. Dacă fișierul favicon nu este găsit, este generată o eroare HTTP 404 pentru a indica faptul că resursa nu este disponibilă." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Redirecționează solicitarea către pagina de index a administratorului. " -"Funcția gestionează cererile HTTP primite și le redirecționează către pagina " -"index a interfeței de administrare Django. Aceasta utilizează funcția " +"Funcția gestionează cererile HTTP primite și le redirecționează către pagina" +" index a interfeței de administrare Django. Aceasta utilizează funcția " "`redirect` din Django pentru gestionarea redirecționării HTTP." #: engine/core/views.py:445 @@ -3305,9 +3327,9 @@ msgstr "Returnează variabilele personalizate pentru tabloul de bord." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3320,10 +3342,11 @@ msgstr "" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Reprezintă un set de vizualizări pentru gestionarea obiectelor " "AttributeGroup. Gestionează operațiunile legate de AttributeGroup, inclusiv " @@ -3340,20 +3363,20 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"Gestionează operațiunile legate de obiectele Attribute în cadrul aplicației. " -"Oferă un set de puncte finale API pentru a interacționa cu datele Attribute. " -"Această clasă gestionează interogarea, filtrarea și serializarea obiectelor " -"Attribute, permițând controlul dinamic asupra datelor returnate, cum ar fi " -"filtrarea după câmpuri specifice sau recuperarea de informații detaliate sau " -"simplificate în funcție de cerere." +"Gestionează operațiunile legate de obiectele Attribute în cadrul aplicației." +" Oferă un set de puncte finale API pentru a interacționa cu datele " +"Attribute. Această clasă gestionează interogarea, filtrarea și serializarea " +"obiectelor Attribute, permițând controlul dinamic asupra datelor returnate, " +"cum ar fi filtrarea după câmpuri specifice sau recuperarea de informații " +"detaliate sau simplificate în funcție de cerere." #: engine/core/viewsets.py:198 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Un set de vizualizări pentru gestionarea obiectelor AttributeValue. Acest " "set de vizualizări oferă funcționalități pentru listarea, extragerea, " @@ -3401,8 +3424,8 @@ msgid "" msgstr "" "Gestionează operațiunile legate de modelul `Product` din sistem. Această " "clasă oferă un set de vizualizări pentru gestionarea produselor, inclusiv " -"filtrarea lor, serializarea și operațiunile asupra instanțelor specifice. Se " -"extinde de la `SchonViewSet` pentru a utiliza funcționalități comune și se " +"filtrarea lor, serializarea și operațiunile asupra instanțelor specifice. Se" +" extinde de la `SchonViewSet` pentru a utiliza funcționalități comune și se " "integrează cu cadrul REST Django pentru operațiuni API RESTful. Include " "metode pentru recuperarea detaliilor produsului, aplicarea permisiunilor și " "accesarea feedback-ului aferent unui produs." @@ -3415,8 +3438,8 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Reprezintă un set de vizualizări pentru gestionarea obiectelor Vendor. Acest " -"set de vizualizare permite preluarea, filtrarea și serializarea datelor " +"Reprezintă un set de vizualizări pentru gestionarea obiectelor Vendor. Acest" +" set de vizualizare permite preluarea, filtrarea și serializarea datelor " "furnizorului. Aceasta definește queryset-ul, configurațiile de filtrare și " "clasele de serializare utilizate pentru a gestiona diferite acțiuni. Scopul " "acestei clase este de a oferi acces simplificat la resursele legate de " @@ -3427,14 +3450,14 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `schonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Reprezentarea unui set de vizualizări care gestionează obiecte Feedback. " "Această clasă gestionează operațiunile legate de obiectele Feedback, " -"inclusiv listarea, filtrarea și extragerea detaliilor. Scopul acestui set de " -"vizualizări este de a furniza serializatoare diferite pentru acțiuni " +"inclusiv listarea, filtrarea și extragerea detaliilor. Scopul acestui set de" +" vizualizări este de a furniza serializatoare diferite pentru acțiuni " "diferite și de a implementa gestionarea pe bază de permisiuni a obiectelor " "Feedback accesibile. Aceasta extinde clasa de bază `schonViewSet` și " "utilizează sistemul de filtrare Django pentru interogarea datelor." @@ -3444,9 +3467,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet pentru gestionarea comenzilor și a operațiunilor conexe. Această " @@ -3463,8 +3486,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Oferă un set de vizualizări pentru gestionarea entităților OrderProduct. " @@ -3476,7 +3499,8 @@ msgstr "" #: engine/core/viewsets.py:974 msgid "Manages operations related to Product images in the application. " -msgstr "Gestionează operațiunile legate de imaginile produselor din aplicație." +msgstr "" +"Gestionează operațiunile legate de imaginile produselor din aplicație." #: engine/core/viewsets.py:988 msgid "" @@ -3499,8 +3523,8 @@ msgstr "" msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3523,8 +3547,8 @@ msgid "" "on the request context." msgstr "" "Această clasă oferă funcționalități de tip viewset pentru gestionarea " -"obiectelor `Address`. Clasa AddressViewSet permite operațiuni CRUD, filtrare " -"și acțiuni personalizate legate de entitățile adresă. Aceasta include " +"obiectelor `Address`. Clasa AddressViewSet permite operațiuni CRUD, filtrare" +" și acțiuni personalizate legate de entitățile adresă. Aceasta include " "comportamente specializate pentru diferite metode HTTP, înlocuiri ale " "serializatorului și gestionarea permisiunilor în funcție de contextul " "cererii." diff --git a/engine/core/locale/ru_RU/LC_MESSAGES/django.mo b/engine/core/locale/ru_RU/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..9e0e93ea4f7cec2dfacdce3397e8e6457fb3d46f GIT binary patch literal 124741 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Активен" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Если установлено значение false, этот объект не может быть виден " "пользователям без необходимого разрешения" @@ -76,7 +77,7 @@ msgstr "Временные метки" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "Активировать выбранный %(verbose_name_plural)s" #: engine/core/admin.py:166 @@ -85,7 +86,7 @@ msgstr "Выбранные сущности активированы!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "Деактивировать выбранный %(verbose_name_plural)s" #: engine/core/admin.py:184 @@ -93,13 +94,13 @@ msgid "selected items have been deactivated." msgstr "Выбранные сущности были деактивированы!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Значение атрибута" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Значения атрибутов" @@ -119,12 +120,12 @@ msgstr "Наличие" msgid "stocks" msgstr "Наличия" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Заказанный товар" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Заказанные товары" @@ -132,7 +133,32 @@ msgstr "Заказанные товары" msgid "children" msgstr "Дети" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Имеет изображения" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Экспорт выбранного %(verbose_name_plural)s в фиды торговых площадок" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "Выбранные %(verbose_name_plural)s помечены для экспорта." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "" +"Запретить отображение %(verbose_name_plural)s в фидах торговых площадок" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Выбранные %(verbose_name_plural)s были запрещены к экспорту." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Конфигурация" @@ -156,7 +182,8 @@ msgstr "Доставлено" msgid "canceled" msgstr "Отменено" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Не удалось" @@ -274,7 +301,8 @@ msgstr "" "элементов" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Переписывание некоторых полей существующей группы атрибутов с сохранением " "нередактируемых полей" @@ -328,7 +356,8 @@ msgstr "" "значений" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Переписывание некоторых полей существующего значения атрибута с сохранением " "нередактируемых значений" @@ -388,11 +417,11 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Поиск подстроки с учетом регистра в human_readable_id, order_products." -"product.name и order_products.product.partnumber" +"Поиск подстроки с учетом регистра в human_readable_id, " +"order_products.product.name и order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -428,9 +457,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Упорядочивайте по одному из следующих признаков: uuid, human_readable_id, " "user_email, user, status, created, modified, buy_time, random. Префикс '-' " @@ -518,8 +547,8 @@ msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"Добавляет список товаров в заказ, используя предоставленные `product_uuid` и " -"`attributes`." +"Добавляет список товаров в заказ, используя предоставленные `product_uuid` и" +" `attributes`." #: engine/core/docs/drf/viewsets.py:472 msgid "remove product from order" @@ -542,8 +571,8 @@ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" msgstr "" -"Удаляет список товаров из заказа, используя предоставленные `product_uuid` и " -"`attributes`." +"Удаляет список товаров из заказа, используя предоставленные `product_uuid` и" +" `attributes`." #: engine/core/docs/drf/viewsets.py:497 msgid "list all wishlists (simple view)" @@ -633,29 +662,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Фильтр по одной или нескольким парам имя/значение атрибута. \n" "- **Синтаксис**: `attr_name=method-value[;attr2=method2-value2]...`.\n" -"- **Методы** (по умолчанию используется `icontains`, если опущено): " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`.\n" -"- **Типизация значений**: JSON сначала пытается принять значение (так что вы " -"можете передавать списки/дискреты), `true`/`false` для булевых, целых чисел, " -"плавающих; в противном случае обрабатывается как строка. \n" -"- **Base64**: префикс `b64-` для безопасного для URL base64-кодирования " -"исходного значения. \n" +"- **Методы** (по умолчанию используется `icontains`, если опущено): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- **Типизация значений**: JSON сначала пытается принять значение (так что вы можете передавать списки/дискреты), `true`/`false` для булевых, целых чисел, плавающих; в противном случае обрабатывается как строка. \n" +"- **Base64**: префикс `b64-` для безопасного для URL base64-кодирования исходного значения. \n" "Примеры: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." @@ -670,14 +688,11 @@ msgstr "(точный) UUID продукта" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Список полей для сортировки, разделенных запятыми. Для сортировки по " -"убыванию используйте префикс `-`. \n" -"**Разрешенные:** uuid, рейтинг, название, slug, created, modified, price, " -"random" +"Список полей для сортировки, разделенных запятыми. Для сортировки по убыванию используйте префикс `-`. \n" +"**Разрешенные:** uuid, рейтинг, название, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "retrieve a single product (detailed view)" @@ -1238,8 +1253,8 @@ msgstr "Купить заказ" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Пожалуйста, отправьте атрибуты в виде строки, отформатированной как " "attr1=value1,attr2=value2" @@ -1261,9 +1276,9 @@ msgstr "Заказ товара {order_product_uuid} не найден!" msgid "original address string provided by the user" msgstr "Оригинальная строка адреса, предоставленная пользователем" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1279,8 +1294,8 @@ msgstr "ElasticSearch - работает как шарм" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Атрибуты" @@ -1317,7 +1332,8 @@ msgstr "" "Какие атрибуты и значения можно использовать для фильтрации этой категории." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Минимальные и максимальные цены на товары в этой категории, если они " "доступны." @@ -1357,7 +1373,7 @@ msgid "represents feedback from a user." msgstr "Представляет собой отзыв пользователя." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Уведомления" @@ -1365,7 +1381,7 @@ msgstr "Уведомления" msgid "download url for this order product if applicable" msgstr "Если применимо, загрузите url для этого продукта заказа" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Обратная связь" @@ -1373,7 +1389,7 @@ msgstr "Обратная связь" msgid "a list of order products in this order" msgstr "Список товаров, заказанных в этом заказе" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Адрес для выставления счетов" @@ -1401,7 +1417,7 @@ msgstr "Все ли товары в заказе представлены в ц msgid "transactions for this order" msgstr "Операции для этого заказа" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Заказы" @@ -1418,7 +1434,7 @@ msgstr "Изображения товара" msgid "category" msgstr "Категория" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Отзывы" @@ -1459,7 +1475,7 @@ msgstr "Продукты доступны только для личных за msgid "discount price" msgstr "Цена со скидкой" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Товары" @@ -1471,7 +1487,7 @@ msgstr "Промокоды" msgid "products on sale" msgstr "Продукты в продаже" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Промоакции" @@ -1479,7 +1495,7 @@ msgstr "Промоакции" msgid "vendor" msgstr "Поставщик" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1487,11 +1503,11 @@ msgstr "Поставщик" msgid "product" msgstr "Товар" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Продукты из списка желаний" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Списки желаний" @@ -1609,7 +1625,7 @@ msgstr "Родительская группа атрибутов" msgid "attribute group's name" msgstr "Имя группы атрибутов" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Группа атрибутов" @@ -1635,8 +1651,8 @@ msgstr "" #: engine/core/models.py:122 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -"Хранит учетные данные и конечные точки, необходимые для взаимодействия с API " -"поставщика." +"Хранит учетные данные и конечные точки, необходимые для взаимодействия с API" +" поставщика." #: engine/core/models.py:124 msgid "authentication info" @@ -1684,8 +1700,8 @@ msgid "" msgstr "" "Представляет тег продукта, используемый для классификации или идентификации " "продуктов. Класс ProductTag предназначен для уникальной идентификации и " -"классификации продуктов с помощью комбинации внутреннего идентификатора тега " -"и удобного для пользователя отображаемого имени. Он поддерживает операции, " +"классификации продуктов с помощью комбинации внутреннего идентификатора тега" +" и удобного для пользователя отображаемого имени. Он поддерживает операции, " "экспортируемые через миксины, и обеспечивает настройку метаданных для " "административных целей." @@ -1717,8 +1733,8 @@ msgid "" msgstr "" "Представляет тег категории, используемый для продуктов. Этот класс " "моделирует тег категории, который может быть использован для ассоциации и " -"классификации продуктов. Он включает атрибуты для внутреннего идентификатора " -"тега и удобного для пользователя отображаемого имени." +"классификации продуктов. Он включает атрибуты для внутреннего идентификатора" +" тега и удобного для пользователя отображаемого имени." #: engine/core/models.py:249 msgid "category tag" @@ -1742,8 +1758,8 @@ msgid "" msgstr "" "Представляет собой объект категории для организации и группировки связанных " "элементов в иерархическую структуру. Категории могут иметь иерархические " -"отношения с другими категориями, поддерживая отношения \"родитель-ребенок\". " -"Класс включает поля для метаданных и визуального представления, которые " +"отношения с другими категориями, поддерживая отношения \"родитель-ребенок\"." +" Класс включает поля для метаданных и визуального представления, которые " "служат основой для функций, связанных с категориями. Этот класс обычно " "используется для определения и управления категориями товаров или другими " "подобными группировками в приложении, позволяя пользователям или " @@ -1799,7 +1815,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Представляет объект Brand в системе. Этот класс обрабатывает информацию и " "атрибуты, связанные с брендом, включая его название, логотипы, описание, " @@ -1848,8 +1865,8 @@ msgstr "Категории" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1882,8 +1899,8 @@ msgstr "Цена продажи" msgid "the product associated with this stock entry" msgstr "Продукт, связанный с этой складской записью" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Сопутствующий товар" @@ -1942,8 +1959,8 @@ msgstr "" "цифровой статус, название, описание, номер детали и метка. Предоставляет " "связанные с ним полезные свойства для получения оценок, количества отзывов, " "цены, количества и общего числа заказов. Предназначен для использования в " -"системе, которая занимается электронной коммерцией или управлением запасами. " -"Этот класс взаимодействует со связанными моделями (такими как Category, " +"системе, которая занимается электронной коммерцией или управлением запасами." +" Этот класс взаимодействует со связанными моделями (такими как Category, " "Brand и ProductTag) и управляет кэшированием часто используемых свойств для " "повышения производительности. Он используется для определения и " "манипулирования данными о товаре и связанной с ним информацией в приложении." @@ -1970,7 +1987,8 @@ msgstr "Является ли продукт цифровым" #: engine/core/models.py:623 msgid "indicates whether this product should be updated from periodic task" -msgstr "указывает, следует ли обновлять этот продукт из периодического задания" +msgstr "" +"указывает, следует ли обновлять этот продукт из периодического задания" #: engine/core/models.py:625 msgid "is product updatable" @@ -1984,7 +2002,7 @@ msgstr "Обеспечьте четкое идентификационное н msgid "product name" msgstr "Название продукта" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Добавьте подробное описание продукта" @@ -2004,13 +2022,21 @@ msgstr "Парт. номер" msgid "stock keeping unit for this product" msgstr "Единица складского учета для данного продукта" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Экспортировать ли этот продукт на торговые площадки" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Экспорт на торговые площадки" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Представляет атрибут в системе. Этот класс используется для определения и " @@ -2021,91 +2047,91 @@ msgstr "" "плавающую форму, булевую форму, массив и объект. Это позволяет динамично и " "гибко структурировать данные." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Группа этого атрибута" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Строка" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Целое число" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Поплавок" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Булево" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Массив" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Объект" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Тип значения атрибута" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Тип значения" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Имя этого атрибута" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Имя атрибута" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "поддается фильтрации" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Какие атрибуты и значения можно использовать для фильтрации этой категории." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Атрибут" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Представляет собой конкретное значение для атрибута, связанного с продуктом. " -"Он связывает \"атрибут\" с уникальным \"значением\", позволяя лучше " +"Представляет собой конкретное значение для атрибута, связанного с продуктом." +" Он связывает \"атрибут\" с уникальным \"значением\", позволяя лучше " "организовать и динамически представить характеристики продукта." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Атрибут этого значения" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Конкретный продукт, связанный со значением этого атрибута" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Конкретное значение для этого атрибута" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2115,48 +2141,48 @@ msgstr "" "товарам и определения порядка их отображения. Он также включает функцию " "доступности с альтернативным текстом для изображений." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "" "Предоставьте альтернативный текст для изображения, чтобы обеспечить " "доступность" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Альтовый текст изображения" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Загрузите файл изображения для этого продукта" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Изображение продукта" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Определяет порядок отображения изображений" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Приоритет отображения" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Продукт, который представлен на этом изображении" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Изображения товаров" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Представляет рекламную кампанию для товаров со скидкой. Этот класс " "используется для определения и управления рекламными кампаниями, " @@ -2165,39 +2191,39 @@ msgstr "" "акции и привязки ее к соответствующим товарам. Он интегрируется с каталогом " "товаров для определения товаров, на которые распространяется акция." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Процентная скидка на выбранные продукты" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Процент скидки" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Укажите уникальное имя для этой акции" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Название акции" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Описание акции" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Выберите, какие продукты участвуют в этой акции" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Включенные продукты" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Продвижение" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2210,60 +2236,60 @@ msgstr "" "товаров, а также поддерживая операции добавления и удаления нескольких " "товаров одновременно." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Продукты, которые пользователь отметил как желаемые" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Пользователь, владеющий этим списком желаний" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Владелец вишлиста" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Список желаний" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Представляет документальную запись, связанную с продуктом. Этот класс " "используется для хранения информации о документальных записях, связанных с " "конкретными продуктами, включая загруженные файлы и их метаданные. Он " "содержит методы и свойства для обработки типа файла и пути хранения " -"документальных файлов. Он расширяет функциональность определенных миксинов и " -"предоставляет дополнительные пользовательские возможности." +"документальных файлов. Он расширяет функциональность определенных миксинов и" +" предоставляет дополнительные пользовательские возможности." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Документальный фильм" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Документальные фильмы" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Неразрешенные" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Представляет адресную сущность, включающую сведения о местоположении и " "ассоциации с пользователем. Обеспечивает функциональность для хранения " @@ -2275,59 +2301,59 @@ msgstr "" "обработки или проверки. Класс также позволяет ассоциировать адрес с " "пользователем, что облегчает работу с персонализированными данными." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Адресная строка для клиента" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Адресная строка" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Улица" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Округ" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Город" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Регион" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Почтовый индекс" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Страна" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Геолокационная точка(долгота, широта)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Полный JSON-ответ от геокодера для этого адреса" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Сохраненный JSON-ответ от сервиса геокодирования" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Адрес" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Адреса" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2339,244 +2365,245 @@ msgstr "" "Представляет промокод, который можно использовать для получения скидки, " "управляя его сроком действия, типом скидки и применением. Класс PromoCode " "хранит информацию о промокоде, включая его уникальный идентификатор, " -"свойства скидки (размер или процент), срок действия, связанного пользователя " -"(если таковой имеется) и статус его использования. Он включает в себя " +"свойства скидки (размер или процент), срок действия, связанного пользователя" +" (если таковой имеется) и статус его использования. Он включает в себя " "функциональность для проверки и применения промокода к заказу, обеспечивая " "при этом соблюдение ограничений." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Уникальный код, используемый пользователем для получения скидки" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Идентификатор промо-кода" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Фиксированная сумма скидки, применяемая, если процент не используется" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Фиксированная сумма скидки" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "" "Процентная скидка, применяемая, если фиксированная сумма не используется" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Процентная скидка" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Временная метка, когда истекает срок действия промокода" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Время окончания срока действия" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Время, с которого действует этот промокод" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Время начала действия" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Временная метка, когда был использован промокод, пустая, если он еще не " "использовался" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Временная метка использования" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Пользователь, назначенный на этот промокод, если применимо" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Назначенный пользователь" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Промокод" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Промокоды" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Следует определить только один тип скидки (сумма или процент), но не оба или " -"ни один из них." +"Следует определить только один тип скидки (сумма или процент), но не оба или" +" ни один из них." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Промокоды" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Неверный тип скидки для промокода {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" -"Представляет заказ, оформленный пользователем. Этот класс моделирует заказ в " -"приложении, включая его различные атрибуты, такие как информация о " +"Представляет заказ, оформленный пользователем. Этот класс моделирует заказ в" +" приложении, включая его различные атрибуты, такие как информация о " "выставлении счета и доставке, статус, связанный пользователь, уведомления и " "связанные операции. Заказы могут иметь связанные продукты, к ним можно " "применять рекламные акции, устанавливать адреса и обновлять данные о " "доставке или выставлении счета. Кроме того, функциональность поддерживает " "управление продуктами в жизненном цикле заказа." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Адрес для выставления счетов, используемый для данного заказа" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Дополнительный промокод, применяемый к этому заказу" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Примененный промокод" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Адрес доставки, используемый для данного заказа" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Адрес доставки" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Текущий статус заказа в его жизненном цикле" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Статус заказа" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" -"JSON-структура уведомлений для отображения пользователям, в административном " -"интерфейсе используется табличный вид" +"JSON-структура уведомлений для отображения пользователям, в административном" +" интерфейсе используется табличный вид" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "JSON-представление атрибутов заказа для этого заказа" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "Пользователь, разместивший заказ" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Пользователь" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Временная метка, когда заказ был завершен" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Время покупки" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Человекочитаемый идентификатор для заказа" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "человекочитаемый идентификатор" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Заказ" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "Пользователь может одновременно иметь только один отложенный ордер!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "Вы не можете добавить товары в заказ, который не является отложенным." -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Вы не можете добавить неактивные товары в заказ" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "Вы не можете добавить больше товаров, чем есть на складе" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" -msgstr "Вы не можете удалить товары из заказа, который не является отложенным." +msgstr "" +"Вы не можете удалить товары из заказа, который не является отложенным." -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} не существует с запросом <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Промокод не существует" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" "Вы можете купить физические товары только с указанным адресом доставки!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Адрес не существует" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "В данный момент вы не можете совершить покупку, пожалуйста, повторите " "попытку через несколько минут." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Недопустимое значение силы" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Вы не можете приобрести пустой заказ!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "Вы не можете купить заказ без пользователя!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Пользователь без баланса не может покупать с балансом!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Недостаточно средств для выполнения заказа" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2584,14 +2611,14 @@ msgstr "" "Вы не можете купить без регистрации, пожалуйста, предоставьте следующую " "информацию: имя клиента, электронная почта клиента, номер телефона клиента" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Неверный способ оплаты: {payment_method} от {available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2606,32 +2633,33 @@ msgstr "" "пользователем. Класс использует поля базы данных для эффективного " "моделирования и управления данными отзывов." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "Комментарии пользователей об их опыте использования продукта" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Комментарии к отзывам" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Ссылка на конкретный продукт в заказе, о котором идет речь в этом отзыве" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Сопутствующий товар для заказа" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Присвоенный пользователем рейтинг продукта" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Рейтинг продукции" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2653,128 +2681,129 @@ msgstr "" "для цифровых продуктов. Модель интегрируется с моделями Order и Product и " "хранит ссылки на них." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "Цена, уплаченная клиентом за данный продукт на момент покупки" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Покупная цена на момент заказа" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" -msgstr "Внутренние комментарии для администраторов об этом заказанном продукте" +msgstr "" +"Внутренние комментарии для администраторов об этом заказанном продукте" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Внутренние комментарии" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Уведомления пользователей" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "JSON-представление атрибутов этого элемента" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Атрибуты заказанного продукта" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Ссылка на родительский заказ, содержащий данный продукт" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Родительский приказ" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Конкретный продукт, связанный с этой линией заказа" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Количество данного товара в заказе" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Количество продукта" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Текущий статус этого продукта в заказе" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Состояние продуктовой линейки" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "У заказанного продукта должен быть связанный с ним заказ!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Для обратной связи указано неверное действие: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "Вы не можете отозвать заказ, который не был получен" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Имя" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL-адрес интеграции" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Учетные данные для аутентификации" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "У вас может быть только один поставщик CRM по умолчанию" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Ссылка на CRM заказа" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Ссылки на CRM заказов" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Представляет функциональность загрузки цифровых активов, связанных с " "заказами. Класс DigitalAssetDownload предоставляет возможность управления и " "доступа к загрузкам, связанным с продуктами заказа. Он хранит информацию о " -"связанном с заказом продукте, количестве загрузок и о том, является ли актив " -"общедоступным. Он включает метод для генерации URL-адреса для загрузки " +"связанном с заказом продукте, количестве загрузок и о том, является ли актив" +" общедоступным. Он включает метод для генерации URL-адреса для загрузки " "актива, когда связанный заказ находится в состоянии завершения." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Скачать" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Скачать" @@ -2975,12 +3004,11 @@ msgstr "Привет %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"Благодарим вас за заказ #%(order.pk)s! Мы рады сообщить Вам, что приняли Ваш " -"заказ в работу. Ниже приведены детали вашего заказа:" +"Благодарим вас за заказ #%(order.pk)s! Мы рады сообщить Вам, что приняли Ваш" +" заказ в работу. Ниже приведены детали вашего заказа:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -3090,8 +3118,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Спасибо за ваш заказ! Мы рады подтвердить вашу покупку. Ниже приведены " @@ -3164,7 +3191,8 @@ msgstr "Параметр NOMINATIM_URL должен быть настроен!" #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -"Размеры изображения не должны превышать w{max_width} x h{max_height} пикселей" +"Размеры изображения не должны превышать w{max_width} x h{max_height} " +"пикселей" #: engine/core/views.py:104 msgid "" @@ -3182,8 +3210,8 @@ msgid "" "Content-Type header for XML." msgstr "" "Обрабатывает подробный ответ на просмотр карты сайта. Эта функция " -"обрабатывает запрос, извлекает соответствующий подробный ответ карты сайта и " -"устанавливает заголовок Content-Type для XML." +"обрабатывает запрос, извлекает соответствующий подробный ответ карты сайта и" +" устанавливает заголовок Content-Type для XML." #: engine/core/views.py:155 msgid "" @@ -3225,14 +3253,10 @@ msgstr "Работает с логикой покупки как бизнеса #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Обрабатывает загрузку цифрового актива, связанного с заказом.\n" -"Эта функция пытается обслужить файл цифрового актива, расположенный в " -"каталоге хранения проекта. Если файл не найден, выдается ошибка HTTP 404, " -"указывающая на недоступность ресурса." +"Эта функция пытается обслужить файл цифрового актива, расположенный в каталоге хранения проекта. Если файл не найден, выдается ошибка HTTP 404, указывающая на недоступность ресурса." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3261,19 +3285,15 @@ msgstr "favicon не найден" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Обрабатывает запросы на фавикон веб-сайта.\n" -"Эта функция пытается обслужить файл favicon, расположенный в статической " -"директории проекта. Если файл favicon не найден, выдается ошибка HTTP 404, " -"указывающая на недоступность ресурса." +"Эта функция пытается обслужить файл favicon, расположенный в статической директории проекта. Если файл favicon не найден, выдается ошибка HTTP 404, указывающая на недоступность ресурса." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Перенаправляет запрос на индексную страницу админки. Функция обрабатывает " @@ -3296,9 +3316,9 @@ msgstr "Возвращает пользовательские переменны #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3310,10 +3330,11 @@ msgstr "" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Представляет собой набор представлений для управления объектами " "AttributeGroup. Обрабатывает операции, связанные с AttributeGroup, включая " @@ -3342,15 +3363,15 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Набор представлений для управления объектами AttributeValue. Этот набор " "представлений предоставляет функциональность для перечисления, извлечения, " "создания, обновления и удаления объектов AttributeValue. Он интегрируется с " "механизмами наборов представлений Django REST Framework и использует " -"соответствующие сериализаторы для различных действий. Возможности фильтрации " -"предоставляются через DjangoFilterBackend." +"соответствующие сериализаторы для различных действий. Возможности фильтрации" +" предоставляются через DjangoFilterBackend." #: engine/core/viewsets.py:217 msgid "" @@ -3361,8 +3382,8 @@ msgid "" "can access specific data." msgstr "" "Управляет представлениями для операций, связанных с категорией. Класс " -"CategoryViewSet отвечает за обработку операций, связанных с моделью Category " -"в системе. Он поддерживает получение, фильтрацию и сериализацию данных " +"CategoryViewSet отвечает за обработку операций, связанных с моделью Category" +" в системе. Он поддерживает получение, фильтрацию и сериализацию данных " "категории. Набор представлений также обеспечивает соблюдение прав доступа, " "чтобы только авторизованные пользователи могли получить доступ к " "определенным данным." @@ -3405,10 +3426,10 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Представляет собой набор представлений для управления объектами Vendor. Этот " -"набор представлений позволяет получать, фильтровать и сериализовать данные о " -"поставщиках. Он определяет наборы запросов, конфигурации фильтров и классы " -"сериализаторов, используемые для выполнения различных действий. Цель этого " +"Представляет собой набор представлений для управления объектами Vendor. Этот" +" набор представлений позволяет получать, фильтровать и сериализовать данные " +"о поставщиках. Он определяет наборы запросов, конфигурации фильтров и классы" +" сериализаторов, используемые для выполнения различных действий. Цель этого " "класса - обеспечить упрощенный доступ к ресурсам, связанным с Vendor, через " "фреймворк Django REST." @@ -3417,8 +3438,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Представление набора представлений, обрабатывающих объекты Feedback. Этот " @@ -3426,43 +3447,44 @@ msgstr "" "составление списка, фильтрацию и получение подробной информации. Цель этого " "набора представлений - предоставить различные сериализаторы для различных " "действий и реализовать обработку доступных объектов Feedback на основе прав " -"доступа. Он расширяет базовый `schonViewSet` и использует систему " -"фильтрации Django для запроса данных." +"доступа. Он расширяет базовый `schonViewSet` и использует систему фильтрации" +" Django для запроса данных." #: engine/core/viewsets.py:652 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet для управления заказами и связанными с ними операциями. Этот класс " "предоставляет функциональность для получения, изменения и управления " -"объектами заказов. Он включает в себя различные конечные точки для обработки " -"операций с заказами, таких как добавление или удаление продуктов, выполнение " -"покупок для зарегистрированных и незарегистрированных пользователей, а также " -"получение информации о текущих заказах аутентифицированного пользователя. " -"ViewSet использует несколько сериализаторов в зависимости от конкретного " -"выполняемого действия и соответствующим образом устанавливает разрешения при " -"взаимодействии с данными заказа." +"объектами заказов. Он включает в себя различные конечные точки для обработки" +" операций с заказами, таких как добавление или удаление продуктов, " +"выполнение покупок для зарегистрированных и незарегистрированных " +"пользователей, а также получение информации о текущих заказах " +"аутентифицированного пользователя. ViewSet использует несколько " +"сериализаторов в зависимости от конкретного выполняемого действия и " +"соответствующим образом устанавливает разрешения при взаимодействии с " +"данными заказа." #: engine/core/viewsets.py:914 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Предоставляет набор представлений для управления сущностями OrderProduct. " "Этот набор представлений позволяет выполнять CRUD-операции и " "пользовательские действия, специфичные для модели OrderProduct. Он включает " -"фильтрацию, проверку прав доступа и переключение сериализатора в зависимости " -"от запрашиваемого действия. Кроме того, он предоставляет подробное действие " -"для обработки отзывов об экземплярах OrderProduct" +"фильтрацию, проверку прав доступа и переключение сериализатора в зависимости" +" от запрашиваемого действия. Кроме того, он предоставляет подробное действие" +" для обработки отзывов об экземплярах OrderProduct" #: engine/core/viewsets.py:974 msgid "Manages operations related to Product images in the application. " @@ -3490,8 +3512,8 @@ msgstr "Выполняет операции, связанные с данным msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3532,8 +3554,8 @@ msgid "" "using the specified filter backend and dynamically uses different " "serializers based on the action being performed." msgstr "" -"Обрабатывает операции, связанные с тегами продуктов в приложении. Этот класс " -"предоставляет функциональность для получения, фильтрации и сериализации " +"Обрабатывает операции, связанные с тегами продуктов в приложении. Этот класс" +" предоставляет функциональность для получения, фильтрации и сериализации " "объектов Product Tag. Он поддерживает гибкую фильтрацию по определенным " "атрибутам с помощью указанного бэкэнда фильтрации и динамически использует " "различные сериализаторы в зависимости от выполняемого действия." diff --git a/engine/core/locale/sv_SE/LC_MESSAGES/django.mo b/engine/core/locale/sv_SE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f569663e7898242f46198078ca949ebc62fd2467 GIT binary patch literal 92231 zcmcG%37lO;nf`wwix~DrL>4`SCFzjvED*$yVD=EQk_`|seY^X1_ochL3E&IBozs%!jUbPc zzb;CW!@x&fm?RzG;ozgeh2V5>3AhBj7(5AlF8FxxcJL7J!{Bk?Cqd=+Ab2qN4e%M@ zcR}Uz)Wu113|I!KTCxj#C3p*XD0n)BDBUdZc<@~CaBvOy7;r17rd$Osq5dxbRnN~| zlqAQ34}hnG{|fRiIp`@#aw51KoC#h5o(w(<{17yHJqQVsEz7+=w}1-?za`+e0v@%( z+qDuD{VoR8?yEqR+Y25Ej)7-`H-aVbo!}F|BUUEK_0;zqa0B>`RY~$B;{UKZNj8IX z*CfgB!5hH$gS#)L-K6VSnzD1ndB>0o9+kfk%LE1(o030q+B! zNcdae1>he+G5q{39{)M;Hp2f7il1)W>U4S`sPOAS%NJC=?*=#1uKPjp|B2hZeoqAd zh448cd^p6oi*%0z=YXHOEJ?0>RFeGS@+A2V>DFFJ-xGi4)8I4kbyv|Q@H0eCT<^ANmpAJCG#51s@uOCy4+0)ga-6hmzzsgwGph z3=y6=LYd_E>?-Xi{N+)23hb#T$tdwhH0evi*Y8S_o4|#8oQ@wIcltg6!b-_ELD7H4 zwTwA%EhxUMgDLn<@L2Fmp!)Copy>Fopwj;o>;jLy&huRgimxsP#iu1u>H9-?1Qh?( z!9H*gxRm;RA4~~9;dbo!M&s(1rMT~=RGq?I*GsFS23fQ zg6{;yPY;0_XTJkQ-y@&np@_m!a9`2i5tN!65?CFmIRqjck+CMYklR>3l z2dcljLG{;jLG|CQ;rV+(^~YXN_5LQPa(@P@9?32K{21`@1kVh35vb>vgL-ceRQ<05 z=YThY=YV&ED(`!s@>Q1x9KuoqOi>p}JZi$LXbH~1KEFE}0iM{qg#EpP#N%1fO78$pfh zD?#P|GVmzyPEhszAgKPlA3PHL3V1m9J@9n!r{VeZmwGNOE1j;Vg6g-qpy;|1Ouv2d1UG>zz?(qT z_Y0u-@;Bfy;GaRIKm1m&_i3Q`bUQc~d=_{-_Q zI1ZiAwP$o+yX#jbKXn&Jh1ua30|wfg1mhz0LL8g`n)EouK&bnV|afEuiwd4^%yV2&Uk) z*E@Y?fRZ~KLD6q3crsW9#aB0k@C(2-gzpIPKM(jjQ2qEzRQ~sar+_~M#n*oY#mDEp*>N!_daVSX1YQn`?_LUu ze?Af7e+#Z8e9l{(UZdcpgkJ%wydQ(A$FD)r>Cm@&e;xsE8oNPTULXz0ZKE_qW3He+M-_egmf98F%{lTnVawMnL8F zHt>nyy|11=%_WpF7t{qG&ufr`HcTm^m+6u%tvLAOJ; zfy(DrQ2qC9@FMUDAM*FF0?#A-Mo{rz1C`%#_qe>@42o}>;E~|#K=IXG;4$Erz^8%V z1CIiq{0~0fF9r`G{4`MS^?+x9qoDZqm7v;v8@L?&Qiwn5UVr{ra60j)g2#h1!DGP- zL6y4!RKGnv#1DW+6CMXo1YZEEpWXy^f)9XS1pflw2!8&<&M)gf;{DSEJBYsuSV)W<#F zmEf6#uK^c>uLjlbuYsc955U90AAuTAzXC7Q`<-US{(_!96m@G?+z9RnW&-U(g+ zz7JHsKLt+$e+z0HAMr_V_YP3~d;_TZzYSD-{|OXb{|Fuo9`-4x%aP!5gf9e70XKqb z$JLz4kAUj`LqF~HI1*I*&ITU~E&!G8V(2;Q2jj!s$X9XE(0F~ zmxCwV7vvo%`aB2h0N)3y|Gy0`0gt-h+rJ*Xk#GZC0R90y1DyR?&u=5B_?Lm}!27`S z!DBw>`L6*_BU}g7o|l4>cb^1R?$5zqRSw-7Q6<09QaZ2WbkXC`r()06Tv@$%J1=C_W0Al=M$b4!tV#g4<7@? zUk`w90e=b}3f}yW&ZjR2k0g9McmntyQ2g~7a3=U5*hl^U3_hCh&Ig z<01awue#hk15`b?gI|0U{10ACc5**{-)1Qul^SO!1Fu6KY&Mko4Evd@OS7l(tQP7 zO8Cd$g{Q%@zvuP%C@4AiNw5R_Cs6(RNWjN_-}!YecsTJ-1~qP0fro%sf|7qF@OW?! zDE_?#{5j=50B$Axv42696F%l4WE%Lce|3JC@o$djfXe4QFa_6vDrXq%1fLBa4BibM z1AZvrXF>7JH^B?QAAaUlB>c_W$H`A_iS$F@T-sS?kjy3iRVO*#AMkhJBI3__{4|rh z-JtsaRp3JKP2dvn8=&~_gp;S)xZMD%JNRqnGu#lHzue(wU`3Vs^YI4M7InvMIHgW`kNfJ*_$*NUa5E@Ax)oG8p9}aPD0+P#)O)`H)viZC(dYOxJpJjQ_;e1a_=`Z5zaBgT zyfQq0CTQaaJc9UFgKFb*aJs?UFeD(~1cz1?Sk%4ZSS z32p$D&vl^E-xBc6p!(~c@cfIQ-urHN{>ubQBzZ_J)Zv&O@C&Tjx13nCj@3g3;=O=<{M+c~WzX(+O zw}I0>m5gdl7Cl$;)h#6@#Skk^~(dG z`2YK$%KrtZ_Ydyy=SPBiehR4f&I$27pzOp^Q1a;AA^zXNvkCtWyaYUTw)52hsCGOP z6o0%16dmpaRgaH?lCNI~;h%sr3I7-PWbo8;rX?>2cYxxXhe74{Yj7breU8_ADY%XB zT5t>aMo{(pb$C9fbDHVdg`o1^2}+JU4^+Ajf*J?^393II-Q{=+sPQuwlw4W_s{AWJ z(X9?juDt;410M#j1UItSDE@vYsQ!K*xC;CXsCFMV&-v{{Q1mzr>;TUNCC9G<)ql5v z;>$0B;{SgFRlgsC%J27}_;vAo$3akh^-6F(_zuw0f#Q?J3w#`}2378MQ1WO96g^)6 zc7mS-)sA0)Du3;{)6AaP44Rw)Q{rz1B^TZeo(X;wya0R%R6QSmp6lJtfLlS)aU9gR zdJUL@9|_OD8^Y5TdOc=gU&jYWMp=@%;lK{4G%Y`+HFRzU)cLe^e}4eyfoCmp{@VenJ{3@O9|P52w}Q&|W1#x+8=&&}F{pk#=t6(K7!)7x09S$) z@D%X9pyb3CLGkr>z!dx`D7p2R#onGXLGjJypy=8ID!&o%BJc)Kl@#gX_TWgUYAlBCp4Jp!#JqsB*T0>hGPP${7IF{%b+i^SPkL@hd^q|2?3_ z&BsB}`$152{TEQ_e+7!}e+8BQF;DUKoeU~|At-vR0o8xKpz^&HR6XAgimo33mH$^m z`1_#v;}KB#9J|!hp8@LqE>QKnD1VO=;2v-d_-SxC_?Q*mAL~K!^Xoy4gSUce=SM+} z&(8+@38?XS=t_^D9q^KXSA&xCF9gp5?*lc?eg+PLe+8cg4y>AH{`dR9%Lt#i+T~p} z;OoFn;y(*&JpUIcy8R_QKXHxQL(9SW#MeQkzXO~NJ{a&X0cTz8^MBBof$*J#v8V^T3&FzJypxXT+ zP;|Nt6#d=;s$K5|HNL+9N{>GbN=_bjmFtPegKF=&pvK`Ya2fbaQ2Bitd>r_BQ2g@{ zD88HfbZ_r4xPb5-p!(;VpycL3J6*n<4vIhKfReXm@NDo|p!(@9P;~ezD1QGlsB$mp z_I5o5RC_jnDR>1ad2=nO_PrQXf4&3M`2HAp2KX>2dLLQxd@cp6gm;3f=U2cK{4;nS zcuJ4AZ!@U!ZU@C5?*b)nJ`RcwKLs`Z<;+yOj|4S7mx8j}t_3B}KLtJsl#{RvxByiD z4S-9*+rSOr_rmkp|K>dw#^Jc$Iz6@SVn8&u?@vuj+$ACDx)BX+(cmntnVou}v z-P|t<@k%tkaQ_UR%ilDcYb?Znjx=u~9RId)^YOwv4~F|y;B&e5kXCJZYIx_>0dEKA zgtYJAIV^3yt{-xLX-M-I?w`!P_5;70=dS_fulXqP`uhZN(&O(0JBj}t_*ud$xPJ!s z@8tg9!QET~#32TfD?t4{!c`-zzn^hEgX?_4@8J1gL%g1C3+Z+LX5!zj8~*+$q&XJc zM4BC3mvMcE@ZW`Jmyxc?^+CeohxjL6)!(y1I_ad}bN>P^hGw#ad|nZrEdZDCJPqMr zaDNETKN`XWlOGrEA4B*9gdfNCwGfYZx4*aX|L?fob$lt~c=T z?vUnO!tX02K7#m^Yc$0DQb?MmT*bdL2qQj{*AQ9f`aV~g@cY5t-C<+#9QA5{KLuaL-O;3dCD+RdpAYJ97x!m_>$pD0{qZ1X zPV)Tl{KtfE;C_S)F*xDxZN%4!KacCk@Xnh^bsqO`1ts5~$Muo$uH<`vNGF-AziSziCJCd~_Z{uoeyKjQi! z_s;<@0(bH33E-W282+vXUr+pNiC@kAj1Zp&6dcTR`vY$Xw-G+c&4pZRc>fI{U5#*+ z>ozXwpj(K40E~aqchYHZ;n#7U6(X+yKgIQQu5RML1a|QLzk$yK?;!3p?mrvK{04~0o;;uH z**yCb&t3(}mUuDOq1-cNNTz{XK>bYvN4bWH!>mmfa=nC$DM<1OozmjBX|eTAK-cq@%puZ*VQ~f0(=2@7S}`Ee}^>V+~32! z{$A~1_UJ!_`i-981O#g^mi}UGVcE~gcbLz!hMzd-Jz^!7vld+x>pkZOd;-0?mw>#_=Edf$+B=;Mu%$9M7-f8Yb@L;2Q8+P=6a8>^r7#Yw!^NpFx@vL-{MY{|s^eP54D2 z?uFoX;=axGUha2rJ(24muJv3;5Wj`1i+lZbgD(X?&h9i z`v&-Et~Ur+dH+~3W$mMi`}E~Gn*i0fh`I3Dhg zU~*E3e=hNV=KfaV&kS)V5%){(UryXH+#kd>FFacg_HuolYY$h2XD4tSN!oRU zr-%F_JcnohPT+aqKk!_CPXbQ>e`O)odI#bb( z5dJCGnOyq2lsNtE<+_Ax0q@<(b!v$J7I?lA@OLuz@8Fup^JQE;T(=PZG|$#?e>vB) zxo?0STosE?Q^Z>+bOZr{FkWwI>YRVnXol$&XPt)7mQs-=NSbs$~VY}PA1W6ko8((qV0 zt@T`8?rk=@(rts4M)t;Ny|$~;S8k;JW7XbfrB*EsSDNFN(Qu{FB%e8Hy-Y^sU3TAF zFPA)aY_u=jm8yMdUwOE!_$fw>d3C8eP)oP0+PW=WT`!H4 zch~AeGxNHQlzRtD)kN#puyQaYjdHaCZFWJ`v7QF~4apkiQoVN&V%BSo zMmjhKXYHi>`$|2-<(-wjIb_yXuJ449;>AW+xakrZ=2(|akzlk`Z&t@fddhW*hbL;V zmueDk)2&o7ix_XKd2M8*)Y&ML2`}`eV$-zNpY~VE!+njkSxXzWdNb`A?_!jc`zw2# z*}6Nsok_}#UV4@Gb*1U_*|V1o57%~=`xecfosNyEQRK?QIjOfo#F~>D*Oz%XQiI7V zx`PLMX{9Jz8%b8ws{IwHTB|nUJ@Ltku|~5tBGw$C3bW3g*VmD(ELDcb(?)5S)~+ly z2779ydS9}#EOtFGo?1zRs$$@50JjYJt-XV_YG=JXY?P^umem*=2-{$8d%6Qru@zC# zJ6xhuE7d`UN0ad*rrS_s7{>%+nJ`8slMal`zF~1m7;E0&S&3<_>gA=3M;mlqsfhrX zR^p~HHaev*2m9=uCI--g?eI4+#h5w{KbB*(mjwZR`+PuJ$slZ2;9vyHo2}<+f^1X=D^h zw1|6%K3uCWu?~Uz`k)OYN3$*&Xm-w@XTg4IG*&M+mQ<>pSI*dt7@RR@Mh})nvqrsV zT%|)OuJnjM3EE9PI_vtZ9qcY&dumFdvtSR-h3~jnu3EpUxVs&{Z{rR7Z%Z zmv@z`W98&x$y+3%j}LUr7$ZxPO$s|ozOF1;Z>blFnQH)2NtHJ+=1NupiFZs!v)Mc` z?JK#iETxUna<3`6bf`RTqFpV=1ji%^0$_jGT=1EEFB}5zM(P6HCDy zwE`Xt*rKXl1_$#x~?y%D+#K4Z8)uA{@L&{0%9zW)vK})BE_?^ zB<2HQd!xC6yw1&QtY}2$Fyo#q8w`g=g(2$wP^r2aV^EQ76hf#jK{M9NG_6tSoXM#V zO>Ne&tu)}=J{jR{df;^1hx*SeJtZ+!ze0)m1Oz)EsDBKL;qsn}^mk4r+LTdA`p4!l z4ftId$_~hx(_cc;nWb)g8hVG`8uuAPJ}Zd5ETgQ&uy7M5?J27S3<*)XjN!j;Uf$ZQ z^$tlYln~`!vGE4#A%8D)i_cCVCbqmaLSqj(T;W}nh{O&C7&bkcQgqwIoG89NMTR0p ze`%K_tXP(@Tkerb(>2|?Fiz;A&T`YZT*t&Oz6lA->2Qr<2iwJVAdIoc`YLs1IJNq? zve!E_L32nfIS)fZF73wyz^YvNqg2y=r$%?H3~vSQlw>z zQmKvAd&^2PRxRyf2*{+%o2|0*p@9JlX&R$gdJupCgoL2kBc;(W=(Cmwk~8v^Lm(&o zT1NPX$d>t}=Msv_%7`LDLWgWtFzm5uJGYIGmeWC`DWhMtxO~IpmxOcfrwpH~+)_FGTU~VhRB{G|H zj?JGn6;XagHjrGG69MaQk`880mt3r=aJnU0>1$UeYc(0i%0hTFhq*7IZ}rvg*pZPc;rj!JBGRHhpJI(t{(l6`CYuG=uQ&6x&s* zS87-yGQPr0KhIXCw)v*4XbHjChb`t8vW0P08Ne!%?8g(QiG)=HKILv=KA8a!Go(T# zhU6gD=wJyIHj2U+lyks(S3_2F&3xL+u*MOT=dR9WP>ZZk!rX)?9MU*xhD{EK!Xgiw zICdT@Ssgo(+1?Cy5~-E&jd@aN1I@%3kYy3AJMu5%leCeIJ>nxo1ys= zBI!lYvYxH;z2{YZAH)I9S%F$=usMPcOXN|Yx0p?wAymE-KX^z1m3vO z#ffE2llB{C=3JId3o93$H|i6Y*WTr|DugSI;gqN|A2ly9=9}i*J_@2Wh`ADIxCe&D zH=-6;6W6@-TB3)~cZN_Krsk4X7#0T?7$;M3^)^1$3ZS97g7;NbX z&L=EJq=r0y@H6(}MjW5X#&S~^S^LCoBj$>Gs?ZI|M)AL?f#3*?%mx!R({tz1ig9L9 zN){Z5HtcrEDIX;Cgp_Ky-VmnaWu^fH@XZY|9&%$!aZxj*vUI!{r+_?xHWXSj-^4sa zBfo*YG-76M=KrGSm_)njl0^>V&>usaB=+KH<=ptDWP{D7$qlc(zpGA!g4x@`e57}C`7vJ!SAJTBN*_kEM__CQE9vMkydCPlnQFJAnWM7%TKz=fF zXy?ARN?&-+EX_P={fmM}coNUIB-T!IG0ZW^z--SP7?Zk+qe~%ri(4JjGduC`QyqCt z!mMsqxeM>~%+C1Y%#Kj^hF1|k$?CNm*KWOd)yj@!Gm9D3X0kb`5A%i;18S!8?{6}E`xMw$=)QPiEh{RWLZ%1 zxx!0fyxt*6Z3>9GpFWhkuXj)uLd!%hn28Kp*Hv99i!ii9CfV>fh6Q3Er$RQR2=hPn zLMA42jap4xs-Ee{I0zipHGH3^f_8ql^=miP7Tl z!XX7T@oAtqCd)~4iiTMU=BxVoC_p@-+QV`}C3V4|si?ol_eOe_cbB_y>l_O0T<0Mp^Vji0;pVgUd(y{{Sn#vX7R3>Wst3}f= zTb?X1j<_V(O<^KuOP*#ijIv1Qb6FH*R#EO@(ZCmlMZ}!ld;*_45`rOQ9U>1+S*Arn ziFGn9ifKzjMd(lk#T{jR}ZTe1(!_0eqc7IrLbZLX<5k^(U|?!7{dj> zFatWD{sx7J`%u=|ShYg!O=S77XQd6@kN&IK^jOPC=8N-Q5y5Kp0oIAH&Ffg7z?fFM z%!)EiDdjQAq$lTU5i3*HCJ@KPDWNnsU z5ysg^SSFRMLp8F_gw3FC-BoFfQPWn+%}ICDfI&%KY;K#hn}5eCtvn)qGSbFnf)-xV z5MwO`Qn**n<^e1hG5xo~T?#}aEM_ViQG~Z1S14|wdTIox-I)VZmSFBUhGn9kRyx`; zFtO;4g&Hw*p-(U9O_;}7w3RoZN9+@GezkBYC6|YXjT$x`D2|BX$`E4LCe(A%CT>s|9B*=Plhv{ zTNukK8d921T@DP@iH#vBI5YBnjThGKrC67C4v8)BSzFQHU9!y=d7fg7IOMY4#J_|LpWs12JTk!?l_L)N(F*z; zmqO(I*6CxMnkyZdVTagu5z26BXbfXHnsZ3WR9iGT!;l>ns`WUUP4!bsXCbDPHz9JnNMwT9wU^bdnkjmt${%+SXl z?ODdKYmH>sR-uywMG#7!m?W`; z+A)QrQG0=!=DW{Z;A^3of8 z{8B81#U9U0G8xcO6i`f2BL>?QfmyJ9CUVdSJ``Jy=w+`*3D;$dg%QTPctjN7u-j1-4ZO?xn<0m^h42Eaf$%!XnqEmd$a&}O0*xLqWVyA({ZhN{~9Q=BH3 zhQv(pnx}3mC@Igpj^4TQhbbX00Mxk>1j=bj7DykhBm8rk-v%BEnVEB*QCDI%qb#D_ z^)*a(iurEPYzm;)BH8!VGrl6v|_ka$4TmTm2C*3b!zii!@MO(>+(-Deacg4_4T z2j~Uufx`>?IkG82t*n4hYLH2k6+;@pp2AV!;D z=~8ib$cigwW-raOD#a=9Ov`yD?T=HK9yaJenF;gTxCNzkwkB2xoQ&TL-zVFX>&$y9 zz3s|H^u`4w2e)mXwPA)>6(vOcjNfGB;3taNGC;P8t!>4Fq9)rq4v}4OA_Ul0rp?Yl z8Hc*T&xPr0L9s^RT*BTB6{(j;D1<=%F0;@$|C&4->zPTi7-4T>1*0&_i_XK-i+FC; zyl9v{Iv3$3?PvSOc?sHT+^8-^LF|JEGf6hnF#C4&ZgHX!Hz|n*(jAb~7NVSzJG`vS z_@QGa(GU{3#X_T2bAE0s+>}ii;^H>1620xFfR<9!G$fg-6oo*jnomKcaT)EN#D}AD z%7-&OTpz;kVWP%s96N|c+SdZa+FEN~g`i%-BAC{H*rFHL?eZy3W;uxw3&T=UFiP;o z82fl7xYgIed~o9-XrV}TS8@1x>V2KEd&XlAwfA}SS}Mbg`)QL)MEJgqM@X+t94*P0 zMOna(K8TZjaB(p$k<+}u>V+O`eXA&RGtV9ahJlQra~GHQNT4%JCk=pJ3iQo*$?QCy zsRs%=0Z!184ionQ!n9S!G z*AH6g<&MbApWagctWvFFUhhZW=02Ami%w2g>#zx1E9{dKNU(zr+^P=D*6wL)*ly=~ zBXjI#lL?WH@ftQDsw%Ce8~}@i@t(1U&3hwpqE}PflaMp}Y+uO8`yK7#CZ)K)>;!^4 zV+I;Uwnk|!LHufDMUH|AjAI~96h6V%F~Q&MA}h>S#C43T=q;9qFL$D&O3S4YG#*kQ zEYtGT>zsKC;UU}hrAqtsO_dKz8TL_7);X=C6|LLX$J>o4qs{Ql37-9a)Yl+~#d$5cc~*Zg%R)5#+88 z)1Yl$1QXgpB8zaLkwwYxjg%6SgM(#CZG||_LNdkbn2MqSwaI8R zYdG6Jq({S4T6>8)TzmM(8Cr;%vOx?6ILX!nRULI*Ac;6bJIys*TIEFlSeba zI63jM#p?0>m3h{3n;GpKc9YEsPC2u&F-GhQM-;WXM)tic?VX9b3!ZE4g3S>pgu%#y+Rpc|k_mTFG^;3- zjtz(=oqeFG4N|M{#Mtt8tAxv0A$~EcK^$um$AfnTo6yU>)xr#1n1QO}McIk8~cIG-zabR6Irsi(6O|@hpArpEy-)L*wa5epkKE&Z(`JQ4$+(&0rl3*SvS8c19 z1_etRzMEOQ)vfu_(-@h+JJzch^#-hJ{Ge7^mm95G`rYlxFkhLtH;>))1%^{Tu_8vF z2_E%WD>$+&TQ!%L1;+HMhHbXXlyYTkohzS=x+>5=8#Y@wPHY)@!K{h3X<3j8;wy7? zW1sDdyRDGCqAhRZ`gtu+l2DjLMh?m;$_!h#_S3|f@c=vWWm(cu1IO;`K>-2E6A zfJ*Kkgyd% zGqHmBm|C1{UANuKYvn?xe=f5`*2x^%aRUb(V+xe70NK(jK9{I3OFz49iQJ3r%Xj$s zbUW_X4TR9>iJ~TMC~Snd4C(#&5p|Fl^hw;xSM+7Dj_U@U38w-fV=*YV@QtoMV3HY3 zRn=VEaBY)l)kewaj1f!@rnPXWPb0HWq6-Q2GP2&c@tF;!nDC{Gy07HlW(M3&zhxul^uM8y>->5bOWBxv{5aMHU?|WgkDRw+NbUT(phU)W*lU06LV(f z%O>RFpTInthS58rI;yJ!Sq! zhYZ;VrkZUsuxt&@B-vQw^z<^mPmoo}oC6E3&l1|h;LMfNb9%auKjlgxjNvx97pJ7H z7K4&!&XMkAZjN;4j*e|~O^A*2YtMIzZG&-w3XA)=Y1={=jVKL>VDsmuanToSzFGN4 zAVNsc_5EHQuXYfr4EgXmr7!wx{7tsWP_t^Sk9H;7YNN$| z$6k#~U!ixUGQ&WKnvt=Q*jCN$vLNz1+f$lE>a`I3vgobN4GLFe@j-kGZgktA)mfpU zF4?l1-x7c5CakD6vR6r2x@-kcQsx7P*tC`K% zH2hl>d9+X53S!%A@B(|GJ!8W|s9#MOy^k|Db{vLG>hn(Y9i(>TMO!MyZ(?x%>2Sw?3%m}O}D#9jm+KJn-hm( zD`}{A=n>XuFt*s+<5US%cH<%QFBJz#R1K|M5huooIBky3Ym-@t-U||eu^%$+gOv1D zPVrRKi{2^zEf>eJ$oG&~0W!N9#_=kL{Et_yy?xc(g+e?d#@0Jui6qAW$ z{;7f~3S(|QrKX79TJ8MBBuJKFDKNXPA?)IH|8Y*^%zDBg7{%gLNJPH|F+= zpGA}z{}kN~^PnKOG2SV6Pmzvf8G}&^Ld-bg$Iyu8c%DF@gGPxf+VOoQ4l>u2@ByR? zR17I2g)`bR^o*?8&IWBm+l|-2zI!!KTX;3RA|WGg4xM3*YI_vrioHnR=Nt9(a?4YQ zXooDxSda5UBZp;Qta}`(ERV#k8CYU*ru@SjUJ)x1O=v4UM#g5gM;0p+w$$&_wwTK7 zD42~ZB4h>U_SY1aUpFFiJxDCR<0J7#GmDmExh0Sdk7(n@r)A4aR^nvc8A*aCtt{6hL5x#N4K(#1+a-%IZ zcH9IUC=n>#;>X6=t3JQ6qbj^!j`u*R33)z= zG`4CTdNKP9%ElDi8~nT=b8{y668z&o2~~yS=i9l>UyKb|7NdMpmSk*{-?<03JscKo z+oR#>=oWUf5^-qG+d}-L;lhg(vgTRq$}neM+4f%?@$HX%td23E50m~h3|wr60X{f3 z(=5rpJ^!Wfwk67W0d+HZSsh>5=7p}TCZ`pLosukOIZd|ru zRR_yOtSz;^qBkUI|2J*t9p8~Y!RY}nZ8 zvB>XCk%buf=fiDdM2u*gEIp=?NZV!-#zRG3&DPiB5ced(BW?jx>VCY-+PRw&yJO3! z1~z+>%06SV!;NfUWI5U{Hx9Gl)VM9{Ns3#NV@bG)YYv55+vgs`vO$u>l|CFE zw$%k?6!tTku@Oic6b5-`T^?SPI0~<7DxIZ|v$t$}4DSZ2X6Bu9Qx+^_Ee|Vfl5ta( zCbC3(L|};t(PD{WWMqlfI0^DRSqn>K3EL`9_XnXFQxq5?%c~FPFQ!{XysDxIN+A)k5D>5z=8>DKs7f^Ut=_T*@~f@Mk; zcvaYbPZpW2FD~-6;P6F&Gz5Dk^|g#D5cX*6%aE2pS}-ciLxT^6#XfVKYjdQ3=7hhL zx8lajj4cas_W64#56<(CkMx}N++M1jeVoG#rVtwEet*Xx#`O-8hV`KKb8SqAL|*{9 zCNwtmU3?3XpU>rd6h~>**3$4sBjM9F+so*#*G@aDF>HQdry=_tM-ua%nW2b>j{{bu z{urVxzl5*#G2OJ>fM&zK#2OjYApkZ>c7w??$YK+GCE`N%7_)WElxe>m(3Qlak2E>4 zPvVknOvalusGdglh&#SbkhRG=q^wYJOq{ZWb6s6#gp@cmi)nDFHg*QDZD{J}W(vv9s?To;=q1U;W4OhqHY=wn*KY*eQyM zgl*g5oqU6*$pyp?-aO+sM!DH-T9B|R9l(oGnoM|?Q!0HO!q-Q10tgcv?YPkthtCGc z+y-+Lj=u6XoD}!u*v7I&X}&dQPQEXPgmTBkS?nb1G@c^=5|VDxmnse0Cz&syB(3N6 zMQ5P6(KgoMS+(PS8I3ZF$;EbBHj?b)GH*ww_br}Y$z*0oYKt|6NIAb;943Q&KUu?A zw|?j{zO~~tgAG0>OQ1(P+aB53OPU{A!#K48c3=fp4X|T2#mF$5yFewsIo8$Aj9_^X z*SxZn+lB*0aBx*|kWhD+GfGlyhWxL$cY)stwE5uHShvXT0s)zID}>4z_3izb;mF^#d!cG<~6(SZ^@>g?6lC zgkT>clcS*JTW57_jBkqF|I!Pk(%sjMl=kf0UFmBMUZ3ts2QA33!aZ<(I?7OHuIRbS zqz}CvHsbTbtI+6ac;g*BXr4TyO8^tx#KiK&X?+sjX`wG(B$eUf8%XM9Gb@ zezxlH1uJr!gA6od$RwS~V^>tRR8X$-LcRk|pLkk?ZS~HiyLo^m)?pe@pMEGMxs8~RNw4D|mHsZdtFF(| zlLAfSx-I4rBz4#Zz!{_=Vy7>TUGH?eE}OpZY<=FybB`Vu%by)Mxt@&+qw~x&vta)D z^XAQClrm^I$DGkArNCil+_^!ev8+&Jf#`WDL|Ly|x~tjS$Ar86>ae*DS!3may`iD!}ao6uI&qlhaBY$SI(qTS?pGfHWM(FwT5`Qei0##(EF}qHk z!-B(N^oL$voX(%8;~4C?=0)j3UcwBL`yr?&%)&e>N_sccIeW&oNyAlap{8=#t64f@ zhyACUGKEclrhFP^Lvp@PQIlwZO_{*>Vc${rLS$N(cT?3WreZknFQV0 zC-Jq>Dad2D-i$a|>u;rlTY zZf;a2NG3a}BGGrwQ>BTIFxg{PW@!6*WFWt+P&W|btl9=!ChWQrTU6z&0&Zl`a$G#8 z0y3zXxSOSz*eKM0ne#Oh8}=-V_Gx@e$}m~3@~weSV>Ee`)U!p0uB1iAB>A?ljFgGn zHHlfY_~tY{WMhh!FKos**ldo@YIH1`JJ-xxIz+#2;K{Q_nq;J(3P)8oJc%4#?Ozo} zI{?kfM!y~wQ zLUbH}F_|q6P`wy$7CpPKksQTiD^#K@<@OhCCXz*pND9Pn-HZ3RX%Kr;3E3+E2f6hq z_fnjzP4>(dBsJ=cP?Km2in9rE5|-M*%z+rEyOYIbERG4_lj9%{p^PkX2-`R5dy~i4(#(Q%&a~Y;K!4 zm2UnL%VYi=1r~T_N=%bxm~3t3PzgP2xkMGRocwicB=nW+BaJIGR27C7G^w!1Xj^7pD7J%mTxn5 zI6j-^v`O0hLD+efCk>gI6WfyMuDzRl-J?)Zvz?TQ_P;1w#@D%*S*`Lx()yYr=NG$}G?g??4b4(^(#iI}7=^S7=%Rpe*d?a3OUI?-B{qUR*@5TO+fZ5Wpy|ItyQCMe5CS9^_&1KRg z?HRRhZn65bCuyl{OA!;F>}wlWXno5|ZDq~HItWeFkeZ-Ot$taL>|-2FF>VTZw^ZZ* zkR=>!y{h`Q=NVhKuMzJx%`%y!Kd9URXT)|Rd^q}nJ2CG5?WxS+Q{ZYRvKgCdocU^L z+=@+GwxW)-bs_i1Yq2dZzLG|QjlG%C#+&3xG${1LR`F+9%;mAKwC*MUTi!5J zdD8xK&dlfiC(We8{*$_#IKXt1n8OFqz{ryOFC?ZkBj<0(85`-qQpf4$0aYbf5c^N- z3%UDG=T3qHsA)FVrpz<$nrPkci? zX0lgXN}B3z_q>peeLa+ayyL!>e2X=fuRidRzsPqvP5nw>qDkKHoq|Q7lua&t28*3+ zhtg=Bk@J|t0$IJhuNVIpuefA5;1^v$9B}eXP8{$XnYcLMH=HdFIC<;1{+nOZ@cvt0 z!hAzT=x_$+^2PpS@~z(!WrR%ZRq7cf#NSe05EKXeipz^|eCh$e6{N=jr_aXUKHt!8 zia-*Lx&QUxIG}v~?=?Aqp|g*g9KcB0$J+-su=bI`fsM0$WN-k(ZXa*|4WsY?a@p^o z+;<)aG|u*yh0Xi_w@h{5qi`S9IFLcPkJtA-M&08VcASOYL(|%BM*CSRw#kT&6zh)AGkMkUZCdm<`E6QHEjFFvlBC-<=-BW`-W{8u?MHDZ)|&5 zp&gPtprMr?+$iz5jgXK0n!#C6*r%6e9_pvHnzjvP?!j;_!&`1Yh3%oCa@h_c!C&Mj zjkP!gEKMT;w5h=MaOaa96qGgHHy}y3nU3REaV$Mf_I!6g!kn+mvvaND>VVN9@U3<> zWCy~Lg^n5$ka5DtnmWvfBb&LkA9bcWaXFj%`HvE07E~jVM2Ji0=I&HPycyu-AV9S_ zkw=P&Os%jl=NT!Yr1fZXOR}|SG`RR!ucA+ULiWE&9tus!x9|}*n}dP_J3S-rU>Y6j z;A`yNumxkz-9h$+sekHZ`-xP!eQploZ5swne&nI5S7Ir)Z9uNKq<-$oQymygt>0H@lHl8Gt)Hy2md+Jf z+`P#Nw)(sqK|{dhWh@mF>xN zFE5U?m=7+=NDKE$s;EK+LF9yS)BbuW&OFA*kn9U0a~fLPedJ3HjJG5XK6h&3liu7L zV#zW&6Q$8q6rJE0owOF&Xk~U}rj!@b?sJ^ScFwd)r7*|M2rGEbqpJ9JHSQE}i|_PS{nU&(j;VVSUS(F9S0e zA$R5}3=j5Utp$qgcWUXU|I-A0C#Fp?G%9RrbFoJ4Z7M=#^!pX0JfKv34Ws>?ljIgT zJ!UAvds=;qkXt^X1&JNIoMwDRm^F3%C*kEELqgehCT{ss!BWF{`PMnlKqD9#uGI{h z84X-}*8Ve#p|L#tRwbwBi^WBUEJYs2O8ldX9}G8XCFX#;6DdAWjRG#}A+L>R{oRWR#85 zVu9?_0%)^NqV~_kS=gU#o4d8=fkjqIXMI*YDH*D9nY1UDR5OZXyR=9lc`lLQvx|%! z{k%AxGR)$1)3gPxH?f-u8>UGZzt+dvc*0yK$QtP>-|5pgBotl?k8nvtQRYaa@(A_8_PGnWs91aA!%uVW12OC)OTmQQ?}rZ z@xfG zEH=v-A;IsR)3emLSUDqnd?Q;FPff}e3Q@B7)Q?Z`GiI}13Jo{P^>gHUZMO<59JH_~ z|H??xiDRnbkBf%iu*||O-?|p+kolyt7KRVp+^WV&S!U6^uh_aw_VG%2WRwr6jOM2o z)3h$MVl8Omnia8cBKFmCgB~dy4{f4vl4BDFC5{M%stE~j=-`cX7i z$;c}93!suM;-g3d%PUUL>;Mqk8X3MXRBFkvyd#25z9_j)#J@hDi`b&4j}qTfu=qN| z>o1x-DP!Na_p{Z%sTwz0K8?RV{X1=7w9iub$>!{Ht7Pir-q@C1kNZoU?}wZ^B_s~E zYTT5w**64ruI=mG;YY(QO1G}Kc+%^rL14o>DGSO24pk-uzB}D|gJj;YyN|^o!dB5U{Sh!%i3-H ztZKSygbA4_YTJz6gzrc3)M80M8#L?Skqp#h7hg0GH8wri%~jp`gJ z5Ah3-jS=dl{7cncd+*>^R_p07)!?MA0hSDDuN@Jmli@^z8v6lD>E1h=1AFh#W>J2Z znBSSFObx8qI0wrNMQX(X+2gv~OD!&k--P#;)L z;bcwL@4aIH2Zjz2f+oqbu;(CIO$B?d9%K2m$@_h!sWL!d?!B{WCQg+fxP!%-w6m&7 z^YGq#IKLxVxA&e=&d=$mn*72_b!eEaD7(rXA->6%t(>}1Zh5q$R396GCPQUAqAtb7 z%FFtdC?^~TiN)t^3{JQ@-OHD39qVzgU}Nt+Lw3IH7$yfiQ0Z^d6C4dPM87oX53IIy z?>!L6&%D|hKj>pisCHh_9dX-oqYG&wTdvCteRb~?&$Un2x6CK&d`i#fRE67gYqc`K zZ%AfQK2q}LCF@WKn4Q{_MRzzWhidlky@P%fgE#c+Uv#X|H2W=QacOrazojeI;zL9x z-F=+AnogfRdmG&gn^jATX3q{kDb4p$LRPuOYwP%sjUOQkrwy(w4M1S4NP|jWt$s+>>gR3jCmA^fqdZKQw=)Lq zn~J}ZmHLrR`zcdg#OW@6D{g}L;K#x3Lu7bQRKxRz{{-EeMeduIlRQ>b49vC~djUh@GWrlYSK?6=l0CW@0g!;#|8C z<{wpLbXjT!soOzu6`J1L?4FZ$XE*sP#AdH^UujhNa$IRCqu$i7nhz?(&irB!hRGil z1Iz}>d+demZrF-OD=B)w0s|hXRJ~<8j8^*0M_eir+2YY?9eFIp0ju$0z^n!%N8+w; zEJe3UhW9cmw9m0tpW9a%VkGg=Pd8Gf+&#D3KD`doFPxU79}HkQ27e)+P7l|b3^K&( zh45yzgbvm@t^6(yC5m&APVmY=?7rm;we!zY-EfHU8H5=D-96`@7bPrv`#O`b^_s(4Z5&ld)pb>8tiI`zSLlr9pTlnx#cV(hbA4`V#9R4qWWBKETJkWT4qO zf1X0|H&&Nas-0KP*p2^c#+(^F7)Z?;r$EiPs(a3Ks}N^b4b>~VRQ8grqdQA$b`18d zn16N8f;~gs?W}H0P8YNBA39G|j_7lK0w%Tw=@_Wf(VkI0{BfjBHfUNBlsolVL+WN? zp^Sa#=t7A;GNtC2kM5LDFkQSv{Ev~icI&3}g7Y!TvGK-6Fe>tjPV(ACQ@^%m!;WM% zeO1BAs)ZgcSDE*euTPfO$C@1PVma|ti^%ChrIGt8GA}2R0q(h)wDW}K{#yEUW8)b zb)gJDfB^-AjU)}o7jcEB#ln4)w&_%pxy#~~)L^4i2USmJJ`B0S)laCj8|so!qoWL# zX46=T-(~5nm=j&H zNYt^Z6jLNk0@Uf7IiRDnEw_D_6Hf&aQ5klbA=fp1rOC-?$hwkc{8KD6vUy^7w-fsE zs(2mC8?jz78$;TnBD0i%u3sP}Nk!9pP1R|Ax{2g$O2xPc8JLYYSV7%smfYZfR9|X` zpr1GIyv}~Oz+{_DN*nzwER5AyjBWru;40r5ndvah%r<{%px945R=mM+JW?|EX0tl4p|mS z$+t1Fn_+8nJ>)%X1a0eNsh&1{qoLvSRy_g(6z6T2j6BF< z8kn>V>uxX4JG(rRTx@3sZHZ?FG51(2M+g#t4`J*xc$=c=6jGlwMaLQDMV^vLcDYXH z_$Tc3WbdmPw+#&8pr+`QV3O>84iwk)I?-L|{A4{NnBQ1SXI+7<3j44u!J*$9E4%jI znXC`L#+J^yy!dcE)&c8X3{jh^N`B?za32y9p6MGKYO>8nVxN9&F%j}C_GN6~hmdZp zrrklUaI{x0Zi9Ew?STmzjJKkzKwUTJCRt8ZeP?w3r=kGq^$3IZlK_p;JVTA{!>6VSw$JF{~^L1$2w z8Mk?_cu`pkWCh?dk|$6Qw*+?B+;@A)pd+0{72^e z%ROTu1(lLbgPG)JYsM~Rep+0@1Y_BUBoxVeFsF{$>G{~+rQdh8Ojfweia%^LwT~_) zjLtZ95uPOEaquUaLWrZe!0?%tEYL*lO=FIonKWsWA(?HOap(Rg6Hx|RgVP=3#n}yA zkc}a^+lJ)EX!XHmgmwQxoX?5-u=VxR3^BdV6~~bv=TF(3AZ8kB$)Lb>PWBC@Jq)=@ zBiVrc;Ws+ddbBobQ_%3iB}*|I6rE{3O)Xqj(^<35oyQLpS%SUy;5U;mH9So=$KODz zrW-eHSi5oAwzV5}Vz@Gax|8!CHD$7&ctxc(PER)C?MgPnezn?2Hu0MzVjO$Y)Ea6| zCS|0oNW^>YJLV@(q(!I<)*<96r!2kou`7UehOYP`X-wnUTF`!9z<`vaKrh=^A7Fie zA|Q2j%(BGML_qS~C7v6hUYwrYi60-W2xn^YY}pu1$z-2}Z(=3h=D$qbN0`I=>Wm2? zh8L4wTdir}3%heDvBaa5b31V$E448WrX=%y@?g2h+_%OUaLMr1W@*bY5IoBaUy8z)=(GM?WqK3lR28Bdx10+IHYa1nRqgi9L5wv0H%E84l3M)+V@%J|L}~ z^ONTzE$bjNI%hbs;yQ?gqD{VL`J8=5XMBG~M^~~u*j+wfYYV2cmhITOe*3m%EAd4^ zPY4YWlFeb%M88)E7m2e~zp1qiDWopQmMx)2G)-DmpwZTH>20!B!1`3sT3Q2b5iu=3 zixpe8uPmy5>o{Kn(D2QbW+ozYeP#UAQf`!zGHGPk1|tL+qm}I7=RALz>-n;XlpO!^Sy=Xp_paG8!L-W^0U2p6 zZOSZ)WZf?*Y@U+M987!I+@VqFW2RxWvh@(gT`<|GThK+C z^<~p`&2c+pMrwm7Q!5nG$G*`?^Y`@^_Jrx|#?AqGq_vdO4E95=sAIxzJjd(}#ogZ- z?Z}CwvHE1?BMQp6koMjrCyHj#;`#;${Xt69e3rOX?!h9aJeL9=D96QrJ^G+>#@R=z~xCaR--eb-ON(<=)$ln zU+hK>C1Qt`Ei-HHur>lB*b8eGtXSH22vie!6%Bx3^sdcnMm`Se7ruU|&2jkIWN)~cr%L~$0nw#z<`y$DLQ#c^QO+b8dFy<(QJ{V{IIWE) z*|n2i-O*N9k&#+ww-hIrMxCh<)eif^jauy0U~EcyWaL*3%o_$1m}(NWC!s`NZOFEh zAlGeGF^Z-k?GE-ynA#aCX_6vSO|3*z@B8GtMeeb-o)}FJoi*clWSEE8iuV>g(i?z zJF~p7%v;sseS%)T2$8pmZ9N!JR_RvFNp;3K)viuoX?B{MoQ09zu7s*S9;LV=hqw?C z^C6U5q}~3yEYd(UDu~{gaTxjh`aGjH=r4|4oVHiDMU1uF?u4a zao{D}T9RqvIQld76Du2QVheiWd+iv^9V|9imU`d`_9UNj?qRBLU$9Ox1OmTFh-BQE zjaLq#MMcnvkcwPABdyj%jX${$ELJwSZ(Aix3vWk5xWJm?boZa>bz{1Miih(@tYSHb zWuwNJ%zfZ2fQ2yQR809p*RP1k*cp5HI;BDpgSPC((SEoY4-u@VGs?$@RzU( zV-+FN$t@N}Fe1!7GP0_{_m7oU?F;g|p&qD~hzJ zYH1RqKqFN&)48>N#AhZcb>QL;)+)a|{l#EQ#rHm`s^J!>XcGZ`6#3t^IlB>{Nj}jg9QLLT2 zEZjeW91hkL=CsJFGHVkC->&J^5>!>LURf7DP7x}558zb{j{ zy{H*Q3;m!}s4i71DoQI*(jAiL(!I`yP@#gkJej3W99eyea{)fQtTx%`m{k|esb3T+ zC{@h_-EhYcn?*lXwW+J>Bh)3JGm=#!r1h3b&=<97ZoK6~G;CJ!`B&rsSwP0hw3Ix; zh7+`OptUAF+S`x$V!I?`cT02P8#C9Ii#x1x4CMat;bDG;rcDo%I2sB#7#MKypmC8+ z8H(z_2BU3}@VQpO@{ur+IVCH+p3aEFrQDoh{A|XSYu*`N#EeOIhq;u}xen%7aD6LY ziJOkvrpMx_C_S?7ozOx}DP!L?Fi24={5%|;=Ix9UHD_PRS8{G&pefoJCj7EdPKU%^ zZU0mzN+mjw{tD;V*vh^9FA{ikTilu6ZU?9*5eDd6C!-A;bQxbKWbKv@U$fsSvdIL( zRQdQ$>qteUL*%MS=;+@UyX!m?2b0e0Fsfw>as@Qs4u+ED!#b^|oNNyDc*|-ZXy{Z_@v`vePCY#DwH@90fd_mQBwN|Z~jbaU1 zzG@RL6MWmojy@*BD2vKx@|S&xw!E+`$fWX`dTnep^NU~Xs}!s-{(rTdTW%cJc82RY zqi8xfI1*sXmVx9!aSlKqS+?Md4C@l)Nu)$dqD?ggc1y>CqPL8}BZ#Nq31}u6NxuJI zYhS9WyGhHAA1rp&-n;f?-EX^Qd-Y~PZF);abJw1GNXy3n#hgGV{soQW;Df8_P%Iom z79;=}daA8Mgc1CfWXStY@=+{-T#?^eKDKAFBc9-h+Vo%mRu-Ys+=BXkok@u9??-A zFozLnAw4m3PE=3RMNh-vQno}qQ>R{e`UZV+6O0x<54ezcfH&@m4gOW1iHZ5A8ES~y zA%p0fEn8u=CTbdNnWBp5z&zY3_+#f`jSuyUY>{%ZNa1`CaQl#-LTsQ&I0}$sUDjO} zMpDm0`@)P)&wgs8s@^K;xAH>}i+D9q&Ef%rPFDryI4~OY>Q-2}L?64~Z6M6a0TK@6 z3?!v2!y&S9ABLS4n}3QAdm+NGpk^r*!DoRmdH#I%Ht08Tp&Wk5deMyOL@#vK27j4_G|%e7p?G#inM7J2 zo}V95=m7w1Y2>okipS+aD)rZ7qYCb7UUL(KWW^z8Dn2_P)MM*8q7T3w7qu|o5de(2 zR57fuS+t72lbG0knby*ROqS#Gxja$6XUGAoj{=KAG=w`=HPrY>Ue^}&&{DnpPZcO&qp>Xv^@noj1IfXh94GPkUdsAZLZ`t<;WyOZQir+C8T7=Isy;-wKZv0 zgYkki#yfr8_EFT$o>e&EG=Ad-p4Ju)@h0E+Xe4TPiM| zKrtm~SEHh=jMm@Elnf?NXdog;ZL(n-|0*098ye3F^UpZ>H*vRiZw%bi;d?-mFQ{vt zL2mOoq6AKyaIfMOvZ!OsBle`FJ~~i~%k*lhO83Ezco>FE z+q&(Nc?ksOK-TM$>^{K&S&w=aG8#ezop2;>0iR4jJIbQ#CNPLL;EYh^<=XD!)oZzt z1L%7pj+O?j*iJ1t0YdyuS9WZKh5kcJeQD#gMIt#3qZ@-M$x(+!VUDrtDOg}hK2X}_ zhWQwC_my@vch`xDO}0;CcxOe?noh!l=3|gJx1y_WP?&_lSWBwv zZH>Z)NL`Cl%h=ttS_EUASO(rH8qUD3ppgto-hYJ&+L|@Tm!!?J5BpqH4~bA+ADxL( zus160O9R%K^amz5r~`?cb6N{*P^vB@V&(X+aU)lAP-GOto#^)ARI6_uuAV(QqbR_r zdChQ=a-V^_O25*UNSRlneNi2WTF!hSpPBKFY;cEIQ;y^4@b&5{;o!Q?;#-1&7OUkU z*-d8zPkw!WxJ#6Q|F^hu`(_0&Np?wPN8U9?p?v|)dQy@bN;Z?{(3Ilk@Qq{}vHjt$ zGye`+KNy0z=%Jlw=q6GxZ8= za)fEJ>uREsNx(Q#%M-BcnpYn<*|wn%6V}kxqU0E3*+_{3x`z?JgPDjhH-|`YsPwy2 zB`HGW(ggceDF->`Pog@(P`293Yt!SDnsJ_(|HXe~(ZtezcKVk|ac3Kw*flc$R~529 za$9pm0c#|@sb4$nVg{@z1{-P9PQNMwNtyIWKb?T7XolEhC%7q4Ee!lV$Csx+b&%x^ z>pzx7tCiy~b)uG`>4V0_58|jmb->Gm=&N(DQQIg`)M+xIlgJzabs_>{ar~73wJBh! zXAK%2Zb2o<$EpM~3fzU7KBBstQYWtMIQgKBT62d!BW(#fAnSN@2=^#dHnz}it@`xN10^0oM#0XQZFpC$Tut|A16}t zY;{JOD<#mMDmF4stvebo#BPERkxGf8=CIHZt%LX!-pY5sim1fWuT}8OX4*G<`O{zv zWtpe*7e8UkD=^oK)dW|TQyC^rSt6f%1xS8L;{rHj8jv{+QHq_xYGmj+S7s3$T5r6! zG7*r3sBq3gjh2fmlKlu7#VC2bNL;zg0>P`p7mOg&+^8PW*dLrkRRFM5`(D!Um+Lt( zV-aD)oZq;8+gC>VRi$ZwE!1{e%E_qUiri#bP_Y@4?0CG~)2F(wPOW}KUHUU`qF*M`5?cv%6d#M4pO^UT4ZK< zoL#5F1B}*RakFXPC*x#qPCpNQ{Fz;^IT&TTweQQn*NElec*@3+LLFE@QQ12PEh8<5 zjzvu9O6?{AG;LoWWk=Ie@ahjPvGXnNl-Cwp{_Aw0;Xk{G*8cgv#j_#)(QZKA^L*l& zeG~Z}gb4eh^@wHZbsp>Fd@XqG0*bOzrZ{~S6flYcKLGQA_weyLuEaD+K7g&*)_c67 zqLAUD`&RCG{kFm9|6zQat~#iieL|FG(;6mIo5dHNvH|Uf?g)Grj z1s-sS0#8~cl$jIOWK(5zY#p3sdAz>%Pi3U&Po$&TiR)&eCvSM;wo(S_H!O+g(B98} zWY>yN-N=qaoFE?4qBbxUbqyce4_-$@W0ut1$XR&*-` zE?aCvt3A4(aBK%ceH`utuue+mQ5oi|)Ci!O@TQLH=a7Oc^rfr~Zdu+_%5Ul1Xk;+VD9T@z z8$C=s>14=PyV+Gl$djLo6_4`y=&1L%e#}&PJ=CqoaQF90k%C*62YvMHn%DidiQ5=dgzgRIW#Kik-L z3`$jAy(tWlKDr_nmL)3>>Ldyo28SDJ#b0qr;FyByPqDH(4mPHdCxLX+DM1Cum)!tB zYJ|2ik{8f=Y6_6lE}TsW%acjKU85Ld0PF}!`SQTZ9R0{ZV<7Ar7bu!PG91kx8e}@Tw|krjTc7msP#+?>jW~0C(X~!U+w`j69s|-$57^kN*@4Sn z7-}3co|7?Qitk3*I;pHho9!|gGm1`$MZG#$%0D;@gnAq*3u#5gwzQHVWN;-H33GJ% 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 literal 0 HcmV?d00001 diff --git a/engine/core/locale/sv_SE/LC_MESSAGES/django.po b/engine/core/locale/sv_SE/LC_MESSAGES/django.po index a9cbf2a5..790455ac 100644 --- a/engine/core/locale/sv_SE/LC_MESSAGES/django.po +++ b/engine/core/locale/sv_SE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "Är aktiv" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Om det är inställt på false kan objektet inte ses av användare utan " "nödvändigt tillstånd" @@ -74,8 +75,8 @@ msgstr "Tidsstämplar" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "Aktivera vald %(verbose_name_plural)s." +msgid "Activate selected %(verbose_name_plural)s" +msgstr "Aktivera valt %(verbose_name_plural)s" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -83,21 +84,21 @@ msgstr "Valda artiklar har aktiverats!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Avaktivera vald %(verbose_name_plural)s." +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "Inaktivera vald %(verbose_name_plural)s" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "Valda objekt har avaktiverats!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Attributvärde" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Attributets värden" @@ -117,12 +118,12 @@ msgstr "Stock" msgid "stocks" msgstr "Stocks" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Beställ produkt" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Beställ produkter" @@ -130,7 +131,32 @@ msgstr "Beställ produkter" msgid "children" msgstr "Barn och ungdomar" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Har bilder" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "Exportera vald %(verbose_name_plural)s till marknadsplatsernas flöden" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "Valda %(verbose_name_plural)s har markerats för export." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "" +"Förbjud utvalda %(verbose_name_plural)s från marknadsplatsernas flöden" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Vissa %(verbose_name_plural)s har förbjudits för export." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Konfig" @@ -154,7 +180,8 @@ msgstr "Levereras" msgid "canceled" msgstr "Annullerad" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Misslyckades" @@ -205,8 +232,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Använd endast en nyckel för att läsa tillåtna data från cacheminnet.\n" -"Använd nyckel, data och timeout med autentisering för att skriva data till " -"cacheminnet." +"Använd nyckel, data och timeout med autentisering för att skriva data till cacheminnet." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -270,7 +296,8 @@ msgstr "" "Skriva om en befintlig attributgrupp och spara icke-redigerbara attribut" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Skriv om vissa fält i en befintlig attributgrupp och spara icke-redigerbara " "fält" @@ -298,7 +325,8 @@ msgstr "Skriva om ett befintligt attribut och spara icke-redigerbara" #: engine/core/docs/drf/viewsets.py:156 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Skriv om vissa fält i ett befintligt attribut och spara icke-redigerbara fält" +"Skriv om vissa fält i ett befintligt attribut och spara icke-redigerbara " +"fält" #: engine/core/docs/drf/viewsets.py:166 msgid "list all attribute values (simple view)" @@ -321,7 +349,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Skriva om ett befintligt attributvärde som sparar icke-redigerbara" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Skriva om vissa fält i ett befintligt attributvärde och spara icke-" "redigerbara fält" @@ -378,8 +407,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Substringsökning utan skiftlägeskänslighet över human_readable_id, " "order_products.product.name och order_products.product.partnumber" @@ -403,7 +432,8 @@ msgstr "Filtrera efter exakt mänskligt läsbart order-ID" #: engine/core/docs/drf/viewsets.py:336 msgid "Filter by user's email (case-insensitive exact match)" msgstr "" -"Filtrera efter användarens e-post (exakt matchning utan skiftlägeskänslighet)" +"Filtrera efter användarens e-post (exakt matchning utan " +"skiftlägeskänslighet)" #: engine/core/docs/drf/viewsets.py:341 msgid "Filter by user's UUID" @@ -415,9 +445,9 @@ msgstr "Filtrera efter orderstatus (skiftlägeskänslig matchning av delsträng) #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordna efter en av följande: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Prefix med \"-\" för fallande " @@ -513,8 +543,8 @@ msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"Tar bort en produkt från en order med hjälp av de angivna `product_uuid` och " -"`attributen`." +"Tar bort en produkt från en order med hjälp av de angivna `product_uuid` och" +" `attributen`." #: engine/core/docs/drf/viewsets.py:483 msgid "remove product from order, quantities will not count" @@ -535,7 +565,8 @@ msgstr "Lista alla attribut (enkel vy)" #: engine/core/docs/drf/viewsets.py:498 msgid "for non-staff users, only their own wishlists are returned." msgstr "" -"För användare som inte är anställda returneras endast deras egna önskelistor." +"För användare som inte är anställda returneras endast deras egna " +"önskelistor." #: engine/core/docs/drf/viewsets.py:508 msgid "retrieve a single wishlist (detailed view)" @@ -560,7 +591,8 @@ msgstr "Skriva om ett befintligt attribut och spara icke-redigerbara" #: engine/core/docs/drf/viewsets.py:537 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Skriv om vissa fält i ett befintligt attribut och spara icke-redigerbara fält" +"Skriv om vissa fält i ett befintligt attribut och spara icke-redigerbara " +"fält" #: engine/core/docs/drf/viewsets.py:544 msgid "retrieve current pending wishlist of a user" @@ -615,26 +647,17 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrera efter ett eller flera attributnamn/värdepar. \n" "- **Syntax**: `attr_namn=metod-värde[;attr2=metod2-värde2]...`\n" -"- **Metoder** (standard är `icontains` om den utelämnas): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- **Värde typning**: JSON prövas först (så att du kan skicka listor/dikter), " -"`true`/`false` för booleaner, heltal, flottörer; annars behandlas som " -"sträng. \n" +"- **Metoder** (standard är `icontains` om den utelämnas): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Värde typning**: JSON prövas först (så att du kan skicka listor/dikter), `true`/`false` för booleaner, heltal, flottörer; annars behandlas som sträng. \n" "- **Base64**: prefix med `b64-` för URL-säker base64-kodning av råvärdet. \n" "Exempel på detta: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" @@ -650,12 +673,10 @@ msgstr "(exakt) UUID för produkt" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Kommaseparerad lista över fält att sortera efter. Prefix med `-` för " -"fallande. \n" +"Kommaseparerad lista över fält att sortera efter. Prefix med `-` för fallande. \n" "**Tillåtna:** uuid, betyg, namn, slug, skapad, modifierad, pris, slumpmässig" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 @@ -1148,7 +1169,8 @@ msgstr "Köpa en order" #: engine/core/graphene/mutations.py:220 engine/core/graphene/mutations.py:282 msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "" -"Vänligen ange antingen order_uuid eller order_hr_id - ömsesidigt uteslutande!" +"Vänligen ange antingen order_uuid eller order_hr_id - ömsesidigt " +"uteslutande!" #: engine/core/graphene/mutations.py:249 engine/core/graphene/mutations.py:524 #: engine/core/graphene/mutations.py:573 engine/core/viewsets.py:753 @@ -1204,8 +1226,8 @@ msgstr "Köpa en order" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Skicka attributen som en sträng formaterad som attr1=värde1,attr2=värde2" @@ -1226,9 +1248,9 @@ msgstr "Orderprodukt {order_product_uuid} hittades inte!" msgid "original address string provided by the user" msgstr "Originaladresssträng som tillhandahålls av användaren" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1244,8 +1266,8 @@ msgstr "ElasticSearch - fungerar som en smäck" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Attribut" @@ -1282,7 +1304,8 @@ msgstr "" "Vilka attribut och värden som kan användas för att filtrera denna kategori." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minsta och högsta pris för produkter i denna kategori, om tillgängligt." @@ -1320,7 +1343,7 @@ msgid "represents feedback from a user." msgstr "Representerar feedback från en användare." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Meddelanden" @@ -1328,7 +1351,7 @@ msgstr "Meddelanden" msgid "download url for this order product if applicable" msgstr "Nedladdningsadress för denna orderprodukt om tillämpligt" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Återkoppling" @@ -1336,7 +1359,7 @@ msgstr "Återkoppling" msgid "a list of order products in this order" msgstr "En lista över orderprodukter i den här ordern" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Faktureringsadress" @@ -1364,7 +1387,7 @@ msgstr "Är alla produkter i beställningen digitala" msgid "transactions for this order" msgstr "Transaktioner för denna order" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Beställningar" @@ -1381,7 +1404,7 @@ msgstr "Produktens bilder" msgid "category" msgstr "Kategori" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Återkoppling" @@ -1422,7 +1445,7 @@ msgstr "Produkter endast tillgängliga för personliga beställningar" msgid "discount price" msgstr "Rabatterat pris" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Produkter" @@ -1434,7 +1457,7 @@ msgstr "Promokoder" msgid "products on sale" msgstr "Produkter på rea" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Kampanjer" @@ -1442,7 +1465,7 @@ msgstr "Kampanjer" msgid "vendor" msgstr "Leverantör" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1450,11 +1473,11 @@ msgstr "Leverantör" msgid "product" msgstr "Produkt" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Önskelistade produkter" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Önskelistor" @@ -1493,8 +1516,7 @@ msgstr "Företagets telefonnummer" #: engine/core/graphene/object_types.py:761 msgid "email from, sometimes it must be used instead of host user value" -msgstr "" -"\"email from\", ibland måste det användas istället för host user-värdet" +msgstr "\"email from\", ibland måste det användas istället för host user-värdet" #: engine/core/graphene/object_types.py:764 msgid "email host user" @@ -1554,8 +1576,8 @@ msgid "" "categorizing and managing attributes more effectively in acomplex system." msgstr "" "Representerar en grupp av attribut, som kan vara hierarkiska. Denna klass " -"används för att hantera och organisera attributgrupper. En attributgrupp kan " -"ha en överordnad grupp som bildar en hierarkisk struktur. Detta kan vara " +"används för att hantera och organisera attributgrupper. En attributgrupp kan" +" ha en överordnad grupp som bildar en hierarkisk struktur. Detta kan vara " "användbart för att kategorisera och hantera attribut på ett mer effektivt " "sätt i ett komplext system." @@ -1571,7 +1593,7 @@ msgstr "Överordnad attributgrupp" msgid "attribute group's name" msgstr "Attributgruppens namn" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Attributgrupp" @@ -1588,10 +1610,10 @@ msgstr "" "Representerar en vendor-enhet som kan lagra information om externa " "leverantörer och deras interaktionskrav. Klassen Vendor används för att " "definiera och hantera information som är relaterad till en extern " -"leverantör. Den lagrar leverantörens namn, autentiseringsuppgifter som krävs " -"för kommunikation och den procentuella markering som tillämpas på produkter " -"som hämtas från leverantören. Modellen innehåller också ytterligare metadata " -"och begränsningar, vilket gör den lämplig att använda i system som " +"leverantör. Den lagrar leverantörens namn, autentiseringsuppgifter som krävs" +" för kommunikation och den procentuella markering som tillämpas på produkter" +" som hämtas från leverantören. Modellen innehåller också ytterligare " +"metadata och begränsningar, vilket gör den lämplig att använda i system som " "interagerar med tredjepartsleverantörer." #: engine/core/models.py:122 @@ -1649,8 +1671,8 @@ msgstr "" "identifiera produkter. Klassen ProductTag är utformad för att unikt " "identifiera och klassificera produkter genom en kombination av en intern " "taggidentifierare och ett användarvänligt visningsnamn. Den stöder " -"operationer som exporteras via mixins och tillhandahåller metadataanpassning " -"för administrativa ändamål." +"operationer som exporteras via mixins och tillhandahåller metadataanpassning" +" för administrativa ändamål." #: engine/core/models.py:204 engine/core/models.py:235 msgid "internal tag identifier for the product tag" @@ -1709,8 +1731,8 @@ msgstr "" "innehåller fält för metadata och visuell representation, som utgör grunden " "för kategorirelaterade funktioner. Den här klassen används vanligtvis för " "att definiera och hantera produktkategorier eller andra liknande " -"grupperingar inom en applikation, så att användare eller administratörer kan " -"ange namn, beskrivning och hierarki för kategorier samt tilldela attribut " +"grupperingar inom en applikation, så att användare eller administratörer kan" +" ange namn, beskrivning och hierarki för kategorier samt tilldela attribut " "som bilder, taggar eller prioritet." #: engine/core/models.py:269 @@ -1762,7 +1784,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Representerar ett Brand-objekt i systemet. Klassen hanterar information och " "attribut som är relaterade till ett varumärke, inklusive dess namn, " @@ -1812,8 +1835,8 @@ msgstr "Kategorier" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1846,8 +1869,8 @@ msgstr "Försäljningspris" msgid "the product associated with this stock entry" msgstr "Produkten som är associerad med denna lagerpost" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Tillhörande produkt" @@ -1905,8 +1928,8 @@ msgstr "" "Representerar en produkt med attribut som kategori, varumärke, taggar, " "digital status, namn, beskrivning, artikelnummer och slug. Tillhandahåller " "relaterade verktygsegenskaper för att hämta betyg, feedbackräkning, pris, " -"kvantitet och totala beställningar. Utformad för användning i ett system som " -"hanterar e-handel eller lagerhantering. Klassen interagerar med relaterade " +"kvantitet och totala beställningar. Utformad för användning i ett system som" +" hanterar e-handel eller lagerhantering. Klassen interagerar med relaterade " "modeller (t.ex. Category, Brand och ProductTag) och hanterar cachelagring " "för egenskaper som används ofta för att förbättra prestandan. Den används " "för att definiera och manipulera produktdata och tillhörande information i " @@ -1948,7 +1971,7 @@ msgstr "Tillhandahålla ett tydligt identifierande namn för produkten" msgid "product name" msgstr "Produktens namn" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Lägg till en detaljerad beskrivning av produkten" @@ -1968,108 +1991,116 @@ msgstr "Artikelnummer" msgid "stock keeping unit for this product" msgstr "Lagerhållningsenhet för denna produkt" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Om denna produkt ska exporteras till marknadsplatser" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Exportera till marknadsplatser" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"Representerar ett attribut i systemet. Denna klass används för att definiera " -"och hantera attribut, som är anpassningsbara bitar av data som kan " +"Representerar ett attribut i systemet. Denna klass används för att definiera" +" och hantera attribut, som är anpassningsbara bitar av data som kan " "associeras med andra enheter. Attribut har associerade kategorier, grupper, " "värdetyper och namn. Modellen stöder flera typer av värden, inklusive " -"sträng, heltal, flottör, boolean, array och objekt. Detta ger möjlighet till " -"dynamisk och flexibel datastrukturering." +"sträng, heltal, flottör, boolean, array och objekt. Detta ger möjlighet till" +" dynamisk och flexibel datastrukturering." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Grupp av detta attribut" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Sträng" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Heltal" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Flottör" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Boolean" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Array" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Objekt" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Typ av attributets värde" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Typ av värde" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Namn på detta attribut" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Attributets namn" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "är filtrerbar" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Vilka attribut och värden som kan användas för att filtrera denna kategori." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribut" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Representerar ett specifikt värde för ett attribut som är kopplat till en " "produkt. Det kopplar \"attributet\" till ett unikt \"värde\", vilket " "möjliggör bättre organisation och dynamisk representation av " "produktegenskaper." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Attribut för detta värde" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Den specifika produkt som är associerad med detta attributs värde" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Det specifika värdet för detta attribut" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2079,46 +2110,46 @@ msgstr "" "produkter och bestämma deras visningsordning. Den innehåller också en " "tillgänglighetsfunktion med alternativ text för bilderna." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Tillhandahåll alternativ text för bilden för tillgänglighet" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Alt-text för bild" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Ladda upp bildfilen för den här produkten" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Produktbild" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Bestämmer i vilken ordning bilderna ska visas" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Prioritet för visning" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Den produkt som denna bild representerar" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Produktbilder" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Representerar en kampanj för produkter med rabatt. Den här klassen används " "för att definiera och hantera kampanjer som erbjuder en procentbaserad " @@ -2127,39 +2158,39 @@ msgstr "" "tillämpliga produkterna. Den integreras med produktkatalogen för att " "fastställa vilka artiklar som påverkas av kampanjen." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Procentuell rabatt för de valda produkterna" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Rabattprocent" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Ange ett unikt namn för denna kampanj" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Kampanjens namn" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Beskrivning av kampanjen" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Välj vilka produkter som ingår i denna kampanj" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Inkluderade produkter" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Marknadsföring" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2167,129 +2198,129 @@ msgid "" "operations for adding and removing multiple products at once." msgstr "" "Representerar en användares önskelista för lagring och hantering av önskade " -"produkter. Klassen tillhandahåller funktionalitet för att hantera en samling " -"produkter, med stöd för operationer som att lägga till och ta bort " +"produkter. Klassen tillhandahåller funktionalitet för att hantera en samling" +" produkter, med stöd för operationer som att lägga till och ta bort " "produkter, samt stöd för operationer för att lägga till och ta bort flera " "produkter samtidigt." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Produkter som användaren har markerat som önskade" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Användare som äger denna önskelista" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Wishlist's ägare" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Önskelista" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Representerar en dokumentärpost som är knuten till en produkt. Denna klass " "används för att lagra information om dokumentärer som är relaterade till " "specifika produkter, inklusive filuppladdningar och deras metadata. Den " "innehåller metoder och egenskaper för att hantera filtyp och lagringssökväg " -"för dokumentärfilerna. Den utökar funktionaliteten från specifika mixins och " -"tillhandahåller ytterligare anpassade funktioner." +"för dokumentärfilerna. Den utökar funktionaliteten från specifika mixins och" +" tillhandahåller ytterligare anpassade funktioner." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Dokumentärfilm" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Dokumentärer" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Olöst" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Representerar en adressentitet som innehåller platsinformation och " "associationer med en användare. Tillhandahåller funktionalitet för lagring " -"av geografiska data och adressdata samt integration med geokodningstjänster. " -"Denna klass är utformad för att lagra detaljerad adressinformation inklusive " -"komponenter som gata, stad, region, land och geolokalisering (longitud och " -"latitud). Den stöder integration med API:er för geokodning, vilket möjliggör " -"lagring av råa API-svar för vidare bearbetning eller inspektion. Klassen gör " -"det också möjligt att associera en adress med en användare, vilket " -"underlättar personlig datahantering." +"av geografiska data och adressdata samt integration med geokodningstjänster." +" Denna klass är utformad för att lagra detaljerad adressinformation " +"inklusive komponenter som gata, stad, region, land och geolokalisering " +"(longitud och latitud). Den stöder integration med API:er för geokodning, " +"vilket möjliggör lagring av råa API-svar för vidare bearbetning eller " +"inspektion. Klassen gör det också möjligt att associera en adress med en " +"användare, vilket underlättar personlig datahantering." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Adressrad till kunden" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Adresslinje" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Gata" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Distrikt" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Stad" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Region" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Postnummer" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Land" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokaliseringspunkt (longitud, latitud)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Fullständigt JSON-svar från geokodaren för denna adress" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Lagrad JSON-svar från geokodningstjänsten" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Adress" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adresser" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2306,94 +2337,94 @@ msgstr "" "funktioner för att validera och tillämpa kampanjkoden på en order och " "samtidigt säkerställa att begränsningarna uppfylls." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Unik kod som används av en användare för att lösa in en rabatt" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Identifierare för kampanjkod" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Fast rabattbelopp tillämpas om procent inte används" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Fast diskonteringsbelopp" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentuell rabatt som tillämpas om fast belopp inte används" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Procentuell rabatt" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Tidsstämpel när kampanjkoden upphör att gälla" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Slutgiltig giltighetstid" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Tidsstämpel från vilken denna promokod är giltig" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Start giltighetstid" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Tidsstämpel när kampanjkoden användes, tom om den inte har använts ännu" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Tidsstämpel för användning" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Användare som tilldelats denna promokod om tillämpligt" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Tilldelad användare" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Kampanjkod" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Kampanjkoder" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Endast en typ av rabatt ska definieras (belopp eller procent), men inte båda " -"eller ingendera." +"Endast en typ av rabatt ska definieras (belopp eller procent), men inte båda" +" eller ingendera." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Promokoden har redan använts" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ogiltig rabattyp för promokod {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2405,137 +2436,137 @@ msgstr "" "faktureringsuppgifter kan uppdateras. På samma sätt stöder funktionaliteten " "hanteringen av produkterna i orderns livscykel." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Den faktureringsadress som används för denna order" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Valfri kampanjkod tillämpas på denna beställning" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Tillämpad kampanjkod" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Den leveransadress som används för denna order" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Leveransadress" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Aktuell status för ordern i dess livscykel" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Orderstatus" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "JSON-struktur för meddelanden som ska visas för användare, i admin UI " "används tabellvyn" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "JSON-representation av orderattribut för denna order" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "Användaren som gjorde beställningen" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Användare" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Tidsstämpel när ordern slutfördes" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Köp tid" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "En mänskligt läsbar identifierare för ordern" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "mänskligt läsbart ID" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Beställning" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "En användare får bara ha en väntande order åt gången!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" "Du kan inte lägga till produkter i en order som inte är en pågående order" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Du kan inte lägga till inaktiva produkter i ordern" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "Du kan inte lägga till fler produkter än vad som finns i lager" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Du kan inte ta bort produkter från en order som inte är en pågående order" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} finns inte med frågan <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Promokoden finns inte" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "Du kan bara köpa fysiska produkter med angiven leveransadress!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Adressen finns inte" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "Du kan inte köpa just nu, vänligen försök igen om några minuter." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Ogiltigt kraftvärde" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Du kan inte köpa en tom order!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "Du kan inte köpa en order utan en användare!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "En användare utan balans kan inte köpa med balans!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Otillräckliga medel för att slutföra ordern" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2543,14 +2574,14 @@ msgstr "" "du kan inte köpa utan registrering, vänligen ange följande information: " "kundens namn, kundens e-post, kundens telefonnummer" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Ogiltig betalningsmetod: {payment_method} från {available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2561,37 +2592,38 @@ msgstr "" "Hanterar feedback från användare för produkter. Den här klassen är utformad " "för att fånga upp och lagra feedback från användare om specifika produkter " "som de har köpt. Den innehåller attribut för att lagra användarkommentarer, " -"en referens till den relaterade produkten i ordern och ett användartilldelat " -"betyg. Klassen använder databasfält för att effektivt modellera och hantera " -"feedbackdata." +"en referens till den relaterade produkten i ordern och ett användartilldelat" +" betyg. Klassen använder databasfält för att effektivt modellera och hantera" +" feedbackdata." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "Kommentarer från användare om deras erfarenhet av produkten" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Återkoppling av kommentarer" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Refererar till den specifika produkten i en order som denna feedback handlar " -"om" +"Refererar till den specifika produkten i en order som denna feedback handlar" +" om" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Relaterad order produkt" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Användartilldelat betyg för produkten" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Produktbetyg" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2607,135 +2639,135 @@ msgstr "" "OrderProduct-modellen innehåller information om en produkt som ingår i en " "order, inklusive detaljer som inköpspris, kvantitet, produktattribut och " "status. Den hanterar meddelanden till användaren och administratörer och " -"hanterar åtgärder som att returnera produktsaldot eller lägga till feedback. " -"Modellen innehåller också metoder och egenskaper som stöder affärslogik, t." -"ex. beräkning av totalpriset eller generering av en URL för nedladdning av " -"digitala produkter. Modellen integreras med Order- och Product-modellerna " +"hanterar åtgärder som att returnera produktsaldot eller lägga till feedback." +" Modellen innehåller också metoder och egenskaper som stöder affärslogik, " +"t.ex. beräkning av totalpriset eller generering av en URL för nedladdning av" +" digitala produkter. Modellen integreras med Order- och Product-modellerna " "och lagrar en referens till dem." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "Det pris som kunden betalade för denna produkt vid inköpstillfället" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Inköpspris vid ordertillfället" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Interna kommentarer för administratörer om denna beställda produkt" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Interna kommentarer" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Meddelanden till användare" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "JSON-representation av detta objekts attribut" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Sorterade produktattribut" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Referens till den överordnade order som innehåller denna produkt" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Föräldraorder" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Den specifika produkt som är kopplad till denna orderrad" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Antal av denna specifika produkt i ordern" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Produktens kvantitet" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Aktuell status för denna produkt i ordern" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Status för produktlinje" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Orderprodukt måste ha en tillhörande order!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Fel åtgärd angiven för återkoppling: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "du kan inte återkoppla en order som inte mottagits" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Namn" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL för integrationen" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Autentiseringsuppgifter" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Du kan bara ha en CRM-leverantör som standard" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM-system" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Beställningens CRM-länk" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Beställningarnas CRM-länkar" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" -"Representerar nedladdningsfunktionen för digitala tillgångar som är kopplade " -"till order. Klassen DigitalAssetDownload ger möjlighet att hantera och komma " -"åt nedladdningar som är relaterade till orderprodukter. Den upprätthåller " -"information om den associerade orderprodukten, antalet nedladdningar och om " -"tillgången är offentligt synlig. Den innehåller en metod för att generera en " -"URL för nedladdning av tillgången när den associerade ordern har statusen " -"slutförd." +"Representerar nedladdningsfunktionen för digitala tillgångar som är kopplade" +" till order. Klassen DigitalAssetDownload ger möjlighet att hantera och " +"komma åt nedladdningar som är relaterade till orderprodukter. Den " +"upprätthåller information om den associerade orderprodukten, antalet " +"nedladdningar och om tillgången är offentligt synlig. Den innehåller en " +"metod för att generera en URL för nedladdning av tillgången när den " +"associerade ordern har statusen slutförd." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Nedladdningar" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Nedladdningar" @@ -2743,8 +2775,8 @@ msgstr "Nedladdningar" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"du måste ge en kommentar, betyg och beställa produkt uuid för att lägga till " -"feedback." +"du måste ge en kommentar, betyg och beställa produkt uuid för att lägga till" +" feedback." #: engine/core/sitemaps.py:25 msgid "Home" @@ -2936,8 +2968,7 @@ msgstr "Hej %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Tack för din beställning #%(order.pk)s! Vi är glada att kunna informera dig " @@ -3052,8 +3083,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Tack för din beställning! Vi är glada att kunna bekräfta ditt köp. Nedan " @@ -3183,14 +3213,10 @@ msgstr "Hanterar logiken i att köpa som ett företag utan registrering." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Hanterar nedladdning av en digital tillgång som är kopplad till en order.\n" -"Denna funktion försöker servera den digitala tillgångsfilen som finns i " -"lagringskatalogen för projektet. Om filen inte hittas visas ett HTTP 404-fel " -"som indikerar att resursen inte är tillgänglig." +"Denna funktion försöker servera den digitala tillgångsfilen som finns i lagringskatalogen för projektet. Om filen inte hittas visas ett HTTP 404-fel som indikerar att resursen inte är tillgänglig." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3219,19 +3245,15 @@ msgstr "favicon hittades inte" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Hanterar förfrågningar om favicon på en webbplats.\n" -"Denna funktion försöker servera favicon-filen som finns i den statiska " -"katalogen i projektet. Om favicon-filen inte hittas visas ett HTTP 404-fel " -"som anger att resursen inte är tillgänglig." +"Denna funktion försöker servera favicon-filen som finns i den statiska katalogen i projektet. Om favicon-filen inte hittas visas ett HTTP 404-fel som anger att resursen inte är tillgänglig." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Omdirigerar begäran till indexsidan för admin. Funktionen hanterar " @@ -3254,30 +3276,31 @@ msgstr "Returnerar anpassade variabler för Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The SchonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "Definierar en vy för hantering av schon-relaterade operationer. Klassen " "SchonViewSet ärver från ModelViewSet och tillhandahåller funktionalitet för " -"att hantera åtgärder och operationer på schon-entiteter. Den innehåller " -"stöd för dynamiska serializerklasser baserat på den aktuella åtgärden, " +"att hantera åtgärder och operationer på schon-entiteter. Den innehåller stöd" +" för dynamiska serializerklasser baserat på den aktuella åtgärden, " "anpassningsbara behörigheter och renderingsformat." #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Representerar en vy för hantering av AttributeGroup-objekt. Hanterar " -"åtgärder relaterade till AttributeGroup, inklusive filtrering, serialisering " -"och hämtning av data. Denna klass är en del av applikationens API-lager och " -"tillhandahåller ett standardiserat sätt att behandla förfrågningar och svar " -"för AttributeGroup-data." +"åtgärder relaterade till AttributeGroup, inklusive filtrering, serialisering" +" och hämtning av data. Denna klass är en del av applikationens API-lager och" +" tillhandahåller ett standardiserat sätt att behandla förfrågningar och svar" +" för AttributeGroup-data." #: engine/core/viewsets.py:179 msgid "" @@ -3300,8 +3323,8 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Ett viewset för hantering av AttributeValue-objekt. Denna viewset " "tillhandahåller funktionalitet för att lista, hämta, skapa, uppdatera och " @@ -3331,8 +3354,8 @@ msgid "" "endpoints for Brand objects." msgstr "" "Representerar en vy för hantering av varumärkesinstanser. Denna klass " -"tillhandahåller funktionalitet för att fråga, filtrera och serialisera Brand-" -"objekt. Den använder Djangos ViewSet-ramverk för att förenkla " +"tillhandahåller funktionalitet för att fråga, filtrera och serialisera " +"Brand-objekt. Den använder Djangos ViewSet-ramverk för att förenkla " "implementeringen av API-slutpunkter för varumärkesobjekt." #: engine/core/viewsets.py:458 @@ -3346,8 +3369,8 @@ msgid "" "product." msgstr "" "Hanterar operationer relaterade till modellen `Product` i systemet. Denna " -"klass tillhandahåller en vy för att hantera produkter, inklusive filtrering, " -"serialisering och operationer på specifika instanser. Den utökar från " +"klass tillhandahåller en vy för att hantera produkter, inklusive filtrering," +" serialisering och operationer på specifika instanser. Den utökar från " "`SchonViewSet` för att använda gemensam funktionalitet och integreras med " "Django REST-ramverket för RESTful API-operationer. Innehåller metoder för " "att hämta produktinformation, tillämpa behörigheter och få tillgång till " @@ -3361,8 +3384,8 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Representerar en vy för hantering av Vendor-objekt. Denna vy gör det möjligt " -"att hämta, filtrera och serialisera Vendor-data. Den definierar queryset, " +"Representerar en vy för hantering av Vendor-objekt. Denna vy gör det möjligt" +" att hämta, filtrera och serialisera Vendor-data. Den definierar queryset, " "filterkonfigurationer och serializer-klasser som används för att hantera " "olika åtgärder. Syftet med denna klass är att ge strömlinjeformad åtkomst " "till Vendor-relaterade resurser genom Django REST-ramverket." @@ -3372,12 +3395,12 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `SchonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" -"Representation av en vyuppsättning som hanterar Feedback-objekt. Denna klass " -"hanterar åtgärder relaterade till Feedback-objekt, inklusive listning, " +"Representation av en vyuppsättning som hanterar Feedback-objekt. Denna klass" +" hanterar åtgärder relaterade till Feedback-objekt, inklusive listning, " "filtrering och hämtning av detaljer. Syftet med denna vyuppsättning är att " "tillhandahålla olika serializers för olika åtgärder och implementera " "behörighetsbaserad hantering av tillgängliga Feedback-objekt. Den utökar " @@ -3389,15 +3412,15 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet för hantering av order och relaterade operationer. Den här klassen " "innehåller funktioner för att hämta, ändra och hantera orderobjekt. Den " -"innehåller olika slutpunkter för hantering av orderoperationer som att lägga " -"till eller ta bort produkter, utföra inköp för registrerade och " +"innehåller olika slutpunkter för hantering av orderoperationer som att lägga" +" till eller ta bort produkter, utföra inköp för registrerade och " "oregistrerade användare och hämta den aktuella autentiserade användarens " "pågående order. ViewSet använder flera serializers baserat på den specifika " "åtgärd som utförs och verkställer behörigheter i enlighet med detta vid " @@ -3407,8 +3430,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Tillhandahåller en vy för hantering av OrderProduct-enheter. Denna " @@ -3442,8 +3465,8 @@ msgstr "Hanterar åtgärder relaterade till lagerdata i systemet." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3486,5 +3509,5 @@ msgstr "" "Hanterar operationer relaterade till Product Tags inom applikationen. " "Klassen tillhandahåller funktionalitet för att hämta, filtrera och " "serialisera Product Tag-objekt. Den stöder flexibel filtrering på specifika " -"attribut med hjälp av det angivna filterbackend och använder dynamiskt olika " -"serializers baserat på den åtgärd som utförs." +"attribut med hjälp av det angivna filterbackend och använder dynamiskt olika" +" serializers baserat på den åtgärd som utförs." diff --git a/engine/core/locale/th_TH/LC_MESSAGES/django.mo b/engine/core/locale/th_TH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5b480144d6bd632308abc934704de7e73c1366e9 GIT binary patch literal 148848 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -27,8 +27,11 @@ msgstr "กำลังใช้งานอยู่" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" -msgstr "หากตั้งค่าเป็น false, วัตถุนี้ไม่สามารถมองเห็นได้โดยผู้ใช้ที่ไม่มีสิทธิ์ที่ต้องการ" +"if set to false, this object can't be seen by users without needed " +"permission" +msgstr "" +"หากตั้งค่าเป็น false, " +"วัตถุนี้ไม่สามารถมองเห็นได้โดยผู้ใช้ที่ไม่มีสิทธิ์ที่ต้องการ" #: engine/core/abstract.py:26 engine/core/choices.py:18 msgid "created" @@ -72,7 +75,7 @@ msgstr "เวลาที่บันทึก" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "เปิดใช้งานที่เลือกไว้ %(verbose_name_plural)s" #: engine/core/admin.py:166 @@ -81,7 +84,7 @@ msgstr "รายการที่เลือกไว้ได้รับก #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "ยกเลิกการใช้งานที่เลือกไว้ %(verbose_name_plural)s" #: engine/core/admin.py:184 @@ -89,13 +92,13 @@ msgid "selected items have been deactivated." msgstr "รายการที่เลือกถูกยกเลิกการใช้งานแล้ว!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "ค่าคุณสมบัติ" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "ค่าของแอตทริบิวต์" @@ -115,12 +118,12 @@ msgstr "สต็อก" msgid "stocks" msgstr "หุ้น" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "สั่งซื้อสินค้า" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "สั่งซื้อสินค้า" @@ -128,7 +131,31 @@ msgstr "สั่งซื้อสินค้า" msgid "children" msgstr "เด็ก" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "มีรูปภาพ" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "ส่งออก %(verbose_name_plural)s ที่เลือกไปยังฟีดของตลาด" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "%(verbose_name_plural)s ที่เลือกไว้ได้รับการทำเครื่องหมายเพื่อส่งออก" + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "Ban ได้เลือก %(verbose_name_plural)s จากฟีดของตลาด" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "%(verbose_name_plural)s ที่เลือกไว้ถูกห้ามส่งออก" + +#: engine/core/admin.py:1116 msgid "Config" msgstr "การกำหนดค่า" @@ -152,7 +179,8 @@ msgstr "ส่งมอบแล้ว" msgid "canceled" msgstr "ยกเลิก" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "ล้มเหลว" @@ -202,8 +230,8 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"ใช้เฉพาะคีย์เพื่ออ่านข้อมูลที่ได้รับอนุญาตจากแคช ใช้คีย์ ข้อมูล และระยะเวลาหมดอายุ " -"พร้อมการยืนยันตัวตนเพื่อเขียนข้อมูลลงในแคช" +"ใช้เฉพาะคีย์เพื่ออ่านข้อมูลที่ได้รับอนุญาตจากแคช ใช้คีย์ ข้อมูล " +"และระยะเวลาหมดอายุ พร้อมการยืนยันตัวตนเพื่อเขียนข้อมูลลงในแคช" #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -238,7 +266,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"ซื้อสินค้าในฐานะธุรกิจ โดยใช้ `products` ที่ให้มาพร้อมกับ `product_uuid` และ `attributes`" +"ซื้อสินค้าในฐานะธุรกิจ โดยใช้ `products` ที่ให้มาพร้อมกับ `product_uuid` และ" +" `attributes`" #: engine/core/docs/drf/views.py:180 msgid "download a digital asset from purchased digital order" @@ -262,11 +291,15 @@ msgstr "ลบกลุ่มแอตทริบิวต์" #: engine/core/docs/drf/viewsets.py:99 msgid "rewrite an existing attribute group saving non-editables" -msgstr "เขียนกลุ่มคุณลักษณะที่มีอยู่ใหม่โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนกลุ่มคุณลักษณะที่มีอยู่ใหม่โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของกลุ่มแอตทริบิวต์ที่มีอยู่ใหม่ โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" +msgstr "" +"เขียนฟิลด์บางส่วนของกลุ่มแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:118 msgid "list all attributes (simple view)" @@ -290,7 +323,9 @@ msgstr "เขียนแอตทริบิวต์ที่มีอยู #: engine/core/docs/drf/viewsets.py:156 msgid "rewrite some fields of an existing attribute saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของแอตทริบิวต์ที่มีอยู่ใหม่ โดยบันทึกเฉพาะข้อมูลที่ไม่มีการแก้ไข" +msgstr "" +"เขียนฟิลด์บางส่วนของแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่มีการแก้ไข" #: engine/core/docs/drf/viewsets.py:166 msgid "list all attribute values (simple view)" @@ -313,8 +348,11 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "เขียนค่าแอตทริบิวต์ที่มีอยู่ใหม่โดยเก็บค่าที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของค่าแอตทริบิวต์ที่มีอยู่ใหม่ โดยเก็บค่าที่ไม่สามารถแก้ไขได้ไว้" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" +msgstr "" +"เขียนฟิลด์บางส่วนของค่าแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยเก็บค่าที่ไม่สามารถแก้ไขได้ไว้" #: engine/core/docs/drf/viewsets.py:219 engine/core/docs/drf/viewsets.py:220 msgid "list all categories (simple view)" @@ -342,7 +380,9 @@ msgstr "เขียนหมวดหมู่ที่มีอยู่ให #: engine/core/docs/drf/viewsets.py:270 engine/core/docs/drf/viewsets.py:272 msgid "rewrite some fields of an existing category saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของหมวดหมู่ที่มีอยู่แล้วใหม่ โดยบันทึกเฉพาะข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนฟิลด์บางส่วนของหมวดหมู่ที่มีอยู่แล้วใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:280 engine/core/docs/drf/viewsets.py:757 #: engine/core/docs/drf/viewsets.py:1046 @@ -366,11 +406,11 @@ msgstr "สำหรับผู้ใช้ที่ไม่ใช่พนั #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"การค้นหาส่วนย่อยโดยไม่คำนึงถึงตัวพิมพ์เล็กหรือใหญ่ใน human_readable_id, order_products." -"product.name และ order_products.product.partnumber" +"การค้นหาส่วนย่อยโดยไม่คำนึงถึงตัวพิมพ์เล็กหรือใหญ่ใน human_readable_id, " +"order_products.product.name และ order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -390,7 +430,8 @@ msgstr "กรองตามหมายเลขคำสั่งซื้อ #: engine/core/docs/drf/viewsets.py:336 msgid "Filter by user's email (case-insensitive exact match)" -msgstr "กรองตามอีเมลของผู้ใช้ (ตรงตามตัวอักษรโดยไม่คำนึงถึงตัวพิมพ์ใหญ่หรือเล็ก)" +msgstr "" +"กรองตามอีเมลของผู้ใช้ (ตรงตามตัวอักษรโดยไม่คำนึงถึงตัวพิมพ์ใหญ่หรือเล็ก)" #: engine/core/docs/drf/viewsets.py:341 msgid "Filter by user's UUID" @@ -398,17 +439,18 @@ msgstr "กรองตาม UUID ของผู้ใช้" #: engine/core/docs/drf/viewsets.py:347 msgid "Filter by order status (case-insensitive substring match)" -msgstr "กรองตามสถานะคำสั่งซื้อ (การจับคู่สตริงย่อยโดยไม่คำนึงตัวพิมพ์ใหญ่/เล็ก)" +msgstr "" +"กรองตามสถานะคำสั่งซื้อ (การจับคู่สตริงย่อยโดยไม่คำนึงตัวพิมพ์ใหญ่/เล็ก)" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "เรียงลำดับโดยหนึ่งใน: uuid, human_readable_id, user_email, user, status, " -"created, modified, buy_time, random. นำหน้าด้วย '-' สำหรับเรียงลำดับจากมากไปน้อย " -"(เช่น '-buy_time')." +"created, modified, buy_time, random. นำหน้าด้วย '-' " +"สำหรับเรียงลำดับจากมากไปน้อย (เช่น '-buy_time')." #: engine/core/docs/drf/viewsets.py:366 msgid "retrieve a single order (detailed view)" @@ -436,7 +478,9 @@ msgstr "เขียนหมวดหมู่ที่มีอยู่ให #: engine/core/docs/drf/viewsets.py:403 msgid "rewrite some fields of an existing order saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของหมวดหมู่ที่มีอยู่แล้วใหม่ โดยบันทึกเฉพาะข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนฟิลด์บางส่วนของหมวดหมู่ที่มีอยู่แล้วใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:410 msgid "purchase an order" @@ -449,8 +493,8 @@ msgid "" "transaction is initiated." msgstr "" "สรุปการสั่งซื้อสินค้า หากใช้ `force_balance` " -"การสั่งซื้อจะเสร็จสมบูรณ์โดยใช้ยอดเงินคงเหลือของผู้ใช้ หากใช้ `force_payment` " -"จะเริ่มการทำธุรกรรม" +"การสั่งซื้อจะเสร็จสมบูรณ์โดยใช้ยอดเงินคงเหลือของผู้ใช้ หากใช้ " +"`force_payment` จะเริ่มการทำธุรกรรม" #: engine/core/docs/drf/viewsets.py:427 msgid "retrieve current pending order of a user" @@ -476,7 +520,8 @@ msgstr "เพิ่มสินค้าในคำสั่งซื้อ" msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." -msgstr "เพิ่มสินค้าไปยังคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" +msgstr "" +"เพิ่มสินค้าไปยังคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" #: engine/core/docs/drf/viewsets.py:461 msgid "add a list of products to order, quantities will not count" @@ -486,7 +531,9 @@ msgstr "เพิ่มรายการสินค้าที่ต้อง msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." -msgstr "เพิ่มรายการสินค้าไปยังคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" +msgstr "" +"เพิ่มรายการสินค้าไปยังคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` " +"ที่ให้มา" #: engine/core/docs/drf/viewsets.py:472 msgid "remove product from order" @@ -496,7 +543,8 @@ msgstr "ลบสินค้าออกจากคำสั่งซื้อ msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "ลบผลิตภัณฑ์ออกจากคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" +msgstr "" +"ลบผลิตภัณฑ์ออกจากคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" #: engine/core/docs/drf/viewsets.py:483 msgid "remove product from order, quantities will not count" @@ -506,7 +554,9 @@ msgstr "นำสินค้าออกจากคำสั่งซื้อ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" -msgstr "ลบรายการสินค้าออกจากคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" +msgstr "" +"ลบรายการสินค้าออกจากคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` " +"ที่ให้มา" #: engine/core/docs/drf/viewsets.py:497 msgid "list all wishlists (simple view)" @@ -514,7 +564,9 @@ msgstr "แสดงรายการคุณลักษณะทั้งห #: engine/core/docs/drf/viewsets.py:498 msgid "for non-staff users, only their own wishlists are returned." -msgstr "สำหรับผู้ใช้ที่ไม่ใช่บุคลากร จะแสดงเฉพาะรายการที่อยู่ในรายการสิ่งที่ต้องการของตนเองเท่านั้น" +msgstr "" +"สำหรับผู้ใช้ที่ไม่ใช่บุคลากร " +"จะแสดงเฉพาะรายการที่อยู่ในรายการสิ่งที่ต้องการของตนเองเท่านั้น" #: engine/core/docs/drf/viewsets.py:508 msgid "retrieve a single wishlist (detailed view)" @@ -538,7 +590,9 @@ msgstr "เขียนแอตทริบิวต์ที่มีอยู #: engine/core/docs/drf/viewsets.py:537 msgid "rewrite some fields of an existing wishlist saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของแอตทริบิวต์ที่มีอยู่ใหม่ โดยบันทึกเฉพาะข้อมูลที่ไม่มีการแก้ไข" +msgstr "" +"เขียนฟิลด์บางส่วนของแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่มีการแก้ไข" #: engine/core/docs/drf/viewsets.py:544 msgid "retrieve current pending wishlist of a user" @@ -546,7 +600,8 @@ msgstr "ดึงรายการสินค้าที่ผู้ใช้ #: engine/core/docs/drf/viewsets.py:545 msgid "retrieves a current pending wishlist of an authenticated user" -msgstr "ดึงรายการความปรารถนาที่รอดำเนินการในปัจจุบันของผู้ใช้ที่ผ่านการยืนยันแล้ว" +msgstr "" +"ดึงรายการความปรารถนาที่รอดำเนินการในปัจจุบันของผู้ใช้ที่ผ่านการยืนยันแล้ว" #: engine/core/docs/drf/viewsets.py:555 msgid "add product to wishlist" @@ -570,7 +625,9 @@ msgstr "เพิ่มสินค้าหลายรายการลงใ #: engine/core/docs/drf/viewsets.py:579 msgid "adds many products to an wishlist using the provided `product_uuids`" -msgstr "เพิ่มสินค้าหลายรายการลงในรายการสินค้าที่ต้องการโดยใช้ `product_uuids` ที่ให้มา" +msgstr "" +"เพิ่มสินค้าหลายรายการลงในรายการสินค้าที่ต้องการโดยใช้ `product_uuids` " +"ที่ให้มา" #: engine/core/docs/drf/viewsets.py:588 msgid "remove many products from wishlist" @@ -579,34 +636,22 @@ msgstr "ลบสินค้าออกจากคำสั่งซื้อ #: engine/core/docs/drf/viewsets.py:590 msgid "" "removes many products from an wishlist using the provided `product_uuids`" -msgstr "ลบผลิตภัณฑ์หลายรายการออกจากรายการที่ต้องการโดยใช้ `product_uuids` ที่ให้มา" +msgstr "" +"ลบผลิตภัณฑ์หลายรายการออกจากรายการที่ต้องการโดยใช้ `product_uuids` ที่ให้มา" #: engine/core/docs/drf/viewsets.py:598 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" -"กรองตามชื่อ/ค่าของแอตทริบิวต์หนึ่งรายการหรือมากกว่า • **ไวยากรณ์**: `attr_name=method-" -"value[;attr2=method2-value2]…` •**วิธีการ** (ค่าเริ่มต้นคือ `icontains` " -"หากไม่ได้ระบุ): `iexact`, `exact`, `icontains`, `contains`, `isnull`, " -"`startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, " -"`lt`, `lte`, `gt`, `gte`, `in` •**การกำหนดประเภทข้อมูล**: JSON " -"จะถูกพยายามแปลงก่อน (ดังนั้นคุณสามารถส่งรายการ/ดิคชันนารีได้), `true`/`false` สำหรับบูลีน, " -"จำนวนเต็ม, จำนวนทศนิยม; มิฉะนั้นจะถือว่าเป็นสตริง. • **Base64**: นำหน้าด้วย `b64-` " -"เพื่อเข้ารหัส base64 ที่ปลอดภัยสำหรับ URL ของค่าดิบ. \n" -"ตัวอย่าง: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" +"กรองตามชื่อ/ค่าของแอตทริบิวต์หนึ่งรายการหรือมากกว่า • **ไวยากรณ์**: `attr_name=method-value[;attr2=method2-value2]…` •**วิธีการ** (ค่าเริ่มต้นคือ `icontains` หากไม่ได้ระบุ): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` •**การกำหนดประเภทข้อมูล**: JSON จะถูกพยายามแปลงก่อน (ดังนั้นคุณสามารถส่งรายการ/ดิคชันนารีได้), `true`/`false` สำหรับบูลีน, จำนวนเต็ม, จำนวนทศนิยม; มิฉะนั้นจะถือว่าเป็นสตริง. • **Base64**: นำหน้าด้วย `b64-` เพื่อเข้ารหัส base64 ที่ปลอดภัยสำหรับ URL ของค่าดิบ. \n" +"ตัวอย่าง: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" #: engine/core/docs/drf/viewsets.py:617 engine/core/docs/drf/viewsets.py:618 msgid "list all products (simple view)" @@ -618,13 +663,12 @@ msgstr "(exact) รหัส UUID ของผลิตภัณฑ์" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"รายการฟิลด์ที่คั่นด้วยเครื่องหมายจุลภาคเพื่อเรียงลำดับ โดยให้ขึ้นต้นด้วย `-` " -"สำหรับการเรียงลำดับจากน้อยไปมาก **ที่อนุญาต:** uuid, rating, name, slug, created, " -"modified, price, random" +"รายการฟิลด์ที่คั่นด้วยเครื่องหมายจุลภาคเพื่อเรียงลำดับ โดยให้ขึ้นต้นด้วย `-`" +" สำหรับการเรียงลำดับจากน้อยไปมาก **ที่อนุญาต:** uuid, rating, name, slug, " +"created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "retrieve a single product (detailed view)" @@ -647,7 +691,8 @@ msgstr "เขียนใหม่ผลิตภัณฑ์ที่มีอ #: engine/core/docs/drf/viewsets.py:697 engine/core/docs/drf/viewsets.py:700 msgid "" "update some fields of an existing product, preserving non-editable fields" -msgstr "อัปเดตบางฟิลด์ของสินค้าที่มีอยู่แล้ว โดยคงฟิลด์ที่ไม่สามารถแก้ไขได้ไว้" +msgstr "" +"อัปเดตบางฟิลด์ของสินค้าที่มีอยู่แล้ว โดยคงฟิลด์ที่ไม่สามารถแก้ไขได้ไว้" #: engine/core/docs/drf/viewsets.py:719 engine/core/docs/drf/viewsets.py:720 msgid "delete a product" @@ -719,7 +764,9 @@ msgstr "เขียนใหม่ข้อเสนอแนะที่มี #: engine/core/docs/drf/viewsets.py:909 msgid "rewrite some fields of an existing feedback saving non-editables" -msgstr "เขียนข้อมูลบางส่วนของฟิลด์ในข้อเสนอแนะที่มีอยู่ใหม่ โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนข้อมูลบางส่วนของฟิลด์ในข้อเสนอแนะที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:919 msgid "list all order–product relations (simple view)" @@ -727,7 +774,9 @@ msgstr "แสดงความสัมพันธ์ระหว่างค #: engine/core/docs/drf/viewsets.py:929 msgid "retrieve a single order–product relation (detailed view)" -msgstr "ดึงความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์เพียงรายการเดียว (มุมมองรายละเอียด)" +msgstr "" +"ดึงความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์เพียงรายการเดียว " +"(มุมมองรายละเอียด)" #: engine/core/docs/drf/viewsets.py:939 msgid "create a new order–product relation" @@ -747,7 +796,8 @@ msgstr "ลบความสัมพันธ์ระหว่างคำส #: engine/core/docs/drf/viewsets.py:979 msgid "add or remove feedback on an order–product relation" -msgstr "เพิ่มหรือลบความคิดเห็นเกี่ยวกับความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์" +msgstr "" +"เพิ่มหรือลบความคิดเห็นเกี่ยวกับความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์" #: engine/core/docs/drf/viewsets.py:996 msgid "list all brands (simple view)" @@ -775,7 +825,9 @@ msgstr "เขียนใหม่แบรนด์ที่มีอยู่ #: engine/core/docs/drf/viewsets.py:1039 msgid "rewrite some fields of an existing brand saving non-editables" -msgstr "เขียนข้อมูลในบางช่องของแบรนด์ที่มีอยู่ใหม่ โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนข้อมูลในบางช่องของแบรนด์ที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:1064 msgid "list all vendors (simple view)" @@ -799,7 +851,9 @@ msgstr "เขียนใหม่ผู้ขายที่มีอยู่ #: engine/core/docs/drf/viewsets.py:1102 msgid "rewrite some fields of an existing vendor saving non-editables" -msgstr "เขียนข้อมูลในบางช่องของซัพพลายเออร์ที่มีอยู่แล้วใหม่ โดยเก็บค่าที่ไม่สามารถแก้ไขได้ไว้" +msgstr "" +"เขียนข้อมูลในบางช่องของซัพพลายเออร์ที่มีอยู่แล้วใหม่ " +"โดยเก็บค่าที่ไม่สามารถแก้ไขได้ไว้" #: engine/core/docs/drf/viewsets.py:1112 msgid "list all product images (simple view)" @@ -823,7 +877,9 @@ msgstr "เขียนภาพสินค้าที่มีอยู่ใ #: engine/core/docs/drf/viewsets.py:1154 msgid "rewrite some fields of an existing product image saving non-editables" -msgstr "เขียนข้อมูลบางส่วนของภาพสินค้าที่มีอยู่ใหม่ โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนข้อมูลบางส่วนของภาพสินค้าที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:1165 msgid "list all promo codes (simple view)" @@ -847,7 +903,9 @@ msgstr "เขียนโค้ดโปรโมชั่นใหม่โด #: engine/core/docs/drf/viewsets.py:1203 msgid "rewrite some fields of an existing promo code saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของรหัสโปรโมชั่นที่มีอยู่ใหม่ โดยคงค่าที่ไม่สามารถแก้ไขได้ไว้" +msgstr "" +"เขียนฟิลด์บางส่วนของรหัสโปรโมชั่นที่มีอยู่ใหม่ " +"โดยคงค่าที่ไม่สามารถแก้ไขได้ไว้" #: engine/core/docs/drf/viewsets.py:1213 msgid "list all promotions (simple view)" @@ -871,7 +929,9 @@ msgstr "เขียนโปรโมชั่นใหม่โดยคงส #: engine/core/docs/drf/viewsets.py:1251 msgid "rewrite some fields of an existing promotion saving non-editables" -msgstr "เขียนข้อมูลบางส่วนของโปรโมชั่นที่มีอยู่ใหม่ โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนข้อมูลบางส่วนของโปรโมชั่นที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:1261 msgid "list all stocks (simple view)" @@ -895,7 +955,9 @@ msgstr "เขียนบันทึกสต็อกที่มีอยู #: engine/core/docs/drf/viewsets.py:1297 msgid "rewrite some fields of an existing stock record saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของบันทึกสต็อกที่มีอยู่ใหม่ โดยบันทึกข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนฟิลด์บางส่วนของบันทึกสต็อกที่มีอยู่ใหม่ " +"โดยบันทึกข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:1308 msgid "list all product tags (simple view)" @@ -919,7 +981,9 @@ msgstr "เขียนแท็กสินค้าที่มีอยู่ #: engine/core/docs/drf/viewsets.py:1350 msgid "rewrite some fields of an existing product tag saving non-editables" -msgstr "เขียนข้อมูลบางส่วนของแท็กสินค้าที่มีอยู่แล้วใหม่ โดยบันทึกข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนข้อมูลบางส่วนของแท็กสินค้าที่มีอยู่แล้วใหม่ " +"โดยบันทึกข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/elasticsearch/__init__.py:128 #: engine/core/elasticsearch/__init__.py:629 @@ -1097,7 +1161,8 @@ msgstr "ซื้อคำสั่ง" #: engine/core/graphene/mutations.py:220 engine/core/graphene/mutations.py:282 msgid "please provide either order_uuid or order_hr_id - mutually exclusive" -msgstr "กรุณาให้ order_uuid หรือ order_hr_id - ต้องเลือกอย่างใดอย่างหนึ่งเท่านั้น!" +msgstr "" +"กรุณาให้ order_uuid หรือ order_hr_id - ต้องเลือกอย่างใดอย่างหนึ่งเท่านั้น!" #: engine/core/graphene/mutations.py:249 engine/core/graphene/mutations.py:524 #: engine/core/graphene/mutations.py:573 engine/core/viewsets.py:753 @@ -1153,9 +1218,10 @@ msgstr "ซื้อคำสั่ง" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" -msgstr "กรุณาส่งแอตทริบิวต์ในรูปแบบสตริงที่จัดรูปแบบดังนี้ attr1=value1,attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" +msgstr "" +"กรุณาส่งแอตทริบิวต์ในรูปแบบสตริงที่จัดรูปแบบดังนี้ attr1=value1,attr2=value2" #: engine/core/graphene/mutations.py:580 msgid "add or delete a feedback for orderproduct" @@ -1174,9 +1240,9 @@ msgstr "ไม่พบคำสั่งซื้อสินค้า {order_p msgid "original address string provided by the user" msgstr "สตริงที่อยู่ต้นฉบับที่ผู้ใช้ให้มา" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1192,8 +1258,8 @@ msgstr "ElasticSearch - ทำงานได้อย่างยอดเย #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "คุณลักษณะ" @@ -1229,7 +1295,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "คุณลักษณะและคุณค่าใดที่สามารถใช้สำหรับกรองหมวดหมู่นี้ได้" #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "ราคาต่ำสุดและราคาสูงสุดสำหรับสินค้าในหมวดนี้ (หากมี)" #: engine/core/graphene/object_types.py:234 @@ -1266,7 +1333,7 @@ msgid "represents feedback from a user." msgstr "แสดงความคิดเห็นจากผู้ใช้" #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "การแจ้งเตือน" @@ -1274,7 +1341,7 @@ msgstr "การแจ้งเตือน" msgid "download url for this order product if applicable" msgstr "ดาวน์โหลด url สำหรับคำสั่งซื้อสินค้านี้ หากมี" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "ข้อเสนอแนะ" @@ -1282,7 +1349,7 @@ msgstr "ข้อเสนอแนะ" msgid "a list of order products in this order" msgstr "รายการสินค้าที่สั่งซื้อในคำสั่งซื้อนี้" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "ที่อยู่สำหรับออกใบแจ้งหนี้" @@ -1310,7 +1377,7 @@ msgstr "สินค้าทั้งหมดในคำสั่งซื้ msgid "transactions for this order" msgstr "รายการธุรกรรมสำหรับคำสั่งนี้" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "คำสั่ง" @@ -1327,7 +1394,7 @@ msgstr "รูปภาพของสินค้า" msgid "category" msgstr "หมวดหมู่" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "ข้อเสนอแนะ" @@ -1368,7 +1435,7 @@ msgstr "สินค้าที่มีจำหน่ายเฉพาะก msgid "discount price" msgstr "ราคาลดพิเศษ" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "ผลิตภัณฑ์" @@ -1380,7 +1447,7 @@ msgstr "รหัสส่งเสริมการขาย" msgid "products on sale" msgstr "สินค้าลดราคา" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "โปรโมชั่น" @@ -1388,7 +1455,7 @@ msgstr "โปรโมชั่น" msgid "vendor" msgstr "ผู้ขาย" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1396,11 +1463,11 @@ msgstr "ผู้ขาย" msgid "product" msgstr "สินค้า" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "สินค้าที่อยู่ในรายการต้องการ" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "รายการสิ่งที่ต้องการ" @@ -1498,7 +1565,8 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"แทนกลุ่มของแอตทริบิวต์ ซึ่งสามารถมีลำดับชั้นได้ คลาสนี้ใช้เพื่อจัดการและจัดระเบียบกลุ่มแอตทริบิวต์ " +"แทนกลุ่มของแอตทริบิวต์ ซึ่งสามารถมีลำดับชั้นได้ " +"คลาสนี้ใช้เพื่อจัดการและจัดระเบียบกลุ่มแอตทริบิวต์ " "กลุ่มแอตทริบิวต์สามารถมีกลุ่มแม่ได้ ทำให้เกิดโครงสร้างลำดับชั้น " "ซึ่งสามารถมีประโยชน์ในการจัดหมวดหมู่และจัดการแอตทริบิวต์ได้อย่างมีประสิทธิภาพมากขึ้นในระบบที่ซับซ้อน" @@ -1514,7 +1582,7 @@ msgstr "กลุ่มแอตทริบิวต์ของพ่อแม msgid "attribute group's name" msgstr "ชื่อกลุ่มคุณสมบัติ" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "กลุ่มคุณลักษณะ" @@ -1528,16 +1596,17 @@ msgid "" "also maintains additional metadata and constraints, making it suitable for " "use in systems that interact with third-party vendors." msgstr "" -"แทนหน่วยงานผู้ขายที่สามารถจัดเก็บข้อมูลเกี่ยวกับผู้ขายภายนอกและข้อกำหนดในการโต้ตอบของพวกเขาได้ " -"คลาสผู้ขายถูกใช้เพื่อกำหนดและจัดการข้อมูลที่เกี่ยวข้องกับผู้ขายภายนอก มันจัดเก็บชื่อผู้ขาย " -"รายละเอียดการตรวจสอบสิทธิ์ที่จำเป็นสำหรับการสื่อสาร " +"แทนหน่วยงานผู้ขายที่สามารถจัดเก็บข้อมูลเกี่ยวกับผู้ขายภายนอกและข้อกำหนดในการโต้ตอบของพวกเขาได้" +" คลาสผู้ขายถูกใช้เพื่อกำหนดและจัดการข้อมูลที่เกี่ยวข้องกับผู้ขายภายนอก " +"มันจัดเก็บชื่อผู้ขาย รายละเอียดการตรวจสอบสิทธิ์ที่จำเป็นสำหรับการสื่อสาร " "และเปอร์เซ็นต์การเพิ่มราคาที่นำไปใช้กับสินค้าที่นำมาจากผู้ขาย " "โมเดลนี้ยังรักษาข้อมูลเมตาเพิ่มเติมและข้อจำกัด " "ทำให้เหมาะสำหรับการใช้งานในระบบที่มีการโต้ตอบกับผู้ขายภายนอก" #: engine/core/models.py:122 msgid "stores credentials and endpoints required for vendor communication" -msgstr "เก็บรักษาข้อมูลประจำตัวและจุดสิ้นสุดที่จำเป็นสำหรับการสื่อสาร API ของผู้ขาย" +msgstr "" +"เก็บรักษาข้อมูลประจำตัวและจุดสิ้นสุดที่จำเป็นสำหรับการสื่อสาร API ของผู้ขาย" #: engine/core/models.py:124 msgid "authentication info" @@ -1584,8 +1653,8 @@ msgid "" "metadata customization for administrative purposes." msgstr "" "แทนแท็กผลิตภัณฑ์ที่ใช้ในการจัดประเภทหรือระบุผลิตภัณฑ์ คลาส ProductTag " -"ถูกออกแบบมาเพื่อระบุและจัดประเภทผลิตภัณฑ์อย่างเป็นเอกลักษณ์ผ่านการรวมกันของตัวระบุแท็กภายในและชื่อแสดงผลที่ใช้งานง่าย " -"รองรับการดำเนินการที่ส่งออกผ่าน mixins " +"ถูกออกแบบมาเพื่อระบุและจัดประเภทผลิตภัณฑ์อย่างเป็นเอกลักษณ์ผ่านการรวมกันของตัวระบุแท็กภายในและชื่อแสดงผลที่ใช้งานง่าย" +" รองรับการดำเนินการที่ส่งออกผ่าน mixins " "และให้การปรับแต่งเมตาดาต้าสำหรับวัตถุประสงค์ในการบริหารจัดการ" #: engine/core/models.py:204 engine/core/models.py:235 @@ -1638,13 +1707,13 @@ msgid "" "hierarchy of categories, as well as assign attributes like images, tags, or " "priority." msgstr "" -"แทนถึงเอนทิตีประเภทเพื่อจัดระเบียบและจัดกลุ่มรายการที่เกี่ยวข้องในโครงสร้างลำดับชั้น " -"หมวดหมู่สามารถมีความสัมพันธ์ลำดับชั้นกับหมวดหมู่อื่น ๆ ได้ ซึ่งสนับสนุนความสัมพันธ์แบบพ่อแม่-" -"ลูกคลาสนี้ประกอบด้วยฟิลด์สำหรับข้อมูลเมตาและตัวแทนภาพ " -"ซึ่งทำหน้าที่เป็นพื้นฐานสำหรับคุณสมบัติที่เกี่ยวข้องกับหมวดหมู่ " -"คลาสนี้มักใช้เพื่อกำหนดและจัดการหมวดหมู่สินค้าหรือการจัดกลุ่มที่คล้ายกันภายในแอปพลิเคชัน " -"ช่วยให้ผู้ใช้หรือผู้ดูแลระบบสามารถระบุชื่อ คำอธิบาย และลำดับชั้นของหมวดหมู่ " -"รวมถึงกำหนดคุณลักษณะต่างๆ เช่น รูปภาพ แท็ก หรือความสำคัญ" +"แทนถึงเอนทิตีประเภทเพื่อจัดระเบียบและจัดกลุ่มรายการที่เกี่ยวข้องในโครงสร้างลำดับชั้น" +" หมวดหมู่สามารถมีความสัมพันธ์ลำดับชั้นกับหมวดหมู่อื่น ๆ ได้ " +"ซึ่งสนับสนุนความสัมพันธ์แบบพ่อแม่-ลูกคลาสนี้ประกอบด้วยฟิลด์สำหรับข้อมูลเมตาและตัวแทนภาพ" +" ซึ่งทำหน้าที่เป็นพื้นฐานสำหรับคุณสมบัติที่เกี่ยวข้องกับหมวดหมู่ " +"คลาสนี้มักใช้เพื่อกำหนดและจัดการหมวดหมู่สินค้าหรือการจัดกลุ่มที่คล้ายกันภายในแอปพลิเคชัน" +" ช่วยให้ผู้ใช้หรือผู้ดูแลระบบสามารถระบุชื่อ คำอธิบาย และลำดับชั้นของหมวดหมู่" +" รวมถึงกำหนดคุณลักษณะต่างๆ เช่น รูปภาพ แท็ก หรือความสำคัญ" #: engine/core/models.py:269 msgid "upload an image representing this category" @@ -1695,10 +1764,11 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"แทนวัตถุแบรนด์ในระบบ คลาสนี้จัดการข้อมูลและคุณลักษณะที่เกี่ยวข้องกับแบรนด์ รวมถึงชื่อ โลโก้ " -"คำอธิบาย หมวดหมู่ที่เกี่ยวข้อง สลักเฉพาะ และลำดับความสำคัญ " +"แทนวัตถุแบรนด์ในระบบ คลาสนี้จัดการข้อมูลและคุณลักษณะที่เกี่ยวข้องกับแบรนด์ " +"รวมถึงชื่อ โลโก้ คำอธิบาย หมวดหมู่ที่เกี่ยวข้อง สลักเฉพาะ และลำดับความสำคัญ " "ช่วยให้สามารถจัดระเบียบและแสดงข้อมูลที่เกี่ยวข้องกับแบรนด์ภายในแอปพลิเคชันได้" #: engine/core/models.py:456 @@ -1743,18 +1813,19 @@ msgstr "หมวดหมู่" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"แสดงถึงสต็อกของสินค้าที่จัดการในระบบ คลาสนี้ให้รายละเอียดเกี่ยวกับความสัมพันธ์ระหว่างผู้จำหน่าย, " -"สินค้า, และข้อมูลสต็อกของพวกเขา รวมถึงคุณสมบัติที่เกี่ยวข้องกับสินค้าคงคลัง เช่น ราคา, ราคาซื้อ, " -"จำนวน, รหัสสินค้า (SKU), และสินทรัพย์ดิจิทัล " -"เป็นส่วนหนึ่งของระบบการจัดการสินค้าคงคลังเพื่อให้สามารถติดตามและประเมินสินค้าที่มีจากผู้จำหน่ายต่างๆ " -"ได้" +"แสดงถึงสต็อกของสินค้าที่จัดการในระบบ " +"คลาสนี้ให้รายละเอียดเกี่ยวกับความสัมพันธ์ระหว่างผู้จำหน่าย, สินค้า, " +"และข้อมูลสต็อกของพวกเขา รวมถึงคุณสมบัติที่เกี่ยวข้องกับสินค้าคงคลัง เช่น " +"ราคา, ราคาซื้อ, จำนวน, รหัสสินค้า (SKU), และสินทรัพย์ดิจิทัล " +"เป็นส่วนหนึ่งของระบบการจัดการสินค้าคงคลังเพื่อให้สามารถติดตามและประเมินสินค้าที่มีจากผู้จำหน่ายต่างๆ" +" ได้" #: engine/core/models.py:528 msgid "the vendor supplying this product stock" @@ -1776,8 +1847,8 @@ msgstr "ราคาขาย" msgid "the product associated with this stock entry" msgstr "สินค้าที่เกี่ยวข้องกับรายการสินค้าคงคลังนี้" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "ผลิตภัณฑ์ที่เกี่ยวข้อง" @@ -1832,11 +1903,13 @@ msgid "" "properties to improve performance. It is used to define and manipulate " "product data and its associated information within an application." msgstr "" -"แสดงถึงผลิตภัณฑ์ที่มีคุณลักษณะต่างๆ เช่น หมวดหมู่, แบรนด์, แท็ก, สถานะดิจิทัล, ชื่อ, คำอธิบาย, " -"หมายเลขชิ้นส่วน, และ slug ให้คุณสมบัติประโยชน์ที่เกี่ยวข้องเพื่อดึงคะแนน, จำนวนความคิดเห็น, " -"ราคา, จำนวนสินค้า, และยอดสั่งซื้อทั้งหมด " +"แสดงถึงผลิตภัณฑ์ที่มีคุณลักษณะต่างๆ เช่น หมวดหมู่, แบรนด์, แท็ก, " +"สถานะดิจิทัล, ชื่อ, คำอธิบาย, หมายเลขชิ้นส่วน, และ slug " +"ให้คุณสมบัติประโยชน์ที่เกี่ยวข้องเพื่อดึงคะแนน, จำนวนความคิดเห็น, ราคา, " +"จำนวนสินค้า, และยอดสั่งซื้อทั้งหมด " "ออกแบบมาเพื่อใช้ในระบบที่จัดการอีคอมเมิร์ซหรือการจัดการสินค้าคงคลัง " -"คลาสนี้โต้ตอบกับโมเดลที่เกี่ยวข้อง (เช่น หมวดหมู่, แบรนด์, และแท็กผลิตภัณฑ์) " +"คลาสนี้โต้ตอบกับโมเดลที่เกี่ยวข้อง (เช่น หมวดหมู่, แบรนด์, และแท็กผลิตภัณฑ์)" +" " "และจัดการการแคชสำหรับคุณสมบัติที่เข้าถึงบ่อยเพื่อปรับปรุงประสิทธิภาพใช้เพื่อกำหนดและจัดการข้อมูลผลิตภัณฑ์และข้อมูลที่เกี่ยวข้องภายในแอปพลิเคชัน" #: engine/core/models.py:595 @@ -1875,7 +1948,7 @@ msgstr "ระบุชื่อที่ชัดเจนสำหรับผ msgid "product name" msgstr "ชื่อสินค้า" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "เพิ่มคำอธิบายรายละเอียดของสินค้า" @@ -1895,318 +1968,333 @@ msgstr "หมายเลขชิ้นส่วน" msgid "stock keeping unit for this product" msgstr "หน่วยเก็บสินค้าสำหรับสินค้านี้" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "ว่าจะส่งออกสินค้านี้ไปยังตลาดหรือไม่" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "ส่งออกสู่ตลาดออนไลน์" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "แทนคุณสมบัติในระบบ. คลาสนี้ใช้เพื่อกำหนดและจัดการคุณสมบัติ " -"ซึ่งเป็นข้อมูลที่สามารถปรับแต่งได้ซึ่งสามารถเชื่อมโยงกับเอนทิตีอื่น ๆ ได้. คุณสมบัติมีหมวดหมู่, กลุ่ม, " -"ประเภทค่า, และชื่อที่เกี่ยวข้อง. แบบจำลองรองรับหลายประเภทของค่า รวมถึงสตริง, จำนวนเต็ม, " -"จำนวนทศนิยม, บูลีน, อาร์เรย์, และออบเจ็กต์. " +"ซึ่งเป็นข้อมูลที่สามารถปรับแต่งได้ซึ่งสามารถเชื่อมโยงกับเอนทิตีอื่น ๆ ได้. " +"คุณสมบัติมีหมวดหมู่, กลุ่ม, ประเภทค่า, และชื่อที่เกี่ยวข้อง. " +"แบบจำลองรองรับหลายประเภทของค่า รวมถึงสตริง, จำนวนเต็ม, จำนวนทศนิยม, บูลีน, " +"อาร์เรย์, และออบเจ็กต์. " "ซึ่งช่วยให้สามารถจัดโครงสร้างข้อมูลได้ไดนามิกและยืดหยุ่น." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "กลุ่มของแอตทริบิวต์นี้" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "สตริง" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "ความซื่อสัตย์" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "ลอย" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "บูลีน" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "อาร์เรย์" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "วัตถุ" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "ประเภทของค่าของแอตทริบิวต์" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "ประเภทของค่า" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "ชื่อของแอตทริบิวต์นี้" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "ชื่อของแอตทริบิวต์" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "สามารถกรองได้" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "กำหนดว่าแอตทริบิวต์นี้สามารถใช้สำหรับการกรองหรือไม่" -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "คุณสมบัติ" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"แทนค่าเฉพาะสำหรับคุณลักษณะที่เชื่อมโยงกับผลิตภัณฑ์ มันเชื่อมโยง 'คุณลักษณะ' กับ 'ค่า' ที่ไม่ซ้ำกัน " +"แทนค่าเฉพาะสำหรับคุณลักษณะที่เชื่อมโยงกับผลิตภัณฑ์ มันเชื่อมโยง 'คุณลักษณะ' " +"กับ 'ค่า' ที่ไม่ซ้ำกัน " "ทำให้การจัดระเบียบและการแสดงลักษณะของผลิตภัณฑ์เป็นไปอย่างมีประสิทธิภาพและยืดหยุ่นมากขึ้น" -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "คุณลักษณะของค่านี้" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "ผลิตภัณฑ์เฉพาะที่เกี่ยวข้องกับค่าของแอตทริบิวต์นี้" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "ค่าเฉพาะสำหรับคุณสมบัตินี้" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" -"แสดงภาพสินค้าที่เกี่ยวข้องกับสินค้าในระบบ. คลาสนี้ออกแบบมาเพื่อจัดการภาพสำหรับสินค้า " +"แสดงภาพสินค้าที่เกี่ยวข้องกับสินค้าในระบบ. " +"คลาสนี้ออกแบบมาเพื่อจัดการภาพสำหรับสินค้า " "รวมถึงฟังก์ชันสำหรับการอัปโหลดไฟล์ภาพ, การเชื่อมโยงกับสินค้าเฉพาะ, " -"และการกำหนดลำดับการแสดงผล. นอกจากนี้ยังมีคุณสมบัติการเข้าถึงสำหรับผู้ใช้ที่มีความต้องการพิเศษ " +"และการกำหนดลำดับการแสดงผล. " +"นอกจากนี้ยังมีคุณสมบัติการเข้าถึงสำหรับผู้ใช้ที่มีความต้องการพิเศษ " "โดยให้ข้อความทางเลือกสำหรับภาพ." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "ให้ข้อความทางเลือกสำหรับภาพเพื่อการเข้าถึง" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "ข้อความแสดงแทนภาพ" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "อัปโหลดไฟล์รูปภาพสำหรับสินค้านี้" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "รูปภาพสินค้า" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "กำหนดลำดับการแสดงผลของภาพ" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "ลำดับความสำคัญในการแสดงผล" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "สินค้าที่ภาพนี้แทน" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "รูปภาพสินค้า" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "แสดงถึงแคมเปญส่งเสริมการขายสำหรับสินค้าที่มีส่วนลด. " -"คลาสนี้ใช้เพื่อกำหนดและจัดการแคมเปญส่งเสริมการขายที่มอบส่วนลดเป็นเปอร์เซ็นต์สำหรับสินค้า. " -"คลาสนี้ประกอบด้วยคุณสมบัติสำหรับการตั้งค่าอัตราส่วนลด, ให้รายละเอียดเกี่ยวกับโปรโมชั่น, " -"และเชื่อมโยงกับสินค้าที่เกี่ยวข้อง. " +"คลาสนี้ใช้เพื่อกำหนดและจัดการแคมเปญส่งเสริมการขายที่มอบส่วนลดเป็นเปอร์เซ็นต์สำหรับสินค้า." +" คลาสนี้ประกอบด้วยคุณสมบัติสำหรับการตั้งค่าอัตราส่วนลด, " +"ให้รายละเอียดเกี่ยวกับโปรโมชั่น, และเชื่อมโยงกับสินค้าที่เกี่ยวข้อง. " "คลาสนี้ผสานการทำงานกับแคตตาล็อกสินค้าเพื่อกำหนดสินค้าที่ได้รับผลกระทบในแคมเปญ." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "เปอร์เซ็นต์ส่วนลดสำหรับสินค้าที่เลือก" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "เปอร์เซ็นต์ส่วนลด" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "กรุณาตั้งชื่อที่ไม่ซ้ำกันสำหรับการส่งเสริมการขายนี้" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "ชื่อโปรโมชั่น" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "รายละเอียดโปรโมชั่น" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "เลือกผลิตภัณฑ์ที่รวมอยู่ในโปรโมชั่นนี้" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "สินค้าที่รวมอยู่" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "โปรโมชั่น" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"แสดงรายการสินค้าที่ผู้ใช้ต้องการเก็บไว้เพื่อจัดการและค้นหาสินค้าที่ต้องการในอนาคต " -"คลาสนี้ให้บริการฟังก์ชันสำหรับการจัดการคอลเลกชันของสินค้า " -"ซึ่งรวมถึงการเพิ่มและลบสินค้าออกจากคอลเลกชัน ตลอดจนการเพิ่มและลบสินค้าหลายรายการพร้อมกัน" +"แสดงรายการสินค้าที่ผู้ใช้ต้องการเก็บไว้เพื่อจัดการและค้นหาสินค้าที่ต้องการในอนาคต" +" คลาสนี้ให้บริการฟังก์ชันสำหรับการจัดการคอลเลกชันของสินค้า " +"ซึ่งรวมถึงการเพิ่มและลบสินค้าออกจากคอลเลกชัน " +"ตลอดจนการเพิ่มและลบสินค้าหลายรายการพร้อมกัน" -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "สินค้าที่ผู้ใช้ได้ทำเครื่องหมายว่าต้องการ" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "ผู้ใช้ที่เป็นเจ้าของรายการความปรารถนา" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "เจ้าของรายการที่อยากได้" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "รายการสิ่งที่ต้องการ" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "แทนเอกสารบันทึกที่เกี่ยวข้องกับผลิตภัณฑ์. " "คลาสนี้ใช้เพื่อเก็บข้อมูลเกี่ยวกับเอกสารที่เกี่ยวข้องกับผลิตภัณฑ์เฉพาะ " "รวมถึงการอัปโหลดไฟล์และข้อมูลเมตาของไฟล์. " -"คลาสนี้มีเมธอดและคุณสมบัติเพื่อจัดการกับประเภทไฟล์และเส้นทางจัดเก็บสำหรับไฟล์เอกสาร. " -"คลาสนี้ขยายฟังก์ชันการทำงานจากมิกซ์อินเฉพาะ และให้คุณสมบัติเพิ่มเติมตามความต้องการ." +"คลาสนี้มีเมธอดและคุณสมบัติเพื่อจัดการกับประเภทไฟล์และเส้นทางจัดเก็บสำหรับไฟล์เอกสาร." +" คลาสนี้ขยายฟังก์ชันการทำงานจากมิกซ์อินเฉพาะ " +"และให้คุณสมบัติเพิ่มเติมตามความต้องการ." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "สารคดี" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "สารคดี" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "ยังไม่ได้รับการแก้ไข" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "แทนที่หน่วยงานที่อยู่ซึ่งรวมถึงรายละเอียดตำแหน่งและความสัมพันธ์กับผู้ใช้ " "ให้ฟังก์ชันสำหรับการจัดเก็บข้อมูลทางภูมิศาสตร์และที่อยู่ " "รวมถึงการผสานรวมกับบริการการเข้ารหัสทางภูมิศาสตร์ " -"คลาสนี้ถูกออกแบบมาเพื่อจัดเก็บข้อมูลที่อยู่โดยละเอียด รวมถึงองค์ประกอบเช่น ถนน เมือง ภูมิภาค " -"ประเทศ และตำแหน่งทางภูมิศาสตร์ (ลองจิจูดและละติจูด) รองรับการผสานรวมกับ API " -"การเข้ารหัสทางภูมิศาสตร์ ทำให้สามารถจัดเก็บการตอบสนองของ API " -"ดิบเพื่อการประมวลผลหรือตรวจสอบเพิ่มเติมได้คลาสนี้ยังอนุญาตให้เชื่อมโยงที่อยู่กับผู้ใช้ได้ " -"ซึ่งช่วยให้การจัดการข้อมูลส่วนบุคคลเป็นไปอย่างสะดวก" +"คลาสนี้ถูกออกแบบมาเพื่อจัดเก็บข้อมูลที่อยู่โดยละเอียด รวมถึงองค์ประกอบเช่น " +"ถนน เมือง ภูมิภาค ประเทศ และตำแหน่งทางภูมิศาสตร์ (ลองจิจูดและละติจูด) " +"รองรับการผสานรวมกับ API การเข้ารหัสทางภูมิศาสตร์ " +"ทำให้สามารถจัดเก็บการตอบสนองของ API " +"ดิบเพื่อการประมวลผลหรือตรวจสอบเพิ่มเติมได้คลาสนี้ยังอนุญาตให้เชื่อมโยงที่อยู่กับผู้ใช้ได้" +" ซึ่งช่วยให้การจัดการข้อมูลส่วนบุคคลเป็นไปอย่างสะดวก" -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "ที่อยู่สำหรับลูกค้า" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "บรรทัดที่อยู่" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "ถนน" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "เขต" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "เมือง" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "ภูมิภาค" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "รหัสไปรษณีย์" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "ประเทศ" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "จุดพิกัดภูมิศาสตร์ (ลองจิจูด, ละติจูด)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "การตอบกลับ JSON แบบเต็มจากตัวแปลงที่อยู่ทางภูมิศาสตร์สำหรับที่อยู่นี้" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "เก็บคำตอบ JSON จากบริการการแปลงที่อยู่ทางภูมิศาสตร์" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "ที่อยู่" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "ที่อยู่" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2215,78 +2303,79 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"แสดงรหัสโปรโมชั่นที่สามารถใช้เพื่อรับส่วนลด การจัดการความถูกต้อง ประเภทของส่วนลด " -"และการใช้งาน คลาส PromoCode จัดเก็บรายละเอียดเกี่ยวกับรหัสโปรโมชั่น รวมถึงตัวระบุที่ไม่ซ้ำกัน " -"คุณสมบัติของส่วนลด (จำนวนหรือเปอร์เซ็นต์) ระยะเวลาการใช้งาน ผู้ใช้ที่เกี่ยวข้อง (ถ้ามี) " -"และสถานะการใช้งาน " -"รวมถึงฟังก์ชันการทำงานเพื่อตรวจสอบและใช้รหัสโปรโมชั่นกับคำสั่งซื้อในขณะที่ตรวจสอบให้แน่ใจว่าข้อจำกัดต่างๆ " -"ได้รับการปฏิบัติตาม" +"แสดงรหัสโปรโมชั่นที่สามารถใช้เพื่อรับส่วนลด การจัดการความถูกต้อง " +"ประเภทของส่วนลด และการใช้งาน คลาส PromoCode " +"จัดเก็บรายละเอียดเกี่ยวกับรหัสโปรโมชั่น รวมถึงตัวระบุที่ไม่ซ้ำกัน " +"คุณสมบัติของส่วนลด (จำนวนหรือเปอร์เซ็นต์) ระยะเวลาการใช้งาน " +"ผู้ใช้ที่เกี่ยวข้อง (ถ้ามี) และสถานะการใช้งาน " +"รวมถึงฟังก์ชันการทำงานเพื่อตรวจสอบและใช้รหัสโปรโมชั่นกับคำสั่งซื้อในขณะที่ตรวจสอบให้แน่ใจว่าข้อจำกัดต่างๆ" +" ได้รับการปฏิบัติตาม" -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "รหัสเฉพาะที่ผู้ใช้ใช้เพื่อแลกรับส่วนลด" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "รหัสโปรโมชั่น" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "จำนวนส่วนลดคงที่ที่ใช้หากไม่ได้ใช้เปอร์เซ็นต์" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "จำนวนส่วนลดคงที่" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "ส่วนลดเป็นเปอร์เซ็นต์ที่ใช้เมื่อไม่ได้ใช้จำนวนเงินคงที่" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "เปอร์เซ็นต์ส่วนลด" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "เวลาที่โค้ดโปรโมชั่นหมดอายุ" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "เวลาสิ้นสุดความถูกต้อง" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "เวลาที่ตราไว้ซึ่งรหัสโปรโมชั่นนี้ใช้ได้" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "เวลาเริ่มต้นความถูกต้อง" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "เวลาที่ตราประทับเมื่อใช้รหัสโปรโมชั่น, ว่างเปล่าหากยังไม่ได้ใช้" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "เวลาการใช้งาน" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "ผู้ใช้ที่ได้รับมอบหมายให้ใช้รหัสโปรโมชั่นนี้ หากมี" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "ผู้ใช้ที่ได้รับมอบหมาย" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "รหัสโปรโมชั่น" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "รหัสส่งเสริมการขาย" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2294,173 +2383,181 @@ msgstr "" "ควรกำหนดประเภทส่วนลดเพียงประเภทเดียว (จำนวนเงินหรือเปอร์เซ็นต์) เท่านั้น " "ไม่ควรกำหนดทั้งสองประเภทหรือไม่ได้กำหนดเลย" -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "รหัสโปรโมชั่นถูกใช้ไปแล้ว" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "ประเภทส่วนลดไม่ถูกต้องสำหรับรหัสโปรโมชั่น {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" -"แทนคำสั่งซื้อที่ผู้ใช้ได้ทำการสั่งซื้อไว้ คลาสนี้จำลองคำสั่งซื้อภายในแอปพลิเคชัน รวมถึงคุณสมบัติต่าง ๆ " -"เช่น ข้อมูลการเรียกเก็บเงิน ข้อมูลการจัดส่ง สถานะ ผู้ใช้ที่เกี่ยวข้อง การแจ้งเตือน " -"และการดำเนินการที่เกี่ยวข้อง คำสั่งซื้อสามารถมีสินค้าที่เกี่ยวข้องได้ โปรโมชั่นสามารถนำมาใช้ได้ " -"ที่อยู่สามารถตั้งค่าได้ และรายละเอียดการจัดส่งหรือการเรียกเก็บเงินสามารถอัปเดตได้เช่นกัน " -"นอกจากนี้ ฟังก์ชันการทำงานยังรองรับการจัดการสินค้าในวงจรชีวิตของคำสั่งซื้อ" +"แทนคำสั่งซื้อที่ผู้ใช้ได้ทำการสั่งซื้อไว้ " +"คลาสนี้จำลองคำสั่งซื้อภายในแอปพลิเคชัน รวมถึงคุณสมบัติต่าง ๆ เช่น " +"ข้อมูลการเรียกเก็บเงิน ข้อมูลการจัดส่ง สถานะ ผู้ใช้ที่เกี่ยวข้อง " +"การแจ้งเตือน และการดำเนินการที่เกี่ยวข้อง " +"คำสั่งซื้อสามารถมีสินค้าที่เกี่ยวข้องได้ โปรโมชั่นสามารถนำมาใช้ได้ " +"ที่อยู่สามารถตั้งค่าได้ " +"และรายละเอียดการจัดส่งหรือการเรียกเก็บเงินสามารถอัปเดตได้เช่นกัน นอกจากนี้ " +"ฟังก์ชันการทำงานยังรองรับการจัดการสินค้าในวงจรชีวิตของคำสั่งซื้อ" -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "ที่อยู่สำหรับเรียกเก็บเงินที่ใช้สำหรับคำสั่งซื้อนี้" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "รหัสโปรโมชั่นเสริมใช้กับคำสั่งซื้อนี้แล้ว" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "ใช้รหัสโปรโมชั่น" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "ที่อยู่สำหรับจัดส่งที่ใช้สำหรับคำสั่งซื้อนี้" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "ที่อยู่สำหรับจัดส่ง" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "สถานะปัจจุบันของคำสั่งซื้อในวงจรชีวิต" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "สถานะการสั่งซื้อ" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "โครงสร้าง JSON ของการแจ้งเตือนที่จะแสดงให้ผู้ใช้เห็น ใน UI " "ของผู้ดูแลระบบจะใช้การแสดงผลแบบตาราง" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "การแสดงผล JSON ของคุณลักษณะคำสั่งซื้อสำหรับคำสั่งซื้อนี้" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "ผู้ใช้ที่ทำการสั่งซื้อ" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "ผู้ใช้" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "เวลาที่คำสั่งซื้อได้รับการยืนยัน" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "ซื้อเวลา" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "ตัวระบุที่มนุษย์อ่านได้สำหรับคำสั่ง" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "รหัสที่สามารถอ่านได้โดยมนุษย์" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "คำสั่ง" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" -msgstr "ผู้ใช้ต้องมีคำสั่งซื้อที่รอดำเนินการเพียงหนึ่งรายการเท่านั้นในแต่ละครั้ง!" +msgstr "" +"ผู้ใช้ต้องมีคำสั่งซื้อที่รอดำเนินการเพียงหนึ่งรายการเท่านั้นในแต่ละครั้ง!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" -msgstr "คุณไม่สามารถเพิ่มสินค้าในคำสั่งซื้อที่ไม่ใช่คำสั่งซื้อที่รอดำเนินการได้" +msgstr "" +"คุณไม่สามารถเพิ่มสินค้าในคำสั่งซื้อที่ไม่ใช่คำสั่งซื้อที่รอดำเนินการได้" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "คุณไม่สามารถเพิ่มสินค้าที่ไม่ใช้งานในคำสั่งซื้อได้" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "คุณไม่สามารถเพิ่มสินค้าได้มากกว่าที่มีในสต็อก" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" -msgstr "คุณไม่สามารถลบสินค้าออกจากคำสั่งซื้อที่ไม่ใช่คำสั่งซื้อที่อยู่ในสถานะรอดำเนินการได้" +msgstr "" +"คุณไม่สามารถลบสินค้าออกจากคำสั่งซื้อที่ไม่ใช่คำสั่งซื้อที่อยู่ในสถานะรอดำเนินการได้" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} ไม่มีอยู่จริงกับคำค้นหา <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "รหัสโปรโมชั่นไม่มีอยู่" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" -msgstr "คุณสามารถซื้อได้เฉพาะสินค้าทางกายภาพที่มีที่อยู่สำหรับจัดส่งระบุไว้เท่านั้น!" +msgstr "" +"คุณสามารถซื้อได้เฉพาะสินค้าทางกายภาพที่มีที่อยู่สำหรับจัดส่งระบุไว้เท่านั้น!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "ไม่มีที่อยู่" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "ขณะนี้คุณไม่สามารถซื้อได้ กรุณาลองใหม่อีกครั้งในอีกไม่กี่นาที" -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "ค่าแรงบังคับไม่ถูกต้อง" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "คุณไม่สามารถซื้อคำสั่งซื้อที่ว่างเปล่าได้!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "คุณไม่สามารถซื้อคำสั่งซื้อได้หากไม่มีผู้ใช้!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "ผู้ใช้ที่ไม่มียอดคงเหลือไม่สามารถซื้อด้วยยอดคงเหลือได้!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "เงินไม่เพียงพอในการทำรายการให้เสร็จสมบูรณ์" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -"คุณไม่สามารถซื้อได้หากไม่มีการลงทะเบียน กรุณาให้ข้อมูลต่อไปนี้: ชื่อลูกค้า, อีเมลลูกค้า, " -"หมายเลขโทรศัพท์ลูกค้า" +"คุณไม่สามารถซื้อได้หากไม่มีการลงทะเบียน กรุณาให้ข้อมูลต่อไปนี้: ชื่อลูกค้า, " +"อีเมลลูกค้า, หมายเลขโทรศัพท์ลูกค้า" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" -msgstr "วิธีการชำระเงินไม่ถูกต้อง: {payment_method} จาก {available_payment_methods}!" +msgstr "" +"วิธีการชำระเงินไม่ถูกต้อง: {payment_method} จาก {available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2469,36 +2566,37 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "จัดการข้อเสนอแนะของผู้ใช้สำหรับผลิตภัณฑ์ " -"คลาสนี้ถูกออกแบบมาเพื่อรวบรวมและจัดเก็บข้อมูลข้อเสนอแนะของผู้ใช้สำหรับผลิตภัณฑ์เฉพาะที่พวกเขาได้ซื้อ " -"ประกอบด้วยแอตทริบิวต์สำหรับจัดเก็บความคิดเห็นของผู้ใช้ การอ้างอิงถึงผลิตภัณฑ์ที่เกี่ยวข้องในคำสั่งซื้อ " -"และคะแนนที่ผู้ใช้กำหนด " +"คลาสนี้ถูกออกแบบมาเพื่อรวบรวมและจัดเก็บข้อมูลข้อเสนอแนะของผู้ใช้สำหรับผลิตภัณฑ์เฉพาะที่พวกเขาได้ซื้อ" +" ประกอบด้วยแอตทริบิวต์สำหรับจัดเก็บความคิดเห็นของผู้ใช้ " +"การอ้างอิงถึงผลิตภัณฑ์ที่เกี่ยวข้องในคำสั่งซื้อ และคะแนนที่ผู้ใช้กำหนด " "คลาสนี้ใช้ฟิลด์ในฐานข้อมูลเพื่อสร้างแบบจำลองและจัดการข้อมูลข้อเสนอแนะอย่างมีประสิทธิภาพ" -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "ความคิดเห็นที่ผู้ใช้ให้ไว้เกี่ยวกับประสบการณ์ของพวกเขาต่อผลิตภัณฑ์" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "ความคิดเห็นจากผู้ตอบแบบสอบถาม" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "อ้างอิงถึงผลิตภัณฑ์เฉพาะในคำสั่งซื้อที่ความคิดเห็นนี้เกี่ยวข้อง" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "สินค้าที่เกี่ยวข้อง" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "คะแนนที่ผู้ใช้กำหนดให้กับผลิตภัณฑ์" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "การให้คะแนนสินค้า" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2510,143 +2608,146 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"แสดงผลิตภัณฑ์ที่เกี่ยวข้องกับคำสั่งซื้อและคุณลักษณะของผลิตภัณฑ์โมเดล OrderProduct " -"ดูแลข้อมูลเกี่ยวกับสินค้าที่เป็นส่วนหนึ่งของคำสั่งซื้อ รวมถึงรายละเอียดเช่น ราคาซื้อ จำนวน " -"คุณสมบัติของสินค้า และสถานะ โมเดลนี้จัดการการแจ้งเตือนสำหรับผู้ใช้และผู้ดูแลระบบ " +"แสดงผลิตภัณฑ์ที่เกี่ยวข้องกับคำสั่งซื้อและคุณลักษณะของผลิตภัณฑ์โมเดล " +"OrderProduct ดูแลข้อมูลเกี่ยวกับสินค้าที่เป็นส่วนหนึ่งของคำสั่งซื้อ " +"รวมถึงรายละเอียดเช่น ราคาซื้อ จำนวน คุณสมบัติของสินค้า และสถานะ " +"โมเดลนี้จัดการการแจ้งเตือนสำหรับผู้ใช้และผู้ดูแลระบบ " "และจัดการการดำเนินการเช่น การคืนสินค้าคงเหลือหรือการเพิ่มความคิดเห็น " -"โมเดลนี้ยังมีวิธีการและคุณสมบัติที่สนับสนุนตรรกะทางธุรกิจ เช่น การคำนวณราคารวมหรือการสร้าง URL " -"สำหรับดาวน์โหลดสินค้าดิจิทัล โมเดลนี้ผสานรวมกับโมเดล Order และ Product " +"โมเดลนี้ยังมีวิธีการและคุณสมบัติที่สนับสนุนตรรกะทางธุรกิจ เช่น " +"การคำนวณราคารวมหรือการสร้าง URL สำหรับดาวน์โหลดสินค้าดิจิทัล " +"โมเดลนี้ผสานรวมกับโมเดล Order และ Product " "และเก็บการอ้างอิงถึงโมเดลเหล่านี้ไว้" -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "ราคาที่ลูกค้าชำระสำหรับสินค้านี้ ณ เวลาที่ซื้อ" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "ราคาซื้อ ณ เวลาที่สั่งซื้อ" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "ความคิดเห็นภายในสำหรับผู้ดูแลระบบเกี่ยวกับสินค้าที่สั่งซื้อ" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "ความคิดเห็นภายใน" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "การแจ้งเตือนผู้ใช้" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "การแสดงผล JSON ของคุณลักษณะของรายการนี้" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "จัดเรียงคุณลักษณะของสินค้า" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "การอ้างอิงถึงคำสั่งซื้อหลักที่มีสินค้านี้อยู่" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "ลำดับของผู้ปกครอง" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "สินค้าเฉพาะที่เกี่ยวข้องกับรายการคำสั่งซื้อนี้" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "ปริมาณของสินค้าชนิดนี้ในคำสั่งซื้อ" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "จำนวนสินค้า" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "สถานะปัจจุบันของสินค้านี้ในคำสั่งซื้อ" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "สถานะสายผลิตภัณฑ์" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Orderproduct ต้องมีการสั่งซื้อที่เกี่ยวข้อง!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "ระบุการกระทำที่ไม่ถูกต้องสำหรับข้อเสนอแนะ: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "คุณไม่สามารถให้ข้อเสนอแนะเกี่ยวกับคำสั่งซื้อที่ไม่ได้รับ" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "ชื่อ" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "URL ของการผสานรวม" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "ข้อมูลประจำตัวสำหรับการยืนยันตัวตน" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "คุณสามารถมีผู้ให้บริการ CRM เริ่มต้นได้เพียงรายเดียวเท่านั้น" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "ระบบบริหารความสัมพันธ์ลูกค้า" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "ระบบบริหารความสัมพันธ์ลูกค้า" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "ลิงก์ CRM ของคำสั่ง" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "ลิงก์ CRM ของคำสั่งซื้อ" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" -"แสดงถึงฟังก์ชันการดาวน์โหลดสำหรับสินทรัพย์ดิจิทัลที่เกี่ยวข้องกับคำสั่งซื้อ คลาส " -"DigitalAssetDownload " -"ให้ความสามารถในการจัดการและเข้าถึงการดาวน์โหลดที่เกี่ยวข้องกับผลิตภัณฑ์ในคำสั่งซื้อ " -"มันเก็บข้อมูลเกี่ยวกับผลิตภัณฑ์ในคำสั่งซื้อที่เกี่ยวข้อง จำนวนการดาวน์โหลด " +"แสดงถึงฟังก์ชันการดาวน์โหลดสำหรับสินทรัพย์ดิจิทัลที่เกี่ยวข้องกับคำสั่งซื้อ " +"คลาส DigitalAssetDownload " +"ให้ความสามารถในการจัดการและเข้าถึงการดาวน์โหลดที่เกี่ยวข้องกับผลิตภัณฑ์ในคำสั่งซื้อ" +" มันเก็บข้อมูลเกี่ยวกับผลิตภัณฑ์ในคำสั่งซื้อที่เกี่ยวข้อง จำนวนการดาวน์โหลด " "และว่าสินทรัพย์นั้นสามารถมองเห็นได้สาธารณะหรือไม่ รวมถึงวิธีการสร้าง URL " "สำหรับการดาวน์โหลดสินทรัพย์เมื่อคำสั่งซื้อที่เกี่ยวข้องอยู่ในสถานะเสร็จสมบูรณ์" -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "ดาวน์โหลด" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "ดาวน์โหลด" #: engine/core/serializers/utility.py:91 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." -msgstr "คุณต้องแสดงความคิดเห็น, ให้คะแนน, และระบุ uuid ของสินค้าเพื่อเพิ่มคำแนะนำ" +msgstr "" +"คุณต้องแสดงความคิดเห็น, ให้คะแนน, และระบุ uuid ของสินค้าเพื่อเพิ่มคำแนะนำ" #: engine/core/sitemaps.py:25 msgid "Home" @@ -2838,12 +2939,12 @@ msgstr "สวัสดีครับ/ค่ะ %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "ขอบคุณสำหรับคำสั่งซื้อของคุณ #%(order.pk)s! " -"เราขอแจ้งให้คุณทราบว่าเราได้ดำเนินการตามคำสั่งซื้อของคุณแล้ว รายละเอียดของคำสั่งซื้อของคุณมีดังนี้:" +"เราขอแจ้งให้คุณทราบว่าเราได้ดำเนินการตามคำสั่งซื้อของคุณแล้ว " +"รายละเอียดของคำสั่งซื้อของคุณมีดังนี้:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2866,7 +2967,9 @@ msgstr "ราคาทั้งหมด" msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." -msgstr "หากคุณมีคำถามใด ๆ โปรดติดต่อทีมสนับสนุนของเราได้ที่ %(config.EMAIL_HOST_USER)s" +msgstr "" +"หากคุณมีคำถามใด ๆ โปรดติดต่อทีมสนับสนุนของเราได้ที่ " +"%(config.EMAIL_HOST_USER)s" #: engine/core/templates/digital_order_created_email.html:133 #, python-format @@ -2945,12 +3048,11 @@ msgstr "ขอบคุณที่เข้าพักกับเรา! เ #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" -"ขอบคุณสำหรับการสั่งซื้อของคุณ! เราขอแจ้งยืนยันการสั่งซื้อของคุณเรียบร้อยแล้ว " -"รายละเอียดการสั่งซื้อของคุณมีดังนี้:" +"ขอบคุณสำหรับการสั่งซื้อของคุณ! เราขอแจ้งยืนยันการสั่งซื้อของคุณเรียบร้อยแล้ว" +" รายละเอียดการสั่งซื้อของคุณมีดังนี้:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -3030,8 +3132,9 @@ msgid "" "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -"จัดการการตอบสนองมุมมองรายละเอียดสำหรับแผนผังเว็บไซต์ ฟังก์ชันนี้ประมวลผลคำขอ " -"ดึงการตอบสนองรายละเอียดแผนผังเว็บไซต์ที่เหมาะสม และตั้งค่าส่วนหัว Content-Type สำหรับ XML" +"จัดการการตอบสนองมุมมองรายละเอียดสำหรับแผนผังเว็บไซต์ ฟังก์ชันนี้ประมวลผลคำขอ" +" ดึงการตอบสนองรายละเอียดแผนผังเว็บไซต์ที่เหมาะสม และตั้งค่าส่วนหัว Content-" +"Type สำหรับ XML" #: engine/core/views.py:155 msgid "" @@ -3047,7 +3150,8 @@ msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"จัดการการดำเนินการแคช เช่น การอ่านและการตั้งค่าข้อมูลแคชด้วยคีย์ที่กำหนดและเวลาหมดอายุ" +"จัดการการดำเนินการแคช เช่น " +"การอ่านและการตั้งค่าข้อมูลแคชด้วยคีย์ที่กำหนดและเวลาหมดอายุ" #: engine/core/views.py:220 msgid "Handles `contact us` form submissions." @@ -3058,7 +3162,8 @@ msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -"จัดการคำขอสำหรับการประมวลผลและตรวจสอบความถูกต้องของ URL จากคำขอ POST ที่เข้ามา" +"จัดการคำขอสำหรับการประมวลผลและตรวจสอบความถูกต้องของ URL จากคำขอ POST " +"ที่เข้ามา" #: engine/core/views.py:273 msgid "Handles global search queries." @@ -3071,13 +3176,11 @@ msgstr "จัดการตรรกะของการซื้อในฐ #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "จัดการการดาวน์โหลดสินทรัพย์ดิจิทัลที่เกี่ยวข้องกับคำสั่งซื้อ " -"ฟังก์ชันนี้พยายามให้บริการไฟล์สินทรัพย์ดิจิทัลที่อยู่ในไดเรกทอรีจัดเก็บของโครงการ หากไม่พบไฟล์ " -"จะเกิดข้อผิดพลาด HTTP 404 เพื่อระบุว่าทรัพยากรไม่พร้อมใช้งาน" +"ฟังก์ชันนี้พยายามให้บริการไฟล์สินทรัพย์ดิจิทัลที่อยู่ในไดเรกทอรีจัดเก็บของโครงการ" +" หากไม่พบไฟล์ จะเกิดข้อผิดพลาด HTTP 404 เพื่อระบุว่าทรัพยากรไม่พร้อมใช้งาน" #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3106,23 +3209,21 @@ msgstr "ไม่พบไอคอนเว็บไซต์" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" -"จัดการคำขอสำหรับไอคอนเว็บไซต์ (favicon) ฟังก์ชันนี้พยายามให้บริการไฟล์ favicon " -"ที่อยู่ในไดเรกทอรีแบบคงที่ของโปรเจกต์ หากไม่พบไฟล์ favicon จะเกิดข้อผิดพลาด HTTP 404 " -"เพื่อแสดงว่าทรัพยากรไม่พร้อมใช้งาน" +"จัดการคำขอสำหรับไอคอนเว็บไซต์ (favicon) ฟังก์ชันนี้พยายามให้บริการไฟล์ " +"favicon ที่อยู่ในไดเรกทอรีแบบคงที่ของโปรเจกต์ หากไม่พบไฟล์ favicon " +"จะเกิดข้อผิดพลาด HTTP 404 เพื่อแสดงว่าทรัพยากรไม่พร้อมใช้งาน" #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "เปลี่ยนเส้นทางคำขอไปยังหน้าดัชนีของผู้ดูแลระบบ ฟังก์ชันนี้จัดการคำขอ HTTP " -"ที่เข้ามาและเปลี่ยนเส้นทางไปยังหน้าดัชนีของอินเทอร์เฟซผู้ดูแลระบบ Django โดยใช้ฟังก์ชัน " -"`redirect` ของ Django สำหรับการเปลี่ยนเส้นทาง HTTP" +"ที่เข้ามาและเปลี่ยนเส้นทางไปยังหน้าดัชนีของอินเทอร์เฟซผู้ดูแลระบบ Django " +"โดยใช้ฟังก์ชัน `redirect` ของ Django สำหรับการเปลี่ยนเส้นทาง HTTP" #: engine/core/views.py:445 msgid "Returns current version of the Schon. " @@ -3139,29 +3240,31 @@ msgstr "ส่งคืนตัวแปรที่กำหนดเองส #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The schonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"กำหนดชุดมุมมองสำหรับการจัดการการดำเนินการที่เกี่ยวข้องกับ schon คลาส schonViewSet " -"สืบทอดมาจาก ModelViewSet " -"และให้ฟังก์ชันการทำงานสำหรับการจัดการการกระทำและการดำเนินการบนเอนทิตีของ schon " -"รวมถึงการรองรับคลาสตัวแปลงแบบไดนามิกตามการกระทำปัจจุบัน การอนุญาตที่ปรับแต่งได้ " -"และรูปแบบการแสดงผล" +"กำหนดชุดมุมมองสำหรับการจัดการการดำเนินการที่เกี่ยวข้องกับ schon คลาส " +"schonViewSet สืบทอดมาจาก ModelViewSet " +"และให้ฟังก์ชันการทำงานสำหรับการจัดการการกระทำและการดำเนินการบนเอนทิตีของ " +"schon รวมถึงการรองรับคลาสตัวแปลงแบบไดนามิกตามการกระทำปัจจุบัน " +"การอนุญาตที่ปรับแต่งได้ และรูปแบบการแสดงผล" #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" -"แสดงชุดมุมมองสำหรับการจัดการวัตถุ AttributeGroup ดำเนินการที่เกี่ยวข้องกับ AttributeGroup " -"รวมถึงการกรอง การแปลงข้อมูลเป็นรูปแบบที่ส่งผ่านได้ และการดึงข้อมูล คลาสนี้เป็นส่วนหนึ่งของชั้น " -"API ของแอปพลิเคชันและให้วิธีการมาตรฐานในการประมวลผลคำขอและการตอบสนองสำหรับข้อมูล " -"AttributeGroup" +"แสดงชุดมุมมองสำหรับการจัดการวัตถุ AttributeGroup ดำเนินการที่เกี่ยวข้องกับ " +"AttributeGroup รวมถึงการกรอง การแปลงข้อมูลเป็นรูปแบบที่ส่งผ่านได้ " +"และการดึงข้อมูล คลาสนี้เป็นส่วนหนึ่งของชั้น API " +"ของแอปพลิเคชันและให้วิธีการมาตรฐานในการประมวลผลคำขอและการตอบสนองสำหรับข้อมูล" +" AttributeGroup" #: engine/core/viewsets.py:179 msgid "" @@ -3172,24 +3275,26 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"จัดการการดำเนินการที่เกี่ยวข้องกับวัตถุ Attribute ภายในแอปพลิเคชัน ให้ชุดของจุดสิ้นสุด API " -"สำหรับการโต้ตอบกับข้อมูล Attribute คลาสนี้จัดการการค้นหา การกรอง และการแปลงวัตถุ " -"Attribute เป็นรูปแบบที่อ่านได้ ช่วยให้สามารถควบคุมข้อมูลที่ส่งคืนได้อย่างยืดหยุ่น เช่น " -"การกรองตามฟิลด์เฉพาะ หรือการดึงข้อมูลแบบละเอียดหรือแบบย่อ ขึ้นอยู่กับความต้องการของคำขอ" +"จัดการการดำเนินการที่เกี่ยวข้องกับวัตถุ Attribute ภายในแอปพลิเคชัน " +"ให้ชุดของจุดสิ้นสุด API สำหรับการโต้ตอบกับข้อมูล Attribute " +"คลาสนี้จัดการการค้นหา การกรอง และการแปลงวัตถุ Attribute เป็นรูปแบบที่อ่านได้" +" ช่วยให้สามารถควบคุมข้อมูลที่ส่งคืนได้อย่างยืดหยุ่น เช่น " +"การกรองตามฟิลด์เฉพาะ หรือการดึงข้อมูลแบบละเอียดหรือแบบย่อ " +"ขึ้นอยู่กับความต้องการของคำขอ" #: engine/core/viewsets.py:198 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "ชุดมุมมองสำหรับการจัดการวัตถุ AttributeValue " -"ชุดมุมมองนี้ให้ฟังก์ชันการทำงานสำหรับการแสดงรายการ การดึงข้อมูล การสร้าง การอัปเดต " -"และการลบวัตถุ AttributeValue มันผสานรวมกับกลไกชุดมุมมองของ Django REST Framework " -"และใช้ตัวแปลงข้อมูลที่เหมาะสมสำหรับแต่ละการกระทำ ความสามารถในการกรองข้อมูลมีให้ผ่าน " -"DjangoFilterBackend" +"ชุดมุมมองนี้ให้ฟังก์ชันการทำงานสำหรับการแสดงรายการ การดึงข้อมูล การสร้าง " +"การอัปเดต และการลบวัตถุ AttributeValue มันผสานรวมกับกลไกชุดมุมมองของ Django " +"REST Framework และใช้ตัวแปลงข้อมูลที่เหมาะสมสำหรับแต่ละการกระทำ " +"ความสามารถในการกรองข้อมูลมีให้ผ่าน DjangoFilterBackend" #: engine/core/viewsets.py:217 msgid "" @@ -3200,8 +3305,9 @@ msgid "" "can access specific data." msgstr "" "จัดการมุมมองสำหรับการดำเนินการที่เกี่ยวข้องกับหมวดหมู่ คลาส CategoryViewSet " -"รับผิดชอบในการจัดการการดำเนินการที่เกี่ยวข้องกับโมเดลหมวดหมู่ในระบบ มันรองรับการดึงข้อมูล " -"การกรอง และการแปลงข้อมูลหมวดหมู่เป็นรูปแบบที่ส่งต่อได้ " +"รับผิดชอบในการจัดการการดำเนินการที่เกี่ยวข้องกับโมเดลหมวดหมู่ในระบบ " +"มันรองรับการดึงข้อมูล การกรอง และการแปลงข้อมูลหมวดหมู่เป็นรูปแบบที่ส่งต่อได้" +" " "ชุดมุมมองนี้ยังบังคับใช้สิทธิ์การเข้าถึงเพื่อให้แน่ใจว่าเฉพาะผู้ใช้ที่ได้รับอนุญาตเท่านั้นที่สามารถเข้าถึงข้อมูลเฉพาะได้" #: engine/core/viewsets.py:346 @@ -3211,16 +3317,18 @@ msgid "" "uses Django's ViewSet framework to simplify the implementation of API " "endpoints for Brand objects." msgstr "" -"แทนชุดมุมมองสำหรับการจัดการอินสแตนซ์ของแบรนด์ คลาสนี้ให้ฟังก์ชันการทำงานสำหรับการค้นหา " -"การกรอง และการแปลงออบเจ็กต์แบรนด์เป็นรูปแบบที่ส่งผ่านได้ โดยใช้เฟรมเวิร์ก ViewSet ของ " -"Django เพื่อทำให้การพัฒนาระบบจุดสิ้นสุด API สำหรับออบเจ็กต์แบรนด์เป็นเรื่องง่ายขึ้น" +"แทนชุดมุมมองสำหรับการจัดการอินสแตนซ์ของแบรนด์ " +"คลาสนี้ให้ฟังก์ชันการทำงานสำหรับการค้นหา การกรอง " +"และการแปลงออบเจ็กต์แบรนด์เป็นรูปแบบที่ส่งผ่านได้ โดยใช้เฟรมเวิร์ก ViewSet " +"ของ Django เพื่อทำให้การพัฒนาระบบจุดสิ้นสุด API " +"สำหรับออบเจ็กต์แบรนด์เป็นเรื่องง่ายขึ้น" #: engine/core/viewsets.py:458 msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`schonViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3228,8 +3336,8 @@ msgstr "" "จัดการการดำเนินงานที่เกี่ยวข้องกับโมเดล `Product` ในระบบ " "คลาสนี้ให้ชุดมุมมองสำหรับการจัดการผลิตภัณฑ์ รวมถึงการกรอง การแปลงเป็นลำดับ " "และปฏิบัติการบนอินสแตนซ์เฉพาะ มันขยายจาก `schonViewSet` " -"เพื่อใช้ฟังก์ชันทั่วไปและผสานรวมกับเฟรมเวิร์ก Django REST สำหรับการดำเนินการ API แบบ " -"RESTful รวมถึงวิธีการสำหรับการดึงรายละเอียดผลิตภัณฑ์ การใช้สิทธิ์ " +"เพื่อใช้ฟังก์ชันทั่วไปและผสานรวมกับเฟรมเวิร์ก Django REST สำหรับการดำเนินการ" +" API แบบ RESTful รวมถึงวิธีการสำหรับการดึงรายละเอียดผลิตภัณฑ์ การใช้สิทธิ์ " "และการเข้าถึงข้อเสนอแนะที่เกี่ยวข้องของผลิตภัณฑ์" #: engine/core/viewsets.py:605 @@ -3240,9 +3348,9 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"แสดงชุดมุมมองสำหรับการจัดการวัตถุ Vendor ชุดมุมมองนี้อนุญาตให้ดึงข้อมูล กรอง และแปลงข้อมูล " -"Vendor เป็นรูปแบบที่อ่านได้ ชุดมุมมองนี้กำหนด queryset การกำหนดค่าตัวกรอง และคลาส " -"serializer ที่ใช้จัดการการดำเนินการต่างๆ " +"แสดงชุดมุมมองสำหรับการจัดการวัตถุ Vendor ชุดมุมมองนี้อนุญาตให้ดึงข้อมูล กรอง" +" และแปลงข้อมูล Vendor เป็นรูปแบบที่อ่านได้ ชุดมุมมองนี้กำหนด queryset " +"การกำหนดค่าตัวกรอง และคลาส serializer ที่ใช้จัดการการดำเนินการต่างๆ " "วัตถุประสงค์ของคลาสนี้คือการให้การเข้าถึงทรัพยากรที่เกี่ยวข้องกับ Vendor " "อย่างมีประสิทธิภาพผ่านกรอบงาน Django REST" @@ -3251,29 +3359,32 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `schonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" -"การแสดงชุดมุมมองที่จัดการวัตถุข้อเสนอแนะ คลาสนี้จัดการการดำเนินการที่เกี่ยวข้องกับวัตถุข้อเสนอแนะ " -"รวมถึงการแสดงรายการ การกรอง และการดึงรายละเอียด " -"วัตถุประสงค์ของชุดมุมมองนี้คือการจัดเตรียมตัวแปลงอนุกรมที่แตกต่างกันสำหรับการดำเนินการต่างๆ " -"และจัดการวัตถุข้อเสนอแนะที่เข้าถึงได้บนพื้นฐานของสิทธิ์ มันขยายคลาสพื้นฐาน `schonViewSet` " -"และใช้ระบบกรองของ Django สำหรับการสืบค้นข้อมูล" +"การแสดงชุดมุมมองที่จัดการวัตถุข้อเสนอแนะ " +"คลาสนี้จัดการการดำเนินการที่เกี่ยวข้องกับวัตถุข้อเสนอแนะ รวมถึงการแสดงรายการ" +" การกรอง และการดึงรายละเอียด " +"วัตถุประสงค์ของชุดมุมมองนี้คือการจัดเตรียมตัวแปลงอนุกรมที่แตกต่างกันสำหรับการดำเนินการต่างๆ" +" และจัดการวัตถุข้อเสนอแนะที่เข้าถึงได้บนพื้นฐานของสิทธิ์ มันขยายคลาสพื้นฐาน " +"`schonViewSet` และใช้ระบบกรองของ Django สำหรับการสืบค้นข้อมูล" #: engine/core/viewsets.py:652 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"ViewSet สำหรับการจัดการคำสั่งซื้อและกิจกรรมที่เกี่ยวข้อง คลาสนี้ให้ฟังก์ชันการทำงานในการดึงข้อมูล " -"แก้ไข และจัดการอ็อบเจ็กต์คำสั่งซื้อ รวมถึงจุดสิ้นสุดต่างๆ สำหรับการจัดการคำสั่งซื้อ เช่น " -"การเพิ่มหรือลบผลิตภัณฑ์ การดำเนินการซื้อสำหรับผู้ใช้ที่ลงทะเบียนและไม่ได้ลงทะเบียน " +"ViewSet สำหรับการจัดการคำสั่งซื้อและกิจกรรมที่เกี่ยวข้อง " +"คลาสนี้ให้ฟังก์ชันการทำงานในการดึงข้อมูล แก้ไข และจัดการอ็อบเจ็กต์คำสั่งซื้อ" +" รวมถึงจุดสิ้นสุดต่างๆ สำหรับการจัดการคำสั่งซื้อ เช่น " +"การเพิ่มหรือลบผลิตภัณฑ์ " +"การดำเนินการซื้อสำหรับผู้ใช้ที่ลงทะเบียนและไม่ได้ลงทะเบียน " "และการดึงคำสั่งซื้อที่รอดำเนินการของผู้ใช้ที่เข้าสู่ระบบปัจจุบัน ViewSet " "ใช้ตัวแปลงข้อมูลหลายแบบตามการกระทำที่เฉพาะเจาะจงและบังคับใช้สิทธิ์การเข้าถึงอย่างเหมาะสมขณะโต้ตอบกับข้อมูลคำสั่งซื้อ" @@ -3281,15 +3392,16 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" -"ให้ชุดมุมมองสำหรับการจัดการเอนทิตี OrderProduct ชุดมุมมองนี้ช่วยให้สามารถดำเนินการ CRUD " -"และดำเนินการเฉพาะที่เกี่ยวกับโมเดล OrderProduct รวมถึงการกรอง การตรวจสอบสิทธิ์ " +"ให้ชุดมุมมองสำหรับการจัดการเอนทิตี OrderProduct " +"ชุดมุมมองนี้ช่วยให้สามารถดำเนินการ CRUD และดำเนินการเฉพาะที่เกี่ยวกับโมเดล " +"OrderProduct รวมถึงการกรอง การตรวจสอบสิทธิ์ " "และการสลับตัวแปลงตามการดำเนินการที่ร้องขอ " -"นอกจากนี้ยังมีรายละเอียดการดำเนินการสำหรับการจัดการข้อเสนอแนะเกี่ยวกับอินสแตนซ์ของ " -"OrderProduct" +"นอกจากนี้ยังมีรายละเอียดการดำเนินการสำหรับการจัดการข้อเสนอแนะเกี่ยวกับอินสแตนซ์ของ" +" OrderProduct" #: engine/core/viewsets.py:974 msgid "Manages operations related to Product images in the application. " @@ -3299,7 +3411,8 @@ msgstr "จัดการการดำเนินงานที่เกี msgid "" "Manages the retrieval and handling of PromoCode instances through various " "API actions." -msgstr "จัดการการดึงและการจัดการของตัวอย่าง PromoCode ผ่านการกระทำของ API ต่าง ๆ" +msgstr "" +"จัดการการดึงและการจัดการของตัวอย่าง PromoCode ผ่านการกระทำของ API ต่าง ๆ" #: engine/core/viewsets.py:1019 msgid "Represents a view set for managing promotions. " @@ -3313,18 +3426,19 @@ msgstr "จัดการการดำเนินงานที่เกี msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" -"ViewSet สำหรับการจัดการการดำเนินการในรายการที่ต้องการ (Wishlist) WishlistViewSet " -"ให้จุดเชื่อมต่อสำหรับการโต้ตอบกับรายการที่ต้องการของผู้ใช้ ซึ่งช่วยให้สามารถดึงข้อมูล แก้ไข " -"และปรับแต่งผลิตภัณฑ์ในรายการที่ต้องการได้ ViewSet นี้อำนวยความสะดวกในการทำงาน เช่น " -"การเพิ่ม การลบ และการดำเนินการแบบกลุ่มสำหรับผลิตภัณฑ์ในรายการที่ต้องการ " -"มีการตรวจสอบสิทธิ์เพื่อรับรองว่าผู้ใช้สามารถจัดการรายการที่ต้องการของตนเองเท่านั้น " -"เว้นแต่จะได้รับสิทธิ์อนุญาตอย่างชัดเจน" +"ViewSet สำหรับการจัดการการดำเนินการในรายการที่ต้องการ (Wishlist) " +"WishlistViewSet ให้จุดเชื่อมต่อสำหรับการโต้ตอบกับรายการที่ต้องการของผู้ใช้ " +"ซึ่งช่วยให้สามารถดึงข้อมูล แก้ไข และปรับแต่งผลิตภัณฑ์ในรายการที่ต้องการได้ " +"ViewSet นี้อำนวยความสะดวกในการทำงาน เช่น การเพิ่ม การลบ " +"และการดำเนินการแบบกลุ่มสำหรับผลิตภัณฑ์ในรายการที่ต้องการ " +"มีการตรวจสอบสิทธิ์เพื่อรับรองว่าผู้ใช้สามารถจัดการรายการที่ต้องการของตนเองเท่านั้น" +" เว้นแต่จะได้รับสิทธิ์อนุญาตอย่างชัดเจน" #: engine/core/viewsets.py:1183 msgid "" @@ -3336,8 +3450,9 @@ msgid "" msgstr "" "คลาสนี้ให้ฟังก์ชันการทำงานของ viewset สำหรับจัดการออบเจ็กต์ `Address` คลาส " "AddressViewSet ช่วยให้สามารถดำเนินการ CRUD การกรอง " -"และการดำเนินการที่กำหนดเองที่เกี่ยวข้องกับเอนทิตีที่อยู่ รวมถึงพฤติกรรมเฉพาะสำหรับวิธีการ HTTP " -"ที่แตกต่างกัน การแทนที่ตัวแปลงข้อมูล และการจัดการสิทธิ์ตามบริบทของคำขอ" +"และการดำเนินการที่กำหนดเองที่เกี่ยวข้องกับเอนทิตีที่อยู่ " +"รวมถึงพฤติกรรมเฉพาะสำหรับวิธีการ HTTP ที่แตกต่างกัน การแทนที่ตัวแปลงข้อมูล " +"และการจัดการสิทธิ์ตามบริบทของคำขอ" #: engine/core/viewsets.py:1254 #, python-brace-format diff --git a/engine/core/locale/tr_TR/LC_MESSAGES/django.mo b/engine/core/locale/tr_TR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0922b7dde73592a35bb74743ab86e92f81968988 GIT binary patch literal 94604 zcmcGX2b>&7mH%7L$T@)thIT?)S-X~G$r#D9tz=nNv?LoFV{2!3XLrXtJG0EpN?I9% z!6cJ&umN!fW0Jupm}KBU@(~Y?aO89b4iko5V!?YSFQ$^(*B!3weu6_C&{tk z=fP9J{{Z=y9C$&JJQ!RK&H}Fl9|k@Zd@nS54G0O6&C9(#&jS~czBS<20v@%(`?V4j z{VoR8@2f#Qw;wzb90wl_-Uyb!w}OuZk64)`*VEoJ!S&!p^aYtZ8TcpW2Ox&-V3p9pF^Zvl@0-vFww`^ZgDz22UPkspw$bi-FJeU=-0iV`2WF|dHWs(ewXx_ zA$>T+cr)c50?q~h`Ef~d)d5NJUsoi_Hz>E}D#o7t)1LsJfj3`GpTLh_lO$JwNA^Nr z$`6*3wq}*;SzUxD4*0{1|v3{apBzBY-F^tFeaW+Zd`|%9kX!^V0DD1= z(@R7Cy`Y}^3-C}dxe49`4g=NxGeKRS530S(Ks|3uNM8dULV65TKX-t-{~4g@{bukm z@V(%Jz>k2^N1p`Mt}lbS{&!II9`+o6-tnOFPXjg1b3xI287TT~0`%I--kf;XAgKH_$5&H{}|MBeg~@j;m`H*$AEh7Nuc^aE8t^6m0t^L zyn8{7*E2zl-z&rQcYqp?J)qkCRZ!3U38;1?&-3fYfDa{kdcgBRUB3dWoqHceG|Bv^czF|&jS7y)HwbPR6R$&*5&&+Q2p!zMfdZ- zlfX@&=u`>$J3#UObHN_)C7{~>G4M+82cYPG{_C9o$3d0b4T`@%2kQA>2KBt}gOab` zfqKp%yWL+s0Zd8H2j_yDLEZNh@Cfh);3L3Wz(<1b2Stakf@o%Lif?`as{cp61zQE41a1La;7ah5 z;2K?jtMljMz?AgULGi(DpvL)wpz8l5sPVWDoDUxLHpdIWS)?1_9Ps9V_lEpmfQ!jL z>Fq9$TR`d8>p}799pGH>o8Xz?VRv|a3&Gi>p8%@fXN2^fpvrw6RJ{kk!{ZMZf`^fQ zGPnSI7N~Z95Y#ySEaac@PETI}_K^Q#Q04wP;IBgd>390LZ2?8s=YUJVkAi1|e+KoO zv+i=a>;umt{VGuPeG*&^{s~+LE`OJ&pAIf1{aNrraOS%m*MiD_9=HnpG$?*K<~{C* zYz0-%D?yFl*TM6_N50qZzZzUf`gNf4zXYnj8Ha(RCbr5O^DS zF8EGR_1+Jj1pXS793Syf@Au`P#`y+N?SB)f{(b=zUHbh_#g5yZ^x0K`uAw?L~sG9aub~t_Amk z=YYq2!s}lRo=my{sy{CRrSCop>bXAy&jcU*N#=+%s1rPa^qW5A@t_ZZ2a>+*GtM7Z zg7ZiZf`@~z1V!gJfa}3`fO_6vK+)%6pY?HD3Z71S1*rOl!9&3+_)4$^9u6MyuWolv z0v|^DTo4gUwtz>0M}E%rz$3s%k)8t@{Xxm~HK6!(47`^9yam*APWU&s>yH3MuZ7@R za0nD1zZ+Z!eiobsKJ*LtItMUzV2SjFUv_%l3YJO#D|i8T_P@KHY=Y|7`#|;oL*T*S z*Fp8`y8(X+o=N)m;FH1AzT$Mb6;#~q6X166NndmO^6Rg=pVadWbUEd302$)sx^F@c z$}Rtv>-9^&jqWG^)gaAI7JSF+T?F=!emp4ox(U?y-Uf=FKL~34_JAjXp92p8e*iuh z{3&=Oc))kPzsG<-;klc@Ve*&!2RGwZyc{t>UF5kz1r&0biQ1z|` z&jzmn4+dWXJ_vkOz*|9$=i5Qi>m%S?@F(H=L;lnG@f1+{tOr#8E(S&a0dPL}H1Or% zd%(wnm;A`%*iQ#FF6Z3u{ay}=Pp$xu0((L6MIBVXo(&#C`oN!f`I+EvNT;Cm*NHz( zlK-UKY;Xy9^ndY824d~c;bYRtFY(F1hyTjsq;LH-a|qH0|29cJ48Hhxj2-1S{s9>x z{bL4O@zz)UB}u-=?a%ug{U<&8cleNUHzzYpFWq~<42$p1Ja9&GCf9E`Xh!l`@a+fB zNZv`gi9=^3pC;Wkb4K!4@HYhSZzca%N6xT#<;#zmk$jN+E03FD{XOA?8D z`Jm|ka!~a97`Pn#GpO-A|HK(a?>_)}2h^&9XQ@TdoS z`A2~o|1&_9I}02G&jtHv-&?>(lRo048OFb7g9nkm7?k|42gO$<@M!wC6MP)_Y>2P+ ze~%#c`QQ;JdwbS`Ye+vCTnv5^JOVuMku!|XjtRIFTtxo0p!oIm0ly4xB7NASX4rh; z%79Mt!t|KL@i_7x&UlGjgxUEmi$(eKZoo;%~w-rf^HJ#RLscAX81 zj%z?YcQbe@SPkhHg1Y}Lpq_INDEfaIoCp3m?hLGk|&KsCQaR zb0Pm{0S}nt?K}yTzjX#Exws6}_+AfQ489hW9Q-G!cF#tMslQ7=J^vC={p| z$MXx|BGNws)$Wt$&oF=Jbnr6LPXu-S6QJ(sz4s z>ldKtboAMdr+|{XvqACa<)G|I6D)(T1h<2K1xLZwLVxakp!D1Q;7afhpy;r4k@x=+ zQ2cNOcp*3nZUo-}&H?`hY8<-Gar!I(Ro@EmB5(_+alRRpUHCjGdd_@|)8jNy{Tl;S z&pn{-zZX>h{vFgf{Rk924mj84?E>(6(xagC)=xo=`>#ROv*58VM@vAZuLR{U_kl~n zXMvL6d%?$o-wpWC#WT#m+XAY8PXp(IcYyQ3Z-n#_I3;@CW5IL4ouJ0^ouKafVMrfy zp4WE~sQbr3@#XCy|7)PybLdjH7puS%NnZj=AM}E1|C2z`;TfRD>Gh!a@rU91??BP( z@1XeU*z;Zf9|9_W4ybWF50t*R6qFo25tQ6s59+>`f#-rZgX+(hz#90V3w-=`g6i+P zLFt*FfNI~|3!U#4ff~Qfpz7@d)y@e}&wUQ~81SuN4|pFazCL!D-**NmK3)V$4_*O^ zpSOc*?@K}Hm))T1`4}jA{Sg%39=&{q#aSK!O8@nO%5Q>d#|>Z#z8I7oy$cjyegTx6 z9TLM>sH-W3c&w~TtLsq)nJ_(dRaT_Q*`Jh!kjwgVk?>tcS zItSGAE&w$y7lESNRiN5E67ru6TED~f-JtaLJ3+PY6QIWTE1>SXAC&$2GbsK(_#&sz zqd@V~B2fH(DX8{67gRm307dWHK-IGcl>Yb%DEj{i)ObE*wO{W6^_*p(+Orl^J^i5Q z-2l%9p8|@`?*_ZTFM=z;zkt$r7hdf0G6e1-{St6Cc;p(tehw%)T@8vp1EA!q1zrs9 z1~-8Bhy2G}G9%ecx)0QS?*&DNdqC0gE1>x6zJLd>_2!sP_L6 zRR2y}HzTQn^FWRNYr)5X2dtlw^n#BE)&CEH;-CKpMfcM;ct5TIMduo*a!&J$dthKOdBw zd?BPCdYPxM1~q=Sffs>42iJg$F8BJM0xJLGpq~4n$N6(MfW4$&1U?@8C0GL2T`?oM z0(?inL$CC7Z@>=(Jnr$HKN4_nz>}}?{Otih532szPjI^22ue?X5LA2q07^cVUhVd% z1d2aj2%ZY=1|<(42m8S9w8Uq2SG+#`{+Aa`3C5^heJ& z=j(-__<0E^d07pLpT|RR2B%9uIyER6l

&Ouwx3jz@WFz4KO3dgWW7t{-3X`qzLjCOr;HUmaQx{y(^c z^bn|azX2QpzX*yS&L8vpo1oga8x((j7!=+A3X0$6Jkjwga0Y4pO>pv0ewut1+(nvU zu>FpQ9f0m94>7a9Ljs-v{wFynbNx=v7l(Wmnprr1GS?d%iY1MQ{7+Ek^`zt9R!%-# zxaW)Ed=>aij-8ZM+aDk9c}2k8;M`F5EnG+SB&et4KF%)#D;;J0(_Rp411 zA0l6WA0bbA;jLgd`M(AKh4c!}pUnANIsXy3gJXz1)M|1isJ}mRKz{rC3I9Kt12;Z- z3)lY^@^x`*D6jK>BL8-s@b~vn=2&neWiIDXEa@AhpA@c1)><6zAuYQU|1{?Mduk{r zoAEo&Z{k3uCQGU3rQzBFa2eOrkp3^u59a!ZLYidq!@~K4NWY8pLpZ(^@-bib_a^@T zEyo?6OfC-jdqC-P*&4Ug)REe9mDx`}+-eaVR4hdq*fESQ5&_tiNz_D|v6@ z7~uSQ9EeQvbq-8tavX>Lp2P7}>O6z=T^w%@^*&3dcxNbcHtBa33Lim!$}tx5elDcUg&f7d(@0|uERNpb z!nZlfr0)X1$#EbDYTe?fuLa{@D?C?rc97%0MXNT)QBz*(tqa2v0Nq=u5zd`;&jw8c8ucy>P&ffsa z4}BKL2gAM6uY;kSY@`083;3c?Mj&70zsPTbEwBPU6nrJeJ1Ov#P?l`_ z`!WCD%<)x@7f|LoTz?R#zaMbi$NAI2^TF+0dn9<9E{4Br!Pk)gYVt4Q{M3-21{55` zb^8Nv2&WM~%E=Or)!hHuP_9n8#&HXWe8K0D|9LR}$!^I8zK(mI!f^@L59c_T^UsAs zFC_hV(yKyxJ?Uq2ek;dE$-ftThOU$U8qPOzei7$A9Pi}(dh)&rK9>U%Yd#=Z$yiwU*57|{JjKr7Q}T}@|D~j7f(MYkhw~ceZ|3|D zoNEo}`<%Z3>?QpZ&VR{K{Cg|ceiJfo1mDQ@&vV>CzW%NQ4+1xXgB|zYK>E8JvkUoW z7S6Rt|Mrl+hI8%ZU&NumhjBcg;}ov{dnj`y_y(?@7t*J4KB~g}y`AGyj(_FaXE|QQ zaV^)60B-`%;P@Wr-=NF{=XZ0izgIYzKlz1l{tT|`?@Jt)h4ba$n@KO{_;$FL)8vU9 zzvB29dB;-bXW(}@Zs%M+>1^;2@O+M&$-f%Z-!Ytzfah`?&T$im{>mI9Tsxcl^mjSO z4vxdf+YA0PxCzwX>6G~v_-FEtu^i^e0r!%pzxQ)2=Po zaa_Neqe|XOz}4U`P=6a7>^-J% zYVbY&KaDaE4$oi7`Nzro3+d;Fyyt+Ik@t0ucW{0=$D=q75{sE42$$vLEAAAz{GLBDkyqUEA4hZNe#+Q@xLgHxfQ`Gg0klqfKDBly( zOTnjx^GA{YI?lh$@ow(f#_4>Gn!_N3+~Y2kVV= zv{Wk%Rcb@&vR126=^JmAFE3Tc%W1vu+H!xZ*^_P^t~9ed#v1kQm4R|I9UQOqw<`5o zsak1GSVh%Jvqe2~(?*$!%G>R{zfmrE?)cb1I4ji#(t&cdto&)8x~7#@YOV56qtxPQ zJ1VW=bmg_B+E6{+ylTtV^rA*-w7jF<7@3u~ZM57!T&h)?qs>&07;kc8X^a++H7eAS zHp^hOva8&n`Sg6CGB{XnlxwXN8qpQ{dQqj?q7?1wFO8M@Ds--*S{mgv^n4&~4L9oJ zL&IP>G|BH;Ug{qy*9Ll$Wg9O~mi5)gA$K!bM%CN>=~d`i9!Sray}jJ%t2fKrYV={- zSarNns&-LwU?AOG-;reF&`g$>YP5Ra_oai4`Y5B=7%8{Ls-^yNb5=T7E)Q_Gnn~vd z=~6noQtPjdH!IuAUGYL+87h?9uQZ@svRwZgucVNvSsforR%~9cqnWHIHOt+VTC-eh zLYwVSb-b_1ctf&gxzy+%hM0|dvzZQ$!&%!H{((|owY;q|Fqg^(%8hLhQoPvg2`4=w z!(1D(X$p*$8m-#+XkWR(%rYiAT3#O=Ep<1`RKg7dsn|5F52k~a za&@4Yw(4oK-e{$L6Fo>td9bq6nXR|G*O{c;>}OQzUr(COoHJ)xwOZd%9#}kQPC7oW zPEjit=ce8Z5o>O0TwmtmXdNc2=nNk0rZhajwjs?UrK}M$14oK!eRa_Ee z&Br@?Vp^~H^HSu|gsvww6#&yp-89F?#xzVOw-eC1(qE8gZym+@;LZWnCE@HJZxp1P zQ85x%c8MQTo;+G;~ZgtOu(%>=ge80_Nut4 zucf2q)^L5G+itjOiSieOyak@Q;OhHscvEjy$$Bf_M0{oslm|=WRhWrh_E!2O3n-S} zv@)31M=LFawTnkptf#$m)86bPFH3HAALo^3ZM<4lS;nH#YRYUVg~%6^jC6jfm}r!T z$~*0b?5x^S8mk}}vc!-lDz&^NB+gl=MvWEKTi-bg(Qr`yvd!zdo29|B$qt$2T0dfK z0@Nt&NNr$M+p3+V(J?g9V$LCYwcc220|NIAKpRMoWnDVd>YhK(l7qBpyism0t<<`& zI&}wX@YK1d_TgEy>a_dRt5s-bubP2;_ctnI(mYGEq3tfMzI=FK#r$jg7VI49EikmR zG6UKgZ>F>Rr#DB)aQ|>u;Z8{=?t=M1xfF!l@+iu7iu$aNh-k4cYeH~J`o<@=wJM|K z^t`3ej3HmMWn+5oIrHYHxI4HwqvhCwDepRe+PhY-zdTu8t}__YN##bP-dLPo$D8M? zWnTUNboN+#x6qw*Zuq zDR1J;m8=0$@3@TSvw30qS8`ifN}FTlelv9GNO{6kyLyfbls{ppTJI}Wqm%H&add4N zJsI0scyzQ!Fz2#NEd_Vf9$0bxj&E13^qa+!?GBD9jlo=D;FoP$gE1Kxt0Oq3V&fROgXjEnuxu?n|;?S%hqCO6lnwv3%ieh6B zLTw3_u~DXL&BEYJO?_x;vxcpuA?Nm~2yfE^r`tZvf8OY6iK+G#o|sQS@B@PR$FZoE zcUEM-b1KoNj7qXUHiv1#@2XIKK+c?g6PnIEb>q`8I*itY&lvJqK^$c{Wo?dyyD({A zSx>-`5T(mF{`=;z)s%UdTTd+6Z`_v(pg?BIam z(_<+`w~fq+;_cH^C{hfTwoAi`Ws%)-pIn-rnKp!RLKkh8yT;`PE`IS&NLWs*b;J&~ zi~T?uB4ynUDwHa zHcHqwCR}wMgo)&lRxL)QKHlgrtH^k*v>g$UOP6MwYX63>y{@STvEC>RLAVDTMRCCY z@#t0SLogI#v+muhPo ziEQv}*1_CXo=apl=Ny|qYbv7pifkagt{?*5-xLGPoG!UoQ{i-T^wQU?Ox9>Jj+ce< zXex%{Ls=fkE?}g)#qeRSOL;0X)1lZ+vZk3X(+CDj{yNN2sZm2$ zvJRJ^nyjnWn9bPbE7~vDci=Rlo09bk1<}KOTZ77|6`INxJU|ViTyIeEy_y@BtCy41}Yo!2@te_i$P*qPhd}?uc6uhZEWz%&YB|SRoB6A(F#*qr)Xk*cb+5Siu1sU5Tvbn)$RBu_h3d*RH`us6|#NVPQfH z4rQD)Rnx=aVUdST9XpSetc~61Z108#iPTH@#v&>7fo|dq$g_yv9rc%qNt$HikGO=0 z{O*zFw9}0_T`inz{ISAS#>BKSome17ZM-p1JXlEgtr(enz+oqo9+mNa2QtLErk3QQ z*Os&GKE1!7@Ft8dPAu!1tY4Lxb6GwutXvGSOh>@oFh!(PX_c-D*&6#%CU>vy05chx1FxhK=jj zY*@B+&H8OPZ0RV$Cp<>9h9ZCPGydWR0-wo-a!UtQ`^0Sn?utjMunoxu@xPgY5D1LS z1{1Z?v**!^31(3$76OPScH0${4;p$>Np)Oz2-Ar&(*P30=0=c*+?i5dv<#^{9e<2d zK#@Qbh4#ufGS86YH}RK7&CSi?UyK}+Xm?$*%qju>ajZ#VH;z@#j(18o*le2Gh|2rD z8bm0V-Mzh15;@KI*07W!gXe87D*di93sL~M82i5wpoZ_u4x8ldltZ$GE^Kx3Nc#T z9+;lhO?;o`C~6XBb+gMoM5kwU#~WvLg|;`niNr}RTC-uzmWx-d>`FGVm{Dsbn}YeU zXh<=ku3E^SOke7m#{L?0;+<3(qP8}fh+h%YvglTb=FYIuO5}1Gv`bs{ zrU^}TyRE0nf|1V+UJB#&k4S6tfN1*}LxubLhvgx(P2_@`h|s#N>PcCIp&xR|suMUC zsDYdc*_0y8|1=7jn#?U~Ep2OhW+RhJ$4jEp1Sb_t?>b3bvbpRIcl0)GVjc~R1)C8y zIjv*JiR;AZarna_1vK$#piQCTG|*^(o-u#ksvnK@25%%*562I(aMbo7)VG-^FG|>~ zH&#U$DXje&A7&JgWeg4QXG#|7AEgJhN>b*W5F{%{nl8pks5r$UHd#FvWxh$<3Zz>q zH-yu%*$ zj*tzAA~a>W76l{L?M#_bK(ljq*%ayM>{Oe7Dx#YQ(cz=2XQQPNn1fMNAF^@Gx}P@9 z=e9wNk*;7Avw_mI%U1(E{ub4~-zs*58a^`CdSgc90#&aORx1i2nS%eoY)(sI#R1Z? zk}sk$`>P|vg}5*Rolk#*K_q-A?`*tQq4lP+TNY*rGLpsOd{jiRdSi%n z;$3+g8 zNS}veIwLushvoF5Fq*xbbdSx6f){1?)3r>ljIcKN zmBEQfTAvJOHn$+ldNic8n7RTOY7-knFmP~;E+P5m>U0kh=w~egufEb`gTjPSu%l}O z_5N`w#S+0of`~|N%Ek*D_EKz1Cx^ry_^hoM?=IQqi@Z)TMijYhG>I>v!zV=$P>)P7 z#}tTze)NJdC!`R0zkT``r{*e0W%wbsU4&=2HZ+E@8Z9`aVrngx95G}^i-;(m%A3ko z8XC|MgJ|Dsqm}n;zRP9-o5y+sg1?seFww`#gsh#RTp7vQWMT6t!GTL6S4$M9qkj-a zbuL$Ru|k(W`m+qNYtKY%YtTuGA}A#<%oGs=B2_iLR&=|={do8Af#N5kWt6*Jb~g>O zwpk)R8#SsBLUEcc{fh&IUEUdNVh48yK5;?KB_;-9BOmRFT}!swP%3wNisf9<9>+akNii(&&%=FEpAQjclDNkL0maLpwpF%)(QrlG&(Vg2YDW zM66LTN1`#2EcvC(#@mcT z2TQZV!h&nmtm7?hmow8*P=vv~CY}h9F~eF;39-k1mVOjr!`x|W)Dy$>$RA>h+HeCi zaJ0wD7!MRd5P0{Qf&*)2ExMoOZVTOMc}T2OBdB6aQZ90`G3|ORtO*CtDfT7U&)JcB zD?$uru6x7Y#GD(ujL-ZL3O4yvQ*9lz*;uWmpp?lFe85l@2*iYdDJJ9U>xc?L`$X4V zcQb+Qo=-(_DVDR;6kCqyXRk+z&}Ey45#(L^ z!iKJ$kkd8SjGZFJ9aU>aNi~P;i49}T_lgY6wI)O zrrP{doTiY5)J%w)r|v4KDA&A=KDdg9sURT$%()5#%4td#NFTi;;&Ync1|ABPS#Tby zD>0i<6;bc{8YVl%d^cz|1<-Ag?E4xS-<$*GijJK69SMd+WoAz-VJpW7CJv@ns4(}j zr1!MQ5f-4{l*RX*(B@!C(Q2~+EN0%7xn=pF(yGq6T$q^UPNB4obB+iYMPPPmRC++t zn)3jAp<=U@Td8Y_IG+Kc0koqP$E7wwQTMBCLlC`FpU0aPEkPq^RxAcBe4T~?2`lP8 zqYx3?zc)U>E@%%F?r~UU)x?H@w@9F(Trn%VX_hr9PI+fp&9mr#oWk_6K?llAn%~APDDAT~u|nWv;%3A? z*`C~B-c#xCG%lhyAs_{~ZTqZ=8ERFO5b-m9laoW7C{~MrY!zGEiU*IHYU?;ecEyPj zU|X3sI|pMN+6F%trmqFV8kKVie>XIwQ6A+XB=UQig~s{U)YaI?Oi{%sdlM@-g;`w; z9+6(ubGzlm!VECDC@)z*+c(Zl&{lGzwiFey3lDCRe5NY zw0jX3N7a;zGb7v>A?{(S##Td7uW6bDNg1&i4hB8 zDJ>W^cypY6yi(j6>)<}P^AN01q`I3p;yjIkZuvbEafCX@JVq^5VaEOR$u%N;-@zl4 z*Cvj(;>)5gU`HRs$zHg)n4TzTUSRdY2)5rS@(~GihUsJhuuFly z884Zi$2E;W!6v{7TGC9*3ggQ-0n#%0YFjCt8(=DZ#E-*^nJ zy$e&t9OL>y8@)UbnZ?uF+MhM5UCrzM7~91G`^VQYoGasml1X8^Zo0JF7w zx*E3Ix!uSDyV+zyWJ6xV21GTb{VDswB0=6W*06bRBuFCfEM?eBLD}H6ODk4)V1T=uQAeBOnK=fwnXRbX z)ZOT8kRRMSk7gC-J(D?Ys9eVp93up3B#Tcq2R+1nAZBilq;=#u>fttTqk^#C7jm;x zPk|s0b(jV1h$5KM4jNg63!N-#e($7=kOCYmQ)(-$1sz3l4SBzLhT2J0uaS}~*1%O1 z4QNe9o7vTD`;abGX|(ndb-DHMmou~wHEo9w1~|#q1JxW2T_A}#Lp#kSF70|^aJ)e| z3yxU$f%_056abM85zQIQ6_{-h2ojME9yiG63WV{gvDmf&tC#vUU8Nrs!cy5bEYo8) zT*lK}n#4&_XVVPt#N>@j3{w=1_L-aPa^}lH4G)&feQbX zHnuR2DIMx0B$?COWqhLwZ1PSA&di;`0?~_;Q=5Rhs%OWLf>)fid}VpVXRX}LRX(=Ay@$%GNkH`>}ZTur}X46)j;*i&qX$LNeoQp`i; znr#)6P_U%oyP36H-MSwmjgbj_V7-aaZosO>59*~2xzVa^+})oH^Oeba^Vm&aU^vwi z8)EdC6j6_@f+NfFRdan=U`%gn*k-#-C0EAYx$()Us|WgP!{!Uei7k>B+?v>$wgsu6 zzOqm^{@K2`+a8iPwC!$!JT$?hwPry=LxY;xG0bLCSTIz9LyNH*8}H*i8p0o}>1zL< zhackta4Bp+mA@87m_FviTG+Lo*UEFkJ35{1Ju&Q znBMee0}*99kMEg=l{<&7X4$BD9@WwU_zx+PTo_pX)4eC9(bC%oyR;Vb#OnZf;_ zYxEo+=+V*I&bA$mXUx{V$}Zl)-m+?Ax}L~q+N_nvn#1*0!l)%%>{a&w>FhNtGY+z_ zi3KzBWfN-gSK}kw#nHgw&b%@kG~0I4Ot#3M;BA0_>Go`se|R%oFT5vP%)dxj4Quk> z&NBaFLq_ZcQ_VIJEL%e}O*Y;cSm~jK*v^wCgjHXwbwh%w!t_-g~eTNI<^o-CrSbleE!@uF2;f_ zHmmpuMCdC+6ZTtlZrZY~Y{6RQ0Tpzo-rs8w)eb5Zkq@s^`l7$&Z>mj(npJCkv?tkG zA1jVK{%TzM3ZpBN83Z9(Mr0$gt(up~gUHWpPiYdV*GBNi#b|BrP`DwB7vf!Tqx%N! z!3sTEF=2HmaEaWP5C=9Dz$nDfvmPx`%fd|Y;|K2M7RM_tZWh&&9uU;JqRdviS_`Yi zW@a-siGQ0RkN$~!L2R21QDA>)-*|Nd^Q#G?k8u{pj$+89J|9HiL294;h{T6WV5#CR za}mNlbK7qo>^%L)Y+w+fmq*H(3D!_oL>_kPUDZl)*B`ownO~5_o~g&sY`d$}$lUFt zIaw6jNkhBCh_F6`v&G&Xr%GtDI}cfWsVF4TG_-R?oEW3xv^hF&P39%~C`bjyamcI> zTGCfJ#Z%EP`k?r`Tzrm2v6n1jKVB>38_~V>p--wtOc$+4Ay`d4fm^e8U&C6mv`*wH zim)Lh2KpJ)>;o}vBAl(|I2)letON1QPq(*Iy_|s82c0O4cjYTclcdV&Xo0!pal^dq zA9cgTY+hK=ngj3uv)6xqq@pOx46-X>dyHNz!~Y1Mf5?~GvI&RPPRVGn{b`Z$-IIcc zVlk1-UsW(eVa%<~?QJwvn@a4@;^hUOXq$S_3wiA74093|C-rtGJJMZug#1Kqu)c@D ziG{u5YY}DSpGWt?JQxU0jCabt)0CrF#$dF96f=(aGBm0=eor9KK~my|c4A+JgU&T0 zydUKP6+_8L;f%J3o{=@%*`RG`JBS+Cd#@I03%7<_q-4a+VKA&y9hahBu^Sote50Oj zZo3K*?ITNa*5ka;$YIqN+a4vA<&n5G15Yf@l<&LYrLhswg|?^1%-GG&%wl80mim4A z7Sp*M1-DU;2vxzkgLS19*Nw1E%;-8JNTYY|GpQ`AYscI%vm^}!z(uOB|p~Cf3!E$ICB4J_=Ine`^ zCgt@cve;^M7{%;0D3d9+H~9C0EXyS zWW&Zz&qaS{hAiYLJ|9k-qhdtcWa&B0MAkObFrF&%YPP-}Mcj*oh`1%psQc$#)||C5 zu`{-eO0e0RRQ4H@ecZ?dBdgJNx$!Xzz8bfA9YqOC@>vp2;+jL@)b_c@^h9>j*4t>U zL;u>7>3E}>-)1Dq3b27JzoadWg_I@}k(K(&TF}xWWMXeZ@J>XcrLaVM8JIK*$7Ell ziHYg9wb87UHzM3J#z)m+42}|wGXL4KTH@b@V~l*%vt(?3ULacHJg3HcQdwircls7t zs!Y>8Q(5V(`lwnuGa_|kZIL)e#6o7&yv6%{(IIc12g`i#ex4gNSiBLhB5Id%Z8fes_bTrwd^ z;z}O@58LX3F$((`&DjW~4F-d{vmp;RN*#q;HI>fF$Jtx9J%)P&RWtX_xhYE)s#b&* zHp#dtD-&6wGb6CXq-?Q7F*CA6d!7_|UaXBJvVt9rXZVBCj3o*Tk=0em3rsRa>A)oU zl`vrX)F@O4dTuI7$#2Q{h%9znW7E_Io#F9uDwB@r;mBu^bOt2jYKAqwli*vUvOPJP zuHczc1yL2Y-%~~A>x+wgEjYXpAPd1>Nxdzj282D@dNZUgkrtc^i_j25VX@Bw=h__U zuQ?Gf<*vB#GGog^p1uAao(Jdo%SXD-dTu{W&R))822)5)aQ;A_L5%Ai6b*2i_zas!qP{}OLxSRVnfNwPakUO|?d5GxTEvd5UMV`fYT?E_s& z{Pd9~C-zEQlF4K|NrUNWW|uhQ-2{1?tV7BR701LWOZcv<>x@v6fM$`cB2|rY7z_K> zr#_iuVHS0x$Dc6GeLeaVV=wBczq~C>;Q2bE?{4sgrtAsi%0l{zPCh--GjJWl%}WaP zjg=;3XAAY=XA_rhhQI(7@{WpL>DQMMpaT&#WP$IqG9no}``+QHbDjS+ek^}D+sDrq zX;>5ciee&V+wt*E-oex40%C_~p79$}Zho5m&LC2ooIb zxX~1c*9NHEggGilUwNx0#XUK;v21agZ_SyT@5`Z}!ZC3cJH$Y9YH{P~gwq@1kF1Ba?Uq4oD^$%9q)AWXF zVxz(I7uvCo5t0L_Og;sz*gC6Y!d2I2?uVK$`T`!p?y4%oB>j34%Wb&6TVv^PYib$vHot70j{ z`GIQM*Yz+_+jkLP8=ZzcHlLXGexJ@wdpY-jCfAPqC_I%#ZS!%EqRInV`W#3yX6j$n_LY$`ala-pkCxb+riW}y(ej1O7>8S}vDwY8#b=#m?kxkNUpMgLStm_1GERk0 zRW`kd0$rVN6-GY*%j&U>fpqdae!R8EPmP$bU_nv_yyk0wJxSd@1ug@LS@sWLG6XC- zn(8$w$&v4v{N}eop1}3l6u>ko_qb+{56}ui49k1vQRs{|F-#Y3vh{9$0|TX48%Zn^ zUCf&jVZ(38${i3d5~>VW;{!TYs@jSc7GPu0qT}xCtbF_>4O?=$-e~Dl%eLAWDQme0 z!a^ccV8*}m#Y#ARJ z#DrOg{H#noLZ~NXM*)n*Y;l0*#eDPV*?o=XD1Np=PjsW)d85rlvP=<4iTJL2@jQ18 z;%KTMdj;Si_Z}5qigUH8uGxa5q|OL6g|*;uHX%;JQahLh5aV=rs=SQFaRGdC9P}ZS zktYse2d2DF`cjn7KBpJD)>LUOLPxsftMpn9hV3!>5IvT2%@~)f|G}H0T}TKS=mVI6 zAJVW7z^G(=4Z)md+lCwbh)mjzbhK=LIv!8>MVrn_V&z_ed$Zv=e0@wGVjvtC-47`e zCxmmRy3R$|+%|El-2A0h$NafUEbzpFgt;=>-rX^sYn#3O08VhE60;`y-#$mhiS5~s zh;qzVcfz&QT!O4bm=MK_TE>?8=7$fmB4%7-fw+wuNKgDzz?j-RHQMB+Hcu)M!^`<;Va8J^ zU=0oPnNn4=e4DYu@!2$|L(}FL!p^I_XsFDB*j7wuox|ko9)*UQ@1#nk&kz${df>BD zVJnX9zch;;#f^e`F`;ln;c`Kn6$*qG>D$X?4a^Jf^Fu7A!h92Y#XsYcWWl@4%1p}9 z5Mc(xhqou+(SBXuww!ij1V2AvR<$=!VA_omlN%AEFWOC|PX*W-kAg2*QIC+qW~Mki z@|sCQJdwgOXEw=lq7BJ5c!kEb>oyl7pBDRUcfO2`CPfyk(64IQhr8x!A||cN{H-U^ zOKrAVt3^oy@vkUXfo;B!@(Gae%h;H@ngp39!37j zZVbw;<6}VTU>x=+pm1OG8_mB`D1rv)%|M`PF%o}n{t$8%`{6n--i!Ss0kfrHyJH{M zqq5G5Ou1y;Udxn4IxA}5++ywNEYjB4wnt39vafAiq4#Y!bv)}Vyo1n1iPR)xYVFHL zWFK-gjocLKZfnN>qDnZ}Mpfp~un*J4{-e5H&O8+$XOk2l4Y=uqf~t>VwJSjb~v zWj#v%kKAFd$bLM-=SdG-bLKujaM4UVJaAFh6Z=_i3U_!vIv82kGLLT+V|8`_a-&)~2m9?wV-d?~9f6jlQ`+bQa92o?KSyqqDfP zhst7x@_l3op-lv%#7uQ-+moid+aoVjV{Z@TFYkD)CEsF==c^Zd6fg2!PSf8Km}rVS ze5YVhDP@xjpTXiM+ec}%&dB$e!va~OyssPo2e-Ip*zX%%LF{+&Oi%3h9hth=?>n3= z_PcnyT>rzjNxc8jn{eMS5&Ad-bNS+UGWpi;i6SABN0oL)4e^gWFDQ!rzQy%L_!P-X!`zL4ns9-NN~Dcnah_D3l9ar?ey)FXaj$5|LXEUoQk zw4bG7%S>4GFwG@$Bw3hnnxC)s9T0tbsk)DMf3W1{Z2QMgd;XEzLvTm|lSy~`*Ai{B zg+0pFg?)=q*1*m(1KIB-vyq5W_SFuL%~>>1FSs}Ly+FSo_}XX z9ve0>Vh>JP@7VUSLOY^xKvOF}gi+$>HbOm$YldJ!VV_=Bd1#;3YC1NQc?83`jA*(2 z6t<^E%4Pcq3GpKT(pXzSz{)feK${9|4|hJHz)cfc0NoQH$#4O4&B$@UYear@jH#N8$aEq>&ord#4uY}4Ay1!Xf5POMKFsM?QpvYBBW_?+D!k3pAK_20O;DPcsez-B$M|{DGC6~DEN#SST(j-e`dl2cc z$9`oE+V}h9UG&hU{jf%CU0Cv9cp(#e8uP*#J?KLyg%#y1q9{l0Zf+-9UPy!!6R<8H zEmvGV)Nh34H&c&(Z`%KNRxX}ryBPwFRkrPgu0UH`Sqf$HZNCL&UAPv5%yFlI_$1?p zjOD^IiMB_%g2+AuCUVPu@nwANKKHHgNhlBXvNMIfO%gOd{QL^byKx~0tLMKs}yg;Xn*GvwM9;k6^ig)R_`L@o=@mOVxL`3Gd?5Dn!5gz^75A7;x4o%g zrQy7M>zr302}Xx&HG^(O2iLB3{>)-%mn|yWTAS+3e}<&6j+PZkaTL5Ry5buXvfY_+ zOQv>%BTDQKE$gdWK?i45B(C^eZHZG8*DV2T&6BUZ=F9r=g1It54`sH({lBQ4M#e*7 zm|fdP<3}TH6l|NRm*ld2zJ^Z34<<$*FI14ziqF^>p(2Av%NWPfYiuUb(a8Naq#`^3 zbz1N|?tA(xf`?<8Q9e$a2eMBOpu;$BoX=}^gK(pg+u z%_x%X(xQa)xm1GBE;4rX@5SjW!z@m>%v#WUQ@fe6VVZ>VYh$d9C(Lz%u92Pct*MzP zM&ap6GH#70;$$QvOI{bxjBv%RJn;g34Ff});>Sgj9SvS$jGHuq<)oxFCcMheeqGnd%`UK6?Y!7da&hE;0_^Qloz4oFPIlE3_3opZL{gq9y*G$81EZ_8&Eo$P1 zq@^J~)2tb!-aFfovITFP7pAfrY$uwk7#p5w>UU+bj=4xpa!s;+wO0{6I%j~QI|o-V zafvOq=b0C$&1zv2tL;#Npc3^)EULcY57BhrZk#s^W^r>ADvc%Wr)1)|&=5tl<1c86 z0`5O_+?1E+GezO0G~H|8VzZi268zpdBTI{mjWfc>JF-Rb)U<5jAu1NH`sY*p8?)Ic zg^nBL2KnTAeTN=a_|U@Q{4FDCCq7dZe_S;DhGmv+d)KwlhAbwP^)S5P=3X^H$})@Q z1I6BDx{q7Rqhq{4Wi&sfSf+iU6>mWk*X$AdCgMOncj(c=@uN+QZQQ$Lrp2YD$DV3F zU!)d}pT8Td-{sT}O8*p%H8Qe_{Q{_Ti})zg!0L+AGy4FDZH)}?7pk;$SUwQJCtsXg zC*oh9&qZv})1}0>6r6XR;q~WFT@=~(?fq=^Z>h!2wpZh?PoJa>jP_azKiQnUZk0@5 z+&kO0>+yjK=ldb2FA0f*uNpVyZ1N33-D?KAFZWNwEl#(rxOn4+biup@=k&~Lhx2(<+hSgE>uxn>u3xi$Ro<`pJ@aO+(8s~} zS-!1kUP|$P%~@EWN^Oa~smSmxy=?16-RI`z)O3D1rF#{>{V83sI6b$o(we!cI^HN% zyDwrBTXS(*8?$6{>4GIpe{^N(>{@!t(sX{;l9|bD<^o;mp4T+?+*7kpip^?Pl4Wrj z`*Qo)3f@z#@%}84n@T#d=k8j$HCiUDwdZ!UTOSV5(4M<>`<{D7(-HpT{n(y#`S=vs zbMtQ#Pp(iE68S-!Kx5Rc%C0#+g=xYn#x^JY};-CZqjx4_;A z(YC$2`Pn~yG048$p4xZ8FNz;+pQWBoZZd{%L_Y}07Zpm4y?0Giak2N@)1q*-eD7|0 z$s-5x3aWeWO3M?p0)hk@j86=WYg*U9AEvz(-qhr*k&f_&U#YhDE?ROCzedkgg5GH& z#Wzw%M9m2GVbE?7fS}?A`6n@a|YW$+C@?Cl{ASM)uw{y7#VK10_Bx z$S_oy{!SB;ou%fs_#k9xTC%0oqDAQ{8jx%tOv(mFn!+yv?_$RqpZ8b0_{uC!O;gRa zB;WLyu70|`=XUzDceimzsaYDS(yDr`!GfzEg*BuvwE^0}_Z0a7m9AuEX}FZaM>x>a z6xZVqb0i5@%0~LLvaY7&chIFkVZcom-;8Rm3lJEUhcg!3S&r#DkR$KhEoET^CU4!&w zJrRj&$ex7)z$JzjE*p|ZDKu*bU)+P25F*Hs?zv}|#BrcJQpuD~MP>KV#Hm%`YKdus z&YAAgY-vJr37;Yf6-aC3kJ>8@4YyXzg;#b-@rLm&YwIYw51xTWd21A+MHxBa+&Zwm zx#gyU>Uq(8W#w9SK2(#Sn49RIU{O$+7@ke`ehF{PMp23?R2oq`YR%^Cxm``aclT&% zSI>S8``Ese8$vU}5{nqomEe^@36|5ncMhYBORZ#UX_O`*&X_&kPG`c&Im3!pz!e`E z=NHb6Cd~?pg8@iKAVWnuk&ioK9Wfo50kF!lg8GUlCU>fG%gyMZ^H7^iqe{ClNsI&w zJ5t(+;@-Q?lH4%{kYy0xuJd8+JeGiWqi62kg+}5O zOO(GLb1y}d<^z>52oH^^u1pOca%3*ei6IrAtzYAaD{|Su`q;MMbR?MY@RD8z| zm!pekR?0i^s(a_Az1c}#irnlD&MVCtrc-5^eKuP9;r3yr@DPegv{HVlm|((F-f1^v zXH|PNc2?O#mKgFxrKaw!bVAyXJ&l${C0iY<@Y&GNDU4vb#*oZLRb&4#UcqB&RL}3`WCcgmJCx(pygc+XoPb7tKqffn53l3jH<$*-|(W z*{pEG2+EgurmvmF=AczG?cswwXU_6cvwY4%HGUX|b>67hSGq9|#BvaSMM%zBn2yv3 zs@SIJ#r5``voN;{a!vy4?0E$rI*@~~7(U{cx$2FjHhg?X)jfZnQt>Bd zmsV=sSDm_p@ZG6%(^LES>9bayuV9^eb?@An_Nc;Z4@)yH=q|0ke0X5R{A>Fb>>TM$ zwnSMP7;lWTl31D~Ng9fK{xOS;4wD{}kJ^>24gML*1zyhF-$`P`=e9bFmb>lE52?xj zO}k)*G;2~n~4M)c5X2zf~fez)rjgzxOWYlI81@yclIGY%u52kP)COxruZ|sL|m4mK!RYrp%5J9A`?e}oT_uNj<0vp8$ zvgDnN8IgWA9MSd{Fu%x6G#@H3r>ZnX5mJ_dwR)m>?wbn;+Kzzd> z;oHKpfnvE+lsPXWOq?6_YDS!7@}T(ycU6nuTIc!b>8bs_$wOA8bC@Q3EtPg++bqZ0 z-a+Omi5$k+m~7It)x?4y(xuNnU@$22pz;3k+IW~$nky2ACU^vNt3Vqu0$&rz+>VI~ z20`AKiZK!$J=Md4Yv>M3bPU5l#;I?ST{>sEsB9iEYToLW7T+?6JU$JvQQcA{{NIzT z)+8g{#OF;|fAdz#?`5WL7uc5X=G8@7zfed>3@sI8GrOgrT#zBY`H!X}@(i;>Om^Vn zX3QFo)Q@*XVV}uh57ui~T_!17isOYe-H6)(e*ep>JI*!2M zwM8!#FNyiTKRPQIYQTeSmgX|&nW!N*vO&?|mCC`vvrHnbS|Nt27Tura}%4HtRG%R?UW-}7f= zwYSyBM~H}s7|&g?eqCrtG1P@p;E{P>U7Kg!aF5y)EKNgEy1f|isf66mcrU&=o|3{s z1uX_WrW@7)!iT2XrE1#;w!LZjay`qG*`+n$(50Dtc)|6^9JXr*^yM@tzb?2 z7~9n_PBC1UtlFOJz0;;wTMN^xjrsIyt!7mt$y&P2_lD8;(M4oKz0`+2N|RD_okC41 z`L$#j;h2#;0Mm92wWD=VUm>>$L~?j;FvjqZ20Ivgn&obPZcu2naht_Gox0-05ifyTq+xd2 z?_Z2Kv)26T3UeH<-EE;b&=p}}ic$=$^eTeFpgI5B)SK2T&dZiUbDFZY(rgPF6l1|+ zO^)s82{TOu-C0hT6ph2v!OCaaEOQA%R5}DcDy9UbKV;}kPMijiAv%K?S!pXmV$u1< z*;9ZZk6epb7)@Da7a4|n&$HwVw$OC;^Pvo{2UU=Y_RuhVFj`-s%`Vx9nWf8}5ovT< zXXJ=pU&a`TcQrg4Ll>a1DLPg7ADOGGTmY(b&wxhEE1DSC3iN5G1uQM+P%AJOqH=Tp;qwS z7^_p7bhCCkXk_ykFp1bs7%0Y@r*yo+P~_%cO^IPRXu866<;0{QrpT5#c-bTNp@P_x zYDC2bxKWlv$E<{58fR9|@CCJ8ph$5RKo>il>FMVznRDBduFf5supTuR^Hrs`UHv7k zznBvd$>pI%`CgG}!|()ARVb&;Qi&s-sWMH#pzW%|nvj0If;Rfx&_xP?C+m?aKU-Bx z$LeF6%E(QZvc#z1CE_PnN>tEk!$R;oD+A>TK*d`(Y+S!)!?LYw)^Ec#PVtdgC1!;Q zg*H(dvtS&;$W#^;jeDf?Q!uWyEZM+k#eCYHpIwP6O<7mT!th$bNm(r=ZWI;{Xkj#> zF%A#UP1HxQOjDH2D#Pn$cOpcmWh#tmuMF!n*}&J(kRc5SE~~BC$zx$5ZhJqU1+pcD zDly}t6|Ig30!;s8Bc``2u8rXx(0r{_`J~Ff?omoNvd2Oi7Rj@j8vztI9%eD@>R9FM z>@se=-N_sO!MV{2jN;JpuqUt{S~U!hv4Aj3kd^A(bQsrRnf>TV_qwonY`IG1{GR8x({ zs#w@-R+qe-=B$*MjK_e3q&uDD9pk#rK-FQjeMM}30B6lM!< zq@+MQm8+C_t{CHTcJ8XcAd@f8O;>EbY-R2qg~&?VgI!A!TEq|`R02HCxRA`UOks^y z_VuD{;tscIbuPp>OjpaG2X)XkXD|43tf#mHS+oo9E;<+KGA$AIGwWg^LT zyPbPwCVgfodke=yIh^8ZSbdzPje49hk$FgBx@hKc8YS?WoSK8_{^M3{abTHAORvG- z=~bvW&Mb_RqPrFYs<{JD82o%*6}%*Af%tGnzA$~$aQfB;3)fn(!Uqy3AcS7B!BiB8 z_sQ7lZS2ev{GQv*%{Hrpa;QQUcW4T8T*Yl`tQ|KiyNr9ZW-lTlPb}way;l~1|E3y$ zwND#hOEPD{ImVoMl-6sBA@E!&AfJ<>uAP-cLh?Z+t!zuQgHX}5i~=3*7PQ-YXYkPP zCd6!y9LA$)lo~L^i1p8$9=2%2dV}vg)L<99O()!8Q_nIlrVu%T4%y>10MReyS^QqT z8=P)jwf=FOwLozAkr9q=r^IxC6<@eEK7gAs<;9lfw_@T6P>d;V6C8ytajFn+FNm8N z3*V>{JWq9m7Q?$TM?@hU*;b&h7>LdqCtXvVB=jwtE#$@knGKvKrY91i-9SdsC@B6w zJQep@i@kF@rv+;7xU(E@&pFXu{l={kL5e#KZj=y2)nqNEbFbW-olJXc^f877R!6@e zBFJ`!Xh_hd18?V}J39*pah&Ta*kWl z%%KvW!v$&rg*)V)F8RZ3L2k6Nvr@A~5lo(9_F3!wvBoU!dT~LSxOT20)3a#4GsP7^SVzqTUcC=$KM#L(5E3Tnd??eWLi@xfrtB50!?$HWtBcc~ zd-yV?TB&`9?W%P-8`RiVHfk%%E(0-;QFvP9n36BYcEn_&(6G4e+h6HT-Zi%_tU}vj zM6T64t$vi_b}7c-F@PpPLCK_uLM11v8Op?J#t{MME|^P9=M?kR~w) zxu&>f(MUt#uoh@Lg>VDdq?&ultmBr5_Vd#>>=tpKSG|`*JlUQ{zf5YzDT;)(jq%F1 zP_N{mGrAkMcNqt03Pv1Ie84tKX2WhjTXp%RSs2>H$(9!aMS|CjMuEViva(~1I`2h{ zM&{NszBEKs;_0exelU~w;rLX9e3mjl{(vPxSz=Kj)u;sq0~cr7FJo`{47S-6KYVhO zz37UBmPL;N^ErEM@W$qbSqvm>%LbefM z@s9di3e&RO z^56!P<%+T6t`5n&5!<)uEagGZL&Jc-q7$gCj5)~u^MKM5yG%Zj!h>Q$-LN&=2yVcDm(-+xng|h&9 z1CI=6=&2tdGs!bOMV=(z|F5;GYVUJSUl?WP0Fl}I>|MKd)w-{Lt@2A`5lXPyXc+fS zaVqQr!YjgMO@bkTZAw_afiLFeL-qwD2t)Y&)`9Sv2Nlti#Vj>_? z5<=mU5z-g<%82+_+;!s(L&*{(+$^nmlL9JLXhESU92rr8IxTxy)*bP*fMY%r2vVVf zFlf5Cv#LmM?v-LV$@n$sh)ZJLZ37iudXO(J6HLZ|P*luGi(5mijlPv^NZC4H^V-tz zOY246-4-QbuE#7*1DpCAnSSJq@FyCqZpzYHe_2jBdoitX2K;Z(1B+V>sl<4QB-w*9 zOSIjNz?5J>k{lYM<`Lv~@NZLSzg2d|RHPkKJ$Gi|>t{&m3EHD1u8B(7QrPk+8R6Tk*9>X7<)*ex(a-QJvgri!88avE(tYW_qa|!Bb2{x<{5`9XUr)A; zo61b9+tA-$4ljD_K!bIoYdWa9zi7x!6p}+$4gW9P6RT0Ak3=j%@e|M{Y`w}6H@eJg zn~w$@U`jZ2l|hM|fYsnY+?f@aYd(;*)0*5&0rqvM&y;T(+4jb!_09=qqU@BEc6|@6 zGr~Tuy=cKvIUFsN&OI&XmDxv^AP>vG>PUY`3O)R$0q9k_gDJ;Gjhpktj?R~$a9ILM?Id*VQX9Xq?^Y^c#9lq_pw zf6tUOyi%)kP06R{l1-0|-Mk*ghx9l@@Y}E&eI;dpcv+gG2pe@XE6m3={&QQZEV~lO zB;oAS&pqj8isohuG0dD4gIqQALp8Yy#u=!hVlRn`L2O!1%=Vy(#`5x-<`r4^!`Qg9 zNMwLlPx&zH+&z(_Oz)6+8P>Eu%IRb5&PZ9p$LiQs1A2LL1{J@X*iD_o6!LMdEpm8b z5~nJYlw+RC6hq8mcGr|Lee6kvo-!{hWb0ddErlxYSVl4*7qYc_S&)c_Fj$K!ROndO z@z0zcgEymS8Yfgvr3ucA6w~3mq&#m%-LO9Q6l$*8LFASS2O;w)EcEZzoYo*4oVRW> zhnJGjY$YbTaST&wv?vN@LQzKI z0DqA-XN~2Uo?O%oPAzNF;kJ5uZr)_j@6Ql~5w?xo98p`hbY<`aw_!7iO8Xa7Bn-R0 zW0!{QA8g}kVq%D+u<7Z^W+kzLn8;tq0wy)+RXzsqZR=q{kc-qMl;ev6?YUFNK~OtT zEIUsv5^Qcv8>C}lksp}qL;wh^F$BSbC_HZ;09A(t)iU%fMkgH@xnZ}g#ey4$sF+E# z`&rYapIOaQc#;SLO-EoBC z4ozrXvz|ojOS?WP%R{z(R%E*8p+sESNZ4)lRHN4ESVoBn)(RZ{A`i zKiWIuWfB#nvoLwfuP0@vtU-YD{Sgu4b8`tBYnGkdL5<<$<-)0mQcCvmFsDS5Mfw?S zlwKWOe@gWkr`CKdycaNZe>uSp$RB$W-MxU)7PnQ{9{*il`|wWDI>v>C0j@-BP|uBC z?`d*@CgSW}y_=~x@hVfL@q+%v3n+s_TT$&$|5$!=1oGXzUb2i~-sxy@M@HP@ZY6OS zU(n1)UMR78`jkNb5f{$-#nW8-W4UL0IPgG?iT>@LUSWa2WSG__NdqQKo!;J={YI^d z7o%J8)JoO13}-#9w5nWgahq3Y*{Q+^f30{Xo&y& zLn^EH;|N^&-tr^O9_ET!ChL`Ut#n~-%gyDlvz=;QkQXtDl-Qq+^+*BaKt)d!gjF{N z>yie-HJ&`WYF1AJVUoa1TV>NFe<6lY1m(xBO#>++(!OBw%0b|l=yn1|JYMM+-XWXt zq*Wy}BMxkt7I4*fUq;aol!88$32GSt(MBn zX39zZ%k~h*OvcrsS&y{|M@Zr@e2B)&2~d&kDmiD$$D=6eRfT>Jo$*Nxses~g z>vVZ58BJC%i_MNwiH4>w2PWwB%+f7Mo{BsL0>Bz7M{vPv`v99No}p|}J(<$U8SnaN z!H0(QX=gP((DrxxIoZ34Pz+UrAEYO0&j53GE*jHSb>zB{Ay&cZ6);;g%2?i2`5hJX zNKAE_paB>Z^`-trGVjZzcr^+eUfOPcOE=f{~fT&$v7Eb$cc_RxZZHpJ{t<^IIV7Vb{hz!_Y9V?SeoFteE&a&}4FpX!@uC ze;g8$z6Bd+kLD)=wG7Dvyz2P z4>q+6p!KfxY}=SD?R~;6!BDm^e6u(7(ehVtE@tc;VX*o8>k?ks}K$oYete^(Zm|oq9|%f{$&m69nn2Sr4#ca~|k5YgopKv-<}jdrD<9=~|*&QKNof=a??1LBGqw!2UpESj58Tpva4$#4Y) zhUH#8GXlwprW?!mA0PhWA&uaFc8x|=U+q4d^lHD(!6&pFpFgB$)I9#po`I^rrexLa zKMUxue<#7T;ua5xpGlEW$s6r3;V*>d2ZgXksN#MKXfd8q@DWDj5$-S0t` z@!wZFz`ftoZWs(2tznH((2EQK)n&13{W~~puk6-9(eEy17tAtnTrDJY&3S?^==Cg6 zZQV?x8kIz9Z~poxCEgdGC`h`G;8G6?$`OIsGnYb zQh0s!!`YK@zejM2e7*_6!6;tDF$~%1)@;bGhK3*9ZZE3l#*s9I z62T0Ek~d@@s~d=6$x;HHBx`T1 z&!+b^2Btw>!XVr8xFz5*f*oxLXv{ zD6B3H)P=*8cRt9^&OgoI!ytsKnwHMXbNXs89eyYkU$fVI)(ll!zrvR7`!+oIkfb`u z*Oa~S7lG@69@w8kqV=c+r}|I@+QA{1TWO7mX3Eia0fACfqz*C?FG1Rln?Ni()uPm3 zq?6>Hx*`<`T>*1fjV``WTWvC#&O;60763<8?WF2bw2u=tc-Bdu?F!TX)r8L=k}+65lE``X7R%Z9YL`8rLr$kLFLFh8c}IKUJ8V!CEBPUDi`Ho zcW0}}<9-V?Dg?7G!V|%Owk@)OvYm!LOO<>sJcp=zxYd@@rn{DRjo$i_?$A%RA3auM zf+vK8+A=ee`l2?9Li|Qlv%F;k_ai=8;i>kpz0N$bp)whW_<1G+{ zmJ!23HjMhIa&i)8H;3!s=_=aIaZRedVY7c@w(C=OOV;JS;QcW^{| zFa^yW7_VKBVCjv+By=t|Sa(C$2HJ-#Bu8%O+o?5mv?GWh4u{@8ygI`FS?n-z1A%B3 zpqWJPBOZ{{PqK;iwdj|5V|iB~OwNNjKi6xsyS31asGa(t{6Oug`=MwrQv52XIZ3$2 z!zjG3Ro%#GA$BN-EM~)S%W&-;_p|*MkY?mKI}TeM&Z0EshIChL{NkR0eaQ$3O79Az z&f4ktzp0W?zoVC^2>RMV}SKJ75wvm3)L?#?y+@yxh##19ZV`yf6t zWS-cvWH&@_;0M!{BdUSy>mgx@hT^iUn{mNKN}I@vDinE&ugI53Ws0d-UeFk)`b2Sc z^HcABeEY+X9{q}*&yW7?!QIdCK22%JcO-Hkg$R04KKfh`1qGO+Zbfm$@BfT)mP#R? z!0ATHm>y8sbKYxp&RMiH`w8CmIo9BFf>HbzX?LvZm4n^<8(8s)PIf?-{O;T5Tfcww zyWOY9JFl0&U+(zNo$cLcJIAk=FL(Fs7{nK$%;Z2{$w4v$I&H8|0oQ?_Q?1k(YRpm`vBDC(gB<7x&6uQZ?qpBRH)RW>`~VJ zW&H1&@gAfOm$7SPP-iP0fTgbg^6}IM@L`^aF{Xdr9wR=L{9J0j<}LUmm{XhdfK-aq z8(4iAW+Ah(0KW}WdADePGQBCxOMCX6V3Mnu-Vo`$}g})|_1j2r90ZLO%x!@p1d|3hNSBjL7w>@8_7$OwL)J1n_6Y)uF+DbULuHWa+tl4|U0}4wHVwIvp=>c~@_}vtcX4LTk+j?7tzf5&1}` z8$A6!nIVny{_@s4gpvDcKJP96G2-Nw%C%==+Gj}wUIDkIrWf`BlVJujNu*JK{nwt z1yqTDEIxiA=W1)8N#nIR_m86f3~9&}nM){z!F0A9 zq#nv}!IWu0pV1+{$6eT-A@&)I*qW61Cn{%I{H9@zc8-raP{V@X=zHy6mK$h_Sl7UzSsvi<(Jf%O z_c$0&X0(hjr`>mW0e|-}BDc1V)j^|qhWilPxzeZG z$cUIig}MSW-~Z0x!oZviv-+Me!Xx$efSHMKO6DM_+zW&4?Qhdw*PHdje6cMCCz#98 z&kGQ^GU6`|2}P1H&j^8v)FhbxNGG-~Ak#g@Mrwj)F?O8OGEY0YbyoojD*Ch?s2*<# zMi8;u@dnra*d3usTJw(DF%EN_c74(V6G2RvVA2-KIi&DF-FE;%h5~Je4lj~uMzWY` z=KwSyYUYoI7$(SSq|Q@BP(+Q=Q^?SgWp}qM=aD4YqlnaehTW`w=J8c*WQv~Yjcuo$ zCTaJw>DGz}7seG4Ft)zU;5w0%JnKqhD%uK@cN9@C*9?Q3a#MEa2GFG zd`5pvXkUhX<9r$GD6oTRUKj;Nn&Z{ilB0|x$rfPaK5B&i{Ml1Ce(u!|i88~Lar_Y0dPzFYR5rW6zz76%xilQAD)8pXjBXG-_C zTUAO^7tj9cD5x0VMbT-$p0=oeOjBOx7K_1zTW!drTMi@LdgrRtG96XwbasMMC)sQk8=_^qp=;PNkP+g(&*RZu&2)=Msnrwve< z>vZIAZJ7MUVYM2M-5)^UodWcN3tGCe71H^KbKt7dgXm5PxM1-qi%vRvEdKS=&mUZ+ z;z*>3%WW935;@DMi+*&KNcHH6-&{ndF`6ICH+-l{HAabCrHWJ9rDoeP+vpr{ZGzrU ztwdax*klgVo*@O2ov&T+a;Yb~wRyp3?H~&Vbiw<}v;q`y&JzegFVAE%&U>g96Q3xCC{F87uMT3+J0ZUxDz2gY>4S+?gc{Dg|oFMe}|%q~Ge zjm|H?8#4~K4PKJM+8e1-8y}0g5JwI|VeKPR#J~1#;Z(I|RJ{nZHtizAO=lo!cA3#4 ziKhb)>WfyVr!gbCnJBXRI04Uyg(yU!nrsqvaR!H+AzfTopFJx#PkUV^+8YmXM~*y@ ziUSo8XI;85q1h*~_KH1e+up^S5Ux^DBIbD;9{MPC-}o2+50Gh9#*Ky_hFRFtxc1qj;tVq|L-GB##sF(aWh8b zI)0Lv_D_5RpFB+Ea>EP)d>G?$3$uwK2Ob(YF0C8v!L3sp9=UD$jFI3^%e@{JU^c~d zFF=U@e+>=CE0GZr_MF)>)A{ago_t9FN$zvTz1*t&v;z;^G?h1NXFYuGinIh=Rg_Ht zgXCcoWIyeU|2DAItJwK(OR;V#nq2yc#Kst~+yWyeKw@YfTV}2Qo2!~sji8JQal%Th z{OlU>smCvlwhh00L~jgoYXAp#cQ}1TvKnj2?W~6*sn37f8H;vg%JU3`w%|39cj6N@ z1&0clt=m{5#4^|ZbeDYM$~{lFzaeGq@tNCW4Am{Qbm0PbYrd4CRopZ{w}G#Wns6+b zqphzMq|L;|CzQn+BPRUsS~yqs{Ryv|&N9`H&<{AY>b?W7h!ke;Iz{v_uN^uN5cTm3 z^={6Y9xUpWHOqT^W1Pg$p!Ap?3D0);)BkaRT5(`9A1#2G3+v*QhbQ!?UVcE*2WXkD zC`7)}mUYK%XqDX&{!}M^Da&bOTErU&G-yCgJhZ+@HE*RlhVRr^_ znjo(Z|5i~7^oIr0`aQMIOz}(O8ZB?#mfzcQK?0H1Z$p)nTe`*ecZhWKdF#j9Xsvt2 zW8XvqQP`nJUfbEpA%PqYfsK*gO9jk}4Ok$ORXsD;!gTwb)(EqGiGB0s3dq`}nsv$hX z7oZ{Bq?Uz(hsT+m2=jWWsj$7}LFe|C|E>+1@b{u{#$X1a)U4z&x)@SJicqsqV_`}O z;_5bYa*tHc**?2P*YSxlUgV!TcFW!iA3T0Hp}r`b(m4R?6(=|l6hhm7)HD?J#}cK}RsMQZ7Plap%x}EWMtv4?Tb31SrId(9%d{uo2X2=VI%xRVt&U<6x~0}& z&3cxs1wY{JP+jT?u7LX6uThE`V-nZY5lvlo{NJcqS79jUS>ls}cNjHHlCoG}z7>HW; z?H)YYKY6?w8iv+{bFg71ZM z$Q?+B8jHBNZB}Ms*^4ZI8(~Cm7%5rn)s5q_DJ?cuvPjEU4HzU>b&RwMMSHGw{Ud8{ z9aVdsN2Kw&S@xkTQ2W41Ghq_N?=EabUN}V3CUHNZ`_JdhQ9npJ7_2JUKI2HtX!Zv( zD3Z|4!-J`&h0_Vsa2n3-u)f(4i6M;H4`WYgG+#YUm>2LO17$Oz&-9eD;=J6grw!~< zS!?N^S25M0pk>qB11h0!Z-p&)91y`|biqJ!nboJ3rT&49rpBzw5(H8V+rIr~tFZlb zG?*MsK%~UB0Zfz8t4EaakJq9LUmV{MC*X1}%gMrHF%Lh7R;gOcW?9FYPYk}|xO#To z@~h8jygrc`9J^phcx`GJXTDpv1>KnN6<5X;WLmJg^kd%Qct{w=?qpz2-+cmiREBDylWmv5io zyN2P-k@sZ2HJo;^8w7zli8~SqLfbCKLiVaE>dEo$ivy~i3>Uol_~g~K>&mw%4JYfb zJ$vlhw0P+F)ywT`Xn7>XlkMwQj$YGh1P0WOnXqJ2GyT&LO{X2Zf@s^*@~i3d9-ATe z4wNLS5siecBz6Vd^Go~$Rq^Ep>cf~w^|PGYcwvn3LCzZV39t&ghf+T@&byN({$W|$ z4(J0);EKwuBBR>Mj}5qX-NLicJC0=$mOA7GTpv8>(52s*)m~Nn9aQL#D9bg`IjZc8 zH_3x0$CV*S`EFYL;kc5N{*gp$k2Uz!{Zpej*Ch3-dS<$FR~AI4X`1Qb zeOt+|wcFd>Fldye2+V0;sDt+gA4Aj)?xp!0z2oe7^*DRiw6kUxcFq$pHTzurpn>?o zKo7H|>yiQ^>|^`XPAZ*NuXIfD+BF@3FbRK|yd!(Px||cc7VYi$QWqvv0NW|W54*Y0 ze1H6oN&Wa8jP>Jp`ioW?Jmm*|{0{#3@jGoQzlB!fjEfVti{gTAc=4Q0kFXdAN*xD%AS&#uvN9Hh>i-B_ZHvMM`8Q*^8IiB{bc*_)$3mb zB<(0p0Zn3+8M?cFrS6?vMZg$v&#yG{=bY(hN0SCzub2Pfk2__`SQJbCM>Wa%BwdNR jWd3z<#`BYPkn6sC=FJg`7{3->v3Yh\n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Aktif mi" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "false olarak ayarlanırsa, bu nesne gerekli izne sahip olmayan kullanıcılar " "tarafından görülemez" @@ -76,8 +77,8 @@ msgstr "Zaman Damgaları" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" -msgstr "Seçili %(verbose_name_plural)s'ı etkinleştirin" +msgid "Activate selected %(verbose_name_plural)s" +msgstr "Seçilen %(verbose_name_plural)s'ı etkinleştir" #: engine/core/admin.py:166 msgid "selected items have been activated." @@ -85,21 +86,21 @@ msgstr "Seçilen öğeler etkinleştirildi!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Seçili %(verbose_name_plural)s'ı devre dışı bırak" +msgid "Deactivate selected %(verbose_name_plural)s" +msgstr "Seçilen %(verbose_name_plural)s'ı devre dışı bırak" #: engine/core/admin.py:184 msgid "selected items have been deactivated." msgstr "Seçilen öğeler devre dışı bırakıldı!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Öznitelik Değeri" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Öznitelik Değerleri" @@ -119,12 +120,12 @@ msgstr "Stok" msgid "stocks" msgstr "Stoklar" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Ürün Siparişi" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Sipariş Ürünleri" @@ -132,7 +133,33 @@ msgstr "Sipariş Ürünleri" msgid "children" msgstr "Çocuklar" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Görüntüler var" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "" +"Seçilen %(verbose_name_plural)s'ı pazar yerlerinin beslemelerine aktarın" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "Seçilen %(verbose_name_plural)s dışa aktarım için işaretlendi." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "" +"Pazar yerlerinin beslemelerinden %(verbose_name_plural)s seçeneğini yasakla" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Seçilen %(verbose_name_plural)s ihracatı yasaklanmıştır." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Konfigürasyon" @@ -156,7 +183,8 @@ msgstr "Teslim edildi" msgid "canceled" msgstr "İptal edildi" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Başarısız" @@ -206,10 +234,8 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"Önbellekten izin verilen verileri okumak için yalnızca bir anahtar " -"uygulayın.\n" -"Önbelleğe veri yazmak için kimlik doğrulama ile anahtar, veri ve zaman aşımı " -"uygulayın." +"Önbellekten izin verilen verileri okumak için yalnızca bir anahtar uygulayın.\n" +"Önbelleğe veri yazmak için kimlik doğrulama ile anahtar, veri ve zaman aşımı uygulayın." #: engine/core/docs/drf/views.py:66 msgid "get a list of supported languages" @@ -233,7 +259,8 @@ msgstr "Ürünler, kategoriler ve markalar arasında arama" #: engine/core/docs/drf/views.py:144 msgid "global search endpoint to query across project's tables" -msgstr "Proje tabloları arasında sorgulama yapmak için global arama uç noktası" +msgstr "" +"Proje tabloları arasında sorgulama yapmak için global arama uç noktası" #: engine/core/docs/drf/views.py:153 msgid "purchase an order as a business" @@ -273,10 +300,11 @@ msgstr "" "Düzenlenemeyenleri kaydederek mevcut bir öznitelik grubunu yeniden yazma" #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" -"Mevcut bir öznitelik grubunun bazı alanlarını düzenlenemez olarak kaydederek " -"yeniden yazın" +"Mevcut bir öznitelik grubunun bazı alanlarını düzenlenemez olarak kaydederek" +" yeniden yazın" #: engine/core/docs/drf/viewsets.py:118 msgid "list all attributes (simple view)" @@ -326,10 +354,11 @@ msgstr "" "Düzenlenemeyenleri kaydederek mevcut bir öznitelik değerini yeniden yazma" #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" -"Mevcut bir öznitelik değerinin bazı alanlarını düzenlenemeyenleri kaydederek " -"yeniden yazın" +"Mevcut bir öznitelik değerinin bazı alanlarını düzenlenemeyenleri kaydederek" +" yeniden yazın" #: engine/core/docs/drf/viewsets.py:219 engine/core/docs/drf/viewsets.py:220 msgid "list all categories (simple view)" @@ -384,11 +413,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"human_readable_id, order_products.product.name ve order_products.product." -"partnumber arasında büyük/küçük harfe duyarlı olmayan alt dize araması" +"human_readable_id, order_products.product.name ve " +"order_products.product.partnumber arasında büyük/küçük harfe duyarlı olmayan" +" alt dize araması" #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -420,14 +450,14 @@ msgstr "Kullanıcının UUID'sine göre filtreleme" #: engine/core/docs/drf/viewsets.py:347 msgid "Filter by order status (case-insensitive substring match)" msgstr "" -"Sipariş durumuna göre filtreleme (büyük/küçük harfe duyarlı olmayan alt dize " -"eşleşmesi)" +"Sipariş durumuna göre filtreleme (büyük/küçük harfe duyarlı olmayan alt dize" +" eşleşmesi)" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Şunlardan birine göre sıralayın: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Azalan için '-' ile önekleyin " @@ -473,8 +503,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"Sipariş alımını sonuçlandırır. Eğer `force_balance` kullanılırsa, satın alma " -"işlemi kullanıcının bakiyesi kullanılarak tamamlanır; Eğer `force_payment` " +"Sipariş alımını sonuçlandırır. Eğer `force_balance` kullanılırsa, satın alma" +" işlemi kullanıcının bakiyesi kullanılarak tamamlanır; Eğer `force_payment` " "kullanılırsa, bir işlem başlatılır." #: engine/core/docs/drf/viewsets.py:427 @@ -549,7 +579,8 @@ msgstr "Tüm öznitelikleri listele (basit görünüm)" #: engine/core/docs/drf/viewsets.py:498 msgid "for non-staff users, only their own wishlists are returned." msgstr "" -"Personel olmayan kullanıcılar için yalnızca kendi istek listeleri döndürülür." +"Personel olmayan kullanıcılar için yalnızca kendi istek listeleri " +"döndürülür." #: engine/core/docs/drf/viewsets.py:508 msgid "retrieve a single wishlist (detailed view)" @@ -630,28 +661,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Bir veya daha fazla öznitelik adı/değer çiftine göre filtreleyin. \n" "- Sözdizimi**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- **Metotlar** (atlanırsa varsayılan olarak `icontains` olur): `iexact`, " -"`exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, " -"`endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- Değer tipleme**: JSON ilk olarak denenir (böylece listeleri/dicts'leri " -"geçirebilirsiniz), booleanlar, tamsayılar, floatlar için `true`/`false`; " -"aksi takdirde string olarak ele alınır. \n" -"- **Base64**: ham değeri URL güvenli base64 kodlamak için `b64-` ile " -"önekleyin. \n" +"- **Metotlar** (atlanırsa varsayılan olarak `icontains` olur): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- Değer tipleme**: JSON ilk olarak denenir (böylece listeleri/dicts'leri geçirebilirsiniz), booleanlar, tamsayılar, floatlar için `true`/`false`; aksi takdirde string olarak ele alınır. \n" +"- **Base64**: ham değeri URL güvenli base64 kodlamak için `b64-` ile önekleyin. \n" "Örnekler: \n" "color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -666,14 +687,11 @@ msgstr "(tam) Ürün UUID'si" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Sıralanacak alanların virgülle ayrılmış listesi. Azalan için `-` ile ön " -"ek. \n" -"**İzin verilenler:** uuid, derecelendirme, ad, slug, oluşturuldu, " -"değiştirildi, fiyat, rastgele" +"Sıralanacak alanların virgülle ayrılmış listesi. Azalan için `-` ile ön ek. \n" +"**İzin verilenler:** uuid, derecelendirme, ad, slug, oluşturuldu, değiştirildi, fiyat, rastgele" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "retrieve a single product (detailed view)" @@ -1168,8 +1186,8 @@ msgstr "Bir sipariş satın alın" #: engine/core/graphene/mutations.py:220 engine/core/graphene/mutations.py:282 msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "" -"Lütfen order_uuid veya order_hr_id bilgilerinden birini sağlayın - birbirini " -"dışlayan bilgiler!" +"Lütfen order_uuid veya order_hr_id bilgilerinden birini sağlayın - birbirini" +" dışlayan bilgiler!" #: engine/core/graphene/mutations.py:249 engine/core/graphene/mutations.py:524 #: engine/core/graphene/mutations.py:573 engine/core/viewsets.py:753 @@ -1225,8 +1243,8 @@ msgstr "Bir sipariş satın alın" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Lütfen öznitelikleri attr1=value1,attr2=value2 şeklinde biçimlendirilmiş " "dize olarak gönderin" @@ -1248,9 +1266,9 @@ msgstr "Orderproduct {order_product_uuid} bulunamadı!" msgid "original address string provided by the user" msgstr "Kullanıcı tarafından sağlanan orijinal adres dizesi" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1266,8 +1284,8 @@ msgstr "ElasticSearch - bir cazibe gibi çalışır" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Nitelikler" @@ -1304,7 +1322,8 @@ msgstr "" "Bu kategoriyi filtrelemek için hangi nitelikler ve değerler kullanılabilir." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "Varsa, bu kategorideki ürünler için minimum ve maksimum fiyatlar." #: engine/core/graphene/object_types.py:234 @@ -1341,7 +1360,7 @@ msgid "represents feedback from a user." msgstr "Bir kullanıcıdan gelen geri bildirimi temsil eder." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Bildirimler" @@ -1349,7 +1368,7 @@ msgstr "Bildirimler" msgid "download url for this order product if applicable" msgstr "Varsa, bu sipariş ürünü için URL'yi indirin" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Geri bildirim" @@ -1357,7 +1376,7 @@ msgstr "Geri bildirim" msgid "a list of order products in this order" msgstr "Bu siparişteki sipariş ürünlerinin bir listesi" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Fatura adresi" @@ -1385,7 +1404,7 @@ msgstr "Siparişteki tüm ürünler dijital mi" msgid "transactions for this order" msgstr "Bu sipariş için işlemler" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Siparişler" @@ -1402,7 +1421,7 @@ msgstr "Ürün görselleri" msgid "category" msgstr "Kategori" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Geri Bildirimler" @@ -1443,7 +1462,7 @@ msgstr "Ürünler sadece kişisel siparişler için mevcuttur" msgid "discount price" msgstr "İndirimli fiyat" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Ürünler" @@ -1455,7 +1474,7 @@ msgstr "Promosyon Kodları" msgid "products on sale" msgstr "Satıştaki ürünler" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Promosyonlar" @@ -1463,7 +1482,7 @@ msgstr "Promosyonlar" msgid "vendor" msgstr "Satıcı" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1471,11 +1490,11 @@ msgstr "Satıcı" msgid "product" msgstr "Ürün" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "İstek listesindeki ürünler" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Dilek Listeleri" @@ -1575,9 +1594,9 @@ msgid "" msgstr "" "Hiyerarşik olabilen bir öznitelik grubunu temsil eder. Bu sınıf, öznitelik " "gruplarını yönetmek ve düzenlemek için kullanılır. Bir öznitelik grubu, " -"hiyerarşik bir yapı oluşturan bir üst gruba sahip olabilir. Bu, karmaşık bir " -"sistemde öznitelikleri daha etkili bir şekilde kategorize etmek ve yönetmek " -"için yararlı olabilir." +"hiyerarşik bir yapı oluşturan bir üst gruba sahip olabilir. Bu, karmaşık bir" +" sistemde öznitelikleri daha etkili bir şekilde kategorize etmek ve yönetmek" +" için yararlı olabilir." #: engine/core/models.py:88 msgid "parent of this group" @@ -1591,7 +1610,7 @@ msgstr "Üst öznitelik grubu" msgid "attribute group's name" msgstr "Öznitelik grubunun adı" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Öznitelik grubu" @@ -1607,8 +1626,8 @@ msgid "" msgstr "" "Harici satıcılar ve bunların etkileşim gereksinimleri hakkında bilgi " "depolayabilen bir satıcı varlığını temsil eder. Satıcı sınıfı, harici bir " -"satıcıyla ilgili bilgileri tanımlamak ve yönetmek için kullanılır. Satıcının " -"adını, iletişim için gereken kimlik doğrulama ayrıntılarını ve satıcıdan " +"satıcıyla ilgili bilgileri tanımlamak ve yönetmek için kullanılır. Satıcının" +" adını, iletişim için gereken kimlik doğrulama ayrıntılarını ve satıcıdan " "alınan ürünlere uygulanan yüzde işaretlemesini saklar. Bu model ayrıca ek " "meta verileri ve kısıtlamaları da muhafaza ederek üçüncü taraf satıcılarla " "etkileşime giren sistemlerde kullanıma uygun hale getirir." @@ -1664,11 +1683,11 @@ msgid "" "metadata customization for administrative purposes." msgstr "" "Ürünleri sınıflandırmak veya tanımlamak için kullanılan bir ürün etiketini " -"temsil eder. ProductTag sınıfı, dahili bir etiket tanımlayıcısı ve kullanıcı " -"dostu bir ekran adı kombinasyonu aracılığıyla ürünleri benzersiz bir şekilde " -"tanımlamak ve sınıflandırmak için tasarlanmıştır. Mixin'ler aracılığıyla " -"dışa aktarılan işlemleri destekler ve yönetimsel amaçlar için meta veri " -"özelleştirmesi sağlar." +"temsil eder. ProductTag sınıfı, dahili bir etiket tanımlayıcısı ve kullanıcı" +" dostu bir ekran adı kombinasyonu aracılığıyla ürünleri benzersiz bir " +"şekilde tanımlamak ve sınıflandırmak için tasarlanmıştır. Mixin'ler " +"aracılığıyla dışa aktarılan işlemleri destekler ve yönetimsel amaçlar için " +"meta veri özelleştirmesi sağlar." #: engine/core/models.py:204 engine/core/models.py:235 msgid "internal tag identifier for the product tag" @@ -1723,8 +1742,8 @@ msgid "" msgstr "" "İlgili öğeleri hiyerarşik bir yapıda düzenlemek ve gruplamak için bir " "kategori varlığını temsil eder. Kategoriler, ebeveyn-çocuk ilişkilerini " -"destekleyen diğer kategorilerle hiyerarşik ilişkilere sahip olabilir. Sınıf, " -"kategoriyle ilgili özellikler için bir temel görevi gören meta veri ve " +"destekleyen diğer kategorilerle hiyerarşik ilişkilere sahip olabilir. Sınıf," +" kategoriyle ilgili özellikler için bir temel görevi gören meta veri ve " "görsel temsil alanları içerir. Bu sınıf genellikle bir uygulama içinde ürün " "kategorilerini veya diğer benzer gruplamaları tanımlamak ve yönetmek için " "kullanılır ve kullanıcıların veya yöneticilerin kategorilerin adını, " @@ -1780,7 +1799,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Sistemdeki bir Marka nesnesini temsil eder. Bu sınıf, adı, logoları, " "açıklaması, ilişkili kategorileri, benzersiz bir slug ve öncelik sırası " @@ -1830,8 +1850,8 @@ msgstr "Kategoriler" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1840,8 +1860,8 @@ msgstr "" "Sistemde yönetilen bir ürünün stokunu temsil eder. Bu sınıf, satıcılar, " "ürünler ve bunların stok bilgileri arasındaki ilişkinin yanı sıra fiyat, " "satın alma fiyatı, miktar, SKU ve dijital varlıklar gibi envanterle ilgili " -"özellikler hakkında ayrıntılar sağlar. Çeşitli satıcılardan temin edilebilen " -"ürünlerin izlenmesine ve değerlendirilmesine olanak sağlamak için envanter " +"özellikler hakkında ayrıntılar sağlar. Çeşitli satıcılardan temin edilebilen" +" ürünlerin izlenmesine ve değerlendirilmesine olanak sağlamak için envanter " "yönetim sisteminin bir parçasıdır." #: engine/core/models.py:528 @@ -1864,8 +1884,8 @@ msgstr "Satış fiyatı" msgid "the product associated with this stock entry" msgstr "Bu stok girişi ile ilişkili ürün" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "İlişkili ürün" @@ -1967,7 +1987,7 @@ msgstr "Ürün için net bir tanımlayıcı isim sağlayın" msgid "product name" msgstr "Ürün adı" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Ürünün ayrıntılı bir açıklamasını ekleyin" @@ -1987,13 +2007,21 @@ msgstr "Parça numarası" msgid "stock keeping unit for this product" msgstr "Bu ürün için Stok Tutma Birimi" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "Bu ürünü pazarlara ihraç edip etmeme" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Pazar Yerlerine İhracat" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Sistemdeki bir özniteliği temsil eder. Bu sınıf, diğer varlıklarla " @@ -2003,140 +2031,140 @@ msgstr "" "tamsayı, float, boolean, dizi ve nesne dahil olmak üzere birden fazla değer " "türünü destekler. Bu, dinamik ve esnek veri yapılandırmasına olanak tanır." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Bu niteliğin grubu" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "String" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Tamsayı" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Yüzer" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Boolean" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Dizi" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Nesne" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Özniteliğin değerinin türü" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Değer türü" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Bu niteliğin adı" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Özniteliğin adı" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "filtrelenebilir" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "" "Bu kategoriyi filtrelemek için hangi nitelikler ve değerler kullanılabilir." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Öznitelik" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Bir ürünle bağlantılı bir nitelik için belirli bir değeri temsil eder. " "'Niteliği' benzersiz bir 'değere' bağlayarak ürün özelliklerinin daha iyi " "düzenlenmesine ve dinamik olarak temsil edilmesine olanak tanır." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Bu değerin niteliği" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Bu özniteliğin değeriyle ilişkili belirli ürün" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Bu öznitelik için özel değer" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Sistemdeki bir ürünle ilişkilendirilmiş bir ürün resmini temsil eder. Bu " -"sınıf, görüntü dosyalarını yükleme, bunları belirli ürünlerle ilişkilendirme " -"ve görüntüleme sıralarını belirleme işlevleri dahil olmak üzere ürün " +"sınıf, görüntü dosyalarını yükleme, bunları belirli ürünlerle ilişkilendirme" +" ve görüntüleme sıralarını belirleme işlevleri dahil olmak üzere ürün " "görüntülerini yönetmek için tasarlanmıştır. Ayrıca görüntüler için " "alternatif metin içeren bir erişilebilirlik özelliği de içerir." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Erişilebilirlik için görüntü için alternatif metin sağlayın" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Resim alt metni" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Bu ürün için resim dosyasını yükleyin" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Ürün görseli" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Görüntülerin görüntülenme sırasını belirler" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Ekran önceliği" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Bu görselin temsil ettiği ürün" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Ürün görselleri" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "İndirimli ürünler için bir promosyon kampanyasını temsil eder. Bu sınıf, " "ürünler için yüzdeye dayalı bir indirim sunan promosyon kampanyalarını " @@ -2145,167 +2173,167 @@ msgstr "" "öznitelikler içerir. Kampanyadaki etkilenen ürünleri belirlemek için ürün " "kataloğu ile entegre olur." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Seçilen ürünler için yüzde indirim" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "İndirim yüzdesi" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Bu promosyon için benzersiz bir ad girin" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Promosyon adı" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Promosyon açıklaması" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Bu promosyona hangi ürünlerin dahil olduğunu seçin" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Dahil olan ürünler" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Promosyon" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"İstenen ürünleri depolamak ve yönetmek için bir kullanıcının istek listesini " -"temsil eder. Sınıf, bir ürün koleksiyonunu yönetmek için işlevsellik sağlar, " -"ürün ekleme ve kaldırma gibi işlemlerin yanı sıra aynı anda birden fazla " -"ürün ekleme ve kaldırma işlemlerini destekler." +"İstenen ürünleri depolamak ve yönetmek için bir kullanıcının istek listesini" +" temsil eder. Sınıf, bir ürün koleksiyonunu yönetmek için işlevsellik " +"sağlar, ürün ekleme ve kaldırma gibi işlemlerin yanı sıra aynı anda birden " +"fazla ürün ekleme ve kaldırma işlemlerini destekler." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Kullanıcının aranıyor olarak işaretlediği ürünler" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Bu istek listesine sahip olan kullanıcı" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Dilek Listesi Sahibi" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "İstek Listesi" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Bir ürüne bağlı bir belgesel kaydını temsil eder. Bu sınıf, dosya " "yüklemeleri ve meta verileri dahil olmak üzere belirli ürünlerle ilgili " "belgeseller hakkında bilgi depolamak için kullanılır. Belgesel dosyalarının " -"dosya türünü ve depolama yolunu işlemek için yöntemler ve özellikler içerir. " -"Belirli mixin'lerin işlevselliğini genişletir ve ek özel özellikler sağlar." +"dosya türünü ve depolama yolunu işlemek için yöntemler ve özellikler içerir." +" Belirli mixin'lerin işlevselliğini genişletir ve ek özel özellikler sağlar." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Belgesel" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Belgeseller" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Çözümlenmemiş" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Konum ayrıntılarını ve bir kullanıcıyla ilişkileri içeren bir adres " -"varlığını temsil eder. Coğrafi ve adres verilerinin depolanmasının yanı sıra " -"coğrafi kodlama hizmetleriyle entegrasyon için işlevsellik sağlar. Bu sınıf, " -"sokak, şehir, bölge, ülke ve coğrafi konum (enlem ve boylam) gibi " +"varlığını temsil eder. Coğrafi ve adres verilerinin depolanmasının yanı sıra" +" coğrafi kodlama hizmetleriyle entegrasyon için işlevsellik sağlar. Bu " +"sınıf, sokak, şehir, bölge, ülke ve coğrafi konum (enlem ve boylam) gibi " "bileşenleri içeren ayrıntılı adres bilgilerini depolamak için " "tasarlanmıştır. Coğrafi kodlama API'leri ile entegrasyonu destekler ve daha " "fazla işleme veya inceleme için ham API yanıtlarının depolanmasını sağlar. " "Sınıf ayrıca bir adresin bir kullanıcıyla ilişkilendirilmesine olanak " "tanıyarak kişiselleştirilmiş veri işlemeyi kolaylaştırır." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Müşteri için adres satırı" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Adres hattı" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Sokak" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Bölge" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Şehir" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Bölge" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Posta kodu" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Ülke" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Coğrafi Konum Noktası(Boylam, Enlem)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Bu adres için geocoder'dan alınan tam JSON yanıtı" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Coğrafi kodlama hizmetinden depolanan JSON yanıtı" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Adres" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Adresler" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2322,73 +2350,74 @@ msgstr "" "karşılandığından emin olurken promosyon kodunu doğrulamak ve siparişe " "uygulamak için işlevsellik içerir." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "" -"Bir kullanıcı tarafından indirimden yararlanmak için kullanılan benzersiz kod" +"Bir kullanıcı tarafından indirimden yararlanmak için kullanılan benzersiz " +"kod" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Promosyon kodu tanımlayıcı" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Yüzde kullanılmazsa uygulanan sabit indirim tutarı" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Sabit iskonto tutarı" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "Sabit tutar kullanılmazsa uygulanan yüzde indirimi" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Yüzde indirim" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Promosyon kodunun sona erdiği zaman damgası" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Geçerlilik süresi sonu" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Bu promosyon kodunun geçerli olduğu zaman damgası" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Geçerlilik süresini başlat" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Promosyon kodunun kullanıldığı zaman damgası, henüz kullanılmadıysa boş" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Kullanım zaman damgası" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Varsa bu promosyon koduna atanan kullanıcı" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Atanmış kullanıcı" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Promosyon kodu" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Promosyon kodları" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2396,162 +2425,163 @@ msgstr "" "Sadece bir indirim türü (tutar veya yüzde) tanımlanmalı, ikisi birden veya " "hiçbiri tanımlanmamalıdır." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Promosyon kodu zaten kullanılmış" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Promosyon kodu {self.uuid} için geçersiz indirim türü!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Bir kullanıcı tarafından verilen bir siparişi temsil eder. Bu sınıf, fatura " "ve kargo bilgileri, durum, ilişkili kullanıcı, bildirimler ve ilgili " "işlemler gibi çeşitli öznitelikleri dahil olmak üzere uygulama içinde bir " -"siparişi modeller. Siparişler ilişkili ürünlere sahip olabilir, promosyonlar " -"uygulanabilir, adresler ayarlanabilir ve kargo veya fatura ayrıntıları " +"siparişi modeller. Siparişler ilişkili ürünlere sahip olabilir, promosyonlar" +" uygulanabilir, adresler ayarlanabilir ve kargo veya fatura ayrıntıları " "güncellenebilir. Aynı şekilde işlevsellik, sipariş yaşam döngüsündeki " "ürünlerin yönetilmesini de destekler." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Bu sipariş için kullanılan fatura adresi" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Bu siparişe isteğe bağlı promosyon kodu uygulanır" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Uygulanan promosyon kodu" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Bu sipariş için kullanılan gönderim adresi" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Nakliye adresi" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Siparişin yaşam döngüsündeki mevcut durumu" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Sipariş durumu" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "Kullanıcılara gösterilecek bildirimlerin JSON yapısı, yönetici kullanıcı " "arayüzünde tablo görünümü kullanılır" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "Bu sipariş için sipariş özniteliklerinin JSON gösterimi" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "Siparişi veren kullanıcı" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Kullanıcı" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Siparişin sonlandırıldığı zaman damgası" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Zaman satın alın" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Sipariş için insan tarafından okunabilir bir tanımlayıcı" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "insan tarafından okunabilir kimlik" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Sipariş" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "Bir kullanıcı aynı anda yalnızca bir bekleyen emre sahip olmalıdır!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "Beklemede olmayan bir siparişe ürün ekleyemezsiniz" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Aktif olmayan ürünleri siparişe ekleyemezsiniz" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "Stokta mevcut olandan daha fazla ürün ekleyemezsiniz" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "Beklemede olmayan bir siparişten ürün kaldıramazsınız" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} <{query}> sorgusu ile mevcut değil!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Promosyon kodu mevcut değil" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" "Fiziksel ürünleri yalnızca gönderim adresi belirtilerek satın alabilirsiniz!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Adres mevcut değil" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" -msgstr "Şu anda satın alamazsınız, lütfen birkaç dakika içinde tekrar deneyin." +msgstr "" +"Şu anda satın alamazsınız, lütfen birkaç dakika içinde tekrar deneyin." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Geçersiz kuvvet değeri" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Boş bir sipariş satın alamazsınız!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "Kullanıcı olmadan sipariş alamazsınız!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Bakiyesi olmayan bir kullanıcı bakiye ile satın alamaz!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Siparişi tamamlamak için yeterli fon yok" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2559,14 +2589,14 @@ msgstr "" "kayıt olmadan satın alamazsınız, lütfen aşağıdaki bilgileri sağlayın: " "müşteri adı, müşteri e-postası, müşteri telefon numarası" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Geçersiz ödeme yöntemi: {available_payment_methods}'den {payment_method}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2578,36 +2608,38 @@ msgstr "" "aldıkları belirli ürünler için kullanıcı geri bildirimlerini yakalamak ve " "saklamak üzere tasarlanmıştır. Kullanıcı yorumlarını saklamak için " "öznitelikler, siparişteki ilgili ürüne bir referans ve kullanıcı tarafından " -"atanan bir derecelendirme içerir. Sınıf, geri bildirim verilerini etkili bir " -"şekilde modellemek ve yönetmek için veritabanı alanlarını kullanır." +"atanan bir derecelendirme içerir. Sınıf, geri bildirim verilerini etkili bir" +" şekilde modellemek ve yönetmek için veritabanı alanlarını kullanır." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "" "Ürünle ilgili deneyimleri hakkında kullanıcı tarafından sağlanan yorumlar" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Geri bildirim yorumları" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Bu geri bildirimin ilgili olduğu siparişteki belirli bir ürüne atıfta bulunur" +"Bu geri bildirimin ilgili olduğu siparişteki belirli bir ürüne atıfta " +"bulunur" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "İlgili sipariş ürünü" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Ürün için kullanıcı tarafından atanan derecelendirme" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Ürün değerlendirmesi" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2629,128 +2661,128 @@ msgstr "" "destekleyen yöntemler ve özellikler sağlar. Model, Sipariş ve Ürün " "modelleriyle entegre olur ve bunlara referans depolar." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "Satın alma sırasında müşteri tarafından bu ürün için ödenen fiyat" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Sipariş anındaki satın alma fiyatı" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Sipariş edilen bu ürün hakkında yöneticiler için dahili yorumlar" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Dahili yorumlar" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Kullanıcı bildirimleri" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "Bu öğenin özniteliklerinin JSON gösterimi" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Sıralı ürün özellikleri" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Bu ürünü içeren ana siparişe referans" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Ana sipariş" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Bu sipariş satırıyla ilişkili belirli ürün" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Siparişteki bu belirli ürünün miktarı" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Ürün miktarı" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Bu ürünün siparişteki mevcut durumu" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Ürün hattı durumu" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Orderproduct ilişkili bir siparişe sahip olmalıdır!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Geri bildirim için yanlış eylem belirtildi: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "alınmamış bir siparişe geri bildirim yapamazsınız" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "İsim" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "Entegrasyonun URL'si" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Kimlik doğrulama bilgileri" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Yalnızca bir varsayılan CRM sağlayıcınız olabilir" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "CRM" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "CRM'ler" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Siparişin CRM bağlantısı" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Siparişlerin CRM bağlantıları" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Siparişlerle ilişkili dijital varlıklar için indirme işlevselliğini temsil " "eder. DigitalAssetDownload sınıfı, sipariş ürünleriyle ilgili indirmeleri " "yönetme ve bunlara erişme olanağı sağlar. İlişkili sipariş ürünü, indirme " -"sayısı ve varlığın herkese açık olup olmadığı hakkında bilgi tutar. İlişkili " -"sipariş tamamlandı durumundayken varlığın indirilmesi için bir URL " +"sayısı ve varlığın herkese açık olup olmadığı hakkında bilgi tutar. İlişkili" +" sipariş tamamlandı durumundayken varlığın indirilmesi için bir URL " "oluşturmaya yönelik bir yöntem içerir." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "İndir" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "İndirmeler" @@ -2758,8 +2790,8 @@ msgstr "İndirmeler" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"geri̇ bi̇ldi̇ri̇m eklemek i̇çi̇n bi̇r yorum, puan ve si̇pari̇ş ürün uuid'si̇ " -"sağlamalisiniz." +"geri̇ bi̇ldi̇ri̇m eklemek i̇çi̇n bi̇r yorum, puan ve si̇pari̇ş ürün uuid'si̇" +" sağlamalisiniz." #: engine/core/sitemaps.py:25 msgid "Home" @@ -2951,8 +2983,7 @@ msgstr "Merhaba %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Siparişiniz için teşekkür ederiz #%(order.pk)s! Siparişinizi işleme " @@ -3011,8 +3042,8 @@ msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" msgstr "" -"Siparişinizi başarıyla işleme aldık №%(order_uuid)s! Siparişinizin detayları " -"aşağıdadır:" +"Siparişinizi başarıyla işleme aldık №%(order_uuid)s! Siparişinizin detayları" +" aşağıdadır:" #: engine/core/templates/digital_order_delivered_email.html:128 msgid "" @@ -3067,8 +3098,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Siparişiniz için teşekkür ederiz! Satın alma işleminizi onaylamaktan " @@ -3154,9 +3184,9 @@ msgid "" "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -"Bir site haritası için ayrıntılı görünüm yanıtını işler. Bu fonksiyon isteği " -"işler, uygun site haritası ayrıntı yanıtını getirir ve XML için Content-Type " -"başlığını ayarlar." +"Bir site haritası için ayrıntılı görünüm yanıtını işler. Bu fonksiyon isteği" +" işler, uygun site haritası ayrıntı yanıtını getirir ve XML için Content-" +"Type başlığını ayarlar." #: engine/core/views.py:155 msgid "" @@ -3174,8 +3204,8 @@ msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Belirli bir anahtar ve zaman aşımı ile önbellek verilerini okuma ve ayarlama " -"gibi önbellek işlemlerini gerçekleştirir." +"Belirli bir anahtar ve zaman aşımı ile önbellek verilerini okuma ve ayarlama" +" gibi önbellek işlemlerini gerçekleştirir." #: engine/core/views.py:220 msgid "Handles `contact us` form submissions." @@ -3200,14 +3230,10 @@ msgstr "Kayıt olmadan bir işletme olarak satın alma mantığını ele alır." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Bir siparişle ilişkili bir dijital varlığın indirilmesini yönetir.\n" -"Bu fonksiyon, projenin depolama dizininde bulunan dijital varlık dosyasını " -"sunmaya çalışır. Dosya bulunamazsa, kaynağın kullanılamadığını belirtmek " -"için bir HTTP 404 hatası verilir." +"Bu fonksiyon, projenin depolama dizininde bulunan dijital varlık dosyasını sunmaya çalışır. Dosya bulunamazsa, kaynağın kullanılamadığını belirtmek için bir HTTP 404 hatası verilir." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3236,19 +3262,15 @@ msgstr "favicon bulunamadı" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Bir web sitesinin favicon'u için istekleri işler.\n" -"Bu fonksiyon, projenin statik dizininde bulunan favicon dosyasını sunmaya " -"çalışır. Favicon dosyası bulunamazsa, kaynağın kullanılamadığını belirtmek " -"için bir HTTP 404 hatası verilir." +"Bu fonksiyon, projenin statik dizininde bulunan favicon dosyasını sunmaya çalışır. Favicon dosyası bulunamazsa, kaynağın kullanılamadığını belirtmek için bir HTTP 404 hatası verilir." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "İsteği yönetici dizin sayfasına yönlendirir. Bu fonksiyon gelen HTTP " @@ -3271,24 +3293,25 @@ msgstr "Gösterge Tablosu için özel değişkenleri döndürür." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The schonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "schon ile ilgili işlemleri yönetmek için bir görünüm kümesi tanımlar. " "schonViewSet sınıfı ModelViewSet'ten miras alınır ve schon varlıkları " "üzerindeki eylemleri ve işlemleri yönetmek için işlevsellik sağlar. Geçerli " -"eyleme dayalı dinamik serileştirici sınıfları, özelleştirilebilir izinler ve " -"işleme biçimleri için destek içerir." +"eyleme dayalı dinamik serileştirici sınıfları, özelleştirilebilir izinler ve" +" işleme biçimleri için destek içerir." #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "AttributeGroup nesnelerini yönetmek için bir görünüm kümesini temsil eder. " "Filtreleme, serileştirme ve veri alma dahil olmak üzere AttributeGroup ile " @@ -3317,8 +3340,8 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "AttributeValue nesnelerini yönetmek için bir görünüm kümesi. Bu görünüm " "kümesi, AttributeValue nesnelerini listelemek, almak, oluşturmak, " @@ -3359,14 +3382,14 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`schonViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" "Sistemdeki `Product` modeliyle ilgili işlemleri yönetir. Bu sınıf, " -"filtreleme, serileştirme ve belirli örnekler üzerindeki işlemler dahil olmak " -"üzere ürünleri yönetmek için bir görünüm kümesi sağlar. Ortak işlevselliği " +"filtreleme, serileştirme ve belirli örnekler üzerindeki işlemler dahil olmak" +" üzere ürünleri yönetmek için bir görünüm kümesi sağlar. Ortak işlevselliği " "kullanmak için `schonViewSet`ten genişletilir ve RESTful API işlemleri için " "Django REST çerçevesi ile entegre olur. Ürün ayrıntılarını almak, izinleri " "uygulamak ve bir ürünün ilgili geri bildirimlerine erişmek için yöntemler " @@ -3392,15 +3415,15 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `schonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Geri Bildirim nesnelerini işleyen bir görünüm kümesinin temsili. Bu sınıf, " "listeleme, filtreleme ve ayrıntıları alma dahil olmak üzere Geri Bildirim " "nesneleriyle ilgili işlemleri yönetir. Bu görünüm kümesinin amacı, farklı " -"eylemler için farklı serileştiriciler sağlamak ve erişilebilir Geri Bildirim " -"nesnelerinin izin tabanlı kullanımını uygulamaktır. Temel `schonViewSet`i " +"eylemler için farklı serileştiriciler sağlamak ve erişilebilir Geri Bildirim" +" nesnelerinin izin tabanlı kullanımını uygulamaktır. Temel `schonViewSet`i " "genişletir ve verileri sorgulamak için Django'nun filtreleme sistemini " "kullanır." @@ -3409,17 +3432,17 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "Siparişleri ve ilgili işlemleri yönetmek için ViewSet. Bu sınıf, sipariş " "nesnelerini almak, değiştirmek ve yönetmek için işlevsellik sağlar. Ürün " "ekleme veya kaldırma, kayıtlı ve kayıtsız kullanıcılar için satın alma " -"işlemleri gerçekleştirme ve mevcut kimliği doğrulanmış kullanıcının bekleyen " -"siparişlerini alma gibi sipariş işlemlerini gerçekleştirmek için çeşitli uç " -"noktalar içerir. ViewSet, gerçekleştirilen belirli eyleme bağlı olarak " +"işlemleri gerçekleştirme ve mevcut kimliği doğrulanmış kullanıcının bekleyen" +" siparişlerini alma gibi sipariş işlemlerini gerçekleştirmek için çeşitli uç" +" noktalar içerir. ViewSet, gerçekleştirilen belirli eyleme bağlı olarak " "birden fazla serileştirici kullanır ve sipariş verileriyle etkileşime " "girerken izinleri buna göre zorlar." @@ -3427,14 +3450,14 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "OrderProduct varlıklarını yönetmek için bir görünüm kümesi sağlar. Bu " "görünüm kümesi, CRUD işlemlerini ve OrderProduct modeline özgü özel " -"eylemleri etkinleştirir. Filtreleme, izin kontrolleri ve istenen eyleme göre " -"serileştirici değiştirme içerir. Ayrıca, OrderProduct örnekleriyle ilgili " +"eylemleri etkinleştirir. Filtreleme, izin kontrolleri ve istenen eyleme göre" +" serileştirici değiştirme içerir. Ayrıca, OrderProduct örnekleriyle ilgili " "geri bildirimleri işlemek için ayrıntılı bir eylem sağlar" #: engine/core/viewsets.py:974 @@ -3461,8 +3484,8 @@ msgstr "Sistemdeki Stok verileri ile ilgili işlemleri yürütür." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3503,7 +3526,7 @@ msgid "" "serializers based on the action being performed." msgstr "" "Uygulama içinde Ürün Etiketleri ile ilgili işlemleri gerçekleştirir. Bu " -"sınıf, Ürün Etiketi nesnelerinin alınması, filtrelenmesi ve serileştirilmesi " -"için işlevsellik sağlar. Belirtilen filtre arka ucunu kullanarak belirli " +"sınıf, Ürün Etiketi nesnelerinin alınması, filtrelenmesi ve serileştirilmesi" +" için işlevsellik sağlar. Belirtilen filtre arka ucunu kullanarak belirli " "nitelikler üzerinde esnek filtrelemeyi destekler ve gerçekleştirilen eyleme " "göre dinamik olarak farklı serileştiriciler kullanır." diff --git a/engine/core/locale/vi_VN/LC_MESSAGES/django.mo b/engine/core/locale/vi_VN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..db31e026671654531616c2c1e016934f17498c4d GIT binary patch literal 106688 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Đang hoạt động" #: engine/core/abstract.py:22 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Nếu được đặt thành false, đối tượng này sẽ không hiển thị cho người dùng " "không có quyền truy cập cần thiết." @@ -76,7 +77,7 @@ msgstr "Dấu thời gian" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "Kích hoạt %(verbose_name_plural)s đã chọn" #: engine/core/admin.py:166 @@ -85,7 +86,7 @@ msgstr "Các mục đã được chọn đã được kích hoạt!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "Vô hiệu hóa các mục đã chọn %(verbose_name_plural)s" #: engine/core/admin.py:184 @@ -93,13 +94,13 @@ msgid "selected items have been deactivated." msgstr "Các mục đã chọn đã bị vô hiệu hóa!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "Giá trị thuộc tính" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "Giá trị thuộc tính" @@ -119,12 +120,12 @@ msgstr "Cổ phiếu" msgid "stocks" msgstr "Cổ phiếu" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "Đặt hàng sản phẩm" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "Đặt hàng sản phẩm" @@ -132,7 +133,36 @@ msgstr "Đặt hàng sản phẩm" msgid "children" msgstr "Trẻ em" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "Có hình ảnh" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "" +"Xuất khẩu sản phẩm đã chọn %(verbose_name_plural)s sang các kênh phân phối " +"của các sàn thương mại điện tử." + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "" +"Các mục đã chọn %(verbose_name_plural)s đã được đánh dấu để xuất khẩu." + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "" +"Ban đã chọn %(verbose_name_plural)s từ các nguồn cấp dữ liệu của các sàn " +"giao dịch." + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "Các sản phẩm %(verbose_name_plural)s đã bị cấm xuất khẩu." + +#: engine/core/admin.py:1116 msgid "Config" msgstr "Cấu hình" @@ -156,7 +186,8 @@ msgstr "Đã giao" msgid "canceled" msgstr "Đã hủy" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Thất bại" @@ -243,8 +274,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"Mua hàng với tư cách là doanh nghiệp, sử dụng các sản phẩm được cung cấp với " -"`product_uuid` và `attributes`." +"Mua hàng với tư cách là doanh nghiệp, sử dụng các sản phẩm được cung cấp với" +" `product_uuid` và `attributes`." #: engine/core/docs/drf/views.py:180 msgid "download a digital asset from purchased digital order" @@ -273,7 +304,8 @@ msgstr "" "chỉnh sửa." #: engine/core/docs/drf/viewsets.py:107 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Cập nhật một số trường trong nhóm thuộc tính hiện có, giữ nguyên các trường " "không thể chỉnh sửa." @@ -328,10 +360,11 @@ msgstr "" "không thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:208 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" -"Cập nhật một số trường của giá trị thuộc tính hiện có, giữ nguyên các trường " -"không thể chỉnh sửa." +"Cập nhật một số trường của giá trị thuộc tính hiện có, giữ nguyên các trường" +" không thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:219 engine/core/docs/drf/viewsets.py:220 msgid "list all categories (simple view)" @@ -362,8 +395,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:270 engine/core/docs/drf/viewsets.py:272 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:280 engine/core/docs/drf/viewsets.py:757 #: engine/core/docs/drf/viewsets.py:1046 @@ -389,12 +422,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:309 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Tìm kiếm chuỗi con không phân biệt chữ hoa chữ thường trên các trường " -"human_readable_id, order_products.product.name và order_products.product." -"partnumber." +"human_readable_id, order_products.product.name và " +"order_products.product.partnumber." #: engine/core/docs/drf/viewsets.py:316 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -430,9 +463,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:354 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Sắp xếp theo một trong các trường sau: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Thêm tiền tố '-' để sắp " @@ -467,8 +500,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:403 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:410 msgid "purchase an order" @@ -639,29 +672,15 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" -"Lọc theo một hoặc nhiều cặp tên/giá trị thuộc tính. • **Cú pháp**: " -"`attr_name=method-value[;attr2=method2-value2]…` • **Phương thức** (mặc định " -"là `icontains` nếu không được chỉ định): `iexact`, `exact`, `icontains`, " -"`contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, " -"`regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` • **Kiểu giá trị**: JSON " -"được ưu tiên (nên bạn có thể truyền danh sách/đối tượng), `true`/`false` cho " -"boolean, số nguyên, số thực; nếu không sẽ được xử lý như chuỗi. • " -"**Base64**: thêm tiền tố `b64-` để mã hóa Base64 an toàn cho URL giá trị " -"thô. \n" -"Ví dụ: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" +"Lọc theo một hoặc nhiều cặp tên/giá trị thuộc tính. • **Cú pháp**: `attr_name=method-value[;attr2=method2-value2]…` • **Phương thức** (mặc định là `icontains` nếu không được chỉ định): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` • **Kiểu giá trị**: JSON được ưu tiên (nên bạn có thể truyền danh sách/đối tượng), `true`/`false` cho boolean, số nguyên, số thực; nếu không sẽ được xử lý như chuỗi. • **Base64**: thêm tiền tố `b64-` để mã hóa Base64 an toàn cho URL giá trị thô. \n" +"Ví dụ: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" #: engine/core/docs/drf/viewsets.py:617 engine/core/docs/drf/viewsets.py:618 msgid "list all products (simple view)" @@ -673,13 +692,12 @@ msgstr "(chính xác) Mã định danh duy nhất của sản phẩm (UUID)" #: engine/core/docs/drf/viewsets.py:630 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Danh sách các trường được phân tách bằng dấu phẩy để sắp xếp. Thêm tiền tố `-" -"` để sắp xếp theo thứ tự giảm dần. **Được phép:** uuid, rating, name, slug, " -"created, modified, price, random" +"Danh sách các trường được phân tách bằng dấu phẩy để sắp xếp. Thêm tiền tố " +"`-` để sắp xếp theo thứ tự giảm dần. **Được phép:** uuid, rating, name, " +"slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "retrieve a single product (detailed view)" @@ -704,8 +722,8 @@ msgstr "" msgid "" "update some fields of an existing product, preserving non-editable fields" msgstr "" -"Cập nhật một số trường của sản phẩm hiện có, giữ nguyên các trường không thể " -"chỉnh sửa." +"Cập nhật một số trường của sản phẩm hiện có, giữ nguyên các trường không thể" +" chỉnh sửa." #: engine/core/docs/drf/viewsets.py:719 engine/core/docs/drf/viewsets.py:720 msgid "delete a product" @@ -779,8 +797,8 @@ msgstr "Viết lại phản hồi hiện có để lưu các trường không th #: engine/core/docs/drf/viewsets.py:909 msgid "rewrite some fields of an existing feedback saving non-editables" msgstr "" -"Cập nhật một số trường của một phản hồi hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một phản hồi hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:919 msgid "list all order–product relations (simple view)" @@ -844,8 +862,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1039 msgid "rewrite some fields of an existing brand saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1064 msgid "list all vendors (simple view)" @@ -872,8 +890,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1102 msgid "rewrite some fields of an existing vendor saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1112 msgid "list all product images (simple view)" @@ -900,8 +918,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1154 msgid "rewrite some fields of an existing product image saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1165 msgid "list all promo codes (simple view)" @@ -928,8 +946,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1203 msgid "rewrite some fields of an existing promo code saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1213 msgid "list all promotions (simple view)" @@ -956,8 +974,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1251 msgid "rewrite some fields of an existing promotion saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1261 msgid "list all stocks (simple view)" @@ -984,8 +1002,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1297 msgid "rewrite some fields of an existing stock record saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1308 msgid "list all product tags (simple view)" @@ -1012,8 +1030,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1350 msgid "rewrite some fields of an existing product tag saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/elasticsearch/__init__.py:128 #: engine/core/elasticsearch/__init__.py:629 @@ -1199,7 +1217,8 @@ msgstr "" #: engine/core/graphene/mutations.py:249 engine/core/graphene/mutations.py:524 #: engine/core/graphene/mutations.py:573 engine/core/viewsets.py:753 msgid "wrong type came from order.buy() method: {type(instance)!s}" -msgstr "Loại sai đã được trả về từ phương thức order.buy(): {type(instance)!s}" +msgstr "" +"Loại sai đã được trả về từ phương thức order.buy(): {type(instance)!s}" #: engine/core/graphene/mutations.py:260 msgid "perform an action on a list of products in the order" @@ -1251,8 +1270,8 @@ msgstr "Đặt hàng" #: engine/core/graphene/mutations.py:542 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Vui lòng gửi các thuộc tính dưới dạng chuỗi được định dạng như sau: " "attr1=value1,attr2=value2" @@ -1274,9 +1293,9 @@ msgstr "Sản phẩm {order_product_uuid} không tìm thấy!" msgid "original address string provided by the user" msgstr "Dòng địa chỉ gốc do người dùng cung cấp" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1292,8 +1311,8 @@ msgstr "ElasticSearch - hoạt động rất tốt." #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "Thuộc tính" @@ -1326,10 +1345,12 @@ msgstr "Tỷ lệ phần trăm đánh dấu" #: engine/core/graphene/object_types.py:224 msgid "which attributes and values can be used for filtering this category." -msgstr "Các thuộc tính và giá trị nào có thể được sử dụng để lọc danh mục này." +msgstr "" +"Các thuộc tính và giá trị nào có thể được sử dụng để lọc danh mục này." #: engine/core/graphene/object_types.py:230 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Giá tối thiểu và tối đa cho các sản phẩm trong danh mục này, nếu có sẵn." @@ -1369,7 +1390,7 @@ msgid "represents feedback from a user." msgstr "Đại diện cho phản hồi từ người dùng." #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "Thông báo" @@ -1377,7 +1398,7 @@ msgstr "Thông báo" msgid "download url for this order product if applicable" msgstr "Tải xuống liên kết URL cho sản phẩm của đơn hàng này (nếu có)." -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "Phản hồi" @@ -1385,7 +1406,7 @@ msgstr "Phản hồi" msgid "a list of order products in this order" msgstr "Danh sách các sản phẩm trong đơn hàng này" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "Địa chỉ thanh toán" @@ -1414,7 +1435,7 @@ msgstr "" msgid "transactions for this order" msgstr "Giao dịch cho đơn hàng này" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "Đơn hàng" @@ -1431,7 +1452,7 @@ msgstr "Hình ảnh sản phẩm" msgid "category" msgstr "Thể loại" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "Phản hồi" @@ -1472,7 +1493,7 @@ msgstr "Sản phẩm chỉ dành cho đơn đặt hàng cá nhân." msgid "discount price" msgstr "Giá khuyến mãi" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "Sản phẩm" @@ -1484,7 +1505,7 @@ msgstr "Mã khuyến mãi" msgid "products on sale" msgstr "Sản phẩm đang khuyến mãi" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "Khuyến mãi" @@ -1492,7 +1513,7 @@ msgstr "Khuyến mãi" msgid "vendor" msgstr "Nhà cung cấp" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1500,11 +1521,11 @@ msgstr "Nhà cung cấp" msgid "product" msgstr "Sản phẩm" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "Sản phẩm đã thêm vào danh sách mong muốn" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "Danh sách mong muốn" @@ -1605,9 +1626,9 @@ msgid "" msgstr "" "Đại diện cho một nhóm các thuộc tính, có thể có cấu trúc phân cấp. Lớp này " "được sử dụng để quản lý và tổ chức các nhóm thuộc tính. Một nhóm thuộc tính " -"có thể có nhóm cha, tạo thành cấu trúc phân cấp. Điều này có thể hữu ích cho " -"việc phân loại và quản lý các thuộc tính một cách hiệu quả hơn trong một hệ " -"thống phức tạp." +"có thể có nhóm cha, tạo thành cấu trúc phân cấp. Điều này có thể hữu ích cho" +" việc phân loại và quản lý các thuộc tính một cách hiệu quả hơn trong một hệ" +" thống phức tạp." #: engine/core/models.py:88 msgid "parent of this group" @@ -1621,7 +1642,7 @@ msgstr "Nhóm thuộc tính cha" msgid "attribute group's name" msgstr "Tên nhóm thuộc tính" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "Nhóm thuộc tính" @@ -1640,8 +1661,8 @@ msgstr "" "dụng để định nghĩa và quản lý thông tin liên quan đến một nhà cung cấp bên " "ngoài. Nó lưu trữ tên của nhà cung cấp, thông tin xác thực cần thiết cho " "việc giao tiếp và tỷ lệ phần trăm chênh lệch giá áp dụng cho các sản phẩm " -"được lấy từ nhà cung cấp. Mô hình này cũng duy trì các metadata và ràng buộc " -"bổ sung, khiến nó phù hợp để sử dụng trong các hệ thống tương tác với các " +"được lấy từ nhà cung cấp. Mô hình này cũng duy trì các metadata và ràng buộc" +" bổ sung, khiến nó phù hợp để sử dụng trong các hệ thống tương tác với các " "nhà cung cấp bên thứ ba." #: engine/core/models.py:122 @@ -1695,11 +1716,11 @@ msgid "" "display name. It supports operations exported through mixins and provides " "metadata customization for administrative purposes." msgstr "" -"Đại diện cho thẻ sản phẩm được sử dụng để phân loại hoặc nhận dạng sản phẩm. " -"Lớp ProductTag được thiết kế để nhận dạng và phân loại sản phẩm một cách duy " -"nhất thông qua sự kết hợp giữa mã định danh thẻ nội bộ và tên hiển thị thân " -"thiện với người dùng. Nó hỗ trợ các thao tác được xuất qua mixins và cung " -"cấp tùy chỉnh metadata cho mục đích quản trị." +"Đại diện cho thẻ sản phẩm được sử dụng để phân loại hoặc nhận dạng sản phẩm." +" Lớp ProductTag được thiết kế để nhận dạng và phân loại sản phẩm một cách " +"duy nhất thông qua sự kết hợp giữa mã định danh thẻ nội bộ và tên hiển thị " +"thân thiện với người dùng. Nó hỗ trợ các thao tác được xuất qua mixins và " +"cung cấp tùy chỉnh metadata cho mục đích quản trị." #: engine/core/models.py:204 engine/core/models.py:235 msgid "internal tag identifier for the product tag" @@ -1727,8 +1748,8 @@ msgid "" "tag that can be used to associate and classify products. It includes " "attributes for an internal tag identifier and a user-friendly display name." msgstr "" -"Đại diện cho thẻ danh mục được sử dụng cho sản phẩm. Lớp này mô hình hóa một " -"thẻ danh mục có thể được sử dụng để liên kết và phân loại sản phẩm. Nó bao " +"Đại diện cho thẻ danh mục được sử dụng cho sản phẩm. Lớp này mô hình hóa một" +" thẻ danh mục có thể được sử dụng để liên kết và phân loại sản phẩm. Nó bao " "gồm các thuộc tính cho mã định danh thẻ nội bộ và tên hiển thị thân thiện " "với người dùng." @@ -1752,13 +1773,13 @@ msgid "" "hierarchy of categories, as well as assign attributes like images, tags, or " "priority." msgstr "" -"Đại diện cho một thực thể danh mục để tổ chức và nhóm các mục liên quan theo " -"cấu trúc phân cấp. Các danh mục có thể có mối quan hệ phân cấp với các danh " -"mục khác, hỗ trợ mối quan hệ cha-con. Lớp này bao gồm các trường cho " +"Đại diện cho một thực thể danh mục để tổ chức và nhóm các mục liên quan theo" +" cấu trúc phân cấp. Các danh mục có thể có mối quan hệ phân cấp với các danh" +" mục khác, hỗ trợ mối quan hệ cha-con. Lớp này bao gồm các trường cho " "metadata và biểu diễn trực quan, làm nền tảng cho các tính năng liên quan " "đến danh mục. Lớp này thường được sử dụng để định nghĩa và quản lý các danh " -"mục sản phẩm hoặc các nhóm tương tự khác trong ứng dụng, cho phép người dùng " -"hoặc quản trị viên xác định tên, mô tả và cấu trúc phân cấp của các danh " +"mục sản phẩm hoặc các nhóm tương tự khác trong ứng dụng, cho phép người dùng" +" hoặc quản trị viên xác định tên, mô tả và cấu trúc phân cấp của các danh " "mục, cũng như gán các thuộc tính như hình ảnh, thẻ hoặc ưu tiên." #: engine/core/models.py:269 @@ -1811,10 +1832,11 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"Đại diện cho một đối tượng Thương hiệu trong hệ thống. Lớp này quản lý thông " -"tin và thuộc tính liên quan đến một thương hiệu, bao gồm tên, logo, mô tả, " +"Đại diện cho một đối tượng Thương hiệu trong hệ thống. Lớp này quản lý thông" +" tin và thuộc tính liên quan đến một thương hiệu, bao gồm tên, logo, mô tả, " "các danh mục liên quan, một slug duy nhất và thứ tự ưu tiên. Nó cho phép tổ " "chức và hiển thị dữ liệu liên quan đến thương hiệu trong ứng dụng." @@ -1860,8 +1882,8 @@ msgstr "Các danh mục" #: engine/core/models.py:516 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1894,8 +1916,8 @@ msgstr "Giá bán" msgid "the product associated with this stock entry" msgstr "Sản phẩm liên quan đến mục hàng tồn kho này" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "Sản phẩm liên quan" @@ -1951,14 +1973,14 @@ msgid "" "product data and its associated information within an application." msgstr "" "Đại diện cho một sản phẩm có các thuộc tính như danh mục, thương hiệu, thẻ, " -"trạng thái kỹ thuật số, tên, mô tả, số phần và slug. Cung cấp các thuộc tính " -"tiện ích liên quan để truy xuất đánh giá, số lượng phản hồi, giá, số lượng " +"trạng thái kỹ thuật số, tên, mô tả, số phần và slug. Cung cấp các thuộc tính" +" tiện ích liên quan để truy xuất đánh giá, số lượng phản hồi, giá, số lượng " "và tổng số đơn hàng. Được thiết kế để sử dụng trong hệ thống quản lý thương " "mại điện tử hoặc quản lý kho hàng. Lớp này tương tác với các mô hình liên " "quan (như Danh mục, Thương hiệu và Thẻ Sản phẩm) và quản lý bộ nhớ đệm cho " -"các thuộc tính được truy cập thường xuyên để cải thiện hiệu suất. Nó được sử " -"dụng để định nghĩa và thao tác dữ liệu sản phẩm và thông tin liên quan trong " -"ứng dụng." +"các thuộc tính được truy cập thường xuyên để cải thiện hiệu suất. Nó được sử" +" dụng để định nghĩa và thao tác dữ liệu sản phẩm và thông tin liên quan " +"trong ứng dụng." #: engine/core/models.py:595 msgid "category this product belongs to" @@ -1998,7 +2020,7 @@ msgstr "Cung cấp một tên gọi rõ ràng để nhận diện sản phẩm." msgid "product name" msgstr "Tên sản phẩm" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "Thêm mô tả chi tiết về sản phẩm" @@ -2018,106 +2040,115 @@ msgstr "Số hiệu linh kiện" msgid "stock keeping unit for this product" msgstr "Đơn vị quản lý hàng tồn kho cho sản phẩm này" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "" +"Có nên xuất khẩu sản phẩm này sang các sàn thương mại điện tử hay không?" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "Xuất khẩu sang các sàn thương mại điện tử" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Đại diện cho một thuộc tính trong hệ thống. Lớp này được sử dụng để định " -"nghĩa và quản lý các thuộc tính, là các phần dữ liệu có thể tùy chỉnh có thể " -"được liên kết với các thực thể khác. Các thuộc tính có các danh mục, nhóm, " +"nghĩa và quản lý các thuộc tính, là các phần dữ liệu có thể tùy chỉnh có thể" +" được liên kết với các thực thể khác. Các thuộc tính có các danh mục, nhóm, " "loại giá trị và tên liên quan. Mô hình hỗ trợ nhiều loại giá trị, bao gồm " -"chuỗi, số nguyên, số thực, boolean, mảng và đối tượng. Điều này cho phép cấu " -"trúc dữ liệu động và linh hoạt." +"chuỗi, số nguyên, số thực, boolean, mảng và đối tượng. Điều này cho phép cấu" +" trúc dữ liệu động và linh hoạt." -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "Nhóm có thuộc tính này" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "Dây" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "Chính trực" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "Nổi" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "Boolean" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "Mảng" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "Đối tượng" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "Loại giá trị của thuộc tính" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "Kiểu giá trị" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "Tên của thuộc tính này" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "Tên thuộc tính" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "có thể lọc được" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "Xác định xem thuộc tính này có thể được sử dụng để lọc hay không." -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Thuộc tính" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Đại diện cho một giá trị cụ thể của một thuộc tính được liên kết với một sản " -"phẩm. Nó liên kết 'thuộc tính' với một 'giá trị' duy nhất, cho phép tổ chức " -"tốt hơn và thể hiện động các đặc điểm của sản phẩm." +"Đại diện cho một giá trị cụ thể của một thuộc tính được liên kết với một sản" +" phẩm. Nó liên kết 'thuộc tính' với một 'giá trị' duy nhất, cho phép tổ chức" +" tốt hơn và thể hiện động các đặc điểm của sản phẩm." -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "Thuộc tính của giá trị này" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "Sản phẩm cụ thể liên quan đến giá trị của thuộc tính này" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "Giá trị cụ thể cho thuộc tính này" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2127,87 +2158,87 @@ msgstr "" "định thứ tự hiển thị của chúng. Nó cũng bao gồm tính năng truy cập với văn " "bản thay thế cho hình ảnh." -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "Cung cấp văn bản thay thế cho hình ảnh để đảm bảo tính khả dụng." -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "Nội dung thay thế cho hình ảnh" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "Tải lên tệp hình ảnh cho sản phẩm này." -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "Hình ảnh sản phẩm" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "Xác định thứ tự hiển thị của các hình ảnh." -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "Ưu tiên hiển thị" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "Sản phẩm mà hình ảnh này đại diện" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "Hình ảnh sản phẩm" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"Đại diện cho một chiến dịch khuyến mãi cho các sản phẩm có giảm giá. Lớp này " -"được sử dụng để định nghĩa và quản lý các chiến dịch khuyến mãi cung cấp " +"Đại diện cho một chiến dịch khuyến mãi cho các sản phẩm có giảm giá. Lớp này" +" được sử dụng để định nghĩa và quản lý các chiến dịch khuyến mãi cung cấp " "giảm giá theo tỷ lệ phần trăm cho các sản phẩm. Lớp này bao gồm các thuộc " "tính để thiết lập tỷ lệ giảm giá, cung cấp chi tiết về chương trình khuyến " "mãi và liên kết nó với các sản phẩm áp dụng. Nó tích hợp với danh mục sản " "phẩm để xác định các mặt hàng bị ảnh hưởng trong chiến dịch." -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "Giảm giá theo phần trăm cho các sản phẩm đã chọn" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "Tỷ lệ giảm giá" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "Hãy đặt một tên duy nhất cho chương trình khuyến mãi này." -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "Tên chương trình khuyến mãi" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "Mô tả chương trình khuyến mãi" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "Chọn các sản phẩm được bao gồm trong chương trình khuyến mãi này." -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "Các sản phẩm được bao gồm" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "Khuyến mãi" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2215,64 +2246,64 @@ msgid "" "operations for adding and removing multiple products at once." msgstr "" "Đại diện cho danh sách mong muốn của người dùng để lưu trữ và quản lý các " -"sản phẩm mong muốn. Lớp này cung cấp các chức năng để quản lý bộ sưu tập sản " -"phẩm, hỗ trợ các thao tác như thêm và xóa sản phẩm, cũng như hỗ trợ các thao " -"tác thêm và xóa nhiều sản phẩm cùng lúc." +"sản phẩm mong muốn. Lớp này cung cấp các chức năng để quản lý bộ sưu tập sản" +" phẩm, hỗ trợ các thao tác như thêm và xóa sản phẩm, cũng như hỗ trợ các " +"thao tác thêm và xóa nhiều sản phẩm cùng lúc." -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "Các sản phẩm mà người dùng đã đánh dấu là mong muốn" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "Người dùng sở hữu danh sách mong muốn này" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "Chủ sở hữu Danh sách mong muốn" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "Danh sách mong muốn" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Đại diện cho một bản ghi tài liệu liên quan đến một sản phẩm. Lớp này được " "sử dụng để lưu trữ thông tin về các tài liệu liên quan đến các sản phẩm cụ " -"thể, bao gồm việc tải lên tệp và metadata của chúng. Nó chứa các phương thức " -"và thuộc tính để xử lý loại tệp và đường dẫn lưu trữ cho các tệp tài liệu. " -"Nó mở rộng chức năng từ các mixin cụ thể và cung cấp các tính năng tùy chỉnh " -"bổ sung." +"thể, bao gồm việc tải lên tệp và metadata của chúng. Nó chứa các phương thức" +" và thuộc tính để xử lý loại tệp và đường dẫn lưu trữ cho các tệp tài liệu. " +"Nó mở rộng chức năng từ các mixin cụ thể và cung cấp các tính năng tùy chỉnh" +" bổ sung." -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "Phim tài liệu" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "Phim tài liệu" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "Chưa được giải quyết" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Đại diện cho một thực thể địa chỉ bao gồm thông tin vị trí và mối quan hệ " "với người dùng. Cung cấp chức năng lưu trữ dữ liệu địa lý và địa chỉ, cũng " @@ -2283,59 +2314,59 @@ msgstr "" "lý hoặc kiểm tra thêm. Lớp này cũng cho phép liên kết địa chỉ với người " "dùng, giúp quản lý dữ liệu cá nhân hóa." -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "Địa chỉ của khách hàng" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "Dòng địa chỉ" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "Phố" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "Quận" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "Thành phố" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "Khu vực" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "Mã bưu chính" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "Quốc gia" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "Điểm định vị địa lý (Kinh độ, Vĩ độ)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "Phản hồi JSON đầy đủ từ dịch vụ định vị địa lý cho địa chỉ này" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "Phản hồi JSON được lưu trữ từ dịch vụ định vị địa lý" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "Địa chỉ" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "Địa chỉ" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2344,79 +2375,79 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"Đại diện cho một mã khuyến mãi có thể được sử dụng để giảm giá, quản lý thời " -"hạn hiệu lực, loại giảm giá và cách áp dụng. Lớp PromoCode lưu trữ thông tin " -"chi tiết về mã khuyến mãi, bao gồm mã định danh duy nhất, thuộc tính giảm " -"giá (số tiền hoặc phần trăm), thời hạn hiệu lực, người dùng liên kết (nếu " -"có) và trạng thái sử dụng. Nó bao gồm chức năng để xác thực và áp dụng mã " -"khuyến mãi vào đơn hàng đồng thời đảm bảo các điều kiện được đáp ứng." +"Đại diện cho một mã khuyến mãi có thể được sử dụng để giảm giá, quản lý thời" +" hạn hiệu lực, loại giảm giá và cách áp dụng. Lớp PromoCode lưu trữ thông " +"tin chi tiết về mã khuyến mãi, bao gồm mã định danh duy nhất, thuộc tính " +"giảm giá (số tiền hoặc phần trăm), thời hạn hiệu lực, người dùng liên kết " +"(nếu có) và trạng thái sử dụng. Nó bao gồm chức năng để xác thực và áp dụng " +"mã khuyến mãi vào đơn hàng đồng thời đảm bảo các điều kiện được đáp ứng." -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "Mã duy nhất mà người dùng sử dụng để đổi lấy ưu đãi giảm giá." -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "Mã khuyến mãi" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "Số tiền giảm giá cố định được áp dụng nếu không sử dụng phần trăm." -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "Số tiền giảm giá cố định" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "" "Giảm giá theo phần trăm sẽ được áp dụng nếu không sử dụng số tiền cố định." -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "Giảm giá theo phần trăm" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "Thời gian hết hạn của mã khuyến mãi" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "Thời hạn hiệu lực kết thúc" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "Thời gian bắt đầu hiệu lực của mã khuyến mãi này" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "Thời gian bắt đầu có hiệu lực" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "Thời gian sử dụng mã khuyến mãi, để trống nếu chưa được sử dụng." -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "Dấu thời gian sử dụng" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "Người dùng được gán mã khuyến mãi này (nếu có)." -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "Người dùng được chỉ định" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "Mã khuyến mãi" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "Mã khuyến mãi" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -2424,167 +2455,167 @@ msgstr "" "Chỉ nên định nghĩa một loại giảm giá (theo số tiền hoặc theo phần trăm), " "nhưng không nên định nghĩa cả hai hoặc không định nghĩa cả hai." -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "Mã khuyến mãi đã được sử dụng." -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Loại giảm giá không hợp lệ cho mã khuyến mãi {self.uuid}!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Đại diện cho một đơn hàng được đặt bởi người dùng. Lớp này mô hình hóa một " "đơn hàng trong ứng dụng, bao gồm các thuộc tính khác nhau như thông tin " -"thanh toán và vận chuyển, trạng thái, người dùng liên quan, thông báo và các " -"thao tác liên quan. Đơn hàng có thể có các sản phẩm liên quan, áp dụng " +"thanh toán và vận chuyển, trạng thái, người dùng liên quan, thông báo và các" +" thao tác liên quan. Đơn hàng có thể có các sản phẩm liên quan, áp dụng " "khuyến mãi, thiết lập địa chỉ và cập nhật chi tiết vận chuyển hoặc thanh " "toán. Đồng thời, chức năng hỗ trợ quản lý các sản phẩm trong chu kỳ đời của " "đơn hàng." -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "Địa chỉ thanh toán được sử dụng cho đơn hàng này" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "Mã khuyến mãi tùy chọn đã được áp dụng cho đơn hàng này." -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "Đã áp dụng mã khuyến mãi" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "Địa chỉ giao hàng được sử dụng cho đơn hàng này" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "Địa chỉ giao hàng" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "Tình trạng hiện tại của đơn hàng trong chu kỳ đời sống của nó" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "Tình trạng đơn hàng" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "" "Cấu trúc JSON của thông báo hiển thị cho người dùng, trong giao diện quản " "trị (admin UI), chế độ xem bảng (table-view) được sử dụng." -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "Đại diện JSON của các thuộc tính đơn hàng cho đơn hàng này" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "Người dùng đã đặt đơn hàng" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "Người dùng" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "Thời gian ghi nhận khi đơn hàng được hoàn tất" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "Mua thời gian" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "Một định danh dễ đọc cho đơn hàng" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "ID dễ đọc cho con người" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "Đặt hàng" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "" "Một người dùng chỉ được phép có một lệnh chờ duy nhất tại một thời điểm!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "" "Bạn không thể thêm sản phẩm vào đơn hàng không phải là đơn hàng đang chờ xử " "lý." -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "Bạn không thể thêm các sản phẩm không hoạt động vào đơn hàng." -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "Bạn không thể thêm nhiều sản phẩm hơn số lượng hiện có trong kho." -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -"Bạn không thể xóa sản phẩm khỏi một đơn hàng không phải là đơn hàng đang chờ " -"xử lý." +"Bạn không thể xóa sản phẩm khỏi một đơn hàng không phải là đơn hàng đang chờ" +" xử lý." -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} không tồn tại với truy vấn <{query}>!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "Mã khuyến mãi không tồn tại" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "" "Bạn chỉ có thể mua các sản phẩm vật lý có địa chỉ giao hàng được chỉ định!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "Địa chỉ không tồn tại" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "Bạn không thể mua hàng vào lúc này, vui lòng thử lại sau vài phút." -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "Giá trị lực không hợp lệ" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "Bạn không thể đặt hàng trống!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "Bạn không thể đặt hàng mà không có tài khoản người dùng!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "Người dùng không có số dư không thể mua bằng số dư!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "Không đủ số tiền để hoàn tất đơn hàng." -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2593,7 +2624,7 @@ msgstr "" "sau: tên khách hàng, địa chỉ email của khách hàng, số điện thoại của khách " "hàng." -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2601,7 +2632,7 @@ msgstr "" "Phương thức thanh toán không hợp lệ: {payment_method} từ " "{available_payment_methods}!" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2610,39 +2641,40 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "Quản lý phản hồi của người dùng về sản phẩm. Lớp này được thiết kế để thu " -"thập và lưu trữ phản hồi của người dùng về các sản phẩm cụ thể mà họ đã mua. " -"Nó bao gồm các thuộc tính để lưu trữ bình luận của người dùng, tham chiếu " -"đến sản phẩm liên quan trong đơn hàng và đánh giá do người dùng gán. Lớp này " -"sử dụng các trường cơ sở dữ liệu để mô hình hóa và quản lý dữ liệu phản hồi " -"một cách hiệu quả." +"thập và lưu trữ phản hồi của người dùng về các sản phẩm cụ thể mà họ đã mua." +" Nó bao gồm các thuộc tính để lưu trữ bình luận của người dùng, tham chiếu " +"đến sản phẩm liên quan trong đơn hàng và đánh giá do người dùng gán. Lớp này" +" sử dụng các trường cơ sở dữ liệu để mô hình hóa và quản lý dữ liệu phản hồi" +" một cách hiệu quả." -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "" "Những bình luận do người dùng cung cấp về trải nghiệm của họ với sản phẩm" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "Phản hồi" -#: engine/core/models.py:1827 -msgid "references the specific product in an order that this feedback is about" +#: engine/core/models.py:1834 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Tham chiếu đến sản phẩm cụ thể trong đơn hàng mà phản hồi này đề cập đến." -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "Sản phẩm liên quan đến đơn hàng" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "Đánh giá do người dùng gán cho sản phẩm" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "Đánh giá sản phẩm" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2664,128 +2696,128 @@ msgstr "" "kỹ thuật số. Mô hình này tích hợp với các mô hình Order và Product và lưu " "trữ tham chiếu đến chúng." -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "Giá mà khách hàng phải trả cho sản phẩm này tại thời điểm mua hàng." -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "Giá mua tại thời điểm đặt hàng" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "Nhận xét nội bộ dành cho quản trị viên về sản phẩm đã đặt hàng này" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "Nhận xét nội bộ" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "Thông báo cho người dùng" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "Đại diện JSON của các thuộc tính của mục này" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "Thuộc tính sản phẩm đã đặt hàng" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "Tham chiếu đến đơn hàng chính chứa sản phẩm này." -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "Đơn đặt hàng của phụ huynh" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "Sản phẩm cụ thể liên quan đến dòng đơn hàng này" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "Số lượng sản phẩm cụ thể này trong đơn hàng" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "Số lượng sản phẩm" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "Tình trạng hiện tại của sản phẩm này trong đơn hàng" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "Tình trạng dòng sản phẩm" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "Sản phẩm đặt hàng phải có đơn hàng liên quan!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Hành động sai được chỉ định cho phản hồi: {action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "Bạn không thể phản hồi đơn hàng mà bạn chưa nhận được." -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "Tên" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "Đường dẫn URL của tích hợp" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "Thông tin xác thực" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "Bạn chỉ có thể có một nhà cung cấp CRM mặc định." -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "Hệ thống Quản lý Quan hệ Khách hàng" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "Hệ thống Quản lý Quan hệ Khách hàng (CR" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "Liên kết CRM của đơn hàng" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "Liên kết CRM của đơn hàng" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Đại diện cho chức năng tải xuống các tài sản kỹ thuật số liên quan đến đơn " -"hàng. Lớp DigitalAssetDownload cung cấp khả năng quản lý và truy cập các tệp " -"tải xuống liên quan đến sản phẩm trong đơn hàng. Nó lưu trữ thông tin về sản " -"phẩm trong đơn hàng liên quan, số lần tải xuống và liệu tài sản có hiển thị " -"công khai hay không. Nó bao gồm một phương thức để tạo URL tải xuống tài sản " -"khi đơn hàng liên quan ở trạng thái đã hoàn thành." +"hàng. Lớp DigitalAssetDownload cung cấp khả năng quản lý và truy cập các tệp" +" tải xuống liên quan đến sản phẩm trong đơn hàng. Nó lưu trữ thông tin về " +"sản phẩm trong đơn hàng liên quan, số lần tải xuống và liệu tài sản có hiển " +"thị công khai hay không. Nó bao gồm một phương thức để tạo URL tải xuống tài" +" sản khi đơn hàng liên quan ở trạng thái đã hoàn thành." -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "Tải xuống" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "Tải xuống" @@ -2987,8 +3019,7 @@ msgstr "Xin chào %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Cảm ơn quý khách đã đặt hàng #%(order.pk)s! Chúng tôi vui mừng thông báo " @@ -3017,8 +3048,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." msgstr "" -"Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với bộ phận hỗ trợ của chúng " -"tôi tại %(config.EMAIL_HOST_USER)s." +"Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với bộ phận hỗ trợ của chúng" +" tôi tại %(config.EMAIL_HOST_USER)s." #: engine/core/templates/digital_order_created_email.html:133 #, python-format @@ -3068,8 +3099,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với bộ phận hỗ trợ của chúng " -"tôi tại %(contact_email)s." +"Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với bộ phận hỗ trợ của chúng" +" tôi tại %(contact_email)s." #: engine/core/templates/digital_order_delivered_email.html:165 #: engine/core/templates/promocode_granted_email.html:108 @@ -3095,14 +3126,13 @@ msgid "" "Thank you for staying with us! We have granted you with a promocode\n" " for " msgstr "" -"Cảm ơn quý khách đã đồng hành cùng chúng tôi! Chúng tôi đã cấp cho quý khách " -"một mã khuyến mãi cho" +"Cảm ơn quý khách đã đồng hành cùng chúng tôi! Chúng tôi đã cấp cho quý khách" +" một mã khuyến mãi cho" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Cảm ơn quý khách đã đặt hàng! Chúng tôi rất vui được xác nhận đơn hàng của " @@ -3228,20 +3258,18 @@ msgstr "Xử lý các truy vấn tìm kiếm toàn cầu." #: engine/core/views.py:289 msgid "Handles the logic of buying as a business without registration." msgstr "" -"Xử lý logic của việc mua hàng như một hoạt động kinh doanh mà không cần đăng " -"ký." +"Xử lý logic của việc mua hàng như một hoạt động kinh doanh mà không cần đăng" +" ký." #: engine/core/views.py:337 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Xử lý việc tải xuống tài sản kỹ thuật số liên quan đến một đơn hàng. Chức " -"năng này cố gắng cung cấp tệp tài sản kỹ thuật số được lưu trữ trong thư mục " -"lưu trữ của dự án. Nếu tệp không được tìm thấy, một lỗi HTTP 404 sẽ được trả " -"về để thông báo rằng tài nguyên không khả dụng." +"năng này cố gắng cung cấp tệp tài sản kỹ thuật số được lưu trữ trong thư mục" +" lưu trữ của dự án. Nếu tệp không được tìm thấy, một lỗi HTTP 404 sẽ được " +"trả về để thông báo rằng tài nguyên không khả dụng." #: engine/core/views.py:348 msgid "order_product_uuid is required" @@ -3257,7 +3285,8 @@ msgstr "Bạn chỉ có thể tải xuống tài sản kỹ thuật số một l #: engine/core/views.py:362 msgid "the order must be paid before downloading the digital asset" -msgstr "Đơn hàng phải được thanh toán trước khi tải xuống tài sản kỹ thuật số." +msgstr "" +"Đơn hàng phải được thanh toán trước khi tải xuống tài sản kỹ thuật số." #: engine/core/views.py:369 msgid "the order product does not have a product" @@ -3270,24 +3299,23 @@ msgstr "Biểu tượng trang web không tìm thấy" #: engine/core/views.py:418 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" -"Xử lý yêu cầu về biểu tượng favicon của một trang web. Chức năng này cố gắng " -"cung cấp tệp favicon nằm trong thư mục tĩnh của dự án. Nếu tệp favicon không " -"được tìm thấy, một lỗi HTTP 404 sẽ được trả về để thông báo rằng tài nguyên " -"không khả dụng." +"Xử lý yêu cầu về biểu tượng favicon của một trang web. Chức năng này cố gắng" +" cung cấp tệp favicon nằm trong thư mục tĩnh của dự án. Nếu tệp favicon " +"không được tìm thấy, một lỗi HTTP 404 sẽ được trả về để thông báo rằng tài " +"nguyên không khả dụng." #: engine/core/views.py:432 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"Chuyển hướng yêu cầu đến trang chỉ mục quản trị. Chức năng này xử lý các yêu " -"cầu HTTP đến và chuyển hướng chúng đến trang chỉ mục giao diện quản trị " -"Django. Nó sử dụng hàm `redirect` của Django để xử lý việc chuyển hướng HTTP." +"Chuyển hướng yêu cầu đến trang chỉ mục quản trị. Chức năng này xử lý các yêu" +" cầu HTTP đến và chuyển hướng chúng đến trang chỉ mục giao diện quản trị " +"Django. Nó sử dụng hàm `redirect` của Django để xử lý việc chuyển hướng " +"HTTP." #: engine/core/views.py:445 msgid "Returns current version of the Schon. " @@ -3304,30 +3332,31 @@ msgstr "Trả về các biến tùy chỉnh cho Bảng điều khiển." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The schonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "Xác định một tập hợp xem (viewset) để quản lý các thao tác liên quan đến " -"schon. Lớp schonViewSet kế thừa từ ModelViewSet và cung cấp các chức năng " -"để xử lý các hành động và thao tác trên các thực thể schon. Nó bao gồm hỗ " -"trợ cho các lớp serializer động dựa trên hành động hiện tại, quyền truy cập " -"có thể tùy chỉnh và các định dạng hiển thị." +"schon. Lớp schonViewSet kế thừa từ ModelViewSet và cung cấp các chức năng để" +" xử lý các hành động và thao tác trên các thực thể schon. Nó bao gồm hỗ trợ " +"cho các lớp serializer động dựa trên hành động hiện tại, quyền truy cập có " +"thể tùy chỉnh và các định dạng hiển thị." #: engine/core/viewsets.py:160 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Đại diện cho một tập hợp các đối tượng để quản lý các đối tượng " "AttributeGroup. Xử lý các thao tác liên quan đến AttributeGroup, bao gồm " -"lọc, serialization và truy xuất dữ liệu. Lớp này là một phần của lớp API của " -"ứng dụng và cung cấp một cách chuẩn hóa để xử lý yêu cầu và phản hồi cho dữ " -"liệu AttributeGroup." +"lọc, serialization và truy xuất dữ liệu. Lớp này là một phần của lớp API của" +" ứng dụng và cung cấp một cách chuẩn hóa để xử lý yêu cầu và phản hồi cho dữ" +" liệu AttributeGroup." #: engine/core/viewsets.py:179 msgid "" @@ -3341,17 +3370,17 @@ msgstr "" "Quản lý các thao tác liên quan đến các đối tượng thuộc tính (Attribute) " "trong ứng dụng. Cung cấp một bộ các điểm cuối API để tương tác với dữ liệu " "thuộc tính. Lớp này quản lý việc truy vấn, lọc và serialization của các đối " -"tượng thuộc tính, cho phép kiểm soát động đối với dữ liệu được trả về, chẳng " -"hạn như lọc theo các trường cụ thể hoặc lấy thông tin chi tiết so với thông " -"tin đơn giản tùy thuộc vào yêu cầu." +"tượng thuộc tính, cho phép kiểm soát động đối với dữ liệu được trả về, chẳng" +" hạn như lọc theo các trường cụ thể hoặc lấy thông tin chi tiết so với thông" +" tin đơn giản tùy thuộc vào yêu cầu." #: engine/core/viewsets.py:198 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Bộ xem (viewset) để quản lý các đối tượng AttributeValue. Bộ xem này cung " "cấp các chức năng để liệt kê, truy xuất, tạo, cập nhật và xóa các đối tượng " @@ -3390,7 +3419,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`schonViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3423,8 +3452,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `schonViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Đại diện cho tập hợp các đối tượng Feedback. Lớp này quản lý các thao tác " @@ -3439,13 +3468,13 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"ViewSet để quản lý đơn hàng và các hoạt động liên quan. Lớp này cung cấp các " -"chức năng để truy xuất, sửa đổi và quản lý các đối tượng đơn hàng. Nó bao " +"ViewSet để quản lý đơn hàng và các hoạt động liên quan. Lớp này cung cấp các" +" chức năng để truy xuất, sửa đổi và quản lý các đối tượng đơn hàng. Nó bao " "gồm các điểm cuối (endpoint) khác nhau để xử lý các hoạt động liên quan đến " "đơn hàng như thêm hoặc xóa sản phẩm, thực hiện giao dịch mua hàng cho cả " "người dùng đã đăng ký và chưa đăng ký, cũng như truy xuất các đơn hàng đang " @@ -3457,8 +3486,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Cung cấp một bộ xem (viewset) để quản lý các thực thể OrderProduct. Bộ xem " @@ -3492,8 +3521,8 @@ msgstr "Quản lý các hoạt động liên quan đến dữ liệu kho trong h msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3501,10 +3530,10 @@ msgstr "" "Bộ công cụ ViewSet để quản lý các thao tác liên quan đến Danh sách mong " "muốn. Bộ công cụ WishlistViewSet cung cấp các điểm cuối để tương tác với " "danh sách mong muốn của người dùng, cho phép truy xuất, chỉnh sửa và tùy " -"chỉnh các sản phẩm trong danh sách mong muốn. Bộ công cụ này hỗ trợ các chức " -"năng như thêm, xóa và thực hiện các thao tác hàng loạt đối với các sản phẩm " -"trong danh sách mong muốn. Các kiểm tra quyền truy cập được tích hợp để đảm " -"bảo rằng người dùng chỉ có thể quản lý danh sách mong muốn của chính mình " +"chỉnh các sản phẩm trong danh sách mong muốn. Bộ công cụ này hỗ trợ các chức" +" năng như thêm, xóa và thực hiện các thao tác hàng loạt đối với các sản phẩm" +" trong danh sách mong muốn. Các kiểm tra quyền truy cập được tích hợp để đảm" +" bảo rằng người dùng chỉ có thể quản lý danh sách mong muốn của chính mình " "trừ khi được cấp quyền rõ ràng." #: engine/core/viewsets.py:1183 @@ -3516,8 +3545,8 @@ msgid "" "on the request context." msgstr "" "Lớp này cung cấp chức năng viewset để quản lý các đối tượng `Address`. Lớp " -"AddressViewSet cho phép thực hiện các thao tác CRUD, lọc dữ liệu và các hành " -"động tùy chỉnh liên quan đến các thực thể địa chỉ. Nó bao gồm các hành vi " +"AddressViewSet cho phép thực hiện các thao tác CRUD, lọc dữ liệu và các hành" +" động tùy chỉnh liên quan đến các thực thể địa chỉ. Nó bao gồm các hành vi " "chuyên biệt cho các phương thức HTTP khác nhau, các tùy chỉnh serializer và " "xử lý quyền truy cập dựa trên bối cảnh yêu cầu." @@ -3534,8 +3563,8 @@ msgid "" "using the specified filter backend and dynamically uses different " "serializers based on the action being performed." msgstr "" -"Xử lý các tác vụ liên quan đến Thẻ Sản phẩm trong ứng dụng. Lớp này cung cấp " -"chức năng để truy xuất, lọc và serialize các đối tượng Thẻ Sản phẩm. Nó hỗ " +"Xử lý các tác vụ liên quan đến Thẻ Sản phẩm trong ứng dụng. Lớp này cung cấp" +" chức năng để truy xuất, lọc và serialize các đối tượng Thẻ Sản phẩm. Nó hỗ " "trợ lọc linh hoạt trên các thuộc tính cụ thể bằng cách sử dụng backend lọc " "được chỉ định và động sử dụng các serializer khác nhau tùy thuộc vào hành " "động đang thực hiện." diff --git a/engine/core/locale/zh_Hans/LC_MESSAGES/django.mo b/engine/core/locale/zh_Hans/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..42f721f071c4a9c781347fa8e7a4f68a982e9d4e GIT binary patch literal 83035 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 literal 0 HcmV?d00001 diff --git a/engine/core/locale/zh_Hans/LC_MESSAGES/django.po b/engine/core/locale/zh_Hans/LC_MESSAGES/django.po index b77e58ad..2992ce1a 100644 --- a/engine/core/locale/zh_Hans/LC_MESSAGES/django.po +++ b/engine/core/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-04 19:25+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -73,7 +73,7 @@ msgstr "时间戳" #: engine/core/admin.py:158 #, python-format -msgid "activate selected %(verbose_name_plural)s" +msgid "Activate selected %(verbose_name_plural)s" msgstr "激活选定的 %(verbose_name_plural)s" #: engine/core/admin.py:166 @@ -82,7 +82,7 @@ msgstr "所选项目已激活!" #: engine/core/admin.py:174 #, python-format -msgid "deactivate selected %(verbose_name_plural)s" +msgid "Deactivate selected %(verbose_name_plural)s" msgstr "停用选定的 %(verbose_name_plural)s" #: engine/core/admin.py:184 @@ -90,13 +90,13 @@ msgid "selected items have been deactivated." msgstr "选定项目已停用!" #: engine/core/admin.py:196 engine/core/graphene/object_types.py:653 -#: engine/core/graphene/object_types.py:660 engine/core/models.py:825 -#: engine/core/models.py:833 +#: engine/core/graphene/object_types.py:660 engine/core/models.py:832 +#: engine/core/models.py:840 msgid "attribute value" msgstr "属性值" #: engine/core/admin.py:197 engine/core/graphene/object_types.py:77 -#: engine/core/models.py:834 +#: engine/core/models.py:841 msgid "attribute values" msgstr "属性值" @@ -116,12 +116,12 @@ msgstr "库存" msgid "stocks" msgstr "股票" -#: engine/core/admin.py:232 engine/core/models.py:1931 +#: engine/core/admin.py:232 engine/core/models.py:1938 msgid "order product" msgstr "订购产品" #: engine/core/admin.py:233 engine/core/graphene/object_types.py:441 -#: engine/core/models.py:1932 +#: engine/core/models.py:1939 msgid "order products" msgstr "订购产品" @@ -129,7 +129,31 @@ msgstr "订购产品" msgid "children" msgstr "儿童" -#: engine/core/admin.py:1064 +#: engine/core/admin.py:528 +msgid "has images" +msgstr "图片" + +#: engine/core/admin.py:531 +#, python-format +msgid "Export selected %(verbose_name_plural)s to marketplaces' feeds" +msgstr "激活选定的 %(verbose_name_plural)s" + +#: engine/core/admin.py:542 +#, python-format +msgid "selected %(verbose_name_plural)s have been marked for export." +msgstr "激活选定的 %(verbose_name_plural)s" + +#: engine/core/admin.py:553 +#, python-format +msgid "Ban selected %(verbose_name_plural)s from marketplaces' feeds" +msgstr "激活选定的 %(verbose_name_plural)s" + +#: engine/core/admin.py:564 +#, python-format +msgid "selected %(verbose_name_plural)s have been banned from export." +msgstr "激活选定的 %(verbose_name_plural)s" + +#: engine/core/admin.py:1116 msgid "Config" msgstr "配置" @@ -1161,9 +1185,9 @@ msgstr "未找到订购产品 {order_product_uuid}!" msgid "original address string provided by the user" msgstr "用户提供的原始地址字符串" -#: engine/core/graphene/mutations.py:653 engine/core/models.py:979 -#: engine/core/models.py:992 engine/core/models.py:1436 -#: engine/core/models.py:1467 engine/core/models.py:1498 +#: engine/core/graphene/mutations.py:653 engine/core/models.py:986 +#: engine/core/models.py:999 engine/core/models.py:1443 +#: engine/core/models.py:1474 engine/core/models.py:1505 #: engine/core/viewsets.py:760 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1179,8 +1203,8 @@ msgstr "ElasticSearch - 工作起来得心应手" #: engine/core/graphene/object_types.py:84 #: engine/core/graphene/object_types.py:420 -#: engine/core/graphene/object_types.py:471 engine/core/models.py:796 -#: engine/core/models.py:1290 engine/core/models.py:2022 +#: engine/core/graphene/object_types.py:471 engine/core/models.py:803 +#: engine/core/models.py:1297 engine/core/models.py:2033 msgid "attributes" msgstr "属性" @@ -1254,7 +1278,7 @@ msgid "represents feedback from a user." msgstr "代表用户的反馈意见。" #: engine/core/graphene/object_types.py:421 -#: engine/core/graphene/object_types.py:472 engine/core/models.py:1284 +#: engine/core/graphene/object_types.py:472 engine/core/models.py:1291 msgid "notifications" msgstr "通知" @@ -1262,7 +1286,7 @@ msgstr "通知" msgid "download url for this order product if applicable" msgstr "此订单产品的下载网址(如适用" -#: engine/core/graphene/object_types.py:425 engine/core/models.py:1849 +#: engine/core/graphene/object_types.py:425 engine/core/models.py:1856 msgid "feedback" msgstr "反馈意见" @@ -1270,7 +1294,7 @@ msgstr "反馈意见" msgid "a list of order products in this order" msgstr "该订单中的订单产品列表" -#: engine/core/graphene/object_types.py:461 engine/core/models.py:1254 +#: engine/core/graphene/object_types.py:461 engine/core/models.py:1261 msgid "billing address" msgstr "账单地址" @@ -1296,7 +1320,7 @@ msgstr "订单中的所有产品都是数字产品吗?" msgid "transactions for this order" msgstr "此订单的交易" -#: engine/core/graphene/object_types.py:494 engine/core/models.py:1318 +#: engine/core/graphene/object_types.py:494 engine/core/models.py:1325 msgid "orders" msgstr "订单" @@ -1313,7 +1337,7 @@ msgstr "产品图片" msgid "category" msgstr "类别" -#: engine/core/graphene/object_types.py:531 engine/core/models.py:1850 +#: engine/core/graphene/object_types.py:531 engine/core/models.py:1857 msgid "feedbacks" msgstr "反馈意见" @@ -1354,7 +1378,7 @@ msgstr "仅限个人订购的产品" msgid "discount price" msgstr "折扣价" -#: engine/core/graphene/object_types.py:568 engine/core/models.py:677 +#: engine/core/graphene/object_types.py:568 engine/core/models.py:682 msgid "products" msgstr "产品" @@ -1366,7 +1390,7 @@ msgstr "促销代码" msgid "products on sale" msgstr "销售产品" -#: engine/core/graphene/object_types.py:701 engine/core/models.py:928 +#: engine/core/graphene/object_types.py:701 engine/core/models.py:935 msgid "promotions" msgstr "促销活动" @@ -1374,7 +1398,7 @@ msgstr "促销活动" msgid "vendor" msgstr "供应商" -#: engine/core/graphene/object_types.py:706 engine/core/models.py:676 +#: engine/core/graphene/object_types.py:706 engine/core/models.py:681 #: engine/core/templates/digital_order_created_email.html:109 #: engine/core/templates/digital_order_delivered_email.html:107 #: engine/core/templates/shipped_order_created_email.html:107 @@ -1382,11 +1406,11 @@ msgstr "供应商" msgid "product" msgstr "产品" -#: engine/core/graphene/object_types.py:718 engine/core/models.py:951 +#: engine/core/graphene/object_types.py:718 engine/core/models.py:958 msgid "wishlisted products" msgstr "心愿单上的产品" -#: engine/core/graphene/object_types.py:725 engine/core/models.py:968 +#: engine/core/graphene/object_types.py:725 engine/core/models.py:975 msgid "wishlists" msgstr "愿望清单" @@ -1498,7 +1522,7 @@ msgstr "父属性组" msgid "attribute group's name" msgstr "属性组名称" -#: engine/core/models.py:102 engine/core/models.py:756 +#: engine/core/models.py:102 engine/core/models.py:763 msgid "attribute group" msgstr "属性组" @@ -1740,8 +1764,8 @@ msgstr "销售价格" msgid "the product associated with this stock entry" msgstr "与该库存条目相关的产品" -#: engine/core/models.py:540 engine/core/models.py:821 -#: engine/core/models.py:867 engine/core/models.py:1905 +#: engine/core/models.py:540 engine/core/models.py:828 +#: engine/core/models.py:874 engine/core/models.py:1912 msgid "associated product" msgstr "相关产品" @@ -1835,7 +1859,7 @@ msgstr "为产品提供一个明确的标识名称" msgid "product name" msgstr "产品名称" -#: engine/core/models.py:638 engine/core/models.py:916 +#: engine/core/models.py:638 engine/core/models.py:923 msgid "add a detailed description of the product" msgstr "添加产品的详细描述" @@ -1855,7 +1879,15 @@ msgstr "部件编号" msgid "stock keeping unit for this product" msgstr "该产品的库存单位" -#: engine/core/models.py:742 +#: engine/core/models.py:673 +msgid "whether to export this product to marketplaces" +msgstr "是否将此产品出口至市场" + +#: engine/core/models.py:674 +msgid "Export to Marketplaces" +msgstr "导出至市场平台" + +#: engine/core/models.py:749 msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " @@ -1866,83 +1898,83 @@ msgid "" msgstr "" "代表系统中的一个属性。该类用于定义和管理属性,属性是可与其他实体关联的自定义数据块。属性有相关的类别、组、值类型和名称。该模型支持多种类型的值,包括字符串、整数、浮点数、布尔值、数组和对象。这样就可以实现动态、灵活的数据结构。" -#: engine/core/models.py:755 +#: engine/core/models.py:762 msgid "group of this attribute" msgstr "该属性的组" -#: engine/core/models.py:761 +#: engine/core/models.py:768 msgid "string" msgstr "字符串" -#: engine/core/models.py:762 +#: engine/core/models.py:769 msgid "integer" msgstr "整数" -#: engine/core/models.py:763 +#: engine/core/models.py:770 msgid "float" msgstr "浮动" -#: engine/core/models.py:764 +#: engine/core/models.py:771 msgid "boolean" msgstr "布尔型" -#: engine/core/models.py:765 +#: engine/core/models.py:772 msgid "array" msgstr "阵列" -#: engine/core/models.py:766 +#: engine/core/models.py:773 msgid "object" msgstr "对象" -#: engine/core/models.py:768 +#: engine/core/models.py:775 msgid "type of the attribute's value" msgstr "属性值的类型" -#: engine/core/models.py:769 +#: engine/core/models.py:776 msgid "value type" msgstr "价值类型" -#: engine/core/models.py:774 +#: engine/core/models.py:781 msgid "name of this attribute" msgstr "该属性的名称" -#: engine/core/models.py:775 +#: engine/core/models.py:782 msgid "attribute's name" msgstr "属性名称" -#: engine/core/models.py:780 +#: engine/core/models.py:787 msgid "is filterable" msgstr "可过滤" -#: engine/core/models.py:782 +#: engine/core/models.py:789 msgid "designates whether this attribute can be used for filtering or not" msgstr "指定该属性是否可用于筛选" -#: engine/core/models.py:795 engine/core/models.py:813 +#: engine/core/models.py:802 engine/core/models.py:820 #: engine/core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "属性" -#: engine/core/models.py:801 +#: engine/core/models.py:808 msgid "" "Represents a specific value for an attribute that is linked to a product. It" " links the 'attribute' to a unique 'value', allowing better organization and" " dynamic representation of product characteristics." msgstr "代表与产品相关联的属性的特定值。它将 \"属性 \"与唯一的 \"值 \"联系起来,从而更好地组织和动态呈现产品特征。" -#: engine/core/models.py:812 +#: engine/core/models.py:819 msgid "attribute of this value" msgstr "该值的属性" -#: engine/core/models.py:820 +#: engine/core/models.py:827 msgid "the specific product associated with this attribute's value" msgstr "与该属性值相关的特定产品" -#: engine/core/models.py:826 +#: engine/core/models.py:833 msgid "the specific value for this attribute" msgstr "该属性的具体值" -#: engine/core/models.py:839 +#: engine/core/models.py:846 msgid "" "Represents a product image associated with a product in the system. This " "class is designed to manage images for products, including functionality for" @@ -1952,39 +1984,39 @@ msgid "" msgstr "" "代表与系统中产品相关联的产品图片。该类用于管理产品图片,包括上传图片文件、将图片与特定产品关联以及确定图片显示顺序等功能。它还包括一个为图像提供替代文本的可访问性功能。" -#: engine/core/models.py:850 +#: engine/core/models.py:857 msgid "provide alternative text for the image for accessibility" msgstr "为图像提供替代文字,以便于访问" -#: engine/core/models.py:851 +#: engine/core/models.py:858 msgid "image alt text" msgstr "图片 alt 文本" -#: engine/core/models.py:854 +#: engine/core/models.py:861 msgid "upload the image file for this product" msgstr "上传该产品的图片文件" -#: engine/core/models.py:855 engine/core/models.py:886 +#: engine/core/models.py:862 engine/core/models.py:893 msgid "product image" msgstr "产品图片" -#: engine/core/models.py:860 +#: engine/core/models.py:867 msgid "determines the order in which images are displayed" msgstr "确定图像的显示顺序" -#: engine/core/models.py:861 +#: engine/core/models.py:868 msgid "display priority" msgstr "显示优先级" -#: engine/core/models.py:866 +#: engine/core/models.py:873 msgid "the product that this image represents" msgstr "该图片所代表的产品" -#: engine/core/models.py:887 +#: engine/core/models.py:894 msgid "product images" msgstr "产品图片" -#: engine/core/models.py:892 +#: engine/core/models.py:899 msgid "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" @@ -1995,39 +2027,39 @@ msgid "" msgstr "" "代表有折扣的产品促销活动。该类用于定义和管理为产品提供百分比折扣的促销活动。该类包括用于设置折扣率、提供促销详情以及将其链接到适用产品的属性。它与产品目录集成,以确定促销活动中受影响的产品。" -#: engine/core/models.py:904 +#: engine/core/models.py:911 msgid "percentage discount for the selected products" msgstr "所选产品的折扣百分比" -#: engine/core/models.py:905 +#: engine/core/models.py:912 msgid "discount percentage" msgstr "折扣百分比" -#: engine/core/models.py:910 +#: engine/core/models.py:917 msgid "provide a unique name for this promotion" msgstr "为该促销活动提供一个独特的名称" -#: engine/core/models.py:911 +#: engine/core/models.py:918 msgid "promotion name" msgstr "推广名称" -#: engine/core/models.py:917 +#: engine/core/models.py:924 msgid "promotion description" msgstr "促销说明" -#: engine/core/models.py:922 +#: engine/core/models.py:929 msgid "select which products are included in this promotion" msgstr "选择促销活动包括哪些产品" -#: engine/core/models.py:923 +#: engine/core/models.py:930 msgid "included products" msgstr "包括产品" -#: engine/core/models.py:927 +#: engine/core/models.py:934 msgid "promotion" msgstr "促销活动" -#: engine/core/models.py:938 +#: engine/core/models.py:945 msgid "" "Represents a user's wishlist for storing and managing desired products. The " "class provides functionality to manage a collection of products, supporting " @@ -2035,23 +2067,23 @@ msgid "" "operations for adding and removing multiple products at once." msgstr "代表用户用于存储和管理所需产品的愿望清单。该类提供管理产品集合的功能,支持添加和删除产品等操作,还支持同时添加和删除多个产品的操作。" -#: engine/core/models.py:950 +#: engine/core/models.py:957 msgid "products that the user has marked as wanted" msgstr "用户标记为想要的产品" -#: engine/core/models.py:958 +#: engine/core/models.py:965 msgid "user who owns this wishlist" msgstr "拥有此愿望清单的用户" -#: engine/core/models.py:959 +#: engine/core/models.py:966 msgid "wishlist owner" msgstr "心愿单所有者" -#: engine/core/models.py:967 +#: engine/core/models.py:974 msgid "wishlist" msgstr "愿望清单" -#: engine/core/models.py:1009 +#: engine/core/models.py:1016 msgid "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " @@ -2062,19 +2094,19 @@ msgid "" msgstr "" "代表与产品相关的文档记录。该类用于存储与特定产品相关的文档信息,包括文件上传及其元数据。它包含处理文件类型和文档文件存储路径的方法和属性。它扩展了特定混合类的功能,并提供了额外的自定义功能。" -#: engine/core/models.py:1024 +#: engine/core/models.py:1031 msgid "documentary" msgstr "纪录片" -#: engine/core/models.py:1025 +#: engine/core/models.py:1032 msgid "documentaries" msgstr "纪录片" -#: engine/core/models.py:1035 +#: engine/core/models.py:1042 msgid "unresolved" msgstr "未解决" -#: engine/core/models.py:1040 +#: engine/core/models.py:1047 msgid "" "Represents an address entity that includes location details and associations" " with a user. Provides functionality for geographic and address data " @@ -2088,59 +2120,59 @@ msgstr "" "代表一个地址实体,其中包括位置详情以及与用户的关联。提供地理和地址数据存储功能,以及与地理编码服务集成的功能。该类旨在存储详细的地址信息,包括街道、城市、地区、国家和地理位置(经度和纬度)等组件。它支持与地理编码" " API 集成,可存储原始 API 响应,以便进一步处理或检查。该类还可以将地址与用户关联起来,方便个性化数据处理。" -#: engine/core/models.py:1055 +#: engine/core/models.py:1062 msgid "address line for the customer" msgstr "客户地址栏" -#: engine/core/models.py:1056 +#: engine/core/models.py:1063 msgid "address line" msgstr "地址栏" -#: engine/core/models.py:1058 +#: engine/core/models.py:1065 msgid "street" msgstr "街道" -#: engine/core/models.py:1059 +#: engine/core/models.py:1066 msgid "district" msgstr "地区" -#: engine/core/models.py:1060 +#: engine/core/models.py:1067 msgid "city" msgstr "城市" -#: engine/core/models.py:1061 +#: engine/core/models.py:1068 msgid "region" msgstr "地区" -#: engine/core/models.py:1062 +#: engine/core/models.py:1069 msgid "postal code" msgstr "邮政编码" -#: engine/core/models.py:1063 +#: engine/core/models.py:1070 msgid "country" msgstr "国家" -#: engine/core/models.py:1070 +#: engine/core/models.py:1077 msgid "geolocation point: (longitude, latitude)" msgstr "地理位置点(经度、纬度)" -#: engine/core/models.py:1076 +#: engine/core/models.py:1083 msgid "full JSON response from geocoder for this address" msgstr "地理编码器对此地址的完整 JSON 响应" -#: engine/core/models.py:1082 +#: engine/core/models.py:1089 msgid "stored JSON response from the geocoding service" msgstr "存储的来自地理编码服务的 JSON 响应" -#: engine/core/models.py:1092 +#: engine/core/models.py:1099 msgid "address" msgstr "地址" -#: engine/core/models.py:1093 +#: engine/core/models.py:1100 msgid "addresses" msgstr "地址" -#: engine/core/models.py:1105 +#: engine/core/models.py:1112 msgid "" "Represents a promotional code that can be used for discounts, managing its " "validity, type of discount, and application. The PromoCode class stores " @@ -2152,86 +2184,86 @@ msgstr "" "代表可用于折扣的促销代码,管理其有效期、折扣类型和应用。PromoCode " "类存储促销代码的详细信息,包括其唯一标识符、折扣属性(金额或百分比)、有效期、关联用户(如有)及其使用状态。该类包含验证促销代码并将其应用于订单的功能,同时确保符合约束条件。" -#: engine/core/models.py:1119 +#: engine/core/models.py:1126 msgid "unique code used by a user to redeem a discount" msgstr "用户用于兑换折扣的唯一代码" -#: engine/core/models.py:1120 +#: engine/core/models.py:1127 msgid "promo code identifier" msgstr "促销代码标识符" -#: engine/core/models.py:1127 +#: engine/core/models.py:1134 msgid "fixed discount amount applied if percent is not used" msgstr "如果不使用百分比,则使用固定折扣额" -#: engine/core/models.py:1128 +#: engine/core/models.py:1135 msgid "fixed discount amount" msgstr "固定折扣额" -#: engine/core/models.py:1134 +#: engine/core/models.py:1141 msgid "percentage discount applied if fixed amount is not used" msgstr "未使用固定金额时适用的折扣百分比" -#: engine/core/models.py:1135 +#: engine/core/models.py:1142 msgid "percentage discount" msgstr "折扣百分比" -#: engine/core/models.py:1140 +#: engine/core/models.py:1147 msgid "timestamp when the promocode expires" msgstr "促销代码过期的时间戳" -#: engine/core/models.py:1141 +#: engine/core/models.py:1148 msgid "end validity time" msgstr "结束有效时间" -#: engine/core/models.py:1146 +#: engine/core/models.py:1153 msgid "timestamp from which this promocode is valid" msgstr "该促销代码有效的时间戳" -#: engine/core/models.py:1147 +#: engine/core/models.py:1154 msgid "start validity time" msgstr "开始有效时间" -#: engine/core/models.py:1152 +#: engine/core/models.py:1159 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "使用促销代码的时间戳,如果尚未使用,则留空" -#: engine/core/models.py:1153 +#: engine/core/models.py:1160 msgid "usage timestamp" msgstr "使用时间戳" -#: engine/core/models.py:1158 +#: engine/core/models.py:1165 msgid "user assigned to this promocode if applicable" msgstr "分配给此促销代码的用户(如适用" -#: engine/core/models.py:1159 +#: engine/core/models.py:1166 msgid "assigned user" msgstr "指定用户" -#: engine/core/models.py:1166 +#: engine/core/models.py:1173 msgid "promo code" msgstr "促销代码" -#: engine/core/models.py:1167 +#: engine/core/models.py:1174 msgid "promo codes" msgstr "促销代码" -#: engine/core/models.py:1183 +#: engine/core/models.py:1190 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。" -#: engine/core/models.py:1205 +#: engine/core/models.py:1212 msgid "promocode already used" msgstr "促销代码已被使用" -#: engine/core/models.py:1227 +#: engine/core/models.py:1234 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "促销代码 {self.uuid} 的折扣类型无效!" -#: engine/core/models.py:1236 +#: engine/core/models.py:1243 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " @@ -2242,145 +2274,145 @@ msgid "" msgstr "" "代表用户下达的订单。该类在应用程序中模拟订单,包括订单的各种属性,如账单和发货信息、状态、关联用户、通知和相关操作。订单可以有关联的产品,可以应用促销活动,设置地址,更新发货或账单详情。同样,该功能还支持在订单生命周期中管理产品。" -#: engine/core/models.py:1253 +#: engine/core/models.py:1260 msgid "the billing address used for this order" msgstr "该订单使用的账单地址" -#: engine/core/models.py:1261 +#: engine/core/models.py:1268 msgid "optional promo code applied to this order" msgstr "此订单可选择使用促销代码" -#: engine/core/models.py:1262 +#: engine/core/models.py:1269 msgid "applied promo code" msgstr "应用促销代码" -#: engine/core/models.py:1270 +#: engine/core/models.py:1277 msgid "the shipping address used for this order" msgstr "该订单使用的送货地址" -#: engine/core/models.py:1271 +#: engine/core/models.py:1278 msgid "shipping address" msgstr "送货地址" -#: engine/core/models.py:1277 +#: engine/core/models.py:1284 msgid "current status of the order in its lifecycle" msgstr "订单在其生命周期中的当前状态" -#: engine/core/models.py:1278 +#: engine/core/models.py:1285 msgid "order status" msgstr "订单状态" -#: engine/core/models.py:1283 engine/core/models.py:1882 +#: engine/core/models.py:1290 engine/core/models.py:1889 msgid "json structure of notifications to display to users" msgstr "向用户显示的通知的 JSON 结构,在管理用户界面中使用表格视图" -#: engine/core/models.py:1289 +#: engine/core/models.py:1296 msgid "json representation of order attributes for this order" msgstr "该订单属性的 JSON 表示形式" -#: engine/core/models.py:1295 +#: engine/core/models.py:1302 msgid "the user who placed the order" msgstr "下订单的用户" -#: engine/core/models.py:1296 +#: engine/core/models.py:1303 msgid "user" msgstr "用户" -#: engine/core/models.py:1302 +#: engine/core/models.py:1309 msgid "the timestamp when the order was finalized" msgstr "订单确定的时间戳" -#: engine/core/models.py:1303 +#: engine/core/models.py:1310 msgid "buy time" msgstr "购买时间" -#: engine/core/models.py:1310 +#: engine/core/models.py:1317 msgid "a human-readable identifier for the order" msgstr "订单的人工可读标识符" -#: engine/core/models.py:1311 +#: engine/core/models.py:1318 msgid "human readable id" msgstr "人类可读 ID" -#: engine/core/models.py:1317 +#: engine/core/models.py:1324 msgid "order" msgstr "订购" -#: engine/core/models.py:1364 +#: engine/core/models.py:1371 msgid "a user must have only one pending order at a time" msgstr "用户每次只能有一个挂单!" -#: engine/core/models.py:1397 +#: engine/core/models.py:1404 msgid "you cannot add products to an order that is not a pending one" msgstr "您不能向非待处理订单添加产品" -#: engine/core/models.py:1403 +#: engine/core/models.py:1410 msgid "you cannot add inactive products to order" msgstr "您不能在订单中添加非活动产品" -#: engine/core/models.py:1425 +#: engine/core/models.py:1432 msgid "you cannot add more products than available in stock" msgstr "添加的产品数量不能超过现有库存" -#: engine/core/models.py:1449 engine/core/models.py:1478 -#: engine/core/models.py:1488 +#: engine/core/models.py:1456 engine/core/models.py:1485 +#: engine/core/models.py:1495 msgid "you cannot remove products from an order that is not a pending one" msgstr "您不能从非待处理订单中删除产品" -#: engine/core/models.py:1473 +#: engine/core/models.py:1480 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "查询 <{query}> 时,{name} 不存在!" -#: engine/core/models.py:1512 +#: engine/core/models.py:1519 msgid "promocode does not exist" msgstr "促销代码不存在" -#: engine/core/models.py:1527 +#: engine/core/models.py:1534 msgid "you can only buy physical products with shipping address specified" msgstr "您只能购买指定送货地址的实物产品!" -#: engine/core/models.py:1548 +#: engine/core/models.py:1555 msgid "address does not exist" msgstr "地址不存在" -#: engine/core/models.py:1570 engine/core/models.py:1649 +#: engine/core/models.py:1577 engine/core/models.py:1656 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "您现在无法购买,请稍后再试。" -#: engine/core/models.py:1576 engine/core/models.py:1642 +#: engine/core/models.py:1583 engine/core/models.py:1649 msgid "invalid force value" msgstr "力值无效" -#: engine/core/models.py:1582 engine/core/models.py:1653 +#: engine/core/models.py:1589 engine/core/models.py:1660 msgid "you cannot purchase an empty order!" msgstr "您不能购买空单!" -#: engine/core/models.py:1603 +#: engine/core/models.py:1610 msgid "you cannot buy an order without a user" msgstr "没有用户就无法购买订单!" -#: engine/core/models.py:1617 +#: engine/core/models.py:1624 msgid "a user without a balance cannot buy with balance" msgstr "没有余额的用户不能使用余额购买!" -#: engine/core/models.py:1623 +#: engine/core/models.py:1630 msgid "insufficient funds to complete the order" msgstr "资金不足,无法完成订单" -#: engine/core/models.py:1664 +#: engine/core/models.py:1671 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "未经注册不能购买,请提供以下信息:客户姓名、客户电子邮件、客户电话号码" -#: engine/core/models.py:1675 +#: engine/core/models.py:1682 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "付款方式无效:来自 {available_payment_methods} 的 {payment_method} !" -#: engine/core/models.py:1806 +#: engine/core/models.py:1813 msgid "" "Manages user feedback for products. This class is designed to capture and " "store user feedback for specific products that they have purchased. It " @@ -2390,32 +2422,32 @@ msgid "" msgstr "" "管理产品的用户反馈。该类用于捕获和存储用户对其购买的特定产品的反馈。它包含用于存储用户评论的属性、订单中相关产品的引用以及用户指定的评分。该类使用数据库字段对反馈数据进行有效建模和管理。" -#: engine/core/models.py:1818 +#: engine/core/models.py:1825 msgid "user-provided comments about their experience with the product" msgstr "用户提供的产品使用体验评论" -#: engine/core/models.py:1819 +#: engine/core/models.py:1826 msgid "feedback comments" msgstr "反馈意见" -#: engine/core/models.py:1827 +#: engine/core/models.py:1834 msgid "" "references the specific product in an order that this feedback is about" msgstr "引用该反馈意见涉及的订单中的具体产品" -#: engine/core/models.py:1829 +#: engine/core/models.py:1836 msgid "related order product" msgstr "相关订购产品" -#: engine/core/models.py:1834 +#: engine/core/models.py:1841 msgid "user-assigned rating for the product" msgstr "用户对产品的评分" -#: engine/core/models.py:1835 +#: engine/core/models.py:1842 msgid "product rating" msgstr "产品评级" -#: engine/core/models.py:1855 +#: engine/core/models.py:1862 msgid "" "Represents products associated with orders and their attributes. The " "OrderProduct model maintains information about a product that is part of an " @@ -2431,108 +2463,108 @@ msgstr "" "模型维护订单中产品的相关信息,包括购买价格、数量、产品属性和状态等详细信息。它为用户和管理员管理通知,并处理返回产品余额或添加反馈等操作。该模型还提供支持业务逻辑的方法和属性,如计算总价或为数字产品生成下载" " URL。该模型与订单和产品模型集成,并存储对它们的引用。" -#: engine/core/models.py:1870 +#: engine/core/models.py:1877 msgid "the price paid by the customer for this product at purchase time" msgstr "客户购买该产品时支付的价格" -#: engine/core/models.py:1871 +#: engine/core/models.py:1878 msgid "purchase price at order time" msgstr "订购时的购买价格" -#: engine/core/models.py:1876 +#: engine/core/models.py:1883 msgid "internal comments for admins about this ordered product" msgstr "管理员对该订购产品的内部评论" -#: engine/core/models.py:1877 +#: engine/core/models.py:1884 msgid "internal comments" msgstr "内部意见" -#: engine/core/models.py:1883 +#: engine/core/models.py:1890 msgid "user notifications" msgstr "用户通知" -#: engine/core/models.py:1888 +#: engine/core/models.py:1895 msgid "json representation of this item's attributes" msgstr "该项属性的 JSON 表示形式" -#: engine/core/models.py:1889 +#: engine/core/models.py:1896 msgid "ordered product attributes" msgstr "有序的产品属性" -#: engine/core/models.py:1894 +#: engine/core/models.py:1901 msgid "reference to the parent order that contains this product" msgstr "对包含该产品的父订单的引用" -#: engine/core/models.py:1895 +#: engine/core/models.py:1902 msgid "parent order" msgstr "父顺序" -#: engine/core/models.py:1904 +#: engine/core/models.py:1911 msgid "the specific product associated with this order line" msgstr "与该订单项目相关的具体产品" -#: engine/core/models.py:1911 +#: engine/core/models.py:1918 msgid "quantity of this specific product in the order" msgstr "订单中该特定产品的数量" -#: engine/core/models.py:1912 +#: engine/core/models.py:1919 msgid "product quantity" msgstr "产品数量" -#: engine/core/models.py:1919 +#: engine/core/models.py:1926 msgid "current status of this product in the order" msgstr "订单中该产品的当前状态" -#: engine/core/models.py:1920 +#: engine/core/models.py:1927 msgid "product line status" msgstr "产品系列状态" -#: engine/core/models.py:1987 +#: engine/core/models.py:1998 msgid "order product must have an order" msgstr "订单产品必须有相关的订单!" -#: engine/core/models.py:1989 +#: engine/core/models.py:2000 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "为反馈指定了错误的操作:{action}!" -#: engine/core/models.py:2006 +#: engine/core/models.py:2017 msgid "you cannot feedback an order which is not received" msgstr "您不能反馈未收到的订单" -#: engine/core/models.py:2015 +#: engine/core/models.py:2026 msgid "name" msgstr "名称" -#: engine/core/models.py:2017 +#: engine/core/models.py:2028 msgid "URL of the integration" msgstr "集成的 URL" -#: engine/core/models.py:2020 +#: engine/core/models.py:2031 msgid "authentication credentials" msgstr "认证证书" -#: engine/core/models.py:2043 +#: engine/core/models.py:2054 msgid "you can only have one default CRM provider" msgstr "只能有一个默认 CRM 提供商" -#: engine/core/models.py:2053 +#: engine/core/models.py:2064 msgid "CRM" msgstr "客户关系管理" -#: engine/core/models.py:2054 +#: engine/core/models.py:2065 msgid "CRMs" msgstr "客户关系管理" -#: engine/core/models.py:2070 +#: engine/core/models.py:2081 msgid "order CRM link" msgstr "订单的客户关系管理链接" -#: engine/core/models.py:2071 +#: engine/core/models.py:2082 msgid "orders CRM links" msgstr "订单的客户关系管理链接" -#: engine/core/models.py:2076 +#: engine/core/models.py:2087 msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " @@ -2545,11 +2577,11 @@ msgstr "" "类提供了管理和访问与订单产品相关的下载的功能。该类维护相关订单产品的信息、下载次数以及资产是否公开可见。当相关订单处于完成状态时,该类包含一个生成用于下载资产的" " URL 的方法。" -#: engine/core/models.py:2092 +#: engine/core/models.py:2103 msgid "download" msgstr "下载" -#: engine/core/models.py:2093 +#: engine/core/models.py:2104 msgid "downloads" msgstr "下载" @@ -3026,7 +3058,7 @@ msgstr "返回 Schon 的当前版本。" #: engine/core/views.py:674 engine/core/views.py:689 #, python-format msgid "Revenue & Orders (last %(days)d)" -msgstr "" +msgstr "收入与订单(最近的%(days)d)" #: engine/core/views.py:870 msgid "Returns custom variables for Dashboard. " @@ -3034,9 +3066,9 @@ msgstr "返回 Dashboard 的自定义变量。" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing schon-related operations. The schonViewSet " +"Defines a viewset for managing Schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on schon entities. It includes support for dynamic " +"actions and operations on Schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3103,7 +3135,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`schonViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3129,7 +3161,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of" -" accessible Feedback objects. It extends the base `schonViewSet` and makes " +" accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "处理反馈对象的视图集的表示。该类管理与反馈对象相关的操作,包括列出、筛选和检索详细信息。该视图集的目的是为不同的操作提供不同的序列化器,并对可访问的反馈对象实施基于权限的处理。它扩展了基本的" diff --git a/engine/core/models.py b/engine/core/models.py index 312fced8..4d5e5f3d 100644 --- a/engine/core/models.py +++ b/engine/core/models.py @@ -699,9 +699,7 @@ class Product(ExportModelOperationsMixin("product"), NiceModel): @cached_property def discount_price(self) -> float | None: promo = self.promos.first() - return ( - promo.discount_percent if promo else None # ty: ignore[possibly-missing-attribute] - ) + return promo.discount_percent if promo else None @property def rating(self) -> float: diff --git a/engine/core/serializers/detail.py b/engine/core/serializers/detail.py index fc4dbf01..ee3878a0 100644 --- a/engine/core/serializers/detail.py +++ b/engine/core/serializers/detail.py @@ -50,7 +50,7 @@ class AttributeGroupDetailSerializer(ModelSerializer): class CategoryDetailListSerializer(ListSerializer): - def to_representation(self, data): # ty: ignore[invalid-method-override] + def to_representation(self, data): items = list(data) with suppress(Exception): Category.bulk_prefetch_filterable_attributes(items) @@ -92,7 +92,7 @@ class CategoryDetailSerializer(ModelSerializer): serializer = CategorySimpleSerializer( children, many=True, context=self.context ) - return list(serializer.data) # ty: ignore[invalid-return-type] + return list(serializer.data) return [] diff --git a/engine/core/utils/db.py b/engine/core/utils/db.py index 6bf67de1..af50feea 100644 --- a/engine/core/utils/db.py +++ b/engine/core/utils/db.py @@ -28,7 +28,7 @@ class TweakedAutoSlugField(AutoSlugField): if callable(lookup_value): return f"{lookup_value(model_instance)}" - lookup_value_path = lookup_value.split(LOOKUP_SEP) # ty: ignore[possibly-missing-attribute] + lookup_value_path = lookup_value.split(LOOKUP_SEP) attr = model_instance for elem in lookup_value_path: diff --git a/engine/core/views.py b/engine/core/views.py index 1d1e2252..9f32807a 100644 --- a/engine/core/views.py +++ b/engine/core/views.py @@ -207,7 +207,7 @@ class CacheOperatorView(APIView): return Response( data=web_cache( request, - request.data.get("key") or "", # ty: ignore[invalid-argument-type] + request.data.get("key") or "", request.data.get("data", {}), request.data.get("timeout"), ), @@ -414,7 +414,7 @@ def favicon_view(request: HttpRequest) -> HttpResponse | FileResponse: # noinspection PyTypeChecker favicon_view.__doc__ = str( - _( # ty: ignore[invalid-assignment] + _( "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. " "If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -428,7 +428,7 @@ def index(request: HttpRequest, *args, **kwargs) -> HttpResponse | HttpResponseR # noinspection PyTypeChecker index.__doc__ = str( - _( # ty: ignore[invalid-assignment] + _( "Redirects the request to the admin index page. " "The function handles incoming HTTP requests and redirects them to the Django " "admin interface index page. It uses Django's `redirect` function for handling " @@ -442,7 +442,7 @@ def version(request: HttpRequest, *args, **kwargs) -> HttpResponse: # noinspection PyTypeChecker -version.__doc__ = str(_("Returns current version of the Schon. ")) # ty: ignore[invalid-assignment] +version.__doc__ = str(_("Returns current version of the Schon. ")) def dashboard_callback(request: HttpRequest, context: Context) -> Context: @@ -867,4 +867,4 @@ def dashboard_callback(request: HttpRequest, context: Context) -> Context: return context -dashboard_callback.__doc__ = str(_("Returns custom variables for Dashboard. ")) # ty: ignore[invalid-assignment] +dashboard_callback.__doc__ = str(_("Returns custom variables for Dashboard. ")) diff --git a/engine/core/viewsets.py b/engine/core/viewsets.py index 714e5b30..d0519a17 100644 --- a/engine/core/viewsets.py +++ b/engine/core/viewsets.py @@ -147,7 +147,7 @@ class SchonViewSet(ModelViewSet): additional: dict[str, str] = {} permission_classes = [SchonPermission] - def get_serializer_class(self) -> Type[Any]: # ty: ignore[invalid-return-type] + def get_serializer_class(self) -> Type[Any]: # noinspection PyTypeChecker return self.action_serializer_classes.get( self.action, super().get_serializer_class() diff --git a/engine/payments/locale/ar_AR/LC_MESSAGES/django.mo b/engine/payments/locale/ar_AR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e24bc2202a6c65a436344c139793bf6b27675bd9 GIT binary patch literal 7760 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 literal 0 HcmV?d00001 diff --git a/engine/payments/locale/ar_AR/LC_MESSAGES/django.po b/engine/payments/locale/ar_AR/LC_MESSAGES/django.po index 6f8047b0..8200d6ef 100644 --- a/engine/payments/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/payments/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:59+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/cs_CZ/LC_MESSAGES/django.mo b/engine/payments/locale/cs_CZ/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0730d7cf12f05588a33c769f1b5eb0dae487b08c GIT binary patch literal 6704 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 URw=m+YEpWS?}8$uN1SBpKWJ&&?EnA( literal 0 HcmV?d00001 diff --git a/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po b/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po index 69585e5a..abd12a59 100644 --- a/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po +++ b/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/da_DK/LC_MESSAGES/django.mo b/engine/payments/locale/da_DK/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..4d49d5d17680798eaa82e663c29c5ec505198b3c GIT binary patch literal 6680 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 Ie^age7tXyuqW}N^ literal 0 HcmV?d00001 diff --git a/engine/payments/locale/da_DK/LC_MESSAGES/django.po b/engine/payments/locale/da_DK/LC_MESSAGES/django.po index c237e368..8027f513 100644 --- a/engine/payments/locale/da_DK/LC_MESSAGES/django.po +++ b/engine/payments/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:02+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/de_DE/LC_MESSAGES/django.mo b/engine/payments/locale/de_DE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3f1ba69271016653ef101898881ca8ea03eed61d GIT binary patch literal 6926 zcmb`LO>87b6~_w*NpJ`sA%xF_3b3r5cqZOmg+$Kog6;Ks&H4*_c7sC1QZrpM({WGt zq^sLrdlMm$;D9)A;Q$IkNUK~y2n7ku0W84{32^~|5Qj)eNZb(+iQlX4o@r+{8xf`D z_P?vTtLlCH->X;i*L!aJj^aAS{Za0pzD21eaOG|MOJ5!umOGxT;cuC!AaV8yhEw?fioao>KyoPa0R>*d>VWRwBTLfx52aE3*dv` zpTP<6mGb?aG-hev3(C6dpv?Pa@P4ol-UEIE`~>)2@WbFQ!2$S3@crO<7W+8(G$`wQ z1w=LVLr}hdvBY12chmk0cpCf%DBm4_r&1pQr$N!@0x0r)0elx2f}-Em62A(HT;Bwz z!0&@=;BUdl!24K)snr@tmwF0(4(x$4&&!~U`zP4Jz8_!_@!2&N|2pj-fzN@DzE`Pd z=>G|ei9GjX{71kh_yX_01TNA3&%Mk6E?^8?slEt`9tOM}d=?bBu7dojAM@`#_#1Er zy!*bwFK0_!20u@K3zT(VEc<^3K1lo5;0M8%!3OvWD0Y4rAu{khDC_(J{1o_mP}cbu zDE6LWu<)}9eh9n>%J&xB1h0Ye-S0pd{|8Xy_&112)Ljgc_3j6ul6oA33ThtY6SWFH z3U11INH+x0r^SW=GjuRcmneC-U-l+>F4kGL5>m-9P?&*$+qPFR5>(oA*TbDVV zB|7U{J-4ykoM`n!r#q2xP7l+hW1V9xQ|L6wv-&g_TCEMevA)&1VIDJNB)S0J@+n8eOvo*?XCF%0DLj_9qERCi4n<*99|qh=AI zWo|KY>ZO&4|aj)}sc z5KV@Sj7FcqPF+7)?)Vae#Yv`3&UbMp`q*Il)q0OrcDOFfQ_S1c>v5%bH;+b3;wSOF zy=ptTu!+eSQ<`iy%=&)qnwqGQVKeCF`QyD?T5n{hVo|4IV>rN9vckYzEuNz&*~Q(J zHOwH%#mT0VCb-1xFu7?*wqlH9^0ATirAy1_j&vLelROWDQH+$7QZIo&^i3i>yCs`5g@Wc&G-1iRP0P88hT8E@mS9XCzOzs6Q(v$ zu_ z)(n(L*|wrmphyq{gRvyJ5D+>FnTD9_x%}%b~Vw@+hlB+*4&d zRH$7tuzHZh7I71jYGJu5YHD3oX02@rdT0n-bd+4-Y^M5_sKby#fGgcFb(JlrRoK;g zNlswwSSYrq{ft1v6RN0lk3yi0{sbpz|kQ5a9DDCs52XBqra`>J$;^2z8mUZGom z8Az_^D@!%(w zoKWUsMZ!%(c1x1Cqo3?qH$dG=qc7i-+^k-eAWB>7AS~mFEk4E$IL;^iLZ?}+YU0(O zo!Yep70WG}tqQ-ej|QOxHcU+=H_4V!WY%MoMT|kN;%yPCwsj(b1E|XjdoLRlKaAAE-pPV`Q z>E?-vO?Le>Ypl9n7&PYdo@=y{Sv|3_-q^G|p$ur8BWcab_m4JaPBc!<=$TWqCm(xw zhHGNQxUA8V?ISW-lFsVIrS(nCJ%4F!{jxs2u)fxsTWEdu{H4uBdX_hv3+tgIeEgk=-nD6Ck?J(Sq_g_*c9>0UP<5H8aXv{0ZdS)b-*jhA zKB0@pGn27?@Qgk&^~A*MR>Ya!wqb1b@;H4coMFJ-7upRnGLCuWy%zj7qbCUyAD&^@hiupLb*}Y z>+m@5V&+sYAw&={l9tq*J=?Qw8#BWa#Na5<*r5sgY8>DoYh@6YsNj)>KDq*$%1uy*F5#x*AFZ!#v)WX;VGd7A+$D;l*7H<9*YY zrYmyAwp6D!Zcd2igg?QS9Uf%+St$sofyj>*9a4Ss@j5o0zP>EwcIbWY9Z)y9#A4jk zPudttFweY=^GwRIIPCPtg?BgHX979EVD;TFy{YNOR!a{LI@_gRo6H&N!cw>hdZb4r z5v|zkpTve6#Y~i5F_*kN{a{0pBtIGbeSXG(t=h5MH zia?=o&3tY4mc#3wot#vV`|zOGHq=!WJx3L~m!w{y7acdP(2JO@rWn`ghX<(_P=cgy z+7%tv^0cu+TsGFLYMu3q02&;zgRj>q*k6lz+I9L^z1_1sc>Y+u)#=A!mU#wIz*izj zI!O!ja+1l8EJN8XG!ZUhl3mFyb)Wb{`_{OY7lM~fR}xPwf37O$t4?8D$v_mSl8_gS zLe6uAz>}kUEE{3Yj=&ZI5$%YmMPN!H9S#P*Us6yO_An(j^Ztt>D+fKvKde%t5g+X5 zJ?zuvY5VY{SRzh|mL#OZmzYJSAixOV*vE4^&8rYP4!kjBz758cbXciKhogDsSXXa~ zG?J3Y&V3VMM)jm2`KkG$#KkE7m|XP6Y8A^)8P+LK+Xr);)e5q-}BT( zLj;d~vunwfvD%iC0;d+}i+A-3@hfQ;Vv`~f-l0dCb&n(&)_wBux(`TJR+aL4d`8gQ ziJ!8_6Fu8SVn&tgjt8q2>$~C*kP%m2E2p>e0cD}@9y4&h9(qUIBqxft4J^Odl##UJ zPb6Czal`3pw-i>51G)C-wOz7NfVT&dY^WG9ZvBfQw%9F96eOzJh-y2m8+J_~`LE23 zT^L95vAv8Rq+av1;q$8S>3qQrLR_fm1Bk_VAuQKa2>69vIp>!fNi|#LiNh!U|M$>Q zm%2K1#OhMqJ3NSl(rLYN@Osq_9-g#EY%hT$#}UMuydj%Rsg=<=#K_NKwV_T@sp&y! zsNpi6`F*cQ-{l*Q9wzgQ(CclR5{c}jYTWy#@nlVoDRX&Ox$vg@8{*!~j~r2*q>m!v!=i+&Z=y@yeetZS=}~`{ z)ECNcQpA8>W?LHQibIuIdDxR$@+i!6qH{8 literal 0 HcmV?d00001 diff --git a/engine/payments/locale/de_DE/LC_MESSAGES/django.po b/engine/payments/locale/de_DE/LC_MESSAGES/django.po index 0fcdece2..23ae3381 100644 --- a/engine/payments/locale/de_DE/LC_MESSAGES/django.po +++ b/engine/payments/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/en_GB/LC_MESSAGES/django.mo b/engine/payments/locale/en_GB/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d21c64eda63a7be3594c48e519cb4fd4cce810c9 GIT binary patch literal 6449 zcmeI0%Wqs)9mfyQl6H8P(iSM?gb-r4o{8;9Buxk;iy-AH z$KQL-J&)h-`+J<<>Vx2AunB$_T<7~Q!72I&9#-nZ;4H|HIt_jRTn8TlFMv;j7JLu*J@6#>3V0Cw z9oPW>S$=J_p6n$1fk>?BG`@sMd{VtVw6%@I?15SfK z1~Vtv@(WPx@(+X%yR zt@pxEWX$BTK3px9*v6n#8UQ zQ0$U{VwbC+?DH>B)*bk$QqY^rB=dxGd363)DG8_f@?GS6C+#yd#LxW@m^`h?TcLw= zg|q4r-sKTK^0V_^VONpqDcT%umi7!y_&-b&eyc|~`4H{hv`^EXq)D90BfJyd3Y8RQ z&iRLqoF}pMQQE^aRL}DUko$_DJi_x4+KhB~J}G}zOlJ4YSYOUk6FcK&K@zw6#o!e^ zFiyvb4&u!AQzPHhs)_y3I>x*t3gW)@Oc?GM?<+dBUmaPOIh`ds8(4j6YpvDj4g#mW z&^V`uY2sPuSj!eVO-5OLo7HZ2OK)|~c5m3n3|To$1BBAUQZytJF;cx_ob`1Q=O;36 zH}L6KvxX)$kv8Xt@HZb;Bff7JB@^gE0tlBTw|!NveA$2uG=HscUHwp=EEOOxxHWCNN$T(YM3I z1&r+5$h8`1^3wCSOa-Zf$17oy3s32BTOc+xK{m+G zuBnL{8Jyv6x&P$WE!ms!R2=Fw-WWvKN=}H(rQ$sdlReB`v0%pF6j9`kH}j!elfG{7HCt3Jz-;lt#@o1})sAcHUV_RE5FUFtvz_ z$@8vkBqZXLwGr`^Vz;h1TOQIjcDS?bYcljfKk=0$WlLX9Ox=v$8zefiFye;R3wnX4 zp&$yJ!~T5sB#epxkrQgR#}=mY&QzkI&nA$^d3kW+5|VO))cT4Xq|=~3z_iF?(_O}P zOlV@yR#^E!)pu%#Y{m4xNqskSVkbQ*0vw(qAYQayb}=S(Orx7MkrF9)tf=HG5=3Mm zOOgu#p~HY}h&gYRrZ)BhP`du#LFukJoH&QUUsdqL_dE@xEG)8k}BVC-64Y^?Jeqi}?t zwIPPJ_&`Dujx$_ZCnMalNOIa_4SkE}@Km|zqK#l}8uzISxodE4BHb~XXFyW)=7Z&}}fWDx~MV|H-c6qAE#! z0vOWpp!}jK()`c_z8acwMCz{G@A|%*4CHGF~WgmE_JCErwXLYa#d2{#S6ElJ*v zak6KffI3T)nRg{OtLqX($+h-_GM>2NV|c)DdD1U*YHL*!um0}To-JIlyrQ|PunYI7 zA4p*1sj1{9xiX5(dU&dcF`TRTT7>GY9kYxkiIBrnWk?Up9*y=R5?QS3onx{!xZJGbs=ImVa*sPvC)}DXvnOUC3x^Y>vE7wP8vLtQm z<(1C1rY)Y^?3~vpmO7i=Q%l{?ojJF?%*fhyYpJtwl4Ws!Wcs$*C0Dlf;`Um1?d+;v z-dtH1{7=hnSkc&6+gRS$aIQ7mSRzbtnVcvBM^T&1Zx-b>%gA00Y`gr4hZG68r zu6|J5uZ_+4er-&tEcf8OQ5&DyuN}GbZc!VbdYjsKv8?b))TfJIi>mB9wRror@zUL@ zjn&e5HZ@V;}%)C3LvHT{lmASWB8rT1CqyFyH3wKZ%e^Kh@JE@Fc J`0p#@e**;7#VG&) literal 0 HcmV?d00001 diff --git a/engine/payments/locale/en_GB/LC_MESSAGES/django.po b/engine/payments/locale/en_GB/LC_MESSAGES/django.po index 8dba35e2..f65e2d3c 100644 --- a/engine/payments/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/payments/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:16+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/en_US/LC_MESSAGES/django.mo b/engine/payments/locale/en_US/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f7f5e7f8a3ba45bd0ed6f344d86af5bbd3e83e92 GIT binary patch literal 6437 zcmeI0O>7)j9l#$@XuFiJQW^@SyiiQ+*1O##BCR%YMC>@Rk>j=Obpj}Ac%FH?J9Ivl zc{6sFG(ucJLV$Ydp%oywAPzZjfC~}_PF#B6gpfdp0}@gZm);OU;`g7KT~E>`1e!yT zGRpIB-h90G|DONmPY>Vsvf?<(c%1R`cPMohuDy#t9K-vRYQq37bMIBS0RQ}Mr7m*) ziTjoMAiM&b@H=pg`@e*<%Kfnh3 zS9SjZCLQLFK-sqoW!*2sPrxC37=9Bz315L9gTI0i{5|{#Ji}(6f)}Ce^L2=7>c>!? z|4GGP!}l@&BRm0Lhw|K^hm`s_oQI;%3KV(10N)P-DEeKl_zfs>eH+ffAHa3^8~7}I zlucM#twS!UFToe#0LnUlf%4wpp@)4Bu!;EP3Y&{xu0iq38weqOX|tKg^Ih14KZN3! z*P!_2u}4b3EJCs0c_?~358nf0_!P{c$n_(*0I$J=@O6kO)k7Fl?jL~SmnWg@`#h9& z6DWS!gKVu{hT@l>Lb3B}FoJ)D{8QVHmVS8w%0AzNV(*_pdHxp_e+w~%`WqC#`~%8! z#}1T!ISxgi3sB@4K=I3EDE9nT#h0MS^$HaGUW4M7-@#*W=A)&47oqrN2*ocsly%;K z^4>oo<}GBB=fvi6=;E(Zl1@jebBUXGGCspV>>>`q^k_}bN*!b>Hk%w`cR9o!vbWe- z4)LqV^aSHDqs@4lA@-kPh9It!tqJ@bJk>b&y4kzEH$w+UKS*AYfxUis)xquIMG3z*+FXL zo?0=nA6myXFNuP9pgj|YJH~rKr}nG4b(zyyqO+mZr#4nwjovVD+6#?ydXy%fb&hvg zLZ?Zd)t6c6^)~cIcdPfNbXPU2!mp4$z4=98yJCN+`G zY}(SRnMM-dx?m9V1TvOO?8|R=ZH)AlTKzPMw7tx`u?e*syUa$Vx^IFoPi;$GZx#_+))td#8~dXKi`PW-?I>{pSN476S`9RE z`Dm1+Vsh;5rM7U9PWsxQ>6_lsrjI&$*MxyziYBj3jm9;Do%+RMx#LL;7AKiDInTwJ z=wto)8};5-+2Oh@Pcd&xcjJlP{XCp*iJ!#x_OkVIi6$1~oyuf;K{hP*uBnL{88#!_ ziuftKTUl>vr*c!LiN+wpSF%H7E|=$FnC#*1i8V}=4`tBS_lpwW zhAsV;(NSAO@-gij&lbBBGs#>wDs5QPpmJ)aacCJPwf(j%SrrCf!_^`#E-$9CkQkAm ztX+{NSo}F+K z1CzN^J5(zkADGm4^Cx!FlOn*(ED7-y>t&Z>O2-_!SraLda>t5FzM?=x24hKaAt7`a zunalp2RUW2S)&4@tCqBpQ5CvIv z?((Rd%a(O(9nw{Bw{#nWQ_ZDxSFhT>$-`_S;#gJrFrjuyWObCp7I71bYH7Ji*3>Rd zDr@bNpht$pMMtR>&Sq+8$vO-v0dT1wq;6u%c@^~aILS$jT}z0Kb@9b01EFtih+{1= zkWhrs^p>)B}<pOB&w(~_@nkzSNPkxmURY~fTz!;4P zDn2x2nIDf(l{G)QYEh*lP>r~IW z0qRzoK6yuKv$~-`RJPWBP~{V!_!v9jxT5HnI(4+FiB~^&YR{ITSbd`TRN)uCqkbTX zO{At$o8*&GR@Rx>GRFw6@@|=`w+_rInYHd_=;wBVtg%7YWy0o}B#m50$D?BE7LFX(<>|s~tPd{e!*j\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/es_ES/LC_MESSAGES/django.mo b/engine/payments/locale/es_ES/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0114e10c6c94f1c85f7a3db34e2a222cb1ca3a3e GIT binary patch literal 6917 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\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/fa_IR/LC_MESSAGES/django.mo b/engine/payments/locale/fa_IR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..582b5dd4dcd0f41a41ecd855c98623798fc8d305 GIT binary patch literal 334 zcmYL@Jx{|h5Qd9j%7_>lJg~u)wgU?0Lp6=tMzWJCO_5+Ti3vuvk;bGsjP&!JYRSt#zG~EFtDriccI4eNrkT9~$sZ7tG^NdGAwE;@6 zY`ay#c}nIRAxOp~C%0U(R7_ct6nwqDN7Xia)o3WS`k+LxY_VYr^n{ph&CvO#cd&s> zCGR_rhoflbY|s|peebYO&|l$lw^hd8km^nOR)@PyIfuCSx>~Q=1Gkl{jcq82UrdMw Ee=3$*MgRZ+ literal 0 HcmV?d00001 diff --git a/engine/payments/locale/fa_IR/LC_MESSAGES/django.po b/engine/payments/locale/fa_IR/LC_MESSAGES/django.po index 3f56cc08..854aec3d 100644 --- a/engine/payments/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/payments/locale/fa_IR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/engine/payments/locale/fr_FR/LC_MESSAGES/django.mo b/engine/payments/locale/fr_FR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3058b96fcb0bc53365be0436ab822c331f4f8d63 GIT binary patch literal 7017 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 KTgb~Hm;4tin9a-p literal 0 HcmV?d00001 diff --git a/engine/payments/locale/fr_FR/LC_MESSAGES/django.po b/engine/payments/locale/fr_FR/LC_MESSAGES/django.po index bfc4e00d..c69a3536 100644 --- a/engine/payments/locale/fr_FR/LC_MESSAGES/django.po +++ b/engine/payments/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/he_IL/LC_MESSAGES/django.mo b/engine/payments/locale/he_IL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..383001900b65cd7b27e3d57c7636bc138349ab0b GIT binary patch literal 7193 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 BRcinM literal 0 HcmV?d00001 diff --git a/engine/payments/locale/he_IL/LC_MESSAGES/django.po b/engine/payments/locale/he_IL/LC_MESSAGES/django.po index 61ccae6a..3babca65 100644 --- a/engine/payments/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/payments/locale/he_IL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/hi_IN/LC_MESSAGES/django.mo b/engine/payments/locale/hi_IN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6cc44c8c5901a79fda3b034713704baadc22b52f GIT binary patch literal 358 zcmaivPfvqD5XEcs#L=^dJ$SQ&OOq11{)rSRk`%T<=zWD1F?E+L+eSZ#U(e6taIr^U z^2;PM?_ve(8!Hnd#>%Y8dQsTpxL913~p#sEADE7|Cu1NFi42@TkMaYa2!owXP<!pw zC#*J%#0f75vaE8xCASgJ%P=Y*R#g$>CN12EXZILW?OwDJN+~`VS%-O2g-QIcADd-q z79W4{TmWm(Dtq EUqPc^dH?_b literal 0 HcmV?d00001 diff --git a/engine/payments/locale/hi_IN/LC_MESSAGES/django.po b/engine/payments/locale/hi_IN/LC_MESSAGES/django.po index 2c3c9c34..995aaf8a 100644 --- a/engine/payments/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/payments/locale/hi_IN/LC_MESSAGES/django.po @@ -1,13 +1,9 @@ -# SCHON GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the SCHON package. -# EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:26+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/payments/locale/hr_HR/LC_MESSAGES/django.mo b/engine/payments/locale/hr_HR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..582b5dd4dcd0f41a41ecd855c98623798fc8d305 GIT binary patch literal 334 zcmYL@Jx{|h5Qd9j%7_>lJg~u)wgU?0Lp6=tMzWJCO_5+Ti3vuvk;bGsjP&!JYRSt#zG~EFtDriccI4eNrkT9~$sZ7tG^NdGAwE;@6 zY`ay#c}nIRAxOp~C%0U(R7_ct6nwqDN7Xia)o3WS`k+LxY_VYr^n{ph&CvO#cd&s> zCGR_rhoflbY|s|peebYO&|l$lw^hd8km^nOR)@PyIfuCSx>~Q=1Gkl{jcq82UrdMw Ee=3$*MgRZ+ literal 0 HcmV?d00001 diff --git a/engine/payments/locale/hr_HR/LC_MESSAGES/django.po b/engine/payments/locale/hr_HR/LC_MESSAGES/django.po index 3f56cc08..854aec3d 100644 --- a/engine/payments/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/payments/locale/hr_HR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/engine/payments/locale/id_ID/LC_MESSAGES/django.mo b/engine/payments/locale/id_ID/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0826089ac3aa30040e4dec40162e867f8a071b26 GIT binary patch literal 6714 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 L9|_ZX9E17awxJ}f literal 0 HcmV?d00001 diff --git a/engine/payments/locale/id_ID/LC_MESSAGES/django.po b/engine/payments/locale/id_ID/LC_MESSAGES/django.po index 9c0261f3..cc55618b 100644 --- a/engine/payments/locale/id_ID/LC_MESSAGES/django.po +++ b/engine/payments/locale/id_ID/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/it_IT/LC_MESSAGES/django.mo b/engine/payments/locale/it_IT/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..255d22d215f90688ef6ffe47016b032a5e1b9bb1 GIT binary patch literal 6826 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\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/ja_JP/LC_MESSAGES/django.mo b/engine/payments/locale/ja_JP/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ee40724ce02a9358f5e99e2ce6757510482275c9 GIT binary patch literal 7273 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\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/kk_KZ/LC_MESSAGES/django.mo b/engine/payments/locale/kk_KZ/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6cc44c8c5901a79fda3b034713704baadc22b52f GIT binary patch literal 358 zcmaivPfvqD5XEcs#L=^dJ$SQ&OOq11{)rSRk`%T<=zWD1F?E+L+eSZ#U(e6taIr^U z^2;PM?_ve(8!Hnd#>%Y8dQsTpxL913~p#sEADE7|Cu1NFi42@TkMaYa2!owXP<!pw zC#*J%#0f75vaE8xCASgJ%P=Y*R#g$>CN12EXZILW?OwDJN+~`VS%-O2g-QIcADd-q z79W4{TmWm(Dtq EUqPc^dH?_b literal 0 HcmV?d00001 diff --git a/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po b/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po index 2c3c9c34..e68301f8 100644 --- a/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po @@ -1,13 +1,9 @@ -# SCHON GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the SCHON package. -# EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 02:13+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/payments/locale/ko_KR/LC_MESSAGES/django.mo b/engine/payments/locale/ko_KR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..cb92c0dc8dafcc3946ac7219dba26be6501ecbbc GIT binary patch literal 6928 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\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/nl_NL/LC_MESSAGES/django.mo b/engine/payments/locale/nl_NL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6a8ef5f117d81cb7708a5801e884855febe264d9 GIT binary patch literal 6688 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 literal 0 HcmV?d00001 diff --git a/engine/payments/locale/nl_NL/LC_MESSAGES/django.po b/engine/payments/locale/nl_NL/LC_MESSAGES/django.po index 0be2ab39..8f3b14b8 100644 --- a/engine/payments/locale/nl_NL/LC_MESSAGES/django.po +++ b/engine/payments/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/no_NO/LC_MESSAGES/django.mo b/engine/payments/locale/no_NO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..76095aabd3caa537b5d6bb144d68d8d1564ba07c GIT binary patch literal 6651 zcmb`LON<;x8OI91g0>FJ(S zbOKyn%a2320d{DKL(G0 zzXNB$H_GRCapSq8@@nNN& zC^>{Te9#{S|D2{{W#(-4AJJzz0F$ zH3G%1?}3=4UII^oKLdr2Kb6n_1s>)4KcM)3xlP?{?Sr%6Z$aqwTuA&HoN{RYS1Bo{6XkE= z{hgc-a^kM{7nmHvdvyqxatP0xOamWdfww*zNFohE)o-Wx?B*VS9Yzy<@88Qat=nZ}aPxTu%#1~wK`Ozk%#lVE-6 zR@bHjZLTsl31aQWE;EC|@^Tft&~?+i1J<}9HEtF}Kgu@iZYbJ(fn7W8N(-^tt3?8|BI83cj4&NPXe28?~)d8N~Fh&Pm+|i>T zj>5t;88#t}djULk{baf0O$bZUOb0pdC7JkR!ui8~PhEC|F3T5L_*O$8ow# zxGOe-L7GdDgN{uJNibsapdFhkV;qxDN!AxHuADn?<3O3@c@$1+q)a(=DKfj;CevNQ z?K4bLfXIZ6G>OML9h#z$$cG|n>+22D(8NuB)9k2CBK2syLC5%2{FPKL3l$vJJSc;j zX#!fLNo~DtLsiAm*9oaHT0MS@>tIoCn+H< zC$c6~^dN1c-VUL~9%Dz`YX@13A^ zTE`r|nP8yA%C-@gLPdiZ1dt`og@Vv=#5B}gC%4uloe2BNy5wPd3^`a@rpLTycpitz zF*1Z6G4*e+tV8>Pnogub@^j1zgD5M1yL?bw%aV1rj_ESFn|cAl>E_b9%b}(lnbki zRn*nvG^a2|h7=oXzhe}M&^0C|u!bB+X~IcHO6xQyEsG|ngKS3M;y5~64!Udxur^2f z)QubkBsZ1rxa&J0Eqb!6c^4KX_P8?Vln<%oRGnZwJ1OHi6{o#a`7T2|YHyW6P`(+x z$s>H*nM4)R{nguwtE8w(ZAbw_8X4p_nxf4QgD6zPU_798SLt{7+D&fwJegeb!$y>G zHs*()RC+?$ixmymM(ma}Z^wPQXPtmLOOrSMFTGhEY7iyYI*iJCVvA4Ufx!8uU--1B zRn5HmZ>M%mk&5LO%~nNR*hj-i3Y$!|(wk(J&H!Uw`*>0ZG36zZ0qv+>9wU7^z&6APFmMy(V7}7VdE0bmBLxn+h>n6JKl|pV?y9w^?J&^`fwGChxgMD_ztxn;VTSGm2zD;~Y(EQQrSTW8rw?kp;c* z$l{4dA6np;Sq)s)Xvy{w2U%(t_0olnEzNo6;`+uV{lwXg_15XLttZc4+*;z!%2xC2 z#@Z={CA~c8nMR9Vxv0-I&k<`P2>^ zs}237J9*-9UHm*bo9H7a_3^pKXWmi~Ba4!rNvihYu81h!zm|mT$)cH(q|XL{I-x8g zlyTqmNk|DVdn{UK|GIUeTzM#ZuVJ$0%sG=JM)ze;W#+c2)NP7%KqeoYb)u9TH%@4y zeirp6GP$ucHB6MU&Gc~p8tEiDtQTb{>aw9XCQ{iXO^rR8Rr8D$(9d2SFm5ti<(b7T z@eFy0aAAJgNVNAKNnrzR`sij9VJV=Eo!9u(i>zkWp?4Ra#G{6zL;K-knbpiQbCr6!o+K7kymxDgr=sxM0=W&QCkppi5fX3w(6KJT~6TX9Wbosr<0BzU%_4I zlVp%EdY)KuvcAyll{Jp^P}Y4X(%NS?U4l^)D%vLAzdrOSma(wtYsr+}6+^|uQE!rM zvZ82fpI9}6O0DgKaPX6~(%Mz^-BfOu$zBrg`ZgLFL|%W4l|Bq;?;^g1jb11F#hh2( zWSP(XS}jf!>ELv1sYDJyU#*CC$$r6rDBu^zRG}DhH36mn7_%a~9#7;(|IbX8?r4{|8tYV*yp>MQh^01IPAF#Lk`t!9?IESlKIo?#&Y$))a7+FNVx|C0cfIJ$tBV=hSMU+lwAn{f|n~ z0*Y`QQtk&I(O^tiO999!Z@kScNPuhC2~OCx2%zET{aLj;4MV{p`Q3( Dn~OQ= literal 0 HcmV?d00001 diff --git a/engine/payments/locale/no_NO/LC_MESSAGES/django.po b/engine/payments/locale/no_NO/LC_MESSAGES/django.po index 0417ca74..64b34183 100644 --- a/engine/payments/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/payments/locale/no_NO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/pl_PL/LC_MESSAGES/django.mo b/engine/payments/locale/pl_PL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6922c392c82b663c044413bfebee77de6acfb71c GIT binary patch literal 6726 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\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/pt_BR/LC_MESSAGES/django.mo b/engine/payments/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7d33b01e0225bebd978aa29a2f74013e5a07b6db GIT binary patch literal 6857 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 Fe*l|ql=uJu literal 0 HcmV?d00001 diff --git a/engine/payments/locale/pt_BR/LC_MESSAGES/django.po b/engine/payments/locale/pt_BR/LC_MESSAGES/django.po index 6993e9f7..5bae6a05 100644 --- a/engine/payments/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/payments/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/ro_RO/LC_MESSAGES/django.mo b/engine/payments/locale/ro_RO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..000cda30d69fedbb6973d8cfd9f5510024cca2dc GIT binary patch literal 6813 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\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/ru_RU/LC_MESSAGES/django.mo b/engine/payments/locale/ru_RU/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6430f00dafbf3bc5978cf297d72c5f502af2e3b3 GIT binary patch literal 8649 zcmb`LUu+!Lb;fW0xJlW+Nz21&K0(z<@g39g>so z?yP5aDYLRsQ;K6JGOWf(8pL&KxDQ2M0#KA_t*C#c8BDWb%QRr{N~=7d+#~l`Odj__8&g_!EYNr5AyvK-y82U=4tT62l&Tl>4U~h zgAsU?dvAh=!GCI^KYs{~J(;!{uN${7z6X1uz zXTi^bA^3CPpMj5oZ-Jiy{~nwG|GT*VVHz{EKL%>uSy1!-5%`-+{jhKE-061)l}A&Yyy~X5Iny{9hONL+}@9{{(y#{8v!V?f-dWegm8W<)@Z`>=WP`_#*fJ18mTK?$^BkKL)kle}Urb z0S3wbN$@QAFsT05z!h)}RD3=MNg5Y{;$az#!8gF)0pCxj=GhOUHMI-;5%_)DKLIt*%Q*3S;J3i{ zfrQ8LQUmp|?!Pe~01p+{vWrld-{t#pzMth={nRTB!sDPGX+@)U4!A-$b` zhlToxm;HRF)Zhb^6qTSCUIDjY$JLU6M%iv*8kWh7#Lfq4*tBuSt;loBQImH0R5wV1 zcGwG(x;@^rSkesBXtBc+*yyJi*&i;49jq_hT1euy4WDOhCurGpCGCZ6Z+Wo_Uf8N> z&VeLMyKyHCp{E%&U<`uNenWoSII#;s)aoZ;-E5^rMr&?SX2VXi8^d_T#Aeuy(}%3d^eKNg~-MWHo(&zV{EX1J9ar}MNMy-h7C!hFMy{7H(5XBNeJu2 zJsb3SuG5o0VRLG`-y@e(Lf7jj&|9~&ozm}xervcSaZ>EV=fg%{YGN|R6qH?vdP{EY zikrC6gEQpj^y8vius7t%FPd7^7`2I&R%i#$`|DOKzCgH3HiCBCSCE575)+bOnaP9s zR#++~W%3cp_T0JSPj2bhk|zCr)EwqWAvyC*6ka$R_Ur=Tb_$aOh)lB2>Xh>Lt zMiZGP`dnd!cGN4b(|+5xwPcm8{k9Ny-A+R|)m){!7#c1F{Z_9uam5t*P@+xac4*si zC&b*CqUxC|v!>EjR@TavV7mc{i;t=mY1lJMAz25J62SR|C`n5$r%be9SK>a2u^b|? z73+2kFNB3KY!TQH4a5}TP7g`jxQ{G-k+VT>!tU|ecc2(_K5WC z>Ydh4pPBu`qete>pL+b{(HHFtWg-qs*J)pxYR8+kXDF^D&Wt^KDe=u?-S=v%|2rvJu-W0?(rjYfAG|~Ge_w;ex`n8_T*y> z>n!$z#jrLt>oH;&s{OmD%^wiTQg#X*H8JqNLNq^$x@smeKejTh&PaGjRkZ)~n zrHjoyj$>cwwt}ehh;1wd3A7zPH}_QS;n8z4eIZP0M>(A~p>)PRJRkKYPIKxCTD7O* zq@B*#PS-Wl!-pQR{_^mFj{VGGdvNlR36p(4yPdzD-Q49!oZZbfY&OX5WEi z^Gh_Y=PzYz`PXOJ zishag$c%TnzMkE)**fEI(qImoZTe$%_5+@{r{y=Z+pMvguMWrVTy$WW%`daYG`I7s zp2zZ6aBq|D;fY-)@DTIJGiI^Q z?~Uw+^ZgPAVj7d(bq_e#@8gYA46iavu^UGYVIhP0d%kl;O*BP{dRd+M>;oZP-11AiGc*S;{ zj{|JmlT#6(fYh{(XFXe+vKX-`PraxL{vBE3mx!!lG>X-3=da;}OG^CPP+Lh>E`lKF+qR;TL}L*qPB@u6tqf4gI{i1vDAka! z+ZNEUMoZ>57e_sNK}fo{O}(21ealf z$+?O78(2yX+)-n@bjTU%1#+XiI$N?!O5@Gja~=GvShNqQsl6-BJ8aj zh<{m>^UBO}_b6x2)`l;RlE?VECBK}hew#t?B-$N%l?)I-cDlXW|BBMDvEw~Opi3yQ5Se<}YeliXr?#c!`Q%5@2@n33b&Tn00CU3L^Q5_`MX2}D%X zd+O^b0|^wmth#-6^iEs)yy{3BNF`W+9e$T~d7xUe>;0|y|0ctWo%T8xF5Z$DbT})h z&0^PaJya2rAEOxMiVxj&gvu`BOUh-WNV%kxY~_`mQ5{Ne%y&hnAWQY8h`^R=q-=I4 zf-;&2#Kpa2*cAosxY}Hmpc3!~hY#lp!C~iQW)~$buhYt=b|06+g*C+iMKOIBgYbNe zA7W~de>J~ivNuFE4>|7KaYn&lYIlghG?RVPMF}nBt6LiKntY_1ZK?cQp3(Ss{85L! z4`N>-y(GD!X1|MrgwU&B-BVU?{jMmfhTLWDwH-eInCz{Qe_O;So3NjF8K+6zyhpqp ztDGV8OaAP@w31n6OH(1*vcVvSVJWz$ql2SJJ6<(#c&{wF&*@QzN_k+i@2N<+4Ibwd zFt-t{k)CMNlkF9AtFU6tR(@+3*$R6MMvY9O&EAo%gkhQd(q8wh#_$=m3)j8SgL0a1~)3^t;r6@IFWXFMj6g+HY32b$K$xe~)a?kh;nx;zD z*q=v+XAI?;v_%g4ZBaY)CJVc2p)MtnqJ0I8l`joCI4JB;AVb%k8~LkD1}7v0SxSQY zEFEdmpM;dXYrL3H1sHw#|N2wQ7*@2?OGd6n`5ji$rHS6x&`5SALwy-XY|p zT*EaTcgIQ39*~;%+Mgy(_7^Prco?kWDcSHeS&O`p4ZTK=PmUQx0&Ph^=tqvvH7^z5Rc==6j z2(E;bWo_rZ>e)(f%DR0Iv4oUj;|x*&eS|mY!3OA8Iz4U0gvev|8MCX zam!nZ+t-MPvRbq9Ewra1_^KGtAzf8-^aC8#-rduI7E!t*%B?-?R<+_Yr!?$@GWtnm b%MWy%SHy&Jkm9h%&vZOgQ0Iznbzk`(6tQNj literal 0 HcmV?d00001 diff --git a/engine/payments/locale/ru_RU/LC_MESSAGES/django.po b/engine/payments/locale/ru_RU/LC_MESSAGES/django.po index 1bfdd0c7..f0a7687b 100644 --- a/engine/payments/locale/ru_RU/LC_MESSAGES/django.po +++ b/engine/payments/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 01:47+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/sv_SE/LC_MESSAGES/django.mo b/engine/payments/locale/sv_SE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..dc180bc1b0934edf604be76befc0432d6f17739d GIT binary patch literal 6749 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 uod|-Kzl21j$L=oTq&!N;2vb(&TWZ^\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/th_TH/LC_MESSAGES/django.mo b/engine/payments/locale/th_TH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..cd77b5d74c96aee0b1918f8649b76a80455c7208 GIT binary patch literal 10166 zcmb`MZ;Tvu8OMJJ3LgGN1Vxb_V(k^W$F+oi2SsUV>6x~7wAZRgQs;K(?nZZa)|uJ6 zo~3Fj0V%B^X#rb6C7Nl_{Qkxd44mqb9;M7 zEpEE^{O0%P`SX3g&oi^rKVEjxlZMYtd_T|k^aaM;i`;S{fB4K?WXv!!KyGC1IC34b z^Fd=CVEzji8}kX|UStV*2)TvzUmyp$zWBq&d?WXjxw{5Wz8@)G0&$m@|l@>1jz z$h(lwBCkdM9yx&gce;KF7b9F>jug9NNYVRk^IPN~Ir|kxE@k~61Sxs@&lSdOMGjwS%zdo?0C|w>UlZg?llh z4moy>F(;9Skz)U5Ys^mM{m1}$3Mu|wMUplnuSed8jFDpZ9pv-Kzaz!(CrIjk#0k-L!M$6+K}&AUiB|7YY^ke6e;ikv|H2KhGfC&;5KTpZVZ*~#0H*Ij_$NGNGy zK)emP56QH0Mf@o7m5iJSRnARP%$g%cO2 z*Mmsm3ecK0d?gPz@FgXNFqHQQ{Rme-$@fEi1$WY^b&61YC~xywzL)d8h%dBJ{t8EL zBmWIlh7tJzP)>VbZB5=CWvjh>cz2b zL}A&FW6q+&Mqx84s@Xg-F>c4lc1$eN<25+hhyt9ljnp+f6E`9|>BWAXobaNCB4G>Y>Y&611AP4Vq21>H|}o8F{w+M5%3P#v3eHwRI{3!Bu|oie~({o3Y$>InG~|Q zAem9yg)j*t0W;{P{L$>D=;b&$qp^jJL5*CAg_^g=jjPpgj&x^ec(t%8N%qQ7NJ_j} zlzWp^KVwXc@-E1B=g!f47ECNClV&rhC;Rj*$5GnsK9yN=By-HPqgUQ~%!-#HoGB@V0@q#(ZImy_LfTE{A4^Szo8FDHEo zsbXjlH4m_)xljtLaua^V-OY4%w$$7xR)07^oEytVHN_`~^p+|J%+nd&5 zw9j-EnF{=z$3iVg(sA6Zxoa_5L~Er@$vtF;0i13wtvfyHPkGI1lDRl<(t60Gjl-I6 zYhm5T-H@j0kjtv3FqL)I!Y#ozJPMZ>rB}p$VrG1*4j_d9yQhLE&ahlqg{r46n3RaFxrfkSR%HWJgb1N zSLc;ip{NO?3Iz;kFi3ASuFW^Rpkf-{e2vzf(XaP9&L@;7`6YuWpp27w2C7tgLfVTB z4L1t7ThhE^=INeA0E#H(JO3}e+4MAs6l+@v(t6?+Uk3*gr%m6*G-6G`z2Z1FbH1Zu zdW+^(MP9g%Rstz(m>NlMl3RxBtSbgxjX^HA>PmHaVy4w36|!P5y%2UvudYPioY_m! zNcWD1#Z>ZYCBH!?H2eQ3kj*1I@X zpKf~7erbYUIbzpuADtN8vDt3icJCIE?{#d17FkMW2DXlF-Pnz5&Cu|`28sjvmL}#K z_?+-Kc4MRJ1@${@dB%%?ZQag^O{Lqq`^5DrKPqkH>9hi*Blfn*AQ>3vsmrUDHic0w z9%~s{&=Swbo%X|>)`?F0 z$MUyzM$f&`X}zTXILajBQ=Qgv{+UjTeXn;~M+^Hn|7NH4P^a};ce2gp(|Qs&Ue+U= zXXcDp689eJv>)rVu!Mm()QM-rPf`A;K16m}DCQ_zUg@-s=}}Iw%lX4O++)MD^0)2m z;O8qE%cB}S&f-+pLEC*qKX-3LlemSo-r&0r^9$9znuaB~;XJOQ!o~VC9T0-MJgs1` zik~k@ma@B3LE(W;>s3Wdpt7nCcR=K+POGh$b6CL_6eLfndBGWbXB81P^t!LM@fGu} zZthw~@S}UVd@5b~L^JVVy~~wO>jj-8r?{HCN5W2Z+IdJWH!l9;Ee-AR`A(Pw$*2cs8gEaU{!Hw~0Nm(0 z-GxjH0O(QGa-fllk74xo?rE@@)G&6&jk0|$AAgADMV z0Zuc(X$HV1XVM0zaWGB^shGQ<3CkJa7>e=`G0Y795l|LoN*)(t+5(Dk?9Xy>Zs@hy zj}s^&xsJyKAt^6VPMIWzQ;MH^Sab+S2$wLxAR0nclcJINGdhF$hg??r^2R87N_=4% zt&M!(BV#wonEuZs30GJo^Q0XNU52>iR>C$QJ*L&estYtDym;_>rWu;(kuE~TRqVD^ zf9^n*APEU8cy(B#B@fSLG-Mubp_V;Z=Lm4Pf!@3%(ZInf7(qvNvd6i^HrKC?f(1Zw z0nuL3AK@hAJ;3WziVJVr?$>(n9a~ZaL%@Q;NpY)vDE|$w=!2>2cQ^x&bNb;rGh{WN z$p=g>!8E}dCH#A>0GYxeSSVQH2^t)0aEZ;Nlki<*W$9(B&uH##9ne4l_{L#!MFx~6 z?E~Vs@CEIsGe!V5moWB_2K;=d^?2uee8SKYxQL^miCuVsEeDyyF0cC&S!?T;HI0=h zNd+-Tt15=Oqx;Tcx%5a-JnaArv|40WAbzIPW(m01Lo66nC*`0Puk=&=7q}N}Sfp)< z1c0*BC<7E>>|~a6;wMQsLHlrdW_3}6?zY6m4H|_DYf!X3o#|&OEpwcEyl~4WCwPM~ z2Ji(x$RzB57o>uw<9I>#+@sbh&a=a9LU@FSStW}X6qk6fMFN9ZC6BHK2oj{-Et1IvM8!Mc zVHuxYC4!-2rbKaLX5>`=mzJ6tte}=d5cY^d>2$y)a>Xj955Nv;;Ss*%$-x9&hz6K- zAX$JeT5ysMyve(O8>5~Xj%y)G(8|y*HfgcqYR~&lqEy@nw2iCIJc9-JxWq5Uky2}` zDPnV>>ajdG5+oZ?2eRZqyeqsgO}$KefV0?#<{EjPS=R}U+Cfp5KK>9ps_8cXg_=i| zr$7hTQ0?R@{0AHQ7k~HT2|=@yByf-f_f#5?;xsg20IvEIX) zu=I|r2#HT<#3L60EjhPwr*bJ3=Y4F6u6qs!Gj=WQk^n%sfaDq~(2{kiPvQZXC1zMU4D1JZ=h^g@0=npdxF2VFO7DLx)8&jUQ?c3oMM8QHMY`J3%0H~w&>qkKmn!%z?RWctR(GBP*CzUPz-~vy8xjh=IpuOsvU=LZl97zy zP9OD4%}Tu}dluYBAXnzGY=CI&fh4E1%ECFuuBqlv{M;&pk4kCCN1|XMJ2_5|J)*Qh zkK-kq^Y\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/tr_TR/LC_MESSAGES/django.mo b/engine/payments/locale/tr_TR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7de79a0a27b719480e837a368d6c2a66da1c1a67 GIT binary patch literal 6715 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\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/vi_VN/LC_MESSAGES/django.mo b/engine/payments/locale/vi_VN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c6a06decf3602d183c30e976224b0566eab78b97 GIT binary patch literal 7377 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\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/payments/locale/zh_Hans/LC_MESSAGES/django.mo b/engine/payments/locale/zh_Hans/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..08cb0fe79c926b44cefd786ad423b90d3ef89616 GIT binary patch literal 6011 zcmb_fZBQI%9e>nnBWl&!7qwcSR?|SsQId>phc=zIlq5I_Foa|rt%J+m18lw9z3%Qo zXqxdLO*j(X(n26WT1X+KNqdkM6S#vg`bEF_&2dJ@ai+U_cREgH{NT5a{{H*y9Y>n9 zqvH;HzkQy4p8w15|FRE%x%0MBhHEG8@8Dkg3}btM`#y&sTm^wtAO?$3eW1-1k41fBqXA9xn{ZQvR(0{kQJZs2Yx zdl2{nko5c#2-nyQkk()D@z=nwVEkv`Q^3CgY2CIjGj<=a97z7`1(H2K2HpWwf#ly| zAG?8M*GXU*@EouX_*>xPzr?{N4*CG(HODTQGhb z_-~9CVMGn#*QLCF0UyHnvrzsKunb6cZ$nVXo@(G1fQNvj_h;Yb_2-Lc&zrG^~J)QpAS+ zqC;q~-gm3j&?8(N#$HVcbF<5|L_}KdYk?QM*fh@pLzq!rGX>}gsX;IXg3MTu{N}pB zTNO1NGeia3ObZ!JvWYS-v`|zB<3%QhL{v9b%xuKStSEs;W-J=j4Wb-;2Mytci0iFf zfu|qa!Zc{Y@Y9-|;DK|@DKlnw}2TEZfqF(!m>kjxJrtbKmd#HKQd z#ne!tM*Ngxhg8vdKv=vL;r23&QUH+&1#~Uk#r3F=g@k;NNn5NhqK8Ddg5NYdiiA)- z8m&rDcv`#>RW1}s4vReSgKBXERHjLhz5@bP6;@wHsL5P}+#8Z0A`wYhG())}r8QBq zc_l406X{HH6$}2rKgt!|fXEPOG|Y0|*{<`503&8p1l3kG$U#9wHBH1HuY*)ZvOq{f zQS1>5C7+!JRYMzufIR5)iW4b8Ek`v(h@l5@Lv3qEXkm{qIxyFwgcU6)@|e$o{MckI z=vG+XrWhf!{HYe>X)<7IDGK665ww~$w2m_PCX@&xD_aD)6k=!)5d~yXb3sAyunIA# zxnRsNgcej`pI?`F+0q4aV5y%Tm(lYbaQIm{#Mbd#KKnI#4hI7Lms)QM+A@Pnt-`FnyO?jUo}Nj z`OaGON#Ichg$p04SD3l;(O2X(^i=SF95L3D?$Ae^axFfVDEDPqC353X&U@ZerH!fN0T$ubSsV z6~!K|l$p#6Ddki#!MwCk#$_z5x9QC5GKfdfDnAI!Yeu(t1>f2WQ3dJV=zoeUr6|*l z5DFNiA%naRjcoH#MGdj2(iK7L&ZpmvW3w>fbyIWQv-@j~@>lYOSZG}hvNZ*2LxDqRt|*);exQ19eI4IXx#O{l?In%) z>Kj&IzuBgS0?);o0_z%93i72NF2Y)D?x* z77k>OM#GA#J;{UZiUHzw9c2PA&^?dpJ-97k_Mc+lyG3TZbZx~ zu0_3}xogLhTt4n9)%XLu`1Z0VOIT*@v~&D}TO5hq_h;OxzTD&qH!;kd*;g~eC+yW} z=lEP^;#Keb=1jhkT|AauxawZ+`7qv7l3kd~Tu!^wEABwj9U8W;O=6`~;SBY-ql?#9 z`<=xiAsZ)QDMTu9R<2~PE@Vb7JBh{2lbFHZ89JF?*R zcf-WoMTqWp`{D(Hzzg_th6kO*q?1lLMWV3TxzOXjF_jsacN16Lsf)SzM0UM5o4RDD z*Q6+NCUMqY#rz1IED$C=DM*luo!9!^zPGb8{nD|*UTKWef7}_qB)!NkT*#zP*y}TH z_X5%9@sju7^Gxa^Pp0~uA;fFm5B2fxY;qZU+^M*|Hb^R`;<-!X(y`q6b0h_Ua8Az1 zQ>Rq8ISJ)~Q)ZwPTR3h)k)0a!d0$wOlHB;mKqtc+Ple6S1pG36R zOk}3h%+lM=ayN*{&dh%p?`Ce_HG6pgHC=Fm7o7y!^rd*%^cJDs-IMnP!q{J7UeuI47-(G^*@MBwr% z_soj3I+X1mL345wr|tB+{QA*J^tSw{@l?eq?9u>p6eZAn>-ksc1IJ}S0@U` zJ<8MGluQ*#@AXyeq?)r5@;!-qpr{!rDNO)erA wku+YVTtIgRWi*^jI(-9}{KO=X`HaLaI%Xjk(I(\n" "Language-Team: BRITISH ENGLISH \n" diff --git a/engine/vibes_auth/admin.py b/engine/vibes_auth/admin.py index 73c85b5b..ae88e25b 100644 --- a/engine/vibes_auth/admin.py +++ b/engine/vibes_auth/admin.py @@ -1,6 +1,6 @@ from typing import Any -from django.contrib import admin +from django.contrib import admin, messages from django.contrib.admin import register from django.contrib.auth.admin import ( GroupAdmin as BaseGroupAdmin, @@ -13,6 +13,8 @@ from django.contrib.auth.models import Permission from django.core.exceptions import PermissionDenied from django.db.models import Prefetch, QuerySet from django.http import HttpRequest +from django.utils import timezone +from django.utils.html import format_html from django.utils.translation import gettext_lazy as _ from rest_framework_simplejwt.token_blacklist.admin import ( BlacklistedTokenAdmin as BaseBlacklistedTokenAdmin, @@ -27,11 +29,23 @@ from rest_framework_simplejwt.token_blacklist.models import ( OutstandingToken as BaseOutstandingToken, ) from unfold.admin import ModelAdmin, TabularInline +from unfold.contrib.forms.widgets import WysiwygWidget from unfold.forms import AdminPasswordChangeForm, UserCreationForm from engine.core.admin import ActivationActionsMixin from engine.core.models import Order from engine.payments.models import Balance +from engine.vibes_auth.emailing.choices import CampaignStatus +from engine.vibes_auth.emailing.models import ( + CampaignRecipient, + EmailCampaign, + EmailImage, + EmailTemplate, +) +from engine.vibes_auth.emailing.tasks import ( + prepare_campaign_recipients, + send_campaign_email_batch, +) from engine.vibes_auth.forms import UserForm from engine.vibes_auth.models import ( BlacklistedToken, @@ -182,6 +196,234 @@ class ChatMessageAdmin(admin.ModelAdmin): readonly_fields = ("created", "modified") +@register(EmailImage) +class EmailImageAdmin(ActivationActionsMixin, ModelAdmin): + list_display = ("name", "image_preview", "alt_text", "is_active", "created") + list_filter = ("is_active",) + search_fields = ("name", "alt_text") + readonly_fields = ("uuid", "created", "modified", "image_preview_large") + + fieldsets = ( + (None, {"fields": ("name", "image", "alt_text")}), + (_("Preview"), {"fields": ("image_preview_large",)}), + (_("Metadata"), {"fields": ("uuid", "is_active", "created", "modified")}), + ) + + @admin.display(description=_("preview")) + def image_preview(self, obj: EmailImage) -> str: + if obj.image: + return format_html( + '', + obj.image.url, + ) + return "-" + + @admin.display(description=_("image preview")) + def image_preview_large(self, obj: EmailImage) -> str: + if obj.image: + return format_html( + '', + obj.image.url, + ) + return "-" + + +@register(EmailTemplate) +class EmailTemplateAdmin(ActivationActionsMixin, ModelAdmin): + list_display = ("name", "slug", "subject", "is_active", "modified") + list_filter = ("is_active",) + search_fields = ("name", "slug", "subject") + prepopulated_fields = {"slug": ("name",)} + readonly_fields = ("uuid", "created", "modified") + + fieldsets = ( + (None, {"fields": ("name", "slug", "subject")}), + (_("Content"), {"fields": ("html_content", "plain_content")}), + ( + _("Documentation"), + { + "fields": ("available_variables",), + "classes": ("collapse",), + }, + ), + (_("Metadata"), {"fields": ("uuid", "is_active", "created", "modified")}), + ) + + def formfield_for_dbfield(self, db_field, request, **kwargs): + if db_field.name == "html_content": + kwargs["widget"] = WysiwygWidget + return super().formfield_for_dbfield(db_field, request, **kwargs) + + +class CampaignRecipientInline(TabularInline): + model = CampaignRecipient + extra = 0 + readonly_fields = ( + "user", + "status", + "sent_at", + "opened_at", + "clicked_at", + "error_message", + ) + can_delete = False + max_num = 0 # Prevent adding new recipients via inline + + def has_add_permission(self, request, obj=None): + return False + + +@register(EmailCampaign) +class EmailCampaignAdmin(ActivationActionsMixin, ModelAdmin): + list_display = ( + "name", + "template", + "status", + "scheduled_at", + "sent_at", + "stats_display", + "is_active", + ) + list_filter = ("status", "is_active", "template") + search_fields = ("name",) + readonly_fields = ( + "uuid", + "created", + "modified", + "sent_at", + "total_recipients", + "sent_count", + "failed_count", + "opened_count", + "clicked_count", + ) + autocomplete_fields = ("template",) + inlines = (CampaignRecipientInline,) + actions = [ + "delete_selected", + "activate_selected", + "deactivate_selected", + "prepare_recipients", + "send_campaign_now", + "cancel_campaign", + ] + + fieldsets = ( + (None, {"fields": ("name", "template", "status")}), + (_("Scheduling"), {"fields": ("scheduled_at", "sent_at")}), + ( + _("Statistics"), + { + "fields": ( + "total_recipients", + "sent_count", + "failed_count", + "opened_count", + "clicked_count", + ) + }, + ), + (_("Metadata"), {"fields": ("uuid", "is_active", "created", "modified")}), + ) + + @admin.display(description=_("stats")) + def stats_display(self, obj: EmailCampaign) -> str: + return ( + f"{obj.sent_count}/{obj.total_recipients} sent, {obj.opened_count} opened" + ) + + @admin.action(description=_("Prepare recipients (subscribed users)")) + def prepare_recipients( + self, request: HttpRequest, queryset: QuerySet[EmailCampaign] + ) -> None: + for campaign in queryset: + if campaign.status != CampaignStatus.DRAFT: + self.message_user( + request, + _("Campaign '{}' is not in draft status.").format(campaign.name), + level=messages.WARNING, + ) + continue + prepare_campaign_recipients.delay(str(campaign.uuid)) + self.message_user( + request, + _("Preparing recipients for campaign '{}'.").format(campaign.name), + level=messages.SUCCESS, + ) + + @admin.action(description=_("Send campaign now")) + def send_campaign_now( + self, request: HttpRequest, queryset: QuerySet[EmailCampaign] + ) -> None: + for campaign in queryset: + if campaign.status not in (CampaignStatus.DRAFT, CampaignStatus.SCHEDULED): + self.message_user( + request, + _("Campaign '{}' cannot be sent (status: {}).").format( + campaign.name, campaign.status + ), + level=messages.WARNING, + ) + continue + if campaign.total_recipients == 0: + self.message_user( + request, + _( + "Campaign '{}' has no recipients. Prepare recipients first." + ).format(campaign.name), + level=messages.WARNING, + ) + continue + + campaign.status = CampaignStatus.SENDING + campaign.save(update_fields=["status", "modified"]) + send_campaign_email_batch.delay(str(campaign.uuid)) + self.message_user( + request, + _("Started sending campaign '{}'.").format(campaign.name), + level=messages.SUCCESS, + ) + + @admin.action(description=_("Cancel campaign")) + def cancel_campaign( + self, request: HttpRequest, queryset: QuerySet[EmailCampaign] + ) -> None: + updated = queryset.filter( + status__in=(CampaignStatus.DRAFT, CampaignStatus.SCHEDULED) + ).update(status=CampaignStatus.CANCELLED, modified=timezone.now()) + self.message_user( + request, + _("{} campaign(s) cancelled.").format(updated), + level=messages.SUCCESS, + ) + + +@register(CampaignRecipient) +class CampaignRecipientAdmin(ModelAdmin): + list_display = ( + "campaign", + "user", + "status", + "sent_at", + "opened_at", + "clicked_at", + ) + list_filter = ("status", "campaign") + search_fields = ("user__email", "campaign__name") + readonly_fields = ( + "uuid", + "campaign", + "user", + "tracking_id", + "created", + "modified", + ) + autocomplete_fields = ("campaign", "user") + + def has_add_permission(self, request): + return False # Recipients are added via campaign preparation + + class GroupAdmin(BaseGroupAdmin, ModelAdmin): pass diff --git a/engine/vibes_auth/apps.py b/engine/vibes_auth/apps.py index 7f213c59..82f6b125 100644 --- a/engine/vibes_auth/apps.py +++ b/engine/vibes_auth/apps.py @@ -5,7 +5,7 @@ from django.utils.translation import gettext_lazy as _ class VibesAuthConfig(AppConfig): default_auto_field = "django.db.models.BigAutoField" name = "engine.vibes_auth" - verbose_name = _("authentication") + verbose_name = _("Accounting") icon = "fa fa-solid fa-user" priority = 89 hide = False diff --git a/engine/vibes_auth/emailing/__init__.py b/engine/vibes_auth/emailing/__init__.py new file mode 100644 index 00000000..c8ec8f4f --- /dev/null +++ b/engine/vibes_auth/emailing/__init__.py @@ -0,0 +1,13 @@ +from engine.vibes_auth.emailing.models import ( + CampaignRecipient, + EmailCampaign, + EmailImage, + EmailTemplate, +) + +__all__ = [ + "EmailImage", + "EmailTemplate", + "EmailCampaign", + "CampaignRecipient", +] diff --git a/engine/vibes_auth/emailing/choices.py b/engine/vibes_auth/emailing/choices.py new file mode 100644 index 00000000..1fc06654 --- /dev/null +++ b/engine/vibes_auth/emailing/choices.py @@ -0,0 +1,18 @@ +from django.db.models import TextChoices +from django.utils.translation import gettext_lazy as _ + + +class CampaignStatus(TextChoices): + DRAFT = "draft", _("Draft") + SCHEDULED = "scheduled", _("Scheduled") + SENDING = "sending", _("Sending") + SENT = "sent", _("Sent") + CANCELLED = "cancelled", _("Cancelled") + + +class RecipientStatus(TextChoices): + PENDING = "pending", _("Pending") + SENT = "sent", _("Sent") + FAILED = "failed", _("Failed") + OPENED = "opened", _("Opened") + CLICKED = "clicked", _("Clicked") diff --git a/engine/vibes_auth/emailing/models.py b/engine/vibes_auth/emailing/models.py new file mode 100644 index 00000000..e160d4f8 --- /dev/null +++ b/engine/vibes_auth/emailing/models.py @@ -0,0 +1,248 @@ +from uuid import uuid4 + +from django.conf import settings +from django.db.models import ( + CASCADE, + SET_NULL, + CharField, + DateTimeField, + ForeignKey, + ImageField, + Index, + PositiveIntegerField, + SlugField, + TextField, + UUIDField, +) +from django.utils.translation import gettext_lazy as _ + +from engine.core.abstract import NiceModel +from engine.vibes_auth.emailing.choices import CampaignStatus, RecipientStatus + + +def get_email_image_path(instance, filename: str) -> str: + return f"email_images/{instance.uuid}/{filename}" + + +class EmailImage(NiceModel): + """ + Stores images that can be used in email templates. + Images are uploaded to filesystem and referenced by URL in templates. + """ + + name = CharField( + max_length=100, + verbose_name=_("name"), + help_text=_("descriptive name for the image"), + ) + image = ImageField( + upload_to=get_email_image_path, + verbose_name=_("image"), + help_text=_("image file to use in email templates"), + ) + alt_text = CharField( + max_length=255, + blank=True, + default="", + verbose_name=_("alt text"), + help_text=_("alternative text for accessibility"), + ) + + class Meta: + verbose_name = _("email image") + verbose_name_plural = _("email images") + ordering = ("-created",) + + def __str__(self) -> str: + return self.name + + +class EmailTemplate(NiceModel): + """ + Customizable email template stored in the database. + Uses WYSIWYG editor for rich HTML content editing. + + Available context variables should be documented in the template + to help administrators understand what placeholders they can use. + """ + + name = CharField( + max_length=100, + verbose_name=_("name"), + help_text=_("internal name for the template"), + ) + slug = SlugField( + unique=True, + verbose_name=_("slug"), + help_text=_("unique identifier for the template"), + ) + subject = CharField( + max_length=255, + verbose_name=_("subject"), + help_text=_("email subject line - supports {{ variables }}"), + ) + html_content = TextField( + verbose_name=_("HTML content"), + help_text=_( + "email body content - supports {{ user.first_name }}, " + "{{ user.email }}, {{ project_name }}, {{ unsubscribe_url }}" + ), + ) + plain_content = TextField( + blank=True, + default="", + verbose_name=_("plain text content"), + help_text=_("plain text fallback (auto-generated if empty)"), + ) + available_variables = TextField( + blank=True, + default="user.first_name, user.last_name, user.email, project_name, unsubscribe_url", + verbose_name=_("available variables"), + help_text=_("documentation of available template variables"), + ) + + class Meta: + verbose_name = _("email template") + verbose_name_plural = _("email templates") + ordering = ("name",) + + def __str__(self) -> str: + return self.name + + +class EmailCampaign(NiceModel): + """ + Represents an email campaign that can be sent to subscribed users. + Only campaigns send emails with unsubscribe links. + """ + + name = CharField( + max_length=200, + verbose_name=_("name"), + help_text=_("internal name for the campaign"), + ) + template = ForeignKey( + EmailTemplate, + on_delete=SET_NULL, + null=True, + related_name="campaigns", + verbose_name=_("template"), + help_text=_("email template to use for this campaign"), + ) + status = CharField( + max_length=16, + choices=CampaignStatus.choices, + default=CampaignStatus.DRAFT, + verbose_name=_("status"), + ) + scheduled_at = DateTimeField( + null=True, + blank=True, + verbose_name=_("scheduled at"), + help_text=_("when to send the campaign (leave empty for manual send)"), + ) + sent_at = DateTimeField( + null=True, + blank=True, + verbose_name=_("sent at"), + help_text=_("when the campaign was actually sent"), + ) + # Statistics + total_recipients = PositiveIntegerField( + default=0, + verbose_name=_("total recipients"), + ) + sent_count = PositiveIntegerField( + default=0, + verbose_name=_("sent count"), + ) + failed_count = PositiveIntegerField( + default=0, + verbose_name=_("failed count"), + ) + opened_count = PositiveIntegerField( + default=0, + verbose_name=_("opened count"), + ) + clicked_count = PositiveIntegerField( + default=0, + verbose_name=_("clicked count"), + ) + + class Meta: + verbose_name = _("email campaign") + verbose_name_plural = _("email campaigns") + ordering = ("-created",) + indexes = [ + Index(fields=["status", "scheduled_at"], name="campaign_status_sched_idx"), + ] + + def __str__(self) -> str: + return self.name + + +class CampaignRecipient(NiceModel): + """ + Tracks individual email sends for a campaign. + Used for delivery tracking and preventing duplicate sends. + """ + + campaign = ForeignKey( + EmailCampaign, + on_delete=CASCADE, + related_name="recipients", + verbose_name=_("campaign"), + ) + user = ForeignKey( + settings.AUTH_USER_MODEL, + on_delete=CASCADE, + related_name="campaign_emails", + verbose_name=_("user"), + ) + status = CharField( + max_length=16, + choices=RecipientStatus.choices, + default=RecipientStatus.PENDING, + verbose_name=_("status"), + ) + sent_at = DateTimeField( + null=True, + blank=True, + verbose_name=_("sent at"), + ) + opened_at = DateTimeField( + null=True, + blank=True, + verbose_name=_("opened at"), + ) + clicked_at = DateTimeField( + null=True, + blank=True, + verbose_name=_("clicked at"), + ) + # For tracking pixel and link tracking + tracking_id = UUIDField( + default=uuid4, + unique=True, + verbose_name=_("tracking ID"), + help_text=_("unique ID for tracking opens and clicks"), + ) + error_message = TextField( + blank=True, + default="", + verbose_name=_("error message"), + help_text=_("error details if sending failed"), + ) + + class Meta: + verbose_name = _("campaign recipient") + verbose_name_plural = _("campaign recipients") + ordering = ("-created",) + indexes = [ + Index(fields=["campaign", "status"], name="recipient_camp_status_idx"), + Index(fields=["tracking_id"], name="recipient_tracking_idx"), + ] + constraints = [] + + def __str__(self) -> str: + return f"{self.campaign.name} -> {self.user.email}" diff --git a/engine/vibes_auth/emailing/tasks.py b/engine/vibes_auth/emailing/tasks.py new file mode 100644 index 00000000..52c222a0 --- /dev/null +++ b/engine/vibes_auth/emailing/tasks.py @@ -0,0 +1,316 @@ +import logging +import re +from html import unescape + +from celery import shared_task +from constance import config +from django.conf import settings +from django.core.mail import EmailMultiAlternatives +from django.template import Context, Template +from django.utils import timezone +from django.utils.html import strip_tags +from django.utils.translation import activate + +from engine.core.utils import get_dynamic_email_connection +from engine.vibes_auth.emailing.choices import CampaignStatus, RecipientStatus + +logger = logging.getLogger(__name__) + +# Batch size for sending emails +BATCH_SIZE = 50 + + +def render_template_string(template_str: str, context: dict) -> str: + """Render a Django template string with the given context.""" + template = Template(template_str) + return template.render(Context(context)) + + +def html_to_plain_text(html: str) -> str: + """Convert HTML to plain text, preserving some structure.""" + # Replace
and

with newlines + text = re.sub(r"", "\n", html, flags=re.IGNORECASE) + text = re.sub(r"

", "\n\n", text, flags=re.IGNORECASE) + text = re.sub(r"

c>*P9V)iW4gRlTvUOGA!o5DPWXUEFgD=M2NfYV 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�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 literal 0 HcmV?d00001 diff --git a/engine/core/static/icon192.png b/engine/core/static/icon192.png new file mode 100644 index 0000000000000000000000000000000000000000..71a7a697d88f2df52d256677ab1394501eff27f7 GIT binary patch literal 35710 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

", "\n", text, flags=re.IGNORECASE) + text = re.sub(r"", "\n", text, flags=re.IGNORECASE) + # Strip remaining HTML tags + text = strip_tags(text) + # Unescape HTML entities + text = unescape(text) + # Clean up excessive whitespace + text = re.sub(r"\n{3,}", "\n\n", text) + text = re.sub(r" {2,}", " ", text) + return text.strip() + + +def build_unsubscribe_url(user) -> str: + """Build the unsubscribe URL for a user.""" + return ( + f"https://{settings.STOREFRONT_DOMAIN}/{user.language}" + f"/unsubscribe?token={user.unsubscribe_token}" + ) + + +@shared_task(queue="default") +def prepare_campaign_recipients(campaign_pk: str) -> tuple[bool, str]: + """ + Prepare recipients for a campaign by adding all subscribed users. + + Args: + campaign_pk: The primary key of the EmailCampaign. + + Returns: + Tuple of (success, message). + """ + from engine.vibes_auth.emailing.models import CampaignRecipient, EmailCampaign + from engine.vibes_auth.models import User + + try: + campaign = EmailCampaign.objects.get(pk=campaign_pk) + + if campaign.status != CampaignStatus.DRAFT: + return False, f"Campaign is not in draft status: {campaign.status}" + + # Get all subscribed and active users + subscribed_users = User.objects.filter( + is_subscribed=True, + is_active=True, + ).exclude( + # Exclude users already added as recipients + campaign_emails__campaign=campaign + ) + + # Create recipient records in bulk + recipients_to_create = [ + CampaignRecipient( + campaign=campaign, + user=user, + status=RecipientStatus.PENDING, + ) + for user in subscribed_users + ] + + CampaignRecipient.objects.bulk_create( + recipients_to_create, ignore_conflicts=True + ) + + # Update campaign statistics + total = campaign.recipients.count() + campaign.total_recipients = total + campaign.status = CampaignStatus.SCHEDULED + campaign.save(update_fields=["total_recipients", "status", "modified"]) + + return True, f"Prepared {total} recipients for campaign {campaign.name}" + + except EmailCampaign.DoesNotExist: + return False, f"Campaign not found: {campaign_pk}" + except Exception as e: + logger.exception("Error preparing campaign recipients") + return False, f"Error: {e!s}" + + +@shared_task(queue="default", bind=True, max_retries=3) +def send_campaign_email_batch( + self, campaign_pk: str, offset: int = 0 +) -> tuple[bool, str]: + """ + Send a batch of campaign emails. + + This task processes emails in batches to avoid overwhelming the mail server. + It automatically schedules the next batch when done. + + Args: + campaign_pk: The primary key of the EmailCampaign. + offset: Starting offset for this batch. + + Returns: + Tuple of (success, message). + """ + from engine.vibes_auth.emailing.models import EmailCampaign + + try: + campaign = EmailCampaign.objects.select_related("template").get(pk=campaign_pk) + + if campaign.status not in (CampaignStatus.SENDING, CampaignStatus.SCHEDULED): + return False, f"Campaign status is {campaign.status}, cannot send" + + if not campaign.template: + campaign.status = CampaignStatus.CANCELLED + campaign.save(update_fields=["status", "modified"]) + return False, "Campaign has no template" + + # Mark as sending if not already + if campaign.status != CampaignStatus.SENDING: + campaign.status = CampaignStatus.SENDING + campaign.save(update_fields=["status", "modified"]) + + # Get pending recipients for this batch + pending_recipients = campaign.recipients.filter( + status=RecipientStatus.PENDING + ).select_related("user")[offset : offset + BATCH_SIZE] + + if not pending_recipients: + # No more recipients, mark campaign as sent + campaign.status = CampaignStatus.SENT + campaign.sent_at = timezone.now() + campaign.save(update_fields=["status", "sent_at", "modified"]) + return True, f"Campaign {campaign.name} completed" + + # Get email connection + connection = get_dynamic_email_connection() + + sent_count = 0 + failed_count = 0 + + for recipient in pending_recipients: + try: + send_single_campaign_email(campaign, recipient, connection) + recipient.status = RecipientStatus.SENT + recipient.sent_at = timezone.now() + recipient.save(update_fields=["status", "sent_at", "modified"]) + sent_count += 1 + except Exception as e: + logger.exception("Failed to send email to %s", recipient.user.email) + recipient.status = RecipientStatus.FAILED + recipient.error_message = str(e)[:500] + recipient.save(update_fields=["status", "error_message", "modified"]) + failed_count += 1 + + # Update campaign statistics + campaign.refresh_from_db() + campaign.sent_count = campaign.recipients.filter( + status=RecipientStatus.SENT + ).count() + campaign.failed_count = campaign.recipients.filter( + status=RecipientStatus.FAILED + ).count() + campaign.save(update_fields=["sent_count", "failed_count", "modified"]) + + # Schedule next batch if there are more pending + remaining = campaign.recipients.filter(status=RecipientStatus.PENDING).count() + if remaining > 0: + send_campaign_email_batch.apply_async( + args=(campaign_pk, 0), # Always start from 0 since we filter by PENDING + countdown=2, # Small delay between batches + ) + + return True, f"Sent {sent_count}, failed {failed_count}, remaining {remaining}" + + except EmailCampaign.DoesNotExist: + return False, f"Campaign not found: {campaign_pk}" + except Exception as e: + logger.exception("Error sending campaign batch") + # Retry on transient errors + raise self.retry(exc=e, countdown=60) from e + + +def send_single_campaign_email(campaign, recipient, connection) -> None: + """ + Send a single campaign email to a recipient. + + Args: + campaign: The EmailCampaign instance. + recipient: The CampaignRecipient instance. + connection: The email connection to use. + """ + user = recipient.user + template = campaign.template + + # Activate user's language for any translated content + activate(user.language) + + # Build context for template rendering + unsubscribe_url = build_unsubscribe_url(user) + context = { + "user": user, + "project_name": settings.PROJECT_NAME, + "unsubscribe_url": unsubscribe_url, + "tracking_id": str(recipient.tracking_id), + } + + # Render subject and content + subject = render_template_string(template.subject, context) + html_content = render_template_string(template.html_content, context) + + # Add unsubscribe footer to HTML + html_content = add_unsubscribe_footer(html_content, unsubscribe_url) + + # Generate plain text version + if template.plain_content: + plain_content = render_template_string(template.plain_content, context) + else: + plain_content = html_to_plain_text(html_content) + + # Add unsubscribe info to plain text + plain_content += f"\n\n---\nTo unsubscribe: {unsubscribe_url}" + + # Create and send email + email = EmailMultiAlternatives( + subject=subject, + body=plain_content, + from_email=f"{settings.PROJECT_NAME} <{config.EMAIL_FROM}>", + to=[user.email], + connection=connection, + headers={ + "List-Unsubscribe": f"<{unsubscribe_url}>", + "List-Unsubscribe-Post": "List-Unsubscribe=One-Click", + }, + ) + email.attach_alternative(html_content, "text/html") + email.send() + + +def add_unsubscribe_footer(html_content: str, unsubscribe_url: str) -> str: + """ + Add an unsubscribe footer to HTML email content. + + Args: + html_content: The HTML content. + unsubscribe_url: The unsubscribe URL. + + Returns: + HTML content with unsubscribe footer. + """ + footer = f""" + + """ + + # Try to insert before if present, otherwise append + if "" in html_content.lower(): + return re.sub( + r"()", + f"{footer}\\1", + html_content, + flags=re.IGNORECASE, + ) + return html_content + footer + + +@shared_task(queue="default") +def send_scheduled_campaigns() -> tuple[bool, str]: + """ + Check for scheduled campaigns that are due and start sending them. + + This task should be run periodically via Celery Beat. + """ + from engine.vibes_auth.emailing.models import EmailCampaign + + now = timezone.now() + due_campaigns = EmailCampaign.objects.filter( + status=CampaignStatus.SCHEDULED, + scheduled_at__lte=now, + is_active=True, + ) + + started = 0 + for campaign in due_campaigns: + campaign.status = CampaignStatus.SENDING + campaign.save(update_fields=["status", "modified"]) + send_campaign_email_batch.delay(str(campaign.uuid)) + started += 1 + + return True, f"Started {started} scheduled campaign(s)" diff --git a/engine/vibes_auth/emailing/templates/__init__.py b/engine/vibes_auth/emailing/templates/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/engine/vibes_auth/emailing/templates/campaign_base.html b/engine/vibes_auth/emailing/templates/campaign_base.html new file mode 100644 index 00000000..6dc48f40 --- /dev/null +++ b/engine/vibes_auth/emailing/templates/campaign_base.html @@ -0,0 +1,146 @@ + + + + {% load static i18n %} + + + {{ subject }} + + + + + + diff --git a/engine/vibes_auth/emailing/urls.py b/engine/vibes_auth/emailing/urls.py new file mode 100644 index 00000000..4a44f590 --- /dev/null +++ b/engine/vibes_auth/emailing/urls.py @@ -0,0 +1,10 @@ +from django.urls import path + +from engine.vibes_auth.emailing.views import TrackingView, UnsubscribeView + +app_name = "emailing" + +urlpatterns = [ + path("unsubscribe/", UnsubscribeView.as_view(), name="unsubscribe"), + path("track/open/", TrackingView.as_view(), name="track-open"), +] diff --git a/engine/vibes_auth/emailing/views.py b/engine/vibes_auth/emailing/views.py new file mode 100644 index 00000000..ba83c082 --- /dev/null +++ b/engine/vibes_auth/emailing/views.py @@ -0,0 +1,173 @@ +from uuid import UUID + +from django.utils.translation import gettext_lazy as _ +from drf_spectacular.utils import OpenApiParameter, extend_schema +from rest_framework import status +from rest_framework.permissions import AllowAny +from rest_framework.response import Response +from rest_framework.views import APIView + +from engine.vibes_auth.models import User + + +class UnsubscribeView(APIView): + """ + Public endpoint for one-click unsubscribe from email campaigns. + + Supports both GET (for email client compatibility) and POST (RFC 8058). + """ + + permission_classes = [AllowAny] + authentication_classes = [] + + @extend_schema( + summary="Unsubscribe from email campaigns", + description="Unsubscribe a user from email campaigns using their unsubscribe token.", + parameters=[ + OpenApiParameter( + name="token", + description="Unsubscribe token from the email", + required=True, + type=str, + ), + ], + responses={ + 200: {"description": "Successfully unsubscribed"}, + 400: {"description": "Invalid or missing token"}, + 404: {"description": "User not found"}, + }, + ) + def get(self, request): + """Handle GET request for unsubscribe (email link click).""" + return self._process_unsubscribe(request) + + @extend_schema( + summary="Unsubscribe from email campaigns (One-Click)", + description="RFC 8058 compliant one-click unsubscribe endpoint.", + parameters=[ + OpenApiParameter( + name="token", + description="Unsubscribe token from the email", + required=True, + type=str, + ), + ], + responses={ + 200: {"description": "Successfully unsubscribed"}, + 400: {"description": "Invalid or missing token"}, + 404: {"description": "User not found"}, + }, + ) + def post(self, request): + """Handle POST request for one-click unsubscribe (RFC 8058).""" + return self._process_unsubscribe(request) + + def _process_unsubscribe(self, request) -> Response: + """Process the unsubscribe request.""" + token = request.query_params.get("token") or request.data.get("token") + + if not token: + return Response( + {"detail": _("Unsubscribe token is required.")}, + status=status.HTTP_400_BAD_REQUEST, + ) + + try: + token_uuid = UUID(token) + except (ValueError, TypeError): + return Response( + {"detail": _("Invalid unsubscribe token format.")}, + status=status.HTTP_400_BAD_REQUEST, + ) + + try: + user = User.objects.get(unsubscribe_token=token_uuid) + except User.DoesNotExist: + return Response( + {"detail": _("User not found.")}, + status=status.HTTP_404_NOT_FOUND, + ) + + if not user.is_subscribed: + return Response( + {"detail": _("You are already unsubscribed.")}, + status=status.HTTP_200_OK, + ) + + user.is_subscribed = False + user.save(update_fields=["is_subscribed", "modified"]) + + return Response( + {"detail": _("You have been successfully unsubscribed from our emails.")}, + status=status.HTTP_200_OK, + ) + + +class TrackingView(APIView): + """ + Endpoint for tracking email opens and clicks. + + This is optional - can be used to track engagement metrics. + """ + + permission_classes = [AllowAny] + authentication_classes = [] + + @extend_schema( + summary="Track email open", + description="Track when a campaign email is opened.", + parameters=[ + OpenApiParameter( + name="tid", + description="Tracking ID from the email", + required=True, + type=str, + ), + ], + responses={ + 200: {"description": "Tracking recorded"}, + 404: {"description": "Invalid tracking ID"}, + }, + ) + def get(self, request): + """Track email open via tracking pixel.""" + from django.utils import timezone + + from engine.vibes_auth.emailing.choices import RecipientStatus + from engine.vibes_auth.emailing.models import CampaignRecipient + + tracking_id = request.query_params.get("tid") + + if not tracking_id: + return Response(status=status.HTTP_404_NOT_FOUND) + + try: + tracking_uuid = UUID(tracking_id) + recipient = CampaignRecipient.objects.get(tracking_id=tracking_uuid) + + if not recipient.opened_at: + recipient.opened_at = timezone.now() + recipient.status = RecipientStatus.OPENED + recipient.save(update_fields=["opened_at", "status", "modified"]) + + # Update campaign opened count + campaign = recipient.campaign + campaign.opened_count = campaign.recipients.filter( + status__in=(RecipientStatus.OPENED, RecipientStatus.CLICKED) + ).count() + campaign.save(update_fields=["opened_count", "modified"]) + + except (ValueError, TypeError, CampaignRecipient.DoesNotExist): + pass # Silently ignore invalid tracking IDs + + # Return a 1x1 transparent GIF + gif_data = ( + b"GIF89a\x01\x00\x01\x00\x80\x00\x00\xff\xff\xff" + b"\x00\x00\x00!\xf9\x04\x01\x00\x00\x00\x00,\x00" + b"\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;" + ) + return Response( + gif_data, + status=status.HTTP_200_OK, + content_type="image/gif", + ) diff --git a/engine/vibes_auth/graphene/mutations.py b/engine/vibes_auth/graphene/mutations.py index 45a67b59..b04fea2a 100644 --- a/engine/vibes_auth/graphene/mutations.py +++ b/engine/vibes_auth/graphene/mutations.py @@ -227,7 +227,7 @@ class ObtainJSONWebToken(Mutation): try: serializer.is_valid(raise_exception=True) obtained_user = User.objects.get(uuid=serializer.validated_data["user"]) - return ObtainJSONWebToken( # ty: ignore[unknown-argument] + return ObtainJSONWebToken( user=obtained_user, # ty: ignore[unknown-argument] refresh_token=serializer.validated_data["refresh"], # ty: ignore[unknown-argument] access_token=serializer.validated_data["access"], # ty: ignore[unknown-argument] @@ -251,7 +251,7 @@ class RefreshJSONWebToken(Mutation): try: serializer.is_valid(raise_exception=True) refreshed_user = User.objects.get(uuid=serializer.validated_data["user"]) - return RefreshJSONWebToken( # ty: ignore[unknown-argument] + return RefreshJSONWebToken( user=refreshed_user, # ty: ignore[unknown-argument] access_token=serializer.validated_data["access"], # ty: ignore[unknown-argument] refresh_token=serializer.validated_data["refresh"], # ty: ignore[unknown-argument] @@ -274,16 +274,16 @@ class VerifyJSONWebToken(Mutation): serializer.is_valid(raise_exception=True) verified_user = User.objects.get(uuid=serializer.validated_data["user"]) # noinspection PyTypeChecker - return VerifyJSONWebToken( # ty: ignore[unknown-argument] - token_is_valid=True, # ty: ignore[unknown-argument] - user=verified_user, # ty: ignore[unknown-argument] + return VerifyJSONWebToken( + token_is_valid=True, # ty:ignore[unknown-argument] + user=verified_user, # ty:ignore[unknown-argument] ) detail = traceback.format_exc() if settings.DEBUG else "" # noinspection PyTypeChecker - return VerifyJSONWebToken( # ty: ignore[unknown-argument] - token_is_valid=False, # ty: ignore[unknown-argument] - user=None, # ty: ignore[unknown-argument] - detail=detail, # ty: ignore[unknown-argument] + return VerifyJSONWebToken( + token_is_valid=False, + user=None, + detail=detail, ) diff --git a/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..412b5d89ff1614101c159a2e15dd045ce92664f4 GIT binary patch literal 24128 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 literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po index 766723ba..0b9172c1 100644 --- a/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "الرصيد" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "الطلب" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "الطلبات" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "معلومات شخصية" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "الأذونات" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "تواريخ مهمة" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "معلومات إضافية" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "لا يمكنك القفز فوق رأسك!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "إغلاق المواضيع المحددة" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "فتح المواضيع المحددة" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "معاينة" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "البيانات الوصفية" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "معاينة" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "معاينة الصورة" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "المحتوى" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "التوثيق" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "الجدولة" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "الإحصاءات" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "حالة" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "تحضير المستلمين (المستخدمين المشتركين)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "الحملة '{}' ليست في حالة مسودة." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "تحضير المستلمين لحملة \"{}\"." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "أرسل الحملة الآن" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "لا يمكن إرسال الحملة '{}' (الحالة: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "الحملة '{}' ليس لها مستلمون. قم بإعداد المستلمين أولاً." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "بدأت حملة إرسال \"{}\"." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "إلغاء الحملة" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "تم إلغاء الحملة (الحملات)." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "المصادقة" +msgid "Accounting" +msgstr "المحاسبة" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -161,8 +234,8 @@ msgstr "حذف مستخدم" #: engine/vibes_auth/docs/drf/viewsets.py:57 msgid "reset a user's password by sending a reset password email" msgstr "" -"إعادة تعيين كلمة مرور المستخدم عن طريق إرسال بريد إلكتروني لإعادة تعيين كلمة " -"المرور" +"إعادة تعيين كلمة مرور المستخدم عن طريق إرسال بريد إلكتروني لإعادة تعيين كلمة" +" المرور" #: engine/vibes_auth/docs/drf/viewsets.py:65 msgid "handle avatar upload for a user" @@ -191,6 +264,267 @@ msgstr "رابط التفعيل غير صالح أو أن الحساب مفعل msgid "merge client-stored recently viewed products" msgstr "دمج المنتجات التي تم عرضها مؤخراً المخزنة لدى العميل" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "مسودة" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "مجدول" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "إرسال" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "متأخر" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "ألغيت" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "قيد الانتظار" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "فشل" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "افتتح" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "نقرت" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "الاسم" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "اسم وصفي للصورة" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "صورة" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "ملف صورة لاستخدامه في قوالب البريد الإلكتروني" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "نص آخر" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "نص بديل لضمان إمكانية الوصول" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "صورة البريد الإلكتروني" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "صور البريد الإلكتروني" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "الاسم الداخلي للقالب" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "slug" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "المعرف الفريد للقالب" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "الموضوع" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "موضوع البريد الإلكتروني - يدعم {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "محتوى HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"محتوى نص البريد الإلكتروني - يدعم {{ user.first_name }}, {{ user.email }}, " +"{{ project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "محتوى نص عادي" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "نص عادي احتياطي (يتم إنشاؤه تلقائيًا إذا كان فارغًا)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "المتغيرات المتاحة" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "توثيق متغيرات القوالب المتاحة" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "نموذج البريد الإلكتروني" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "قوالب البريد الإلكتروني" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "الاسم الداخلي للحملة" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "قالب" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "نموذج البريد الإلكتروني الذي سيتم استخدامه في هذه الحملة" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "الحالة" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "مقرر في" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "متى يتم إرسال الحملة (اتركه فارغًا للإرسال اليدوي)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "في وقت متأخر من ذلك" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "عندما تم إرسال الحملة فعليًا" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "إجمالي عدد المستفيدين" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "عدد المرسلة" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "عدد الفاشلين" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "عدد مرات الفتح" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "عدد النقرات" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "حملة بريد إلكتروني" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "حملات البريد الإلكتروني" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "حملة" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "المستخدم" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "افتتح في" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "نقرت على" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "رقم التتبع" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "معرف فريد لتتبع عمليات الفتح والنقرات" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "رسالة خطأ" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "تفاصيل الخطأ في حالة فشل الإرسال" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "مستلم الحملة" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "مستلمو الحملة" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "جميع الحقوق محفوظة" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "لقد تلقيت هذا البريد الإلكتروني لأنك اشتركت في نشرتنا الإخبارية." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "إلغاء الاشتراك" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "رمز إلغاء الاشتراك مطلوب." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "تنسيق رمز إلغاء الاشتراك غير صالح." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "لم يتم العثور على المستخدم." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "لقد تم إلغاء اشتراكك بالفعل." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "لقد تم إلغاء اشتراكك في رسائلنا الإلكترونية بنجاح." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "معرّف المستخدم الذي تم ترميزه بـ b64 الذي أحال المستخدم الجديد إلينا." @@ -240,13 +574,13 @@ msgstr "الرمز غير صالح!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "المنتجات التي شاهدها هذا المستخدم مؤخرًا (بحد أقصى 48)، بترتيب زمني عكسي." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "المجموعات" @@ -254,7 +588,8 @@ msgstr "المجموعات" msgid "wishlist" msgstr "قائمة الرغبات" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "الصورة الرمزية" @@ -265,8 +600,8 @@ msgstr "يمكن استخدام السمات لتخزين البيانات ال #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "اللغة هي واحدة من {settings.LANGUAGES} مع {settings.LANGUAGE_CODE}" #: engine/vibes_auth/graphene/object_types.py:66 @@ -302,8 +637,8 @@ msgstr "" "يمثل كيان مستخدم مع حقول وأساليب مخصصة لوظائف موسعة. توسع هذه الفئة نموذج " "AbstractUser وتدمج ميزات إضافية مثل تسجيل الدخول إلى البريد الإلكتروني " "المخصص، وطرق التحقق من الصحة، وحالة الاشتراك، والتحقق، وتخزين السمات. كما " -"يوفر أيضًا أدوات مساعدة لإدارة العناصر التي تم عرضها مؤخرًا والتفعيل المستند " -"إلى الرمز المميز للتحقق من الحسابات. تم تصميم نموذج المستخدم للتعامل مع " +"يوفر أيضًا أدوات مساعدة لإدارة العناصر التي تم عرضها مؤخرًا والتفعيل المستند" +" إلى الرمز المميز للتحقق من الحسابات. تم تصميم نموذج المستخدم للتعامل مع " "حالات استخدام محددة لإدارة المستخدم المحسنة." #: engine/vibes_auth/models.py:53 @@ -362,63 +697,67 @@ msgstr "حالة اشتراك المستخدم في النشرة الإخبار msgid "activation token" msgstr "رمز التفعيل" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "رمز إلغاء الاشتراك" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "رمز مميز لإلغاء الاشتراك الآمن بنقرة واحدة من الحملات" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "السمات" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "المستخدم" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "المستخدمون" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "بالنسبة للمواضيع المجهولة" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "موضوع المحادثة" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "خيوط الدردشة" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "توفير مستخدم أو بريد إلكتروني لموضوع مجهول." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "يجب أن يكون المُحال إليه مستخدمًا من الموظفين." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "رسالة الدردشة" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "رسائل المحادثة" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "المجموعة" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "الرمز المميز" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "الرموز المميزة المعلقة" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "الرمز المميز المدرج في القائمة السوداء" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "الرموز المميزة المدرجة في القائمة السوداء" @@ -481,8 +820,7 @@ msgstr "مرحباً %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "لقد تلقينا طلباً لإعادة تعيين كلمة المرور الخاصة بك. يرجى إعادة تعيين كلمة " @@ -566,29 +904,29 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" -"يمثل طريقة عرض للحصول على زوج من رموز الوصول والتحديث وبيانات المستخدم. تدير " -"طريقة العرض هذه عملية التعامل مع المصادقة المستندة إلى الرمز المميز حيث يمكن " -"للعملاء الحصول على زوج من رموز JWT (الوصول والتحديث) باستخدام بيانات " +"يمثل طريقة عرض للحصول على زوج من رموز الوصول والتحديث وبيانات المستخدم. تدير" +" طريقة العرض هذه عملية التعامل مع المصادقة المستندة إلى الرمز المميز حيث " +"يمكن للعملاء الحصول على زوج من رموز JWT (الوصول والتحديث) باستخدام بيانات " "الاعتماد المقدمة. وهو مبني على طريقة عرض الرمز المميز الأساسي ويضمن تحديد " "المعدل المناسب للحماية من هجمات القوة الغاشمة." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "يعالج تحديث الرموز المميزة لأغراض المصادقة. يتم استخدام هذه الفئة لتوفير " -"وظيفة لعمليات تحديث الرموز كجزء من نظام المصادقة. وهي تضمن أن العملاء يمكنهم " -"طلب رمز محدث ضمن حدود المعدل المحدد. تعتمد طريقة العرض على أداة التسلسل " +"وظيفة لعمليات تحديث الرموز كجزء من نظام المصادقة. وهي تضمن أن العملاء يمكنهم" +" طلب رمز محدث ضمن حدود المعدل المحدد. تعتمد طريقة العرض على أداة التسلسل " "المرتبطة بها للتحقق من صحة مدخلات تحديث الرمز المميز وإنتاج مخرجات مناسبة." #: engine/vibes_auth/views.py:83 @@ -606,17 +944,10 @@ msgstr "الرمز المميز غير صالح" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "تنفيذ مجموعة عرض المستخدم.\n" -"يوفر مجموعة من الإجراءات التي تدير البيانات المتعلقة بالمستخدم مثل الإنشاء " -"والاسترجاع والتحديثات والحذف والإجراءات المخصصة بما في ذلك إعادة تعيين كلمة " -"المرور وتحميل الصورة الرمزية وتفعيل الحساب ودمج العناصر التي تم عرضها مؤخرًا. " -"تعمل هذه الفئة على توسيع mixins و GenericViewSet لمعالجة واجهة برمجة " -"التطبيقات القوية." +"يوفر مجموعة من الإجراءات التي تدير البيانات المتعلقة بالمستخدم مثل الإنشاء والاسترجاع والتحديثات والحذف والإجراءات المخصصة بما في ذلك إعادة تعيين كلمة المرور وتحميل الصورة الرمزية وتفعيل الحساب ودمج العناصر التي تم عرضها مؤخرًا. تعمل هذه الفئة على توسيع mixins و GenericViewSet لمعالجة واجهة برمجة التطبيقات القوية." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..039c28db903475ba82a1b575ee1af4ba5894ec6f GIT binary patch literal 20181 zcmbuH3zQsJdFL;|*jP4B!Xt#(hLW+-D4uCc@&hAVz*v&?u%#KKk%X0pT-{wWUDJdvyar<|Cs+v~7DR|gVu%wdAu~flAOudb*^?}X&3d!RX7?vn{Li51yXz<1`_rK2_Yf$$ z9S8ON7eV#&tDxrlEGW8v1-ys(d>b6){?#y7>mLW-4o2Yh;HSVhfJ@+=;NO7b;PpJ@ zRdWoa%FKhefgb~zn)wFElFi?OZwCJfycWETN&N^o32Gi8sQEqwYJCf!=>Hga1Naok zf94#2M5ph7H-mo%YF@A6kKVf#)cSXUqThZ{{5|aP=Rwi;H$X(joCmdzZ-W}|Re`I& z4pe`)fEsT*D7o4X($xGksD2&>RsTUy^LrW`1Ahk;zy2OL? z5%6^|S?wPJZv^K+_4_oa@jeY|J} zmvR3;K=u2-LCN2hHyQIL@CHzFw+9>nd!X8X0u+5e2{NR44irEB3cMTq9;k6|rW4WO zcJO83J>ccwZcy(}fZ}rqLPC>)lD{WBegRawZ-TNXe+_C~{{U(|FNF!}|3^Xf^LlU$ z+zeg;9s?zZGa#nJJPu0Uo(10m{uwBKzJkSR{?~!hi%p>V-3wj;9s$M2W1!YQ3u>MT zsCB&`yc~QCRQo5vmxIrM?*>nUN5NY*x_P`0)OERww z>pluHWit&TD&~VA|C!J8NA14@V!F)tK+W@V7O!<(1!}xEfNHnJ-|qmeeFR~dX@gqN z6QJnwH25CyGobi0IJ_xJZ=Nk?mkfCPk~p0 zEl}$^4qgTR94LOh57hgQfwF_20M~)P1%8Zq|31jj=AB#I`rZqQ?q38o&R>A)|KEes zOGVXsz7~VzwNr-JDDw*A&){%hXb07S1 z@Rz`cna^_|OEb6L<@9SBlpK5nlwN)Vls)^8;5P832=zO`aZq;ZDNu6q+aOCc{}vRz zuA;H{_$E;A-N7IAlYx@ck9hnPsC9lBd>#0Epw{!3ASTQF4G62um2Y)?*$Rr@+ra?r zg3|vdK=tz(P;~eLD7k;$<6nd7|MIuF`2`?V<}Og}=fPKjzu@r+Q2hBc_#@zRp!)km z@b%z-178bX{dPys8$ndTYy&lqI+%eS@Ri`-f$IPNc)VuZ-QNI84(|Xp&NL`{G3TG3 z0p-`f;-CL7Uw_3tuKl&3=0EE3Hc<4s8`OH6;N#$Xz(e4*+Z`Pr0%5(G2Q}_*dRzu2 zAAjNT`{2XezkG+|=et44*GECo=T|`S`?KJE;MaWpYj!$2wH~~V`Zs~HAKO96Ndsgl z<{41ydjS;PUVE>T+t-6?zZ2AaS|Flj-UDjfB~WtoEr0)l$M1ob&Y5L< z0uNwZ)z6nf_5XE{DVXnoh^n~>=4hP}sCD}MWdj0?uef|-Yeq49IvjaZ` zO71(L=J6OP`kn;E-_L>9gMR|5-~S4V-dF5%{oMdw#r?gY=z9Q6z$&-_{Buxr`zKIz zd)t1`FYqV1p9R(KqoC-04txpt+Z6TtK8oo3Bqjg-CKr!W5G^xJ`BRGenxlwj`hDGj zc>??zMKXDgqBUuq;z9oV*IaC+JnSpJ4E`bI3zTKbS&DuWlrxkYDW9i^-unHP1N&Dz z)bBME@i(CSH09?g`R|9gSWo#h1#()t0EVTTmr@W()2HM=$&G%`QZU!%q;B|qkn(N{ zs%(Gn;P3k>S5OX64pJmDrzrXF8ZM4dM)C^q7K(UUqTEM$o`SlYKcc*uGD(q)9i>R8 zB|lS?U!jDQpQn73@-r0u>Xgq=zDU_jnW5Z4(eHOD@1cxQZlHXC(xL38NKR%clB4`5 z+0^e*2j-LDI!crBN?-Rb@E0kP&tIZEM)?y;{=3^>90T7;`49y&Vt>EG-#7W|s>c+Z z_t(D$o~QgP$}ju6-}CtE;O|o^l&?}2C^u8KQ4Ud_qP&IjB}$LdpbY;W8M=9p>(^2~ zO!*4sZIm|UBa~NA@?YjJJ_Wv)vX63;ulp&F8^Oc=dI@}v@^ODJ_!pGV`uk6SPy6e) zd;A#qtCUTYU!Xig(eG9V<{_}=uLY<5^}htSP-04p@&IK6<&P<&lsy#v?sQ=PeuKZq zDc4iFw#Mb*x=bjq_I2L^7b)NL_kuT4K1cZj%5PA9jB**JOxa60LAjc8JH?DwDoMAM z#jP1L-e?4!c&3)6K_^P1PA{sO@mA96HITvN&mNYco#CjHhWl(~6>?*-f*c90g%8=%{42 zhs}0KgJ8png$+R^Y_$^GiUG1n8wUvvJeY%Y~HZ`yKaP^pC- zbO=3Dn=E9$p_yn$E&Jy}QPLyiWD=c}YEMR;F()Nn)9A0&iW+7O{TM0cR&|=a(YKNa z4Rp)0KGzGYswK4(;mv`l-RO_PN(5@uQBW^?rlIX^RCGG7c*!s61(_UF7G58MJ;+2R z`O+&v1v8N}VOJI9jT%+QlxCFG60Rl7(Q!1Us^`Pfxk8j(6A4)qjF;0)OY{d1*&n1YOC}Pk^X5!XpEsz zZjp@EDxO+>)a+-XOwI;2OC_vns8kSo%K&eyaw{dCsM`%p2zmGHv|U*uFa>cFI@umD zGj^`(egy>vZcEIVt3^13VKc*=hUT;P$W%Uo5ook(ZX21A2JpER^RZJps7E@G6VIOA<7FSYp(7GXW zXkd|tuRYJ;sa#PEt4l_jV*ljcKb5iS^xFyc!#z+aF-=(ITRWboNLk!$H>`SCQkT|E zI;YC)nW}S?*139L=%n20z!=WV`Yve#)}>ODdqw!XG3i8jp9sE<2Hm#2SvraqHzL^| zXKI`k&B+ZvDvhosP8({^B^|sdCOD%p<|6FSjR?!FvlI43XGmOsxB}L_+Wa)5j*Qbq zO>Z+kjx<|s--V0n#FfK%jDsv*)}fP>6%vk5?kQBcWDd(edy6~73H!nz2*RVu8y}X5 zMW{UIMskxv=T4c48jnO95SBCwI~5xjX=E7^>0yW!=3OS3&Y_k4q#J|{MRNGFTGFTn z<^Fo}fNJT&KM98XIV{&xAGOYQn^*wUQ5|)H8vVGpYhf=U@+Fdim9jC@-3Fu_?kJe< zBu&B$yqla2Yg5OfdQ4=_grS9VL*=Lv$|^HP?sv*+k=VCe(Oilg5IdAi!ArNKoTm}9 zy6B@)N$*)F60HkQFcnM~BD}KQfOO;i%*675ox`NNx$5xJeN>mD(=ToZYk`b6V~<&wIjqMxWQF=O>Zv1ZjbRIMqV7eL+wS5*I^Yt#HL6mBXIGMi zk1Q^2ifhP>$o-lFaa?Kmj5Vexb%4fLi8a=Msz&n5okDgZIwU|Ovl1Zk#7*KhQyos% ztlKXbLtxgH^&aAo)m-ECH>vjXye$|*g?-X|;)ETzWHVOFrC?!UG{~#n%f4oqmqn|A zQ#;n}G^q9i79@3Dok~yZbRin$iSMh`zPl1hd0X|1A1}AQk1(AEW zy%M{_O#5wrm_L8Xb)W7cIvx*8_MayNlG(&Brz}6GE4W%<_>HhKk zyAF--+Ieun<*e*Xgk5~cg)NS4pV+Z;fgXu=Wkw7Uc4C@gL(64Jmh7wV*-WtY3qucv zX~lDUd(6>^X2fB6mcuq3BBA(hWyFTfU|SM0It^Ws#+8gR z1!v~{m75EJEVkPIO%0ng?Bux|z%l!Rn$&2Iiu6t4myMhU4#JxrS`0_XGSzYHe+(0q{VdD)L|Z3$u4Vq-SuTD7**J0lWiTd>m5#oTqcyelGML7nAUn% zb8IO5q$Xo2MWo0}Z1~kh#XUPrw-vLo%$4O<@kDmSrKWZYY2GdmU7bs^3n}D)jLmN2 zQ)?%L!w;)+4=(v;JkMqIRydTv8KaBY8`0BPP8I=1be!J-afH^YJB_D+wVPeU?(+u4wSY}?0YM(xe#e=iac^_ zaL<7~Q+p2X4tDO}b-(b%UfUW}(y_|?x_x{0?HsIYb7|AM?e0WtY^vX8&hmb@Sg&`N zJr%)kY&$e{@7SG#cA7dyXKbfz5h}kmxU(E*>n0oBPS_Z`moSUn##Y}}G zZ6mE<{kCB9#=F*;#iy1Yjj|S5c5m^FIlO!-s?=KSS$7ss^}?XnuXV!ts1=%{wx*An zt>FqdKwCTm(YzOJEuKNM%51~*mQF5zJkou4`MkE{qsHRt(V(71%OAImW>a3D51UIT z)2s!nV~#G9Ds1e|Vur)|;%P}VobyMhlX`D9YO)th@J1Kq#dFzE2T`TIcy2IQ$=s(C z%;opGGgVH0=CQRTw3@7rRC~y>4pj4IFFf+gCl+3KWc? zAI-KoBvxJA?u0#3ouS8TbtMAug2w9x^#qA-XWf!H+UYKzinE~Z=IHLDR^q8kLLQ3M zS+^i}&)*+zES{_u#)t6mtm4}E9vP*>$Vnu z`K;V^u=qUEMZD?c!nY^|Q>a^zX|7eacpC|_!i#m-IvX#a%9c*5A5OUHOOLj2>#^Ig ztWar3vhtM=(+d#QW+k@gtc$0c-PMB~wVf{i8Un_CE@1{+Ihe{=qTGlPWy^EK1M$^5 z2EBKKqH}xxn)D#*IX0y20W3@G^eZ)v{xXF4XadR66y```oVF9>z6NQeONdPs&Y$P$ zIi9*B*~QZxs}~*W9C@Sxy)^5RQ;T*NOh)R6mYx#boB$HqiCw3I-r_m?VhJ{;R#P<; z;RZ5|lDhNSE}~!LI_{u$J?*t&Gu+w|78TbNsx<@%o4~S=UT+kf9yTRt`Kj%EE37Y{ z9X_$mA}5PxBEPy&D%~SV<zoFmK;d#B zMAz$`#nTY<3?ZS{8-IGmqB8MV!k2Y}LrNrxV>K5^MpLqgK!!S7O{$^p;Xx;vUp}>X z#%eDyc%c-lw8%D#mp`rn+(GY(v)_=&R%gC?Tn!uQ(e_nACuYNX5=i!xsY`$z^}^*- zxk^W4+L(`;qlIpTQbs#ZjtgYwkd^Y%$xe6B#90H8`U9JSl7lk`ad7qx)%Ng0U4HJ>y+}f$RuT& zz&?8%Zn?mqt+3aThRO#yGchmjL960GSiT9;AUzzCFa>$IOys(NOZn^zA1K{G@S>{q z2n<)O#=SnjcqT;wMEq(mnT_#wb|fh^6W5Z%+{%jd+~@W$)V9=+gd-OT)^%tAO}Xmk z$tFWEpIdH?w!$!rZu9t=Mp#`snGb-GVzomyQ~q1iWmGrUIBy#0L|MAWV?Xhg)7}Wx znu$aQuEKr1mR%cb#PQg;p%m<8?buW)1rw^~Gh(*Qp;a|=4m0I}frnQLTx1eSc%3;e zjI?D`LJCOWEAo=6Ej|w!`$4VKEwijN#uZ(fQ7h@i#--;@&JBAE?arR_rRJy45}(}o zhf9x&`q(l1NshZyT3YWjK5~a2!uXxeudQfcgh(fkA*} z?jx+^C>l@8+G&Q`44KpAvu3<5c}u#4N|NQFhlHU&;9>RQzKsZHSrz_oHmb6DD>hgq ziL}7ebd0)KH%NGhMUd;XjwQrX&Jtzjfzgl!KB%w4@UZp1J;BDovtXI_lsGDl4AO$j zI3HH6emkLXj9%fp4&~9PIV{l>@yiLxdtQz9Ny*R+#K#n^71j2&)7y|R@d;FMtPRCd znSl#>$j#Il4!sK#M^g?`>qx%$`G|t-epmEDf8kBiC1Z)WmwMn9@|nr%78ct3fBEB4 zX0`MvPS`RYlT}w97|(|?>CF&5_7av`b%uvlHrhwK2hl}MLZ#lUa4@(#GoZ?w*2so& zcq|vI(Sv$^5zBlj_oS0?rPr&@#ho41xw!gYVWv1Ix9Q+eOsYt@Z{5}q`}0`FIjoYI zDC|mZE=C3mw;4-et;h*rdmwjDJn7EJ37+^=sR+}Ey*Q_Kp#a}F^{aS{ELv~&#=JPI z6Oci`6e|>KE}uo*sh4q=!IafW83WF*H}~}M_V%?R@)lzXxy7aBUKMJSI3S>IVR9!^ zgb|6q_k));AwC7&AJS&?-V$ z%Ta1v$E)Y}B5$u>@!T48v%`l<+M#A2oNQ@ar|A7lB+9d~g6UN!=@MwWn=KhHL{7Pl zi$^a=aNXWGCXzRs!^Qv-yBMlpTm;H-Z8)NkydHF29K?`$M2FyDWJ>12BK%Ju98RZ6 z!SI=9>KyGl>qwx(HyPw%@a<{7`vUg_=dBP z9+@G#!i9myp=l+IB{3PQZzt_Il{66>&qsvVWxUgTy$hR)^qrkL$1)oh=SZ+eJq8;dXxEeeox%BA0whZ986L1uM?yJq?Nlo7ENGwx3ea;v#y?hm?6tTiyZ!Q zDCmM`sRHySqElpuc5O9|hSo7!F4+AUq+EucWDq~Zsg4f+?M!Cl(k1uQouHHue<=@g z#YH#|6WEGL2>Y=NvdKj@*Yl#K76UC>JjLN9OI3K_MHD^Uv3#}>p~u8vHi|Ru@LybU z8e15V)ej0WT5G?CP19&P!S-qoK`|bSE(J>;&_yzAx93CU)$B94Pw_Ey?D4GpG+>gA zxdvM-vW_9neDm$TN4|9>LdgRr=kE3*w?1M@6j|EuS z9iQ#3{hZw{Yq1viXDa=&I)PlF74L$+o)#P$to*8Ay*WrK_#%<6J}RiQl~6cb$qU=P zc6%{2`v%+9EjCtcKI?blTrlcCKhS1{P0^Q5u9t{m>0!)J+L3QcpDXy`0~~WWk7`>s zB(FxK?zluWS%;EC2H>a?c4v*+i>EqW_a3RAeW1XU+PpFtijn;$nOqFXJBpIahw?T) z+jhIkL9e(*t(=o&r&(Db=~SJ6z)@TiI`#3^p*I%_kNG!0`=eeTQRMIz>*MPB2FYhj zNVy}t%hMaX-M09=Le=2~Ufd6x-5BCT@v63?{SG%B+Os*?;uinw5Z8t-Z2-_<6Pj)5 zuuSlyC*(bfGE@E)hRhuQ5=B{}^Ven~#S5VEgAj4*0`bD;$oG0RWpF4->MPr)sIY6u z)?`lAj|~&;hYkAfqQdTk{l3A8e(qp2Q`DM%kQbd-Y|M?5LC7On=mGbcI!80k4q6_% zPaiax+n`KHl!~42mGUvD&-bOQr9kK}A|%6It&W3+oMN+Z;CyD3kKN?EVVOF}mG8sb zilN!L`yp|*qQG>90;<@Mo4P#|YaMOerfm@f9Oq&qICmsOY=v3ZF8cXMOsvFa|I*2d zj!&U4=>)pDYoA2OUb+yEef>cKbD_l>emdbJFHMP0HM+yk*xp0V z2D>yvow`TvRDqe~-}bL~{ZKv!EcFF@J(vx@A%Zrtqf^9@(5)~qJvLUf1L7=Ca9_?S zt7Vu3>GE1}vF$-SJIZ79aR|#$aBj+U(wz%>M-;\n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Bilance" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Objednávka" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Objednávky" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Osobní informace" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Oprávnění" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Důležitá data" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Další informace" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Nemůžete skákat přes hlavu!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Zavřít vybraná vlákna" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Otevřít vybraná vlákna" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Náhled" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadata" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "náhled" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "náhled obrázku" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Obsah" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Dokumentace" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Plánování" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistiky" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "stát" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Připravte příjemce (přihlášené uživatele)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Kampaň „{}“ není ve stavu konceptu." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Příprava příjemců pro kampaň „{}“." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Odeslat kampaň nyní" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Kampaň '{}' nelze odeslat (stav: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "Kampaň „{}“ nemá žádné příjemce. Nejprve připravte příjemce." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Zahájena kampaň „{}“." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Zrušit kampaň" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} kampaň(e) zrušena." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Ověřování" +msgid "Accounting" +msgstr "Účetnictví" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -189,6 +262,269 @@ msgstr "Aktivační odkaz je neplatný nebo je účet již aktivován" msgid "merge client-stored recently viewed products" msgstr "Sloučení naposledy zobrazených produktů uložených u klienta" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Návrh" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Plánované" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Odesílání" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Pozdě" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Zrušeno" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Čeká na vyřízení" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Neúspěšný" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Otevřeno" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Kliknuto" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "název" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "popisný název obrázku" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "obrázek" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "obrazový soubor pro použití v e-mailových šablonách" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "jiný text" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "alternativní text pro přístupnost" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "e-mailový obrázek" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "e-mailové obrázky" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "interní název šablony" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "služebníci" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "jedinečný identifikátor šablony" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "předmět" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "předmět e-mailu – podporuje {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "Obsah HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"obsah těla e-mailu – podporuje {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "obsah ve formě prostého textu" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "záložní text (automaticky generovaný, pokud je pole prázdné)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "dostupné proměnné" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "dokumentace dostupných proměnných šablony" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "šablona e-mailu" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "e-mailové šablony" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "interní název kampaně" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "šablona" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "šablona e-mailu, která se použije pro tuto kampaň" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "status" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "naplánováno na" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "kdy odeslat kampaň (pro ruční odeslání nechte pole prázdné)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "pozdě to" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "když byla kampaň skutečně odeslána" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "celkový počet příjemců" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "počet odeslaných" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "neúspěšný pokus" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "otevřený počet" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "počet kliknutí" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "e-mailová kampaň" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "e-mailové kampaně" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "kampaň" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Uživatel" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "otevřeno v" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "kliknuto na" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "sledovací číslo" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "jedinečné ID pro sledování otevření a kliknutí" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "chybová zpráva" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "podrobnosti o chybě, pokud se odeslání nezdařilo" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "příjemce kampaně" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "příjemci kampaně" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Všechna práva vyhrazena" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" +"Tento e-mail jste obdrželi, protože jste se přihlásili k odběru našeho " +"zpravodaje." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Odhlásit se" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Je vyžadován token pro odhlášení." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Neplatný formát tokenu pro odhlášení." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Uživatel nebyl nalezen." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Již jste odhlášeni." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Byli jste úspěšně odhlášeni z odběru našich e-mailů." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "Uuid uživatele s kódem b64, který nám nového uživatele doporučil." @@ -238,14 +574,14 @@ msgstr "Token je neplatný!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Produkty, které si tento uživatel prohlížel naposledy (max. 48), seřazené v " "opačném pořadí." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Skupiny" @@ -253,7 +589,8 @@ msgstr "Skupiny" msgid "wishlist" msgstr "Seznam přání" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -264,8 +601,8 @@ msgstr "Atributy lze použít k uložení vlastních dat." #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" "Jazyk je jeden z {settings.LANGUAGES} s výchozím {settings.LANGUAGE_CODE}" @@ -300,11 +637,11 @@ msgid "" "for enhanced user management." msgstr "" "Reprezentuje entitu User s upravenými poli a metodami pro rozšířenou " -"funkčnost. Tato třída rozšiřuje model AbstractUser a integruje další funkce, " -"jako je vlastní přihlašování e-mailem, ověřovací metody, stav odběru, " +"funkčnost. Tato třída rozšiřuje model AbstractUser a integruje další funkce," +" jako je vlastní přihlašování e-mailem, ověřovací metody, stav odběru, " "ověřování a ukládání atributů. Poskytuje také nástroje pro správu naposledy " -"zobrazených položek a aktivaci založenou na tokenu pro ověřování účtů. Model " -"User je navržen tak, aby zvládal specifické případy použití pro rozšířenou " +"zobrazených položek a aktivaci založenou na tokenu pro ověřování účtů. Model" +" User je navržen tak, aby zvládal specifické případy použití pro rozšířenou " "správu uživatelů." #: engine/vibes_auth/models.py:53 @@ -363,63 +700,67 @@ msgstr "Stav odběru newsletteru uživatele" msgid "activation token" msgstr "Aktivační token" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "token pro odhlášení" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "token pro bezpečné odhlášení z kampaní jedním kliknutím" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Atributy" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Uživatel" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Uživatelé" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Pro anonymní vlákna" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Vlákno chatu" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Vlákna chatu" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "zadejte uživatele nebo e-mail pro anonymní vlákno." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "Příjemce musí být personálním uživatelem." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Zpráva na chatu" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Zprávy v chatu" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Skupina" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Vynikající žeton" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Nevyplacené žetony" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Token na černé listině" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Tokeny na černé listině" @@ -482,8 +823,7 @@ msgstr "Ahoj %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Obdrželi jsme žádost o obnovení vašeho hesla. Kliknutím na níže uvedené " @@ -499,8 +839,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující " -"adresu URL\n" +"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující adresu URL\n" " do webového prohlížeče:" #: engine/vibes_auth/templates/user_reset_password_email.html:100 @@ -568,26 +907,26 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" -"Představuje zobrazení pro získání dvojice přístupových a obnovovacích tokenů " -"a dat uživatele. Toto zobrazení řídí proces zpracování ověřování na základě " -"tokenů, kdy klienti mohou získat dvojici tokenů JWT (přístupový a " +"Představuje zobrazení pro získání dvojice přístupových a obnovovacích tokenů" +" a dat uživatele. Toto zobrazení řídí proces zpracování ověřování na základě" +" tokenů, kdy klienti mohou získat dvojici tokenů JWT (přístupový a " "obnovovací) pomocí poskytnutých pověření. Je postaven nad základním " "zobrazením tokenu a zajišťuje správné omezení rychlosti pro ochranu před " "útoky hrubou silou." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Zpracovává obnovování tokenů pro účely ověřování. Tato třída slouží k " "zajištění funkčnosti operací obnovení tokenů v rámci systému ověřování. " @@ -610,17 +949,10 @@ msgstr "Token je neplatný" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementace sady uživatelských zobrazení.\n" -"Poskytuje sadu akcí, které spravují data související s uživatelem, jako je " -"vytváření, načítání, aktualizace, mazání a vlastní akce včetně obnovení " -"hesla, nahrání avatara, aktivace účtu a sloučení naposledy zobrazených " -"položek. Tato třída rozšiřuje mixiny a GenericViewSet pro robustní " -"zpracování API." +"Poskytuje sadu akcí, které spravují data související s uživatelem, jako je vytváření, načítání, aktualizace, mazání a vlastní akce včetně obnovení hesla, nahrání avatara, aktivace účtu a sloučení naposledy zobrazených položek. Tato třída rozšiřuje mixiny a GenericViewSet pro robustní zpracování API." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..42d67c77027fd4d295a0f3c4eb8a5a487ab85cbb GIT binary patch literal 19650 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Balance" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Bestil" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Bestillinger" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Personlig information" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Tilladelser" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Vigtige datoer" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Yderligere information" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Du kan ikke hoppe over hovedet!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Luk udvalgte tråde" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Åbn udvalgte tråde" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Forhåndsvisning" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadata" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "forhåndsvisning" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "billedforhåndsvisning" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Indhold" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Dokumentation" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Planlægning" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistik" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "tilstand" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Forbered modtagere (abonnenter)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Kampagnen '{}' er ikke i udkaststatus." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Forberedelse af modtagere til kampagnen '{}'." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Send kampagne nu" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Kampagnen '{}' kan ikke sendes (status: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "Kampagnen '{}' har ingen modtagere. Forbered først modtagerne." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Startede med at sende kampagnen '{}'." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Annuller kampagne" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} kampagne(r) annulleret." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Autentificering" +msgid "Accounting" +msgstr "Regnskab" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -191,6 +264,269 @@ msgstr "Aktiveringslinket er ugyldigt, eller kontoen er allerede aktiveret" msgid "merge client-stored recently viewed products" msgstr "Flet nyligt viste produkter, der er gemt af klienten" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Udkast" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Planlagt" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Afsendelse" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Sen" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Aflyst" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Afventende" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Mislykket" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Åbnet" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Klikket" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "navn" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "beskrivende navn for billedet" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "billede" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "billedfil til brug i e-mailskabeloner" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "andet tekst" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "alternativ tekst for tilgængelighed" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "e-mail-billede" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "e-mail-billeder" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "internt navn for skabelonen" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "tjenere" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "unik identifikator for skabelonen" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "emne" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "e-mail-emnelinje - understøtter {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "HTML-indhold" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"e-mail-indhold - understøtter {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "almindeligt tekstindhold" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "plain text fallback (genereres automatisk, hvis feltet er tomt)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "tilgængelige variabler" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "dokumentation af tilgængelige skabelonvariabler" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "e-mail-skabelon" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "e-mail-skabeloner" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "internt navn for kampagnen" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "skabelon" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "e-mailskabelon til brug for denne kampagne" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "status" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "planlagt til" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "" +"hvornår kampagnen skal sendes (lad feltet være tomt for manuel afsendelse)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "sent det" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "når kampagnen faktisk blev sendt" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "samlet antal modtagere" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "sendt antal" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "fejl i optællingen" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "åben optælling" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "klikket antal" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "e-mail-kampagne" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "e-mail-kampagner" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "kampagne" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Bruger" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "åbnet kl." + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "klikket på" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "sporings-ID" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "unik ID til sporing af åbninger og klik" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "fejlmeddelelse" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "fejldetaljer, hvis afsendelsen mislykkedes" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "kampagnemodtager" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "kampagnemodtagere" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Alle rettigheder forbeholdes" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" +"Du har modtaget denne e-mail, fordi du har tilmeldt dig vores nyhedsbrev." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Afmeld" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Afmeldingstoken er påkrævet." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Ugyldigt format for afmeldingstoken." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Bruger ikke fundet." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Du er allerede afmeldt." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Du er nu afmeldt vores e-mails." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "Brugerens b64-kodede uuid, som henviste den nye bruger til os." @@ -240,14 +576,14 @@ msgstr "Token er ugyldig!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "De produkter, som denne bruger har set for nylig (maks. 48), i omvendt " "kronologisk rækkefølge." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Grupper" @@ -255,7 +591,8 @@ msgstr "Grupper" msgid "wishlist" msgstr "Ønskeliste" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -266,8 +603,8 @@ msgstr "Attributter kan bruges til at gemme brugerdefinerede data" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" "Sprog er en af {settings.LANGUAGES} med standard {settings.LANGUAGE_CODE}." @@ -365,63 +702,67 @@ msgstr "Status for brugerens abonnement på nyhedsbrev" msgid "activation token" msgstr "Aktiveringstoken" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "afmeldingstoken" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "token til sikker afmelding af kampagner med et enkelt klik" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Egenskaber" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Bruger" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Brugere" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Til anonyme tråde" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Chat-tråd" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Chat-tråde" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "Angiv bruger eller e-mail for anonym tråd." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "modtageren skal være en personalebruger." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Chat-besked" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Chat-beskeder" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Gruppe" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Enestående token" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Udestående tokens" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Sortlistet token" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Sortlistede tokens" @@ -485,8 +826,7 @@ msgstr "Hej %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Vi har modtaget en anmodning om at nulstille din adgangskode. Nulstil " @@ -502,8 +842,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende " -"URL\n" +"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende URL\n" " i din webbrowser:" #: engine/vibes_auth/templates/user_reset_password_email.html:100 @@ -570,8 +909,8 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." @@ -580,16 +919,16 @@ msgstr "" "brugerens data. Denne visning administrerer processen med at håndtere " "tokenbaseret godkendelse, hvor klienter kan få et par JWT-tokens (adgang og " "opdatering) ved hjælp af de angivne legitimationsoplysninger. Den er bygget " -"oven på en basis-tokenvisning og sikrer korrekt hastighedsbegrænsning for at " -"beskytte mod brute force-angreb." +"oven på en basis-tokenvisning og sikrer korrekt hastighedsbegrænsning for at" +" beskytte mod brute force-angreb." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Håndterer opfriskning af tokens til autentificeringsformål. Denne klasse " "bruges til at levere funktionalitet til token-opdatering som en del af et " @@ -603,8 +942,8 @@ msgid "" "Represents a view for verifying JSON Web Tokens (JWT) using specific " "serialization and validation logic. " msgstr "" -"Repræsenterer en visning til verificering af JSON Web Tokens (JWT) ved hjælp " -"af specifik serialiserings- og valideringslogik." +"Repræsenterer en visning til verificering af JSON Web Tokens (JWT) ved hjælp" +" af specifik serialiserings- og valideringslogik." #: engine/vibes_auth/views.py:103 msgid "the token is invalid" @@ -613,17 +952,10 @@ msgstr "Tokenet er ugyldigt" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementering af brugervisningssæt.\n" -"Indeholder et sæt handlinger, der håndterer brugerrelaterede data såsom " -"oprettelse, hentning, opdateringer, sletning og brugerdefinerede handlinger, " -"herunder nulstilling af adgangskode, upload af avatar, kontoaktivering og " -"sammenlægning af nyligt viste elementer. Denne klasse udvider mixins og " -"GenericViewSet til robust API-håndtering." +"Indeholder et sæt handlinger, der håndterer brugerrelaterede data såsom oprettelse, hentning, opdateringer, sletning og brugerdefinerede handlinger, herunder nulstilling af adgangskode, upload af avatar, kontoaktivering og sammenlægning af nyligt viste elementer. Denne klasse udvider mixins og GenericViewSet til robust API-håndtering." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e92f0a3a9848ebc160d4fc3289efbf8df6cc200f GIT binary patch literal 20875 zcmbuG50qS2ecvx&8zXGM#z_jr@MLhj8}E!I*#;wH@UFCyR{x`2NkzDbH#2W`o_FTG z@q2Hy-W4i>I6$ERyMQsoUx`8x>5`0oln>L||(+1kp18q+Z(4J8D z^S$@JH#4i1lAO%Z-S7Kz-~IFZe}DJtJ6B)w0mJWGl$TH*zRZ}PdIr~5>ZvjPtBlzM z-UGf6d^5NJ-VeSM{IB58ftOru%y#f5@OtoW@cH2V;B&x_fmeW^2G#U$fzJiM>YqOe zKAZdRfIkiXIml4VPyF*s=v?1j0bUBe7}Wa!{3-ATQ0?CVb{PL&P~-aIHO6cPzXQG; zROQQoSAds*HBjGg^ocHg%_jqe^%bh{VS z`};t(^9fMn{S+v=e+8UjJWqmC++PE8HUDYwPA~$m1wRSC4E!DNHt@fI)8Mtd znLnb_AAvW5-vu?U7xG8n-3)5}yFt{k<@7&tC$n zy_-Pww*!=19R#Ur?gG`$n?XH)52*1y4A#Ief#TPH1N-0)z~_N)+U(|=f|~DJK*{5~ zL4EfSsCr)mB}d-|MW3I5>i0^Bq5f*1zPlaN`1XM6ZywbAUk|GOn?UjBEO-X|W$-xo zBABfD_kgbemqE4rFsS}M4Qf7*dHh4L$Ni5%)ob&S#$SNa+q0mazYF|%@FD;Fzk`=> z{}-Uz{Xd}O?>W~S^RwV}pyX~2oB&UOs{aTm`kn*n(mV=^AO8`24fuUf{oY6;qQkA= zrQi&B8Mp`3_lH37IRqi0DL~2JgC4&Cs@^w2*^@s3HLo9mn$NRfg4(|dR68#PYv5M! z+2Bb~a<~X$I?Ve($=j#ESA%~5il0|9IgS4%p!8x3sCM^)&jyc!;^RqB^S>L^I8#vb zdN+6(_yDN-4}q719|M08{59|dc+;dC$Gbp{_YqL^`T}?>_ybV$y`Dh|Uj<4J=RnQ- z1jvw08$?vhdqDn~&+|w1{|Ll%neT%d=VeS@^Lj3*{$2*E-Zp=~6SVdbgk`1=YCaEw zqRYeJJHXF?;`7Z2gY3j{Q1g2)crEx4sBt_BGF9`Zpy;>>W;CCH41>?*{+)FG%X;Agv0ZPB__s>5E zia(EolAAS9e0ma8dw&RuPTvF7-d}?Mo^fBk)ydPJY;*eXJO(TIx)pp5*aTI-2TC4R z{PPcho49`j6n#GpLK3qEGG+5WL5=fe7~`Gb1bFC~v;+Pb{eJnC@RsKv$CzuJTM$-_ z`!-PadKakq+y#nXO;GK{p!kr1lDm(9vimRJ?#6j1sPFcJsy`1(j_&gJZvi#lcY6Fd z_+G~I7)VoQFHB)b=05Ns_+?P-UvY<<-y}#?a|}EHJ^)UD{~3G*c=>DH_cc)bX@lzT z?cnX;BcSB$KY`-=)8LE2t6%5FTLUHEuLQ3E4}xm<4WQ7UHSOf&E>Pp>gW~f$LG}ASkS@(fK+)xo zLDl=e;AZgZ8F&fa0%{x)H~_og^TDUU7l8j8lw3V)hvWP6K}5q`3rb#(fY*T`sPFCr z5mEDgP;&CSpy>K-P~-kSsQ!KgN}m27cq4cj!YBG}13wQQ01tsrgO`AZW?j7nQ1m_v zYJ9&0z6|^*_)_o*@GSVppzO;Vce#3fP;_}KsByg;JPLjY)VO{Cs-GW&;`dKL(fD!-y(x<2WeSMGP`(9Av{UG>4@Ej;U{kDI;28u7=0_9h} z2cqicY4Cb*>zr%%IH-Q!4vOBt0*WtR1x2?f!RLVg0~B9=2qLoPQU-lFxD%vFa{!b) zJP4xt=8Iqieiu~#2ll!4THwpMe+#Jbe*#qdp94kr$3V^h>tFzW3%m^cUmkx9UdsK` z;IqL?QGy4+E5UofM?lT{DwI=pWD@*&@O9vJ@B#1|@Ef4`@TcI5z^B3If-gepRquLG z<9rh+yKo<<@jU@bE`A@>{C@yS4u1@4{#PMf>c0-^`7Tg&Jqg|fz75oOUjWtbm%#Uf z-v;a8-G`lB`4A}jd>2%Ie*sQ`*D#qa;54ZAGw>PUKc{H?@1m&wLzMFO&$xIW1<^Ha z%I{NtjSr4}Kf`UCI|IU#0v8ML(uw zex33P%I7JXuYSMj!2T62^b@bd=YVn-04b{z#u-6Z%5ZrM3%nd;^Op?^rqJtuspk^`1w+E-sOs=om33Eop z;G1zjrZS^AoJIXGi$D1r^EOQiMsIee%|VZgP^2?EH7>I& zjMe!raid~Q`Td@S1N(!f|9VfDw7QX4*@l}P2p^>Fph%aZBoEr-+@$@WKgjxY56u=j zP@~xm^E}`J<}$)G=x6DvxD^HML1K9scH?5jHe}l@`w7y1l-Uu(^gMw0h58MXQRz{C z`AS|yy?QWL1dM3F7@-3sZFVi|#CO`fXAmJGVcEJJ3Nr|n9IMww=Iip!Q77@tU-^aqk$q?)<622Gmi zbJgctDyM@&@9SnRu?+-aQDkvrz$>WR3kyWFdUO(j&dyX-2TZt;H>qBB>OQHP15SS` z&DdJ6Z{4!(wxHPwGjs?&Q=KAYyrDVNj}rUmd{NRX0+Erl>#KG z_Jf+j@>vG=)rhwyR7CEWwp9;Dmr6pgpGBHsI;}>8GM--JP{ATb*(A!EYcEVfy0yH3 zO5GJJ?94qzpB!ndAlDk9R9BYwl!O;XALg1oPkR2&n>87Df0!)o?065gTn$P4}6_bdZ)esd@ z*w+P}#m(HzTQ_8m4lVNNwdWZ;l`D#2b=^o)?4Q#6=Q38=N<%n(`cQj0&G4d_;DXASi!h@Z5tdtLC+vsLkhu16 z1_<3(ERn|SVMkh{|6nw@$wsPFl zLZza4IiyzE&j#OVR+aa&F2RgA_Bd&$x<~A_dMQlUJ%0fdV#y0)2VO$K1Z{(Hdf>#* z@-A-3Kd%^PwW15HYlgnw3@>r#D_R0UAE2phQQ zQz4-#7rCCH!ln^+<(y4JL39=^hFL40dQBsH?E=z%{RAH7ZamD%B*e8}yk7T}uh;C2jNrH%IjthpbS4Q7vV%))=-BC+a>lrR}aR zqyuh&x51;_;Mujv!bet@c8P0P8L{^34aITX@EL1NQR)DVu@Y;n0o4=9FLw&riRh33 zk<3bf$P@R7+e~Y8xn|vd#TWv!zO45MhpgrrufJ()rChfKHB{Iynopm$9oOxO)p98~ zb7m?iAG?qJlTlt)wT4dZQ?0Ei3t|ozm{Ig!|}`{TH>O1QDt87R!WfjVxVeDBIP$%zFz@sQwh# zI2Yj8$W`aWO|l?z4;SsnvbSy=ukBwJR~Qk`9TwM407|yyt}0=vTjLSRkl6{b$Tr$A zT0CJNyW^@+@pj|aW#fG97Sa7qifAQ+UIU+rgs_gTTLSt=WyXlegD750Hcwu+;=b<2 zSC_x*>O?S_&DL9?+9H_&Tn9W*2v_#zTmm9!17?Cs6Xz$b%ZPL}TnHQN=;8n^m*LU~ zl}drFr*Ruv&gAv|(+77So!&h=f5xp@$xMU;e8>4UPVP9gbM_1^679;27$WS{^un&D z%aknH*WZ&&u+Ptoycnew@9phLM<=Qghn1@w(sYP~;=A#P4Vyt)qsWb=DpP@6nDLV? z_fz>Dtz_(@y0POW#pY-PIBnyJ6ebu95KpScJ&B3d^Oiws)T9m67`<_Q*wx=g&w?sq zlLFBJzGKp9=-4u@ZnRQxX5L@9u@J~&tL@+1kfb4#=hgs@+2=jUjdD~h-xPk?$a&}> zyy>CFXoM_NEk|M_@AdCS!@1$RB29zkC|s(Zu%b<^BGXE9VQVK^jtY~sPj zC!<_7I1vfFqK`7oH}a^>92&UfV1h(#T3b|jZI=w#4jfRiGHFWXh4VI2zrcj8$H~Rb^2bCRmFf6EgLJ9Jy(8Dm8y462gV=zhHS`KR^*vo_LM$a znF8l7OkS>66$n^SEYZnH-W@EOJXOL*W_ek{x}2rSqEu~je#R&ToZG(xz14N}uqWn}Wa!L^3F8k|Vr($>n2{k~dSo8^c#Ix$eS zB9#`qd_CNCx;v(Kj*w{U{eUjnthWWMdN6 zK3ZuY=fa1!=A>DU^Nv|KpHeWsew1Rjut0vl08y~?uNWm|2oRXc_P<21Gh^E>vC=-aks z+bio^H<1)1G^-uR7volKX0Vvo7Sip(ro)G7M~L0@L2W0FVY}+zTHCU!c@ zLkC{VXD&plEwGN<9?Tq>TbP^Q6U-jmyBir_cyIJ&T_cH6L?hK|vx&B_*`^4o*k8ga4daCeY}-P$g~EV7MB z-`?hTY`Y!ntT%T|B*Er8f~}LcZ!$9^*g7ov2X0?93XVk0juvof)`;|ih{o-WVzUT1 zs@<)2yc$R39)p=E85Ha=k%o&gd@-K~tAk!}xODG}QD^PZOxez*wMW^ENrHnRhFBGq z7D7^^q)xVzKsPVe9xqmLqBiYkSN?u0bthdrwvW^VBH?;5}QGOi0s{}XMABqAe96Yq*90btz(})b@rpD&pdVZ zVaz}gEYWln%vJ-aLx4=ZCc!-Ytqzj4bIlIENYofs6G7LFsA{&M%{>hzhbDe_M3%Ej zu{_Ayx%{(yNHvwP(ZCjwOfb_8rV%a{b|qk!c?mJHe9_tS(0+K>4CXN)N*#+mbkQfu7jh2o@rCyu{^vgFfAEE+K$r z`YL%U87t&h%(pj=jaDBRP_V;q^GZa+CE02WlN5)Jv|b?OAbf?O4eSDPVBclI5$sm7 zh}Nu9B_x5TXg?`6$j&*KP9!jeX4_pmhnzS83I}q^38LsUFNP1nJQ*jq6KqLhg%gVr zHh5PN#SW-8JshRjusU$NBn*tYkP~1_0@){*JSPIfYC$S;WWS8H$D+T3dX1Pt5<)&eT)#U zJ=kuG`|!xD6Lbk=u=c2Zk2bg~s}3+z6V#TnU8Z0=aF+z3UOmjXayx;bu?aFJiDP4B z8z)CATXI**Tv-8Yah)Y0yPsxgK{&wn7NlH|g{fe^(niaL!?2I;hT`KyRw>Z9*ONW+ zYOHM_gp}h4vRtLPhKX^pc8;SRG4__GwA9d7yF_wCO`L{=Y(4YPj#)}2^NNKiRSJ=^ zjkLmSogP+|Nt=k1!;R?L0c}KgZ3oJhEV7@&;R$q!;jChg2yx2x>3SKaBc;~I3^gQ} ztsNjaR+~;FBFO1fV7E_bN~XbWPm5~P;)dOda&~koSbG>=^|Q6d*+XX~!!+mnR(kZM zwK}E1O0TB}*gur77c}BXb_(s4#bKusSzs5vrv#}Clyu6QGc_b0 zZ&)R8zu3_>6)Bx%%_-BY`+{e(i(Qa?r}M=2}TbG+7}x>JIxATEc+dSZL`iM zU;?fFF|`wCvm zrO?V3lNxcZq=A~@Ohg-T3R{9gDJThMwB4>?u^G{{ovIA@#yrl}X^*(8t@j#R?~Y)B z-+5n84>u1hifws#sNsE*jEsGZ-*2;?BZPm=h zl6Gqzt3Thzo>b=BNNd=UN9g5R4wEimNLDT_uSUX0a}c$&nlbVaS@DL|YN(=#zxGc4 zY+gp0blJg%IwLoWwI`jD*A7>E`-;L`Tsji(RW3r3r2T#lohVv`-<;H8qHb&7d&|Vk z5^DIH!i5-w22qC0p(X0NZb~gPM_GYyxW8Z4sKRBeB??zJbLG~)w@A{wvU2D|v%YCm zdX7Xf7G07e(`LgkZ`YvlB5ZUkhlaQDjc7H+v0-Gb1(5llWnqB*vQ@2(!K{x3DO17z zwMP*uYFL#h+Zyo~Ro`lGUz8+rt2hBpmmoW?X}g(NJL=B^NMO=%#2QQ4P7HEc{Dh%* ztU+GF^joK8ooKF@0fJOUzO+_&5}d{`Os&kVbpZ$5VF7ipTi=fy7LaF=?)W1E*zm)1 zwHa%RMUeVE)D$7rt`c7B{h34?Da{h=I&Qjs!}4IRQc=1)EFsXO&>JYR?23yqEmAGgu=IO4>%I#u)}^p=G&E5V`M2y6O;x<*1f?igSkkvWf}_`^z-Z z==w{;E&~UnK*^^-_Cdd;)v(hwGx%9#(Jh=AvWRhFP&o@GYeNY7l~J?lCv0b_Te%!C zb&_bn-|{IYup42d{LAWb*E%kq6JL-Ov$jzqJZKMI*mVWH&&1ubV%NDN8S@6`^_o2;5TA6Swk6H{*0#s)!Fqw6iiT|6O!0-#Siqh-u z%hA>B)ci|bM_D=G8TP!QcAJG0TEEed%bDgni{YE_R9JUgt?RiuC&y% z$1uDIiWSG86BdR8(xa&@39bLcFG0Znt<-GFhDk0oXgS^f*0*f=g_(NZ#PAhQbY`J_!wNK0wwG>P7DBB{+wkcdtBe*P4;@$3yJFTIh;iBHC`hewuKjEQowsSJktG9Eu(@9%L z!mC)*g}~04vW2IU9vh6e^3ue!(hvR7vN0y&7+Z@mjB)8mY+Y7As2oX_v~-k;sMs}Y6CDhQ8Z+9>yedLTkBUJF@b6=2X z5nF*D@#}`|!T5oX8MfeXCY<;O=APl58p zu5edn0K=+@{X@hC>2@)sG+?-yGjjYxi6dsrV9V%ygL?iDh*Hzi0JC3bK%Am=_fEi2wtB1q0AP2_Yj*)czfsoA#B!(e6B-8{>al&+;UBIwhE`2asH3b=mDH<2O z+oVEku!J|0_bmOi+sgE3M(nPG7U1p(i56|j^SHf)%|^!C?1M6n#E5|lmKGzoigNEN zAE3=OE$jQ496zal=S7iEn{vTa`Y6%_#jKZfm$FX$H@Y;F63c!ZC!yC1vn88u zlfG}>@B7I{8pGP*&!1k6~*^h^>M+R-D z{)RmY;=9rf^Pk-OK^E*RF^PW}OxQgPooyizu3QN+t3@G1^DAspOD)avNs`lzW~ zdY>0H1+4+c)JX~T(KdjAE4>Zkuc{@-Dk3o|j&x_VoT-Fi{8gE$lpyW&=Puox zN~O#Zf17f$G&8x9Ns2?wZl9o0Hq}Op_JGZ7q0M-S5d4axHY`InNQRcDY)IJXn2qu_ z9JA3*SSSW6Vl({D0QQhjh=jA11e^IV^0kt&J`jgjknJUfz>L}Mw2)f0R?wwqtfL-gdd|0-c6U_gZa9h2tM5hZuqM^;6L&#R|QK&Nn)*!Q*@680F5qVkG= z44XbAOXmgRG;fbWk_sZy(7@|{;bO_H+yT*1wf~gZhnpsT2Ysw!sfqUCFq2ao*)CdFzna1Y(`Gg==CVE#5A1`BYKJ+bjVu!T zUc?S8V7(5zJFBW2RsS2SvewSxdMUpFOeNEz%|y&C!X$&m5dh~d&2b%($jOtBf24Y{ z%w>!dOjvQ!AtGV`!~=@kMUq^TUy@J0&KyV6nw?esubggqwrCya%fm&RFLJubMNdlJ f(3)Eg4MWoPN0BaI^2_;8B$GDr$9e=c$LallVC^i0 literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.po b/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.po index 426e5312..aa1b817d 100644 --- a/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,125 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Waage" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Bestellung" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Bestellungen" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Persönliche Informationen" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Erlaubnisse" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Wichtige Termine" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Zusätzliche Informationen" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Sie können nicht über Ihren Kopf springen!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Ausgewählte Threads schließen" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Ausgewählte Themen öffnen" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Vorschau" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadaten" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "Vorschau" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "Bildvorschau" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Inhalt" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Dokumentation" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Terminplanung" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistiken" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "Staats" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Empfänger vorbereiten (abonnierte Benutzer)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Die Kampagne „{}“ befindet sich nicht im Entwurfsstatus." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Empfänger für Kampagne „{}“ vorbereiten." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Kampagne jetzt senden" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Die Kampagne '{}' kann nicht gesendet werden (Status: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "" +"Die Kampagne „{}“ hat keine Empfänger. Bereiten Sie zunächst die Empfänger " +"vor." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Kampagne „{}“ gestartet." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Kampagne abbrechen" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "Kampagne(n) abgebrochen." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Authentifizierung" +msgid "Accounting" +msgstr "Buchhaltung" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -193,11 +268,275 @@ msgid "merge client-stored recently viewed products" msgstr "" "Zusammenführen der vom Kunden gespeicherten, zuletzt angesehenen Produkte" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Entwurf" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Geplant" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Senden" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Spät" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Abgesagt" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Ausstehend" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Fehlgeschlagen" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Geöffnet" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Geklickt" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "Name" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "beschreibender Name für das Bild" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "Bild" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "Bilddatei zur Verwendung in E-Mail-Vorlagen" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "anderer Text" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "Alternativtext für Barrierefreiheit" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "E-Mail-Bild" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "E-Mail-Bilder" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "interner Name für die Vorlage" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "slug" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "Eindeutige Kennung für die Vorlage" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "Thema" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "E-Mail-Betreffzeile – unterstützt {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "HTML-Inhalt" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"E-Mail-Textinhalt – unterstützt {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "Klartextinhalt" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "Fallback für Klartext (wird automatisch generiert, wenn leer)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "verfügbare Variablen" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "Dokumentation der verfügbaren Vorlagenvariablen" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "E-Mail-Vorlage" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "E-Mail-Vorlagen" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "Interner Name für die Kampagne" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "Vorlage" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "E-Mail-Vorlage für diese Kampagne" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "Status" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "geplant für" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "" +"Wann soll die Kampagne versendet werden (für manuellen Versand leer lassen)?" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "spät als" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "als die Kampagne tatsächlich verschickt wurde" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "Gesamtzahl der Empfänger" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "Gesendete Anzahl" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "fehlgeschlagene Zählung" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "geöffnete Zählung" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "Klickzahl" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "E-Mail-Kampagne" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "E-Mail-Kampagnen" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "Kampagne" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Benutzer" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "eröffnet am" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "angeklickt" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "Tracking-ID" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "Eindeutige ID zur Nachverfolgung von Öffnungen und Klicks" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "Fehlermeldung" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "Fehlerdetails, wenn der Versand fehlgeschlagen ist" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "Kampagnenempfänger" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "Empfänger der Kampagne" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Alle Rechte vorbehalten" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" +"Sie haben diese E-Mail erhalten, weil Sie unseren Newsletter abonniert " +"haben." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Abmelden" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Ein Abmeldetoken ist erforderlich." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Ungültiges Format des Abmelde-Tokens." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Benutzer nicht gefunden." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Sie sind bereits abgemeldet." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Sie haben sich erfolgreich von unseren E-Mails abgemeldet." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" -"Die b64-kodierte uuid des Benutzers, der den neuen Benutzer an uns verwiesen " -"hat." +"Die b64-kodierte uuid des Benutzers, der den neuen Benutzer an uns verwiesen" +" hat." #: engine/vibes_auth/graphene/mutations.py:68 msgid "password too weak" @@ -244,14 +583,14 @@ msgstr "Token ist ungültig!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Die Produkte, die dieser Benutzer zuletzt angesehen hat (maximal 48), in " "umgekehrter chronologischer Reihenfolge." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Gruppen" @@ -259,7 +598,8 @@ msgstr "Gruppen" msgid "wishlist" msgstr "Wunschzettel" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -271,11 +611,11 @@ msgstr "" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" -"Sprache ist eine der {settings.LANGUAGES} mit Voreinstellung {settings." -"LANGUAGE_CODE}" +"Sprache ist eine der {settings.LANGUAGES} mit Voreinstellung " +"{settings.LANGUAGE_CODE}" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -375,64 +715,68 @@ msgstr "Status des Newsletter-Abonnements des Benutzers" msgid "activation token" msgstr "Aktivierungs-Token" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "Abmeldungs-Token" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "Token für sicheres Abmelden von Kampagnen mit einem Klick" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Attribute" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Benutzer" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Benutzer" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Für anonyme Themen" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Chat-Thread" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Chat-Themen" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "" "Geben Sie einen Benutzer oder eine E-Mail für einen anonymen Thread an." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "Der Beauftragte muss ein Mitarbeiter sein." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Chat-Nachricht" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Chat-Nachrichten" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Gruppe" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Hervorragende Wertmarke" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Ausstehende Wertmarken" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Token auf der schwarzen Liste" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Token auf der schwarzen Liste" @@ -497,8 +841,7 @@ msgstr "Hallo %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Wir haben eine Anfrage erhalten, Ihr Passwort zurückzusetzen. Bitte setzen " @@ -514,8 +857,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die " -"folgende URL und fügen Sie sie in Ihren Browser ein\n" +"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die folgende URL und fügen Sie sie in Ihren Browser ein\n" " in Ihren Webbrowser ein:" #: engine/vibes_auth/templates/user_reset_password_email.html:100 @@ -523,8 +865,8 @@ msgid "" "if you did not send this request, please ignore this\n" " email." msgstr "" -"Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese E-" -"Mail." +"Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese " +"E-Mail." #: engine/vibes_auth/templates/user_reset_password_email.html:102 #, python-format @@ -583,35 +925,35 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" -"Stellt eine Ansicht zum Abrufen eines Paars von Zugangs- und Aktualisierungs-" -"Tokens und der Benutzerdaten dar. Diese Ansicht verwaltet den Prozess der " -"Handhabung der Token-basierten Authentifizierung, bei der Clients ein Paar " -"JWT-Tokens (Zugriffs- und Aktualisierungs-Token) unter Verwendung der " -"bereitgestellten Anmeldeinformationen abrufen können. Sie baut auf einer " -"Basis-Token-Ansicht auf und gewährleistet eine angemessene Ratenbegrenzung " -"zum Schutz vor Brute-Force-Angriffen." +"Stellt eine Ansicht zum Abrufen eines Paars von Zugangs- und " +"Aktualisierungs-Tokens und der Benutzerdaten dar. Diese Ansicht verwaltet " +"den Prozess der Handhabung der Token-basierten Authentifizierung, bei der " +"Clients ein Paar JWT-Tokens (Zugriffs- und Aktualisierungs-Token) unter " +"Verwendung der bereitgestellten Anmeldeinformationen abrufen können. Sie " +"baut auf einer Basis-Token-Ansicht auf und gewährleistet eine angemessene " +"Ratenbegrenzung zum Schutz vor Brute-Force-Angriffen." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Verwaltet die Auffrischung von Token für Authentifizierungszwecke. Diese " -"Klasse wird verwendet, um Funktionen für die Auffrischung von Token als Teil " -"eines Authentifizierungssystems bereitzustellen. Sie stellt sicher, dass " +"Klasse wird verwendet, um Funktionen für die Auffrischung von Token als Teil" +" eines Authentifizierungssystems bereitzustellen. Sie stellt sicher, dass " "Clients ein aktualisiertes Token innerhalb definierter Ratengrenzen " "anfordern können. Die Ansicht verlässt sich auf den zugehörigen Serializer, " -"um die Eingaben für die Token-Aktualisierung zu validieren und entsprechende " -"Ausgaben zu erzeugen." +"um die Eingaben für die Token-Aktualisierung zu validieren und entsprechende" +" Ausgaben zu erzeugen." #: engine/vibes_auth/views.py:83 msgid "" @@ -628,17 +970,10 @@ msgstr "Das Token ist ungültig" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementierung der Benutzeransicht.\n" -"Stellt eine Reihe von Aktionen zur Verfügung, die benutzerbezogene Daten wie " -"Erstellung, Abruf, Aktualisierung, Löschung und benutzerdefinierte Aktionen " -"wie Kennwortrücksetzung, Avatar-Upload, Kontoaktivierung und Zusammenführung " -"kürzlich angesehener Elemente verwalten. Diese Klasse erweitert die Mixins " -"und GenericViewSet für eine robuste API-Behandlung." +"Stellt eine Reihe von Aktionen zur Verfügung, die benutzerbezogene Daten wie Erstellung, Abruf, Aktualisierung, Löschung und benutzerdefinierte Aktionen wie Kennwortrücksetzung, Avatar-Upload, Kontoaktivierung und Zusammenführung kürzlich angesehener Elemente verwalten. Diese Klasse erweitert die Mixins und GenericViewSet für eine robuste API-Behandlung." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..309cbaad0451dfff542fcf097dcef6aa0635f78c GIT binary patch literal 19009 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, 2025. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -17,50 +17,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Balance" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Order" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Orders" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Personal Info" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Permissions" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Important dates" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Additional Info" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "You cannot jump over your head!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Close selected threads" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Open selected threads" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Preview" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadata" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "preview" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "image preview" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Content" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Documentation" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Scheduling" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistics" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "stats" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Prepare recipients (subscribed users)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Campaign '{}' is not in draft status." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Preparing recipients for campaign '{}'." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Send campaign now" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Campaign '{}' cannot be sent (status: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "Campaign '{}' has no recipients. Prepare recipients first." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Started sending campaign '{}'." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Cancel campaign" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} campaign(s) cancelled." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Authentication" +msgid "Accounting" +msgstr "Accounting" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -193,6 +266,267 @@ msgstr "Activation link is invalid or account already activated" msgid "merge client-stored recently viewed products" msgstr "Merge client-stored recently viewed products" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Draft" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Scheduled" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Sending" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Sent" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Cancelled" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Pending" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Failed" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Opened" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Clicked" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "name" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "descriptive name for the image" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "image" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "image file to use in email templates" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "alt text" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "alternative text for accessibility" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "email image" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "email images" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "internal name for the template" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "slug" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "unique identifier for the template" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "subject" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "email subject line - supports {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "HTML content" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "plain text content" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "plain text fallback (auto-generated if empty)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "available variables" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "documentation of available template variables" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "email template" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "email templates" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "internal name for the campaign" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "template" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "email template to use for this campaign" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "status" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "scheduled at" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "when to send the campaign (leave empty for manual send)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "sent at" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "when the campaign was actually sent" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "total recipients" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "sent count" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "failed count" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "opened count" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "clicked count" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "email campaign" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "email campaigns" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "campaign" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "User" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "opened at" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "clicked at" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "tracking ID" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "unique ID for tracking opens and clicks" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "error message" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "error details if sending failed" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "campaign recipient" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "campaign recipients" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "All rights reserved" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "You received this email because you subscribed to our newsletter." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Unsubscribe" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Unsubscribe token is required." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Invalid unsubscribe token format." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "User not found." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "You are already unsubscribed." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "You have been successfully unsubscribed from our emails." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "The user's b64-encoded uuid who referred the new user to us." @@ -242,14 +576,14 @@ msgstr "Token is invalid!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "The products this user has viewed most recently (max 48), in reverse-" "chronological order." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Groups" @@ -257,7 +591,8 @@ msgstr "Groups" msgid "wishlist" msgstr "Wishlist" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -268,11 +603,11 @@ msgstr "Attributes may be used to store custom data" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" -"Language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"Language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -368,63 +703,67 @@ msgstr "User's newsletter subscription status" msgid "activation token" msgstr "Activation token" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "unsubscribe token" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "token for secure one-click unsubscribe from campaigns" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Attributes" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "User" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Users" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "For anonymous threads" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Chat thread" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Chat threads" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "provide user or email for anonymous thread." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "assignee must be a staff user." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Chat message" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Chat messages" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Group" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Outstanding token" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Outstanding tokens" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Blacklisted token" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Blacklisted tokens" @@ -487,8 +826,7 @@ msgstr "Hello %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "We have received a request to reset your password. Please reset your " @@ -572,31 +910,31 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." #: engine/vibes_auth/views.py:83 msgid "" @@ -613,16 +951,10 @@ msgstr "The token is invalid" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2bf3c1914073c8e6a13ff7308845378974423fb9 GIT binary patch literal 19006 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 b-I>Q(qxMNu{r~b{bjLv*jQ0MPPe%U-LLCIw literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po b/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po index 02760fb6..752056d7 100644 --- a/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Balance" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Order" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Orders" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Personal Info" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Permissions" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Important dates" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Additional Info" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "You cannot jump over your head!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Close selected threads" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Open selected threads" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Preview" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadata" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "preview" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "image preview" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Content" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Documentation" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Scheduling" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistics" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "state" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Prepare recipients (subscribed users)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Campaign '{}' is not in draft status." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Preparing recipients for campaign '{}'." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Send campaign now" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Campaign '{}' cannot be sent (status: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "Campaign '{}' has no recipients. Prepare recipients first." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Started sending campaign '{}'." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Cancel campaign" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} campaign(s) cancelled." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Authentication" +msgid "Accounting" +msgstr "Accounting" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -189,6 +262,267 @@ msgstr "Activation link is invalid or account already activated" msgid "merge client-stored recently viewed products" msgstr "Merge client-stored recently viewed products" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Draft" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Scheduled" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Sending" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Late" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Cancelled" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Pending" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Failed" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Opened" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Clicked" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "name" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "descriptive name for the image" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "image" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "image file to use in email templates" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "other text" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "alternative text for accessibility" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "email image" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "email images" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "internal name for the template" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "servants" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "unique identifier for the template" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "subject" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "email subject line - supports {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "HTML content" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "plain text content" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "plain text fallback (auto-generated if empty)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "available variables" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "documentation of available template variables" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "email template" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "email templates" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "internal name for the campaign" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "template" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "email template to use for this campaign" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "status" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "scheduled at" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "when to send the campaign (leave empty for manual send)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "late that" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "when the campaign was actually sent" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "total recipients" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "sent count" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "failed count" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "opened count" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "clicked count" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "email campaign" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "email campaigns" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "campaign" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "User" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "opened at" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "clicked at" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "tracking ID" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "unique ID for tracking opens and clicks" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "error message" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "error details if sending failed" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "campaign recipient" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "campaign recipients" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "All rights reserved" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "You received this email because you subscribed to our newsletter." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Unsubscribe" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Unsubscribe token is required." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Invalid unsubscribe token format." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "User not found." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "You are already unsubscribed." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "You have been successfully unsubscribed from our emails." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "The user's b64-encoded uuid who referred the new user to us." @@ -238,14 +572,14 @@ msgstr "Token is invalid!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "The products this user has viewed most recently (max 48), in reverse-" "chronological order." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Groups" @@ -253,7 +587,8 @@ msgstr "Groups" msgid "wishlist" msgstr "Wishlist" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -264,11 +599,11 @@ msgstr "Attributes may be used to store custom data" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" -"Language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"Language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -364,63 +699,67 @@ msgstr "User's newsletter subscription status" msgid "activation token" msgstr "Activation token" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "unsubscribe token" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "token for secure one-click unsubscribe from campaigns" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Attributes" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "User" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Users" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "For anonymous threads" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Chat thread" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Chat threads" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "provide user or email for anonymous thread." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "assignee must be a staff user." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Chat message" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Chat messages" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Group" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Outstanding token" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Outstanding tokens" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Blacklisted token" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Blacklisted tokens" @@ -483,8 +822,7 @@ msgstr "Hello %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "We have received a request to reset your password. Please reset your " @@ -568,31 +906,31 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." #: engine/vibes_auth/views.py:83 msgid "" @@ -609,16 +947,10 @@ msgstr "The token is invalid" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..529f100ac17c99832ed4232bfeaba21357d91795 GIT binary patch literal 20985 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 iZV{RtX4?3Sr_yg\n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,124 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Saldo" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Pida" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Pedidos" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Información personal" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Permisos" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Fechas importantes" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Información adicional" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "¡No puedes saltar por encima de tu cabeza!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Cerrar los hilos seleccionados" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Abrir los hilos seleccionados" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Vista previa" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadatos" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "vista previa" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "vista previa de la imagen" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Contenido" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Documentación" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Programación" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Estadísticas" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "estatal" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Preparar destinatarios (usuarios suscritos)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "La campaña «{}» no se encuentra en estado de borrador." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Preparando destinatarios para la campaña «{}»." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Enviar campaña ahora" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "No se puede enviar la campaña «{}» (estado: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "" +"La campaña «{}» no tiene destinatarios. Prepare primero los destinatarios." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Se ha iniciado el envío de la campaña «{}»." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Cancelar campaña" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "Campaña(s) cancelada(s)." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Autenticación" +msgid "Accounting" +msgstr "Contabilidad" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -191,6 +265,271 @@ msgstr "El enlace de activación no es válido o la cuenta ya está activada" msgid "merge client-stored recently viewed products" msgstr "Fusionar productos vistos recientemente almacenados por el cliente" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Borrador" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Programado" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Envío" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Tarde" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Cancelado" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Pendiente" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Fallido" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Abierto" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Hacido clic" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "nombre" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "nombre descriptivo de la imagen" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "imagen" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "archivo de imagen para usar en plantillas de correo electrónico" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "otro texto" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "texto alternativo para accesibilidad" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "imagen de correo electrónico" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "imágenes de correo electrónico" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "nombre interno de la plantilla" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "esclavo" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "identificador único para la plantilla" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "asunto" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "Asunto del correo electrónico: compatible con {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "Contenido HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"Contenido del cuerpo del correo electrónico: admite {{ user.first_name }}, " +"{{ user.email }}, {{ project_name }}, {{ unsubscribe_url }}." + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "contenido de texto sin formato" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "texto sin formato de reserva (generado automáticamente si está vacío)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "variables disponibles" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "Documentación de las variables de plantilla disponibles." + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "Plantilla de correo electrónico" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "plantillas de correo electrónico" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "nombre interno de la campaña" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "plantilla" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "Plantilla de correo electrónico que se utilizará para esta campaña." + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "estado" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "programado para" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "Cuándo enviar la campaña (déjelo en blanco para enviarla manualmente)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "tarde que" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "cuando se envió realmente la campaña" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "receptores totales" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "número de envíos" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "recuento fallido" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "recuento abierto" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "recuento de clics" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "campaña de correo electrónico" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "campañas por correo electrónico" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "campaña" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Usuario" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "abierto en" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "hizo clic en" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "ID de seguimiento" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "" +"Identificador único para realizar un seguimiento de las aperturas y los " +"clics." + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "mensaje de error" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "Detalles del error si el envío ha fallado" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "destinatario de la campaña" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "destinatarios de la campaña" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Todos los derechos reservados" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" +"Ha recibido este correo electrónico porque se ha suscrito a nuestro boletín " +"informativo." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Cancelar suscripción" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Se requiere un token de cancelación de suscripción." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Formato de token de cancelación de suscripción no válido." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Usuario no encontrado." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Ya estás dado de baja." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Te hemos dado de baja de nuestros correos electrónicos." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" @@ -241,14 +580,14 @@ msgstr "¡La ficha no es válida!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Los productos que este usuario ha visto más recientemente (máx. 48), en " "orden cronológico inverso." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Grupos" @@ -256,7 +595,8 @@ msgstr "Grupos" msgid "wishlist" msgstr "Lista de deseos" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -267,8 +607,8 @@ msgstr "Los atributos pueden utilizarse para almacenar datos personalizados" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" "El idioma es uno de los {settings.LANGUAGES} con {settings.LANGUAGE_CODE} " "por defecto" @@ -368,63 +708,68 @@ msgstr "Estado de suscripción del usuario al boletín" msgid "activation token" msgstr "Ficha de activación" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "Token para cancelar suscripción" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" +"Token para darse de baja de forma segura con un solo clic de las campañas." + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Atributos" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Usuario" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Usuarios" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Para hilos anónimos" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Hilo de conversación" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Hilos de chat" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "proporcionar usuario o email para hilo anónimo." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "El cesionario debe ser un usuario del personal." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Mensaje de chat" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Mensajes de chat" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Grupo" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Ficha pendiente" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Fichas pendientes" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Ficha en la lista negra" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Fichas en la lista negra" @@ -434,7 +779,8 @@ msgstr "`attributes` debe ser un diccionario" #: engine/vibes_auth/serializers.py:97 msgid "business identificator is required when registering as a business" -msgstr "El identificador de empresa es necesario para registrarse como empresa" +msgstr "" +"El identificador de empresa es necesario para registrarse como empresa" #: engine/vibes_auth/serializers.py:127 #, python-brace-format @@ -487,8 +833,7 @@ msgstr "Hola %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Hemos recibido una solicitud para restablecer su contraseña. Por favor, " @@ -572,14 +917,14 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" -"Representa una vista para obtener un par de tokens de acceso y actualización " -"y los datos del usuario. Esta vista gestiona el proceso de autenticación " +"Representa una vista para obtener un par de tokens de acceso y actualización" +" y los datos del usuario. Esta vista gestiona el proceso de autenticación " "basada en tokens donde los clientes pueden obtener un par de tokens JWT " "(acceso y actualización) utilizando las credenciales proporcionadas. Se " "construye sobre una vista de token base y asegura una limitación de tasa " @@ -587,18 +932,18 @@ msgstr "" #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Maneja la actualización de tokens con fines de autenticación. Esta clase se " "utiliza para proporcionar funcionalidad a las operaciones de actualización " "de tokens como parte de un sistema de autenticación. Garantiza que los " "clientes puedan solicitar un token actualizado dentro de los límites de " -"velocidad definidos. La vista depende del serializador asociado para validar " -"las entradas de actualización de tokens y producir las salidas apropiadas." +"velocidad definidos. La vista depende del serializador asociado para validar" +" las entradas de actualización de tokens y producir las salidas apropiadas." #: engine/vibes_auth/views.py:83 msgid "" @@ -615,18 +960,10 @@ msgstr "El token no es válido" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementación del conjunto de vistas de usuario.\n" -"Proporciona un conjunto de acciones que gestionan los datos relacionados con " -"el usuario, como la creación, recuperación, actualización, eliminación y " -"acciones personalizadas, incluyendo el restablecimiento de la contraseña, la " -"carga de avatares, la activación de cuentas y la fusión de elementos vistos " -"recientemente. Esta clase extiende los mixins y GenericViewSet para un " -"manejo robusto de la API." +"Proporciona un conjunto de acciones que gestionan los datos relacionados con el usuario, como la creación, recuperación, actualización, eliminación y acciones personalizadas, incluyendo el restablecimiento de la contraseña, la carga de avatares, la activación de cuentas y la fusión de elementos vistos recientemente. Esta clase extiende los mixins y GenericViewSet para un manejo robusto de la API." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..582b5dd4dcd0f41a41ecd855c98623798fc8d305 GIT binary patch literal 334 zcmYL@Jx{|h5Qd9j%7_>lJg~u)wgU?0Lp6=tMzWJCO_5+Ti3vuvk;bGsjP&!JYRSt#zG~EFtDriccI4eNrkT9~$sZ7tG^NdGAwE;@6 zY`ay#c}nIRAxOp~C%0U(R7_ct6nwqDN7Xia)o3WS`k+LxY_VYr^n{ph&CvO#cd&s> zCGR_rhoflbY|s|peebYO&|l$lw^hd8km^nOR)@PyIfuCSx>~Q=1Gkl{jcq82UrdMw Ee=3$*MgRZ+ literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po index 95fee93a..f8c18374 100644 --- a/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,49 +16,122 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "" + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "" + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "" + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "" + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "" + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "" + #: engine/vibes_auth/apps.py:8 -msgid "authentication" +msgid "Accounting" msgstr "" #: engine/vibes_auth/choices.py:6 @@ -188,6 +261,265 @@ msgstr "" msgid "merge client-stored recently viewed products" msgstr "" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, " +"{{ project_name }}, {{ unsubscribe_url }}" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "" + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" @@ -242,7 +574,7 @@ msgid "" msgstr "" #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "" @@ -352,63 +684,67 @@ msgstr "" msgid "activation token" msgstr "" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "" diff --git a/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..412f3fc02d6ce59d0846bd072b37a586499ead86 GIT binary patch literal 21446 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,125 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Balance" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Commande" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Commandes" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Informations personnelles" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Permissions" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Important dates" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Informations complémentaires" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Vous ne pouvez pas sauter par-dessus votre tête !" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Fermer les fils sélectionnés" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Ouvrir les fils sélectionnés" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Aperçu" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Métadonnées" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "aperçu" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "aperçu de l'image" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Contenu" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Documentation" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Planification" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistiques" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "étatique" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Préparez les destinataires (utilisateurs abonnés)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "La campagne « {} » n'est pas en statut brouillon." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Préparation des destinataires pour la campagne « {} »." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Envoyer la campagne maintenant" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "La campagne « {} » ne peut pas être envoyée (statut : {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "" +"La campagne « {} » n'a pas de destinataires. Préparez d'abord les " +"destinataires." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Début de l'envoi de la campagne « {} »." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Annuler la campagne" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "Campagne(s) annulée(s)." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Authentification" +msgid "Accounting" +msgstr "Comptabilité" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -194,6 +269,269 @@ msgstr "Le lien d'activation n'est pas valide ou le compte est déjà activé" msgid "merge client-stored recently viewed products" msgstr "Fusionner les produits récemment consultés stockés par le client" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Projet" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Prévu" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Envoi" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Tard" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Annulé" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "En attente" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Échec" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Ouvert" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Clic" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "nom" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "nom descriptif de l'image" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "image" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "fichier image à utiliser dans les modèles d'e-mails" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "autre texte" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "texte alternatif pour l'accessibilité" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "image de courriel" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "images par e-mail" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "nom interne du modèle" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "serviteurs" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "identifiant unique pour le modèle" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "sujet" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "Objet de l'e-mail - prend en charge {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "Contenu HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"Contenu du corps de l'e-mail - prend en charge {{ user.first_name }}, {{ " +"user.email }}, {{ project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "contenu en texte brut" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "texte brut de secours (généré automatiquement s'il est vide)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "variables disponibles" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "documentation des variables de modèle disponibles" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "modèle d'e-mail" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "modèles d'e-mails" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "nom interne de la campagne" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "modèle" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "Modèle d'e-mail à utiliser pour cette campagne" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "statut" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "prévu à" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "Quand envoyer la campagne (laisser vide pour un envoi manuel)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "tard que" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "lorsque la campagne a été effectivement envoyée" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "nombre total de destinataires" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "nombre envoyé" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "nombre d'échecs" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "nombre ouvert" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "nombre de clics" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "campagne par e-mail" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "campagnes par e-mail" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "campagne" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Utilisateur" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "ouvert à" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "cliqué sur" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "identifiant de suivi" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "identifiant unique pour suivre les ouvertures et les clics" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "message d'erreur" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "détails de l'erreur si l'envoi a échoué" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "destinataire de la campagne" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "destinataires de la campagne" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Tous droits réservés" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" +"Vous avez reçu cet e-mail parce que vous vous êtes abonné à notre " +"newsletter." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Se désabonner" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Le jeton de désabonnement est requis." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Format du jeton de désabonnement non valide." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Utilisateur introuvable." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Vous êtes déjà désabonné." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Vous êtes désormais désabonné de nos e-mails." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" @@ -245,14 +583,14 @@ msgstr "Le jeton n'est pas valide !" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" -"Les produits que cet utilisateur a consultés le plus récemment (max 48), par " -"ordre chronologique inverse." +"Les produits que cet utilisateur a consultés le plus récemment (max 48), par" +" ordre chronologique inverse." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Groupes" @@ -260,7 +598,8 @@ msgstr "Groupes" msgid "wishlist" msgstr "Liste de souhaits" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -272,8 +611,8 @@ msgstr "" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" "La langue est l'une des {settings.LANGUAGES} avec la valeur par défaut " "{settings.LANGUAGE_CODE}." @@ -375,65 +714,71 @@ msgstr "Statut de l'abonnement à la lettre d'information de l'utilisateur" msgid "activation token" msgstr "Jeton d'activation" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "jeton de désabonnement" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" +"jeton permettant de se désabonner en toute sécurité d'une campagne en un " +"seul clic" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Attributs" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Utilisateur" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Utilisateurs" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Pour les fils de discussion anonymes" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Fil de discussion" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Fils de discussion" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "" "Indiquer l'utilisateur ou l'adresse électronique pour le fil de discussion " "anonyme." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "L'attributaire doit être un utilisateur du personnel." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Message de chat" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Messages de chat" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Groupe" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Jeton exceptionnel" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Jetons en circulation" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Jeton sur liste noire" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Jetons sur liste noire" @@ -471,7 +816,8 @@ msgstr "Jeton non valide" #: engine/vibes_auth/serializers.py:286 msgid "no user uuid claim present in token" -msgstr "Aucune revendication d'uuid d'utilisateur n'est présente dans le jeton" +msgstr "" +"Aucune revendication d'uuid d'utilisateur n'est présente dans le jeton" #: engine/vibes_auth/serializers.py:288 msgid "user does not exist" @@ -498,8 +844,7 @@ msgstr "Bonjour %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Nous avons reçu une demande de réinitialisation de votre mot de passe. " @@ -516,8 +861,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL " -"suivante\n" +"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL suivante\n" " suivante dans votre navigateur web :" #: engine/vibes_auth/templates/user_reset_password_email.html:100 @@ -549,8 +893,8 @@ msgid "" "thank you for signing up for %(project_name)s. please activate your account\n" " by clicking the button below:" msgstr "" -"Merci de vous être inscrit à %(project_name)s. Veuillez activer votre compte " -"en cliquant sur le bouton ci-dessous :" +"Merci de vous être inscrit à %(project_name)s. Veuillez activer votre compte" +" en cliquant sur le bouton ci-dessous :" #: engine/vibes_auth/templates/user_verification_email.html:96 msgid "" @@ -585,8 +929,8 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." @@ -601,11 +945,11 @@ msgstr "" #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Gère le rafraîchissement des jetons à des fins d'authentification. Cette " "classe est utilisée pour fournir une fonctionnalité pour les opérations de " @@ -620,8 +964,8 @@ msgid "" "Represents a view for verifying JSON Web Tokens (JWT) using specific " "serialization and validation logic. " msgstr "" -"Représente une vue permettant de vérifier les jetons Web JSON (JWT) à l'aide " -"d'une logique de sérialisation et de validation spécifique." +"Représente une vue permettant de vérifier les jetons Web JSON (JWT) à l'aide" +" d'une logique de sérialisation et de validation spécifique." #: engine/vibes_auth/views.py:103 msgid "the token is invalid" @@ -630,18 +974,10 @@ msgstr "Le jeton n'est pas valide" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Mise en œuvre de l'ensemble des vues de l'utilisateur.\n" -"Fournit un ensemble d'actions qui gèrent les données liées à l'utilisateur, " -"telles que la création, la récupération, les mises à jour, la suppression et " -"les actions personnalisées, notamment la réinitialisation du mot de passe, " -"le téléchargement de l'avatar, l'activation du compte et la fusion des " -"éléments récemment consultés. Cette classe étend les mixins et " -"GenericViewSet pour une gestion robuste de l'API." +"Fournit un ensemble d'actions qui gèrent les données liées à l'utilisateur, telles que la création, la récupération, les mises à jour, la suppression et les actions personnalisées, notamment la réinitialisation du mot de passe, le téléchargement de l'avatar, l'activation du compte et la fusion des éléments récemment consultés. Cette classe étend les mixins et GenericViewSet pour une gestion robuste de l'API." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b74dcc46f119fc0ad0cc0ebb60aa3cd5e32b63bf GIT binary patch literal 21834 zcmbuF3v^u9S?_mgo=(!vOT;s=ohNbEPi zEUS)43iNTCdy5oHenhe@J0`ZwBYi*%g|_rkN_z_}T@+@)VwJ+8z0k#lb#J>?FKd-@ zfB$dqbLNa>y8*`D`k%9(-~Qfv&wTaz%Vr&)KcT#lGJl10Klm!1uT!maW3O{=1^5(r z1Nb!92Tp-+0>2LaD0tcR&h>z|gSUcDg0BUqz^lOp@LKRZsHr~&UIYF?sQ)r}CGTGa ze+c{r2r2GgL;Yneu5s6bmxDKfYLCDl1XqEY|9)@;`X2^G*GFFO+)D7P;9Ed-z6y9N zco~=jHGUm`G~ZTGbnFCw7<>%We#XF6;Nj5zNpKDCp9TMv^}YiRf?v4Nxf1nje#Gzl z1yKAu1HvlzGN}1K4Ql<*gWAs*K}dFA0e=?!drOe! zFHm&dz#omf1JwSvfa2c{Q1X2=;JZNa_g6tw#(fghKE4cUy&EE5|3*;r-41HKjiB^u z2S``<)1c;g8dUuUK+!i3=D^U!btp`QlR#5Bh0k!|fLG^zElzg5AC&4-JG4Mwavid&-z7-q? zHSavA_0EIZ&&LD)1vtw4{{z);h(V&i0m^Ql1y%ok@F&5eq5hlTWxRhI)V%)!O8>6D z)w#EUw}8^SZD1F;A5{O7p!jX6PN?nf>(n5p!9GU#C5ns zp!Dq=_+#Lof|BQTY)0Qv7e z#2@wlD-hS^{s|PFSFm~Q>l#q&y%|)$b>V#zX#NpIWNr-9eh!1;%RKmA@K->|`3{sp ze&R7u`}-yEX7DH|Iz9@rRrfcb__zXL6kml7gWAXY^7wl282BFWx&)PBDPKJx?U9ZK*W*8Lz%o~HgBN~(E!di=h&fU^7D;r*$APlKZ4y`bbX z1x|sV1KEOme7)z}bD;Qh0u=p=pyc+6Q2+NJTX5e3-vF*cIX?wG8^Nu-zxn~^P*L{? zxCPt~Vv6pQq5kXO2Hsx_lXif+LA9R(SAw4dweB~;H-X;+Zvtm$lw7_7N*_g>+HV411FizK-rWKF zLDBm@P<(kAlzsjssBt%Es`yTdw?Etuv z_etg3! zJp#TBEP>a8Q=s(nI4FI78PvXiA4FvCtDyAcEf51s-Fh$re;$;cz6ky_*a9W5J293w zgAaod_#`O)JO^t2IZ*4p3|5MK{QS4@eihE;UA*4_Ho;ji0_oQ^?wRPb=@d<3-}@Me()<`1YW<};~k*r>H{U0 zey|JtIZ%3Z7JMuCB~bHx8QdK2WP=LcpG?ipZAw{f#UDGLD730%z>W* zZwLQ3xEj29uXC>gf17d*<^2@#`6wm%{00w)D42{JqI`++qm*$Jx95c zf_NMvuo!*{Og^vS;W3J2n|#E7>1Lkt6O@lrWD}pG+(SXNOt$X;@1#6HL0s-Mr9gQX zMKb>xiaz@&ze4#4Wi4fxayLbv-=(~lBH2ri{u`x6*-F_!d6M!vO7f8|>hs?{xHI4i z$|&XfQ1=Y@ixl~xESqtBoRR|nr2o_`tqB;~(S zPK3Ho1w0G>9;Hb6EM<~%8|8iqYV2O1$VYvQvY%3>WIxYlUY_9jM#>cB)07{lj8SGN z*HMyBBRsqWzK^nbLmr({N4^s|OuBF^XalOT2wOMJDD#Na~T#jm` z;gLo?s>SuVwm%+py_ITZVzk<rp+f3`V1I zy-ng+T(3s;=Ga)Z#)O4pqg1WjKgK$F*ITcbhAVL#jW+9zXdsRXQG24i+gKPK zE6^cYb#QW3R4h~~RqMq9ji`&Bjb^CX-@mQf2XX>J% zQmx)tI<%ybji^+K25W_(hUj4x^{N!(GDLWi!h0FcY#b>xlI?c9)cspyq!t%KH~&mS zxm4VzvE^z#hGFHnC{DJUsiw7BX+XW(R4q0~c_@f=Zj#}efb(j0;DQFSP4RQJV|dNkB2P3Dirnzb>Ohi82waHCi*)awxs2p0;g z(O9jzzcd&}L(PiGvQREHCTt>`Gg&99j>R>j7@^lAnBUO4g-TX?v|fFp-iSx@(Y8he zMNMdg53saYHqlA$%=uI^MnwwA>_!SZh{j6|wiFGZ6JWwyvJz3Nb$-C{|ep1U=o6oOZ zv+mxgI8vx#L)e-6Gz!pLa68B1iv3xxN@_w+c43n;?Oky#=d~nQ8uL{uaoJtKKDtuc z2EAo>hh9>lwr!c{6T2`|&8wdn?{>#y<%!jZ5`|jrIjF%wXjuCgCOT9q2F=fFfLsnH zi>&t|9(1B1{nC)Ah?}U6BCbJJq8HcA+qR9Sl+EmR6DYqEe# zi%= z851Bu(u7Yo18&A>)$|=4XooEcV|*kgAY|PPG-c>{__4l(fG&8ngtl%d(gHy^gHf>- z4@y}PnTZbW4Kzz-ydG|+I%YeJBnm&N_e|PZ;`QWGU|rjVdHS_NgZK~?h6|;N;$$uO z7CE9uqfp$3FX%9wl*w%&KfGt>j_9#?AnNmuzl+@^TS%=iafe<@L|br)VwZHhn2+3^ z;z&H$RPYH;km>d)=BG}eQXRLN(9&>wlpgrM7}r4cfJLWTwe0J1)e73{Qv)J;xm0iT z!wW15UrhqA8h4X*B$hoydn?!w3K#E(?P$?Nxmu7*K&UYRfPk9U^fg6RkzE1P*3tMe;%`Jf8*km>`a1=kP@y_TB|)R z)ErYZtFOk2%dz~AcQxLNChSHY#d6b_GX}TEt2Lr1F1SHw+(n_rG-52T-cQ&-?@0W7 zgaY=x)cuUcH94n?y57;!0kqkyeG4I~Rw_P9#Mr~;eFu6Bovc|{aRVYh6F4T&a7incV64_w^FU(j7tdC=r z6V+x^C@YgAo{dz?gVDgmO82;GnIg1AnRt%K)f%$aC!3>q0L)Pn)uIvR@uNoy`(rX+ zG8sfEA2ZY}!^-SL(NL{AN}54*Q?Oxgnpj*fk(om>vKHgYl3H^*rOG}fpQVsn zdFkn(lJYzuX)sym0^_u+H2PUcaGAhfsti^2j@s+=(r|_H@&ix-Pu?JRpb-vMur>sz z3a@@9yV8K-^MvzWE56vdrXA~D`;l-yp(79+GKnb*NV5#f^0Ix?^U`3+{6wL~s{7H7 z!T=$9e}UALhq~%8VK-1HD>%CWCDFBbxKJCcufA`f_CO!nerp#I=1C$}do)#jN0TX!Lu?Fez+lD&*a;&Qo)zDwZ!?Mb@ps~zi0*qrbhq(y}R+=oPDDL?ALF6imlTMh#V&cU;Q7clRTg^r9pYRUa+JN!tc$)p1Da(du&V zgG55Dr^LpGfN(}m7bkC$2T^#qzVypYEq^16hM=Hb3 zP63Z>*@n~M3IAB`G>ufY7j8}_XS6>=kBwAOtx9urfS8GfaE{I!14C7EV?^db7Ox{) zV6Q)M-*VfJC7)aJWH8#z+PmP|FgF8)4rHJdE?Lco1XR!xW|B%*s`p#Si1pMy2s`}f za1$$+;}V6sN{#BTf8)+gnHubp-S{=^ z^mn1UD9zYpKrBG)==K)cag575ofN#A4^N&J5?Oq;{jEDLX}HPrX80qdgzhOkmafsNG$VS+Lle{+HH+$H5!i#`_dXtv{f@?W+{$163@{RXP#;W za=7HNiwDb3vQl*f5h=W~kK~#!Q#HgM1_;Sf7ZfPyP~`bKUQ$Q`+WjptCYeWGQ3P zkvco}Br#ey1wLH3dU9S>B4DbRpx2XnxjF3WRbAM~EsslC$7|KfuuN@bebVU)xNd)& zfRB7Gby(b0lA_8bi)%WqY8E_>UYF)e`6MzVNvn78!F(?1rs0w$G@3mVeg-J+xQ{kG&Pzq$*km;b-nKAG7iQ? zF4^Q;bGF~?QOKW!l2B3)quOMx^fmpN^plzfTS+rT265rHPh8x#$u%n_E|z&RX{9al zBmQV=B-E3BN$ToDl5Hf_15RvqjZdu+M8Gc$Dm?hZH|qr{Yqm6?MBW))%-@Kg&Lo*8 z81VtpV_)ZuH5^=gRW=lanp)MuxsUHQmk)CO_Ay*ZT3;mBJ|iXv$n3?X^{P7?pB}B< zc+44{94I}J%8LDcJ<|2I+hMG!64v(9fLti>MHE@DZrSbFmfJR%dlUmEX!JyT zHg4sjZ{3=8cjwox;8Kv(EVsQrTpG-6Xb#tNebt_5#jc&X-Q;c>klRFH=u!W>a%P9XlV5?%TL?M_=#8z6T%L zyL&S=+ji$S?%e(W!+eUA>*E~R6K&YNt#8|&tUHde;$wSND)^>}Bs+}~A+R^A`2?OwmawT`qFThp!C)0#PVjo3ibYzFM+{q_eu0-0lu$Jr@umq+(ADY|c|ArqMx3U8 zx^*b2pKZ-Ug>{;t<&d?X&qs{Z_!pwq^BOgsQ&362TZP0Et+UJnwHke_H61b03=c+f zN@dh~i5lwij`pd@NIl;=sosl}+13$lf?duq--*^4o9v|jQnssgs&$lqv#nDYfxd}l z#IjztH6~nO_-UK}IONa3K`PH1c~F+FlI`X$v}#}#Oq^!Mm$b8^wy&eD87P?Mja_HR zP~EI*HJxW6`*~><6CG_=8DEmhMZ~#C-*fGLX;tf3yVA?%rPhpt70>$tfm@mW63`4g zpJub?AoY0K+nE^QgdUEWY!A8ib{vD|BnL5e$%M-^E1fISH^2_w97SBPVwy$8_*pT0 z3PPofUMV4L-a4B0s@1ni!A?M}#EEDQw@hWF=xDdboMP&;5q~t#S)?GvTA(2)*lFWA z>^ozdk|HtgQgqDu<+QH!lD+- z)(%T=WPwtlW3tgX8MJ7cqLyu)eqPxztgQ~llVe7eZRvz*3`Bd+1V_V^tUJR$Z%8Z`{EPM? z4>Je7rgXMw4KfptzTkB3pR{F)5h=f zVt_O4nQi@Y>f1z^Iqq~aZNdCcFxCY~3ce}o;<>|z2Tq90Za)yhBWB2sVu_5)3EzaX zCArt2HfPPNpAdyJtT4SgLT`f8m^Dpi+X-V?K)!aN^?XKGQ~EXX409h-Cu68r6FMI= ztz&q)3&j)+eUar&JZ>25T%balu1)VcxIpwV|p_`#n(LnXI?d2u5Y(ur>sasm} z@H(^U)T>Y(LP!uY6=`FnvFzj&$l@9L%q0Y8WS&s;TO5}2!Ddc-A24t9N~BoC8S@eH zTqcYK#K-=`XDuREv!IR5!YwΞ41eVgw#Xge9&UYBVbNYMEe?rm$%vF5&lHUC1!; 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 p9|D@2F)y3A\n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "מאזניים" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "הזמנה" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "הזמנות" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "מידע אישי" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "הרשאות" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "תאריכים חשובים" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "מידע נוסף" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "אי אפשר לקפוץ מעל הראש!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "סגור את השרשורים הנבחרים" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "פתח את השרשורים הנבחרים" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "תצוגה מקדימה" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "מטא-נתונים" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "תצוגה מקדימה" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "תצוגה מקדימה של תמונה" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "תוכן" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "תיעוד" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "תזמון" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "סטטיסטיקה" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "מדינה" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "הכן את הנמענים (משתמשים מנויים)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "הקמפיין '{}' אינו במצב טיוטה." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "הכנת הנמענים לקמפיין '{}'." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "שלח קמפיין עכשיו" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "לא ניתן לשלוח את הקמפיין '{}' (סטטוס: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "לקמפיין '{}' אין נמענים. הכן תחילה את הנמענים." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "התחלתי לשלוח את הקמפיין '{}'." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "בטל קמפיין" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} קמפיין/קמפיינים בוטלו." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "אימות" +msgid "Accounting" +msgstr "חשבונאות" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -189,6 +262,267 @@ msgstr "קישור ההפעלה אינו תקף או שהחשבון כבר הו msgid "merge client-stored recently viewed products" msgstr "מיזוג מוצרים שנצפו לאחרונה המאוחסנים אצל הלקוח" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "טיוטה" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "מתוכנן" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "שליחה" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "מאוחר" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "בוטל" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "בהמתנה" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "נכשל" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "נפתח" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "לחיצה" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "שם" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "שם תיאורי לתמונה" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "תמונה" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "קובץ תמונה לשימוש בתבניות דוא\"ל" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "טקסט אחר" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "טקסט חלופי לנגישות" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "תמונה בדוא\"ל" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "תמונות דוא\"ל" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "שם פנימי לתבנית" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "משרתים" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "מזהה ייחודי לתבנית" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "נושא" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "שורת הנושא של הדוא\"ל - תומך ב-{{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "תוכן HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"תוכן גוף הדוא\"ל - תומך ב-{{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "תוכן טקסט רגיל" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "טקסט רגיל חלופי (נוצר אוטומטית אם ריק)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "משתנים זמינים" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "תיעוד של משתני תבנית זמינים" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "תבנית דוא\"ל" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "תבניות דוא\"ל" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "שם פנימי לקמפיין" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "תבנית" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "תבנית דוא\"ל לשימוש בקמפיין זה" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "סטטוס" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "מתוכנן ב" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "מתי לשלוח את הקמפיין (השאר ריק לשליחה ידנית)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "מאוחר יותר" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "כאשר הקמפיין נשלח בפועל" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "סך כל הנמענים" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "מספר נשלח" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "ספירה כושלת" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "נפתח ספירה" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "מספר הקליקים" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "קמפיין דוא\"ל" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "קמפיינים בדוא\"ל" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "קמפיין" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "משתמש" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "נפתח ב" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "לחץ על" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "מספר מעקב" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "מזהה ייחודי למעקב אחר פתיחות ולחיצות" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "הודעת שגיאה" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "פרטי השגיאה אם השליחה נכשלה" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "מקבל הקמפיין" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "נמעני הקמפיין" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "כל הזכויות שמורות" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "קיבלת דוא\"ל זה מכיוון שנרשמת לניוזלטר שלנו." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "ביטול מנוי" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "נדרש אסימון ביטול מנוי." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "פורמט אסימון ביטול המנוי אינו חוקי." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "המשתמש לא נמצא." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "ההרשמה שלך כבר בוטלה." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "ההרשמה שלך לדיוור שלנו בוטלה בהצלחה." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "ה-uuid המקודד ב-b64 של המשתמש שהפנה אלינו את המשתמש החדש." @@ -238,12 +572,12 @@ msgstr "האסימון אינו חוקי!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "המוצרים שהמשתמש צפה בהם לאחרונה (מקסימום 48), בסדר כרונולוגי הפוך." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "קבוצות" @@ -251,7 +585,8 @@ msgstr "קבוצות" msgid "wishlist" msgstr "רשימת משאלות" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "אוואטר" @@ -262,8 +597,8 @@ msgstr "ניתן להשתמש בתכונות לאחסון נתונים מותא #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" "השפה היא אחת ה-{settings.LANGUAGES} עם ברירת מחדל {settings.LANGUAGE_CODE}" @@ -297,10 +632,10 @@ msgid "" "verifying accounts. The User model is designed to handle specific use cases " "for enhanced user management." msgstr "" -"מייצג ישות משתמש עם שדות ושיטות מותאמים אישית לפונקציונליות מורחבת. מחלקה זו " -"מרחיבה את המודל AbstractUser ומשלבת תכונות נוספות כגון כניסה מותאמת אישית " -"באמצעות דוא\"ל, שיטות אימות, מצב מנוי, אימות ואחסון תכונות. היא מספקת גם כלי " -"עזר לניהול פריטים שנצפו לאחרונה והפעלה מבוססת אסימון לאימות חשבונות. המודל " +"מייצג ישות משתמש עם שדות ושיטות מותאמים אישית לפונקציונליות מורחבת. מחלקה זו" +" מרחיבה את המודל AbstractUser ומשלבת תכונות נוספות כגון כניסה מותאמת אישית " +"באמצעות דוא\"ל, שיטות אימות, מצב מנוי, אימות ואחסון תכונות. היא מספקת גם כלי" +" עזר לניהול פריטים שנצפו לאחרונה והפעלה מבוססת אסימון לאימות חשבונות. המודל " "User נועד לטפל במקרי שימוש ספציפיים לניהול משתמשים משופר." #: engine/vibes_auth/models.py:53 @@ -359,63 +694,67 @@ msgstr "סטטוס המנוי לניוזלטר של המשתמש" msgid "activation token" msgstr "אסימון הפעלה" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "אסימון ביטול מנוי" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "אסימון לביטול מנוי מאובטח בלחיצה אחת מקמפיינים" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "תכונות" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "משתמש" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "משתמשים" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "לשרשורים אנונימיים" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "שרשור צ'אט" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "שרשורי צ'אט" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "ציין משתמש או דוא\"ל עבור שרשור אנונימי." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "המקבל חייב להיות משתמש צוות." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "הודעת צ'אט" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "הודעות צ'אט" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "קבוצה" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "אסימון יוצא מן הכלל" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "אסימונים מצטיינים" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "אסימון ברשימה השחורה" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "אסימונים ברשימה השחורה" @@ -478,12 +817,11 @@ msgstr "שלום %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" -"קיבלנו בקשה לאיפוס הסיסמה שלך. אנא איפס את הסיסמה שלך על ידי לחיצה על הכפתור " -"שלהלן:" +"קיבלנו בקשה לאיפוס הסיסמה שלך. אנא איפס את הסיסמה שלך על ידי לחיצה על הכפתור" +" שלהלן:" #: engine/vibes_auth/templates/user_reset_password_email.html:95 msgid "reset password" @@ -559,8 +897,8 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." @@ -572,11 +910,11 @@ msgstr "" #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "מטפל ברענון אסימונים למטרות אימות. מחלקה זו משמשת לספק פונקציונליות עבור " "פעולות רענון אסימונים כחלק ממערכת אימות. היא מבטיחה שלקוחות יוכלו לבקש " @@ -598,10 +936,7 @@ msgstr "האסימון אינו חוקי" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "יישום הגדרת תצוגת משתמש. מספק סט פעולות לניהול נתונים הקשורים למשתמש, כגון " "יצירה, אחזור, עדכונים, מחיקה ופעולות מותאמות אישית, כולל איפוס סיסמה, העלאת " diff --git a/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6cc44c8c5901a79fda3b034713704baadc22b52f GIT binary patch literal 358 zcmaivPfvqD5XEcs#L=^dJ$SQ&OOq11{)rSRk`%T<=zWD1F?E+L+eSZ#U(e6taIr^U z^2;PM?_ve(8!Hnd#>%Y8dQsTpxL913~p#sEADE7|Cu1NFi42@TkMaYa2!owXP<!pw zC#*J%#0f75vaE8xCASgJ%P=Y*R#g$>CN12EXZILW?OwDJN+~`VS%-O2g-QIcADd-q z79W4{TmWm(Dtq EUqPc^dH?_b literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po b/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po index 66815307..bff3415f 100644 --- a/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po @@ -1,13 +1,9 @@ -# SCHON GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the SCHON package. -# EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -16,49 +12,122 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "" + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "" + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "" + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "" + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "" + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "" + #: engine/vibes_auth/apps.py:8 -msgid "authentication" +msgid "Accounting" msgstr "" #: engine/vibes_auth/choices.py:6 @@ -188,6 +257,265 @@ msgstr "" msgid "merge client-stored recently viewed products" msgstr "" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, " +"{{ project_name }}, {{ unsubscribe_url }}" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "" + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" @@ -242,7 +570,7 @@ msgid "" msgstr "" #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "" @@ -352,63 +680,67 @@ msgstr "" msgid "activation token" msgstr "" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "" diff --git a/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..582b5dd4dcd0f41a41ecd855c98623798fc8d305 GIT binary patch literal 334 zcmYL@Jx{|h5Qd9j%7_>lJg~u)wgU?0Lp6=tMzWJCO_5+Ti3vuvk;bGsjP&!JYRSt#zG~EFtDriccI4eNrkT9~$sZ7tG^NdGAwE;@6 zY`ay#c}nIRAxOp~C%0U(R7_ct6nwqDN7Xia)o3WS`k+LxY_VYr^n{ph&CvO#cd&s> zCGR_rhoflbY|s|peebYO&|l$lw^hd8km^nOR)@PyIfuCSx>~Q=1Gkl{jcq82UrdMw Ee=3$*MgRZ+ literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po index 95fee93a..f8c18374 100644 --- a/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,49 +16,122 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "" + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "" + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "" + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "" + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "" + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "" + #: engine/vibes_auth/apps.py:8 -msgid "authentication" +msgid "Accounting" msgstr "" #: engine/vibes_auth/choices.py:6 @@ -188,6 +261,265 @@ msgstr "" msgid "merge client-stored recently viewed products" msgstr "" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, " +"{{ project_name }}, {{ unsubscribe_url }}" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "" + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" @@ -242,7 +574,7 @@ msgid "" msgstr "" #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "" @@ -352,63 +684,67 @@ msgstr "" msgid "activation token" msgstr "" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "" diff --git a/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e43d894b241bcde09720a2941f74cecb41a85af4 GIT binary patch literal 19837 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 VWAbhKuAo}4zAL~F1wn1P{|o*&KWhL0 literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po b/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po index b4b5c0dc..c70a924b 100644 --- a/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,124 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Keseimbangan" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Pesan" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Pesanan" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Informasi Pribadi" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Izin" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Tanggal-tanggal penting" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Informasi Tambahan" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Anda tidak bisa melompati kepala Anda!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Menutup utas yang dipilih" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Buka utas yang dipilih" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Pratinjau" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadata" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "pratinjau" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "pratinjau gambar" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Konten" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Dokumentasi" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Penjadwalan" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistik" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "negara" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Siapkan penerima (pengguna yang berlangganan)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Kampanye '{}' tidak dalam status draf." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Mempersiapkan penerima untuk kampanye '{}'." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Kirim kampanye sekarang" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Kampanye '{}' tidak dapat dikirim (status: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "" +"Kampanye '{}' tidak memiliki penerima. Siapkan penerima terlebih dahulu." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Mulai mengirim kampanye '{}'." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Batalkan kampanye" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} kampanye(s) dibatalkan." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Otentikasi" +msgid "Accounting" +msgstr "Akuntansi" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -191,6 +265,267 @@ msgstr "Tautan aktivasi tidak valid atau akun sudah diaktifkan" msgid "merge client-stored recently viewed products" msgstr "Menggabungkan produk yang baru saja dilihat yang disimpan klien" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Rancangan" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Jadwal" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Pengiriman" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Terlambat" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Dibatalkan" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Menunggu" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Gagal" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Dibuka" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Diklik" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "nama" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "Nama deskriptif untuk gambar" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "gambar" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "Berkas gambar yang akan digunakan dalam templat email" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "teks alternatif" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "Teks alternatif untuk aksesibilitas" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "gambar email" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "gambar email" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "Nama internal untuk templat" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "pelayan" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "pengidentifikasi unik untuk templat" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "subjek" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "Baris subjek email - mendukung {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "Konten HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"Isi badan email - mendukung {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "konten teks biasa" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "Teks biasa sebagai cadangan (dibuat secara otomatis jika kosong)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "variabel yang tersedia" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "Dokumentasi variabel template yang tersedia" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "email template" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "templat email" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "Nama internal untuk kampanye" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "templat" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "Template email yang akan digunakan untuk kampanye ini" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "status" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "direncanakan pada" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "Kapan mengirim kampanye (biarkan kosong untuk pengiriman manual)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "terlambat" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "ketika kampanye tersebut benar-benar dikirimkan" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "jumlah penerima" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "jumlah pesan yang dikirim" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "penghitungan yang gagal" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "jumlah yang dibuka" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "jumlah klik" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "kampanye email" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "kampanye email" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "kampanye" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Pengguna" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "dibuka pada" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "diklik pada" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "ID pelacakan" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "ID unik untuk melacak pembukaan dan klik" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "pesan kesalahan" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "Rincian kesalahan jika pengiriman gagal" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "penerima kampanye" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "penerima kampanye" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Semua hak dilindungi undang-undang." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "Anda menerima email ini karena Anda telah berlangganan buletin kami." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Berhenti berlangganan" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Token unsubscribe diperlukan." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Format token unsubscribe tidak valid." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Pengguna tidak ditemukan." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Anda sudah berhenti berlangganan." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Anda telah berhasil unsubscribe dari email kami." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" @@ -241,14 +576,14 @@ msgstr "Token tidak valid!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Produk yang terakhir dilihat pengguna ini (maksimal 48), dalam urutan " "kronologis terbalik." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Grup" @@ -256,7 +591,8 @@ msgstr "Grup" msgid "wishlist" msgstr "Daftar keinginan" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -267,11 +603,11 @@ msgstr "Atribut dapat digunakan untuk menyimpan data khusus" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" -"Bahasa adalah salah satu dari {settings.LANGUAGES} dengan default {settings." -"LANGUAGE_CODE}" +"Bahasa adalah salah satu dari {settings.LANGUAGES} dengan default " +"{settings.LANGUAGE_CODE}" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -368,63 +704,68 @@ msgstr "Status berlangganan buletin pengguna" msgid "activation token" msgstr "Token aktivasi" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "Token unsubscribe" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" +"Token untuk unsubscribe dengan aman hanya dengan satu klik dari kampanye." + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Atribut" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Pengguna" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Pengguna" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Untuk utas anonim" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Utas obrolan" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Utas obrolan" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "menyediakan pengguna atau email untuk utas anonim." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "Penerima tugas haruslah seorang staf pengguna." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Pesan obrolan" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Pesan obrolan" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Kelompok" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Token yang luar biasa" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Token yang beredar" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Token yang masuk daftar hitam" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Token yang masuk daftar hitam" @@ -487,12 +828,11 @@ msgstr "Halo %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" -"Kami telah menerima permintaan untuk mengatur ulang kata sandi Anda. Silakan " -"atur ulang kata sandi Anda dengan mengeklik tombol di bawah ini:" +"Kami telah menerima permintaan untuk mengatur ulang kata sandi Anda. Silakan" +" atur ulang kata sandi Anda dengan mengeklik tombol di bawah ini:" #: engine/vibes_auth/templates/user_reset_password_email.html:95 msgid "reset password" @@ -504,8 +844,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Jika tombol di atas tidak berfungsi, silakan salin dan tempelkan URL " -"berikut\n" +"Jika tombol di atas tidak berfungsi, silakan salin dan tempelkan URL berikut\n" " ke dalam peramban web Anda:" #: engine/vibes_auth/templates/user_reset_password_email.html:100 @@ -573,8 +912,8 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." @@ -588,11 +927,11 @@ msgstr "" #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Menangani penyegaran token untuk tujuan otentikasi. Kelas ini digunakan " "untuk menyediakan fungsionalitas untuk operasi penyegaran token sebagai " @@ -616,17 +955,10 @@ msgstr "Token tidak valid" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementasi set tampilan pengguna.\n" -"Menyediakan serangkaian tindakan yang mengelola data terkait pengguna " -"seperti pembuatan, pengambilan, pembaruan, penghapusan, dan tindakan khusus " -"termasuk pengaturan ulang kata sandi, unggahan avatar, aktivasi akun, dan " -"penggabungan item yang baru dilihat. Kelas ini memperluas mixin dan " -"GenericViewSet untuk penanganan API yang kuat." +"Menyediakan serangkaian tindakan yang mengelola data terkait pengguna seperti pembuatan, pengambilan, pembaruan, penghapusan, dan tindakan khusus termasuk pengaturan ulang kata sandi, unggahan avatar, aktivasi akun, dan penggabungan item yang baru dilihat. Kelas ini memperluas mixin dan GenericViewSet untuk penanganan API yang kuat." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..73ae85d2a68607e978ffd7f8872c7df3d2af5895 GIT binary patch literal 20631 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 nXLi(Pze!jG_ZTy literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po b/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po index 9ad57bdd..e48286a3 100644 --- a/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Equilibrio" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Ordine" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Ordini" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Informazioni personali" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Permessi" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Date importanti" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Ulteriori informazioni" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Non si può saltare sopra la testa!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Chiudere le filettature selezionate" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Aprire le discussioni selezionate" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Anteprima" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadati" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "anteprima" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "anteprima immagine" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Contenuto" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Documentazione" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Pianificazione" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistiche" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "statale" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Preparare i destinatari (utenti iscritti)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "La campagna \"{}\" non è in stato di bozza." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Preparazione dei destinatari per la campagna \"{}\"." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Invia campagna ora" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "La campagna '{}' non può essere inviata (stato: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "La campagna \"{}\" non ha destinatari. Preparare prima i destinatari." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Avviata l'invio della campagna '{}'." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Annulla campagna" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "Campagna/e annullata/e." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Autenticazione" +msgid "Accounting" +msgstr "Contabilità" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -99,8 +172,8 @@ msgid "" "Staff-only actions: list_open, assign, reply, close, ping. Unified event " "payloads are emitted." msgstr "" -"Azioni solo per il personale: list_open, assign, reply, close, ping. Vengono " -"emessi payload di eventi unificati." +"Azioni solo per il personale: list_open, assign, reply, close, ping. Vengono" +" emessi payload di eventi unificati." #: engine/vibes_auth/docs/drf/messaging.py:43 msgid "Per-thread staff channel" @@ -109,7 +182,8 @@ msgstr "Canale del personale per thread" #: engine/vibes_auth/docs/drf/messaging.py:44 msgid "Reply, close, and ping within a specific thread." msgstr "" -"Rispondere, chiudere e inviare ping all'interno di una discussione specifica." +"Rispondere, chiudere e inviare ping all'interno di una discussione " +"specifica." #: engine/vibes_auth/docs/drf/views.py:18 msgid "obtain a token pair" @@ -193,6 +267,269 @@ msgstr "Il link di attivazione non è valido o l'account è già stato attivato. msgid "merge client-stored recently viewed products" msgstr "Unire i prodotti memorizzati dal cliente e visti di recente" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Bozza" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Pianificato" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Invio" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Tardi" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Annullato" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "In sospeso" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Fallito" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Aperto" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Cliccato" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "nome" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "nome descrittivo dell'immagine" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "immagine" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "file immagine da utilizzare nei modelli di email" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "altro testo" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "testo alternativo per l'accessibilità" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "immagine e-mail" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "immagini e-mail" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "nome interno del modello" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "servitori" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "identificatore univoco per il modello" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "oggetto" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "Oggetto dell'e-mail - supporta {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "Contenuto HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"contenuto del corpo dell'e-mail - supporta {{ user.first_name }}, {{ " +"user.email }}, {{ project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "contenuto in testo semplice" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "fallback in testo semplice (generato automaticamente se vuoto)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "variabili disponibili" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "documentazione delle variabili dei modelli disponibili" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "modello di email" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "modelli di email" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "nome interno della campagna" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "modello" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "modello di email da utilizzare per questa campagna" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "stato" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "in programma alle" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "quando inviare la campagna (lasciare vuoto per l'invio manuale)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "tardi che" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "quando la campagna è stata effettivamente inviata" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "destinatari totali" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "numero inviato" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "conteggio fallito" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "conteggio aperto" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "numero di clic" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "campagna e-mail" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "campagne e-mail" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "campagna" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Utente" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "aperto a" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "cliccato su" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "ID di tracciamento" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "ID univoco per tracciare aperture e clic" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "messaggio di errore" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "dettagli dell'errore se l'invio non è andato a buon fine" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "destinatario della campagna" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "destinatari della campagna" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Tutti i diritti riservati" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" +"Hai ricevuto questa e-mail perché ti sei iscritto alla nostra newsletter." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Annulla iscrizione" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "È necessario il token di cancellazione dell'iscrizione." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Formato token di cancellazione non valido." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Utente non trovato." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Ti sei già cancellato." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "" +"La tua iscrizione alla nostra mailing list è stata cancellata con successo." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "L'uuid b64-encoded dell'utente che ci ha segnalato il nuovo utente." @@ -242,14 +579,14 @@ msgstr "Il gettone non è valido!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "I prodotti che questo utente ha visualizzato più di recente (max 48), in " "ordine cronologico inverso." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Gruppi" @@ -257,7 +594,8 @@ msgstr "Gruppi" msgid "wishlist" msgstr "Lista dei desideri" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -269,8 +607,8 @@ msgstr "" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" "La lingua è una delle {settings.LANGUAGES} con il codice predefinito " "{settings.LANGUAGE_CODE}." @@ -306,13 +644,13 @@ msgid "" "for enhanced user management." msgstr "" "Rappresenta un'entità Utente con campi e metodi personalizzati per " -"funzionalità estese. Questa classe estende il modello AbstractUser e integra " -"funzionalità aggiuntive come il login via e-mail personalizzato, i metodi di " -"convalida, lo stato di iscrizione, la verifica e la memorizzazione degli " +"funzionalità estese. Questa classe estende il modello AbstractUser e integra" +" funzionalità aggiuntive come il login via e-mail personalizzato, i metodi " +"di convalida, lo stato di iscrizione, la verifica e la memorizzazione degli " "attributi. Fornisce inoltre utilità per la gestione degli elementi " "visualizzati di recente e l'attivazione basata su token per la verifica " -"degli account. Il modello User è progettato per gestire casi d'uso specifici " -"per una migliore gestione degli utenti." +"degli account. Il modello User è progettato per gestire casi d'uso specifici" +" per una migliore gestione degli utenti." #: engine/vibes_auth/models.py:53 msgid "email" @@ -370,63 +708,67 @@ msgstr "Stato di iscrizione alla newsletter dell'utente" msgid "activation token" msgstr "Token di attivazione" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "Token di cancellazione" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "token per la cancellazione sicura con un solo clic dalle campagne" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Attributi" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Utente" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Utenti" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Per le discussioni anonime" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Filo della chat" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Filo conduttore della chat" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "fornire l'utente o l'e-mail per il thread anonimo." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "L'assegnatario deve essere un utente del personale." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Messaggio di chat" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Messaggi di chat" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Gruppo" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Gettone eccezionale" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Gettoni in sospeso" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Token in lista nera" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Gettoni nella lista nera" @@ -491,8 +833,7 @@ msgstr "Hello %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Abbiamo ricevuto una richiesta di reimpostazione della password. La " @@ -576,8 +917,8 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." @@ -592,17 +933,17 @@ msgstr "" #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Gestisce l'aggiornamento dei token per l'autenticazione. Questa classe è " "utilizzata per fornire funzionalità per le operazioni di aggiornamento dei " "token come parte di un sistema di autenticazione. Garantisce che i client " -"possano richiedere un token aggiornato entro limiti di velocità definiti. La " -"vista si affida al serializzatore associato per convalidare gli input di " +"possano richiedere un token aggiornato entro limiti di velocità definiti. La" +" vista si affida al serializzatore associato per convalidare gli input di " "aggiornamento dei token e produrre output appropriati." #: engine/vibes_auth/views.py:83 @@ -620,18 +961,10 @@ msgstr "Il token non è valido" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementazione del set di viste utente.\n" -"Fornisce un insieme di azioni che gestiscono i dati relativi all'utente, " -"come la creazione, il recupero, gli aggiornamenti, la cancellazione e le " -"azioni personalizzate, tra cui la reimpostazione della password, il " -"caricamento dell'avatar, l'attivazione dell'account e l'unione degli " -"elementi visti di recente. Questa classe estende i mixin e GenericViewSet " -"per una gestione robusta delle API." +"Fornisce un insieme di azioni che gestiscono i dati relativi all'utente, come la creazione, il recupero, gli aggiornamenti, la cancellazione e le azioni personalizzate, tra cui la reimpostazione della password, il caricamento dell'avatar, l'attivazione dell'account e l'unione degli elementi visti di recente. Questa classe estende i mixin e GenericViewSet per una gestione robusta delle API." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1e1967fccc3b6aee8b5cc742f98c4639929178cd GIT binary patch literal 22810 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 literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po index a4cfc7f8..fe4d9564 100644 --- a/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "バランス" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "オーダー" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "受注状況" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "個人情報" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "アクセス許可" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "重要な日程" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "追加情報" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "頭上を飛び越えることはできない!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "選択したスレッドを閉じる" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "選択したスレッドを開く" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "プレビュー" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "メタデータ" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "プレビュー" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "画像プレビュー" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "コンテンツ" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "ドキュメント" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "スケジュール設定" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "統計" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "国家" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "受信者(登録ユーザー)の準備" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "キャンペーン「{}」は下書き状態ではありません。" + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "キャンペーン「{}」の受信者準備中" + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "今すぐキャンペーンを送信" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "キャンペーン '{}' を送信できません(ステータス: {})。" + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "キャンペーン「{}」には受信者がいません。まず受信者を準備してください。" + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "キャンペーン '{}' の送信を開始しました。" + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "キャンペーンをキャンセルする" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "キャンペーンがキャンセルされました。" + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "認証" +msgid "Accounting" +msgstr "会計" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -86,9 +159,7 @@ msgstr "ユーザーメッセージのエントリーポイント" msgid "" "Anonymous or authenticated non-staff users send messages. Also supports " "action=ping." -msgstr "" -"匿名または認証されたスタッフ以外のユーザーがメッセージを送信。action=pingもサ" -"ポートしています。" +msgstr "匿名または認証されたスタッフ以外のユーザーがメッセージを送信。action=pingもサポートしています。" #: engine/vibes_auth/docs/drf/messaging.py:30 msgid "Staff inbox control" @@ -99,8 +170,7 @@ msgid "" "Staff-only actions: list_open, assign, reply, close, ping. Unified event " "payloads are emitted." msgstr "" -"スタッフのみのアクション: list_open、assign、reply、close、ping。統一されたイ" -"ベントペイロードが発行されます。" +"スタッフのみのアクション: list_open、assign、reply、close、ping。統一されたイベントペイロードが発行されます。" #: engine/vibes_auth/docs/drf/messaging.py:43 msgid "Per-thread staff channel" @@ -183,14 +253,273 @@ msgstr "ユーザーアカウントの有効化" #: engine/vibes_auth/docs/drf/viewsets.py:101 msgid "activation link is invalid or account already activated" -msgstr "" -"アクティベーションリンクが無効であるか、アカウントがすでにアクティベーション" -"されています。" +msgstr "アクティベーションリンクが無効であるか、アカウントがすでにアクティベーションされています。" #: engine/vibes_auth/docs/drf/viewsets.py:111 msgid "merge client-stored recently viewed products" msgstr "クライアントが最近閲覧した商品をマージする" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "草案" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "予定済み" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "送信" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "遅く" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "キャンセルされました" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "保留中" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "失敗した" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "開店" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "クリックされた" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "名前" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "画像の説明名" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "画像" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "メールテンプレートで使用する画像ファイル" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "別のテキスト" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "アクセシビリティのための代替テキスト" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "メール画像" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "メール画像" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "テンプレートの内部名" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "slug" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "テンプレート固有識別子" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "件名" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "メール件名 - {{ variables }} をサポートします" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "HTMLコンテンツ" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"メール本文の内容 - {{ user.first_name }}をサポートします、{{ user.email }}をサポートします、{{ " +"project_name }} をサポートします、{{ unsubscribe_url }}をサポートします" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "プレーンテキストコンテンツ" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "プレーンテキストのフォールバック(空の場合自動生成)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "利用可能な変数" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "利用可能なテンプレート変数のドキュメント" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "メールテンプレート" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "メールテンプレート" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "キャンペーンの内部名称" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "テンプレート" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "このキャンペーンで使用するメールテンプレート" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "ステータス" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "予定されている" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "キャンペーン送信日時(手動送信の場合は空欄のまま)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "遅れて" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "キャンペーンが実際に送信されたとき" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "総受取人数" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "送信数" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "失敗したカウント" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "開封済みカウント" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "クリック数" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "メールキャンペーン" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "メールキャンペーン" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "キャンペーン" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "ユーザー" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "開店" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "クリックされた" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "追跡ID" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "開封とクリックを追跡するための固有ID" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "エラーメッセージ" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "送信に失敗した場合のエラー詳細" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "キャンペーンの受取人" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "キャンペーンの受信者" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "無断複写・転載を禁じます" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "このメールは、ニュースレターに登録されたためにお送りしています。" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "配信停止" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "購読解除トークンが必要です。" + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "無効な登録解除トークン形式です。" + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "ユーザーが見つかりません。" + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "あなたは既に購読を解除されています。" + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "メール配信の登録解除が完了しました。" + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "新規ユーザーを紹介したユーザーのb64エンコードされたuuid。" @@ -240,12 +569,12 @@ msgstr "トークンが無効です!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "このユーザーが最近閲覧した商品(最大48件)を逆順に表示します。" #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "グループ" @@ -253,7 +582,8 @@ msgstr "グループ" msgid "wishlist" msgstr "ウィッシュリスト" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "アバター" @@ -264,11 +594,9 @@ msgstr "属性は、カスタム・データを保存するために使用する #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" -msgstr "" -"言語は {settings.LANGUAGES} のいずれかで、デフォルトは {settings." -"LANGUAGE_CODE} です。" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" +msgstr "言語は {settings.LANGUAGES} のいずれかで、デフォルトは {settings.LANGUAGE_CODE} です。" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -300,12 +628,8 @@ msgid "" "verifying accounts. The User model is designed to handle specific use cases " "for enhanced user management." msgstr "" -"拡張機能のためにカスタマイズされたフィールドとメソッドを持つ User エンティ" -"ティを表します。このクラスは AbstractUser モデルを拡張し、カスタムメールログ" -"イン、検証メソッド、購読ステータス、検証、属性保存などの追加機能を統合してい" -"ます。また、最近閲覧したアイテムを管理するユーティリティや、アカウントを検証" -"するためのトークンベースのアクティベーションも提供します。Userモデルは、ユー" -"ザ管理を強化するための特定のユースケースを扱うように設計されています。" +"拡張機能のためにカスタマイズされたフィールドとメソッドを持つ User エンティティを表します。このクラスは AbstractUser " +"モデルを拡張し、カスタムメールログイン、検証メソッド、購読ステータス、検証、属性保存などの追加機能を統合しています。また、最近閲覧したアイテムを管理するユーティリティや、アカウントを検証するためのトークンベースのアクティベーションも提供します。Userモデルは、ユーザ管理を強化するための特定のユースケースを扱うように設計されています。" #: engine/vibes_auth/models.py:53 msgid "email" @@ -363,63 +687,67 @@ msgstr "ユーザーのニュースレター購読状況" msgid "activation token" msgstr "アクティベーション・トークン" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "登録解除トークン" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "キャンペーンからの安全なワンクリック解除用トークン" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "属性" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "ユーザー" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "ユーザー" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "匿名スレッドの場合" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "チャットスレッド" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "チャットスレッド" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "匿名スレッドの場合は、ユーザーまたは電子メールを入力してください。" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "担当者はスタッフユーザーでなければならない。" -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "チャットメッセージ" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "チャットメッセージ" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "グループ" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "卓越したトークン" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "トークン残高" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "ブラックリストトークン" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "ブラックリストに載ったトークン" @@ -482,12 +810,9 @@ msgstr "こんにちは %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" -msgstr "" -"パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワー" -"ドをリセットしてください:" +msgstr "パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワードをリセットしてください:" #: engine/vibes_auth/templates/user_reset_password_email.html:95 msgid "reset password" @@ -499,8 +824,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けて" -"ください。\n" +"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けてください。\n" " をウェブブラウザに貼り付けてください:" #: engine/vibes_auth/templates/user_reset_password_email.html:100 @@ -531,9 +855,7 @@ msgstr "アカウントの有効化" msgid "" "thank you for signing up for %(project_name)s. please activate your account\n" " by clicking the button below:" -msgstr "" -"%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックし" -"てアカウントを有効にしてください:" +msgstr "%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックしてアカウントを有効にしてください:" #: engine/vibes_auth/templates/user_verification_email.html:96 msgid "" @@ -562,45 +884,36 @@ msgstr "{settings.PROJECT_NAME}| パスワードのリセット" msgid "" "invalid phone number format. the number must be entered in the format: " "\"+999999999\". up to 15 digits allowed." -msgstr "" -"電話番号の形式が無効です。電話番号は次の形式で入力してください:" -"\"+999999999\".15桁まで入力可能です。" +msgstr "電話番号の形式が無効です。電話番号は次の形式で入力してください:\"+999999999\".15桁まで入力可能です。" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" -"アクセストークンとリフレッシュトークンのペアとユーザーデータを取得するための" -"ビューを表します。このビューは、クライアントが提供されたクレデンシャルを使用" -"して JWT トークンのペア(アクセスとリフレッシュ)を取得できる、トークン・ベー" -"スの認証を処理するプロセスを管理します。ベースのトークンビューの上に構築さ" -"れ、ブルートフォース攻撃から保護するために適切なレート制限を保証します。" +"アクセストークンとリフレッシュトークンのペアとユーザーデータを取得するためのビューを表します。このビューは、クライアントが提供されたクレデンシャルを使用して" +" JWT " +"トークンのペア(アクセスとリフレッシュ)を取得できる、トークン・ベースの認証を処理するプロセスを管理します。ベースのトークンビューの上に構築され、ブルートフォース攻撃から保護するために適切なレート制限を保証します。" #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" -"認証目的のトークンのリフレッシュを処理します。このクラスは、認証システムの一" -"部としてトークンのリフレッシュ操作の機能を提供するために使用されます。このク" -"ラスは、クライアントがリフレッシュされたトークンを定義されたレート制限内で要" -"求できるようにします。ビューは、トークン更新の入力を検証して適切な出力を行う" -"ために、 関連するシリアライザに依存します。" +"認証目的のトークンのリフレッシュを処理します。このクラスは、認証システムの一部としてトークンのリフレッシュ操作の機能を提供するために使用されます。このクラスは、クライアントがリフレッシュされたトークンを定義されたレート制限内で要求できるようにします。ビューは、トークン更新の入力を検証して適切な出力を行うために、" +" 関連するシリアライザに依存します。" #: engine/vibes_auth/views.py:83 msgid "" "Represents a view for verifying JSON Web Tokens (JWT) using specific " "serialization and validation logic. " -msgstr "" -"特定のシリアライズと検証ロジックを使用して JSON ウェブトークン (JWT) を検証す" -"るビューを表します。" +msgstr "特定のシリアライズと検証ロジックを使用して JSON ウェブトークン (JWT) を検証するビューを表します。" #: engine/vibes_auth/views.py:103 msgid "the token is invalid" @@ -609,16 +922,10 @@ msgstr "トークンが無効" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "ユーザービューセットの実装。\n" -"作成、取得、更新、削除、およびパスワードリセット、アバターアップロード、アカ" -"ウントの有効化、最近見たアイテムのマージなどのカスタムアクションなど、ユーザ" -"関連のデータを管理するアクションのセットを提供します。このクラスは、堅牢なAPI" -"ハンドリングのためにミキシンとGenericViewSetを拡張します。" +"作成、取得、更新、削除、およびパスワードリセット、アバターアップロード、アカウントの有効化、最近見たアイテムのマージなどのカスタムアクションなど、ユーザ関連のデータを管理するアクションのセットを提供します。このクラスは、堅牢なAPIハンドリングのためにミキシンとGenericViewSetを拡張します。" #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6cc44c8c5901a79fda3b034713704baadc22b52f GIT binary patch literal 358 zcmaivPfvqD5XEcs#L=^dJ$SQ&OOq11{)rSRk`%T<=zWD1F?E+L+eSZ#U(e6taIr^U z^2;PM?_ve(8!Hnd#>%Y8dQsTpxL913~p#sEADE7|Cu1NFi42@TkMaYa2!owXP<!pw zC#*J%#0f75vaE8xCASgJ%P=Y*R#g$>CN12EXZILW?OwDJN+~`VS%-O2g-QIcADd-q z79W4{TmWm(Dtq EUqPc^dH?_b literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po b/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po index 66815307..bff3415f 100644 --- a/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po @@ -1,13 +1,9 @@ -# SCHON GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the SCHON package. -# EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -16,49 +12,122 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "" + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "" + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "" + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "" + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "" + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "" + #: engine/vibes_auth/apps.py:8 -msgid "authentication" +msgid "Accounting" msgstr "" #: engine/vibes_auth/choices.py:6 @@ -188,6 +257,265 @@ msgstr "" msgid "merge client-stored recently viewed products" msgstr "" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, " +"{{ project_name }}, {{ unsubscribe_url }}" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "" + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "" + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" @@ -242,7 +570,7 @@ msgid "" msgstr "" #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "" @@ -352,63 +680,67 @@ msgstr "" msgid "activation token" msgstr "" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "" diff --git a/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c6cbcf535cf63add18e427ddace77cccbc5a0831 GIT binary patch literal 20823 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 literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po index cf371272..ac457079 100644 --- a/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "잔액" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "주문" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "주문" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "개인 정보" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "권한" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "중요한 날짜" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "추가 정보" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "머리 위로 점프할 수 없습니다!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "선택한 스레드 닫기" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "선택한 스레드 열기" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "미리 보기" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "메타데이터" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "미리보기" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "이미지 미리보기" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "콘텐츠" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "문서화" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "일정 관리" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "통계" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "국가" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "수신자(구독자) 준비" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "캠페인 '{}'은 초안 상태가 아닙니다." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "캠페인 '{}'의 수신자 준비 중" + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "캠페인 지금 보내기" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "캠페인 '{}'을(를) 보낼 수 없습니다 (상태: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "캠페인 '{}'에는 수신자가 없습니다. 먼저 수신자를 준비하십시오." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "캠페인 '{}' 발송 시작." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "캠페인 취소" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} 캠페인(들)이 취소되었습니다." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "인증" +msgid "Accounting" +msgstr "회계" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -86,8 +159,7 @@ msgstr "사용자 메시지 진입점" msgid "" "Anonymous or authenticated non-staff users send messages. Also supports " "action=ping." -msgstr "" -"익명 또는 인증된 비직원 사용자가 메시지를 보냅니다. action=ping도 지원합니다." +msgstr "익명 또는 인증된 비직원 사용자가 메시지를 보냅니다. action=ping도 지원합니다." #: engine/vibes_auth/docs/drf/messaging.py:30 msgid "Staff inbox control" @@ -97,9 +169,7 @@ msgstr "직원 받은 편지함 제어" msgid "" "Staff-only actions: list_open, assign, reply, close, ping. Unified event " "payloads are emitted." -msgstr "" -"직원 전용 작업: 목록 열기, 할당하기, 답장하기, 닫기, 핑하기. 통합 이벤트 페이" -"로드가 전송됩니다." +msgstr "직원 전용 작업: 목록 열기, 할당하기, 답장하기, 닫기, 핑하기. 통합 이벤트 페이로드가 전송됩니다." #: engine/vibes_auth/docs/drf/messaging.py:43 msgid "Per-thread staff channel" @@ -188,6 +258,267 @@ msgstr "활성화 링크가 유효하지 않거나 계정이 이미 활성화되 msgid "merge client-stored recently viewed products" msgstr "클라이언트가 저장한 최근 본 제품 병합" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "초안" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "예정된" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "발송" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "늦게" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "취소됨" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "보류 중" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "실패함" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "개장" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "클릭됨" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "이름" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "이미지에 대한 설명적 이름" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "이미지" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "이메일 템플릿에 사용할 이미지 파일" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "다른 텍스트" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "접근성을 위한 대체 텍스트" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "이메일 이미지" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "이메일 이미지" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "템플릿의 내부 명칭" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "하인" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "템플릿의 고유 식별자" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "주제" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "이메일 제목 - {{ variables }} 지원" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "HTML 콘텐츠" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"이메일 본문 내용 - {{ user.first_name }}, {{ user.email }}, {{ project_name }}, {{ " +"unsubscribe_url }} 지원" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "일반 텍스트 콘텐츠" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "일반 텍스트 대체 (비어 있을 경우 자동 생성)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "사용 가능한 변수" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "사용 가능한 템플릿 변수에 대한 문서화" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "이메일 템플릿" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "이메일 템플릿" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "캠페인의 내부 명칭" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "템플릿" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "이 캠페인에 사용할 이메일 템플릿" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "상태" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "예정된" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "캠페인 발송 시기 (수동 발송 시 비워 두기)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "늦게" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "캠페인이 실제로 발송되었을 때" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "총 수신자" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "발송 횟수" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "실패한 카운트" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "열린 카운트" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "클릭 수" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "이메일 캠페인" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "이메일 캠페인" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "캠페인" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "사용자" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "개장" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "클릭했다" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "추적 ID" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "열람 및 클릭 추적을 위한 고유 ID" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "오류 메시지" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "전송 실패 시 오류 세부 정보" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "캠페인 수신자" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "캠페인 수신자" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "모든 권리 보유" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "귀하께서는 저희 뉴스레터를 구독하셨기 때문에 이 이메일을 받으셨습니다." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "구독 취소" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "구독 취소 토큰이 필요합니다." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "구독 취소 토큰 형식이 잘못되었습니다." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "사용자를 찾을 수 없습니다." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "이미 구독이 취소되었습니다." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "당사 이메일 수신 거부 요청이 성공적으로 처리되었습니다." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "새 사용자를 추천한 사용자의 b64로 인코딩된 UUID입니다." @@ -237,12 +568,12 @@ msgstr "토큰이 유효하지 않습니다!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "이 사용자가 가장 최근에 본 제품(최대 48개)을 시간 역순으로 표시합니다." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "그룹" @@ -250,7 +581,8 @@ msgstr "그룹" msgid "wishlist" msgstr "위시리스트" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "아바타" @@ -261,11 +593,9 @@ msgstr "속성을 사용하여 사용자 지정 데이터를 저장할 수 있 #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" -msgstr "" -"언어는 {settings.LANGUAGES} 중 하나이며 기본값은 {settings.LANGUAGE_CODE}입니" -"다." +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" +msgstr "언어는 {settings.LANGUAGES} 중 하나이며 기본값은 {settings.LANGUAGE_CODE}입니다." #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -297,12 +627,10 @@ msgid "" "verifying accounts. The User model is designed to handle specific use cases " "for enhanced user management." msgstr "" -"확장 기능을 위한 사용자 정의 필드 및 메서드가 있는 사용자 엔티티를 나타냅니" -"다. 이 클래스는 AbstractUser 모델을 확장하여 사용자 지정 이메일 로그인, 유효" -"성 검사 방법, 가입 상태, 인증 및 속성 저장과 같은 추가 기능을 통합합니다. 또" -"한 최근에 본 항목을 관리하기 위한 유틸리티와 계정 인증을 위한 토큰 기반 활성" -"화도 제공합니다. 사용자 모델은 향상된 사용자 관리를 위한 특정 사용 사례를 처" -"리하도록 설계되었습니다." +"확장 기능을 위한 사용자 정의 필드 및 메서드가 있는 사용자 엔티티를 나타냅니다. 이 클래스는 AbstractUser 모델을 확장하여 " +"사용자 지정 이메일 로그인, 유효성 검사 방법, 가입 상태, 인증 및 속성 저장과 같은 추가 기능을 통합합니다. 또한 최근에 본 항목을 " +"관리하기 위한 유틸리티와 계정 인증을 위한 토큰 기반 활성화도 제공합니다. 사용자 모델은 향상된 사용자 관리를 위한 특정 사용 사례를 " +"처리하도록 설계되었습니다." #: engine/vibes_auth/models.py:53 msgid "email" @@ -360,63 +688,67 @@ msgstr "사용자의 뉴스레터 구독 상태" msgid "activation token" msgstr "활성화 토큰" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "구독 취소 토큰" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "캠페인에서 안전하게 원클릭으로 구독 취소할 수 있는 토큰" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "속성" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "사용자" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "사용자" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "익명 스레드의 경우" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "채팅 스레드" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "채팅 스레드" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "익명 스레드에 사용자 또는 이메일을 입력합니다." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "양수인은 직원 사용자여야 합니다." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "채팅 메시지" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "채팅 메시지" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "그룹" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "뛰어난 토큰" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "우수 토큰" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "블랙리스트에 오른 토큰" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "블랙리스트에 오른 토큰" @@ -479,12 +811,9 @@ msgstr "안녕하세요 %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" -msgstr "" -"비밀번호 재설정 요청을 받았습니다. 아래 버튼을 클릭하여 비밀번호를 재설정하세" -"요:" +msgstr "비밀번호 재설정 요청을 받았습니다. 아래 버튼을 클릭하여 비밀번호를 재설정하세요:" #: engine/vibes_auth/templates/user_reset_password_email.html:95 msgid "reset password" @@ -527,9 +856,7 @@ msgstr "계정 활성화" msgid "" "thank you for signing up for %(project_name)s. please activate your account\n" " by clicking the button below:" -msgstr "" -"가입해 주셔서 감사합니다 %(project_name)s. 아래 버튼을 클릭하여 계정을 활성화" -"하세요:" +msgstr "가입해 주셔서 감사합니다 %(project_name)s. 아래 버튼을 클릭하여 계정을 활성화하세요:" #: engine/vibes_auth/templates/user_verification_email.html:96 msgid "" @@ -559,44 +886,38 @@ msgid "" "invalid phone number format. the number must be entered in the format: " "\"+999999999\". up to 15 digits allowed." msgstr "" -"잘못된 전화번호 형식입니다. 번호는 다음과 같은 형식으로 입력해야 합니다: " -"\"+999999999\". 최대 15자리까지 입력할 수 있습니다." +"잘못된 전화번호 형식입니다. 번호는 다음과 같은 형식으로 입력해야 합니다: \"+999999999\". 최대 15자리까지 입력할 수 " +"있습니다." #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" -"액세스 및 새로 고침 토큰과 사용자 데이터 쌍을 가져오기 위한 보기를 나타냅니" -"다. 이 보기는 클라이언트가 제공된 자격 증명을 사용하여 한 쌍의 JWT 토큰(액세" -"스 및 새로 고침)을 얻을 수 있는 토큰 기반 인증을 처리하는 프로세스를 관리합니" -"다. 기본 토큰 보기 위에 구축되며 무차별 암호 대입 공격으로부터 보호하기 위해 " -"적절한 속도 제한을 보장합니다." +"액세스 및 새로 고침 토큰과 사용자 데이터 쌍을 가져오기 위한 보기를 나타냅니다. 이 보기는 클라이언트가 제공된 자격 증명을 사용하여 한" +" 쌍의 JWT 토큰(액세스 및 새로 고침)을 얻을 수 있는 토큰 기반 인증을 처리하는 프로세스를 관리합니다. 기본 토큰 보기 위에 " +"구축되며 무차별 암호 대입 공격으로부터 보호하기 위해 적절한 속도 제한을 보장합니다." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" -"인증 목적으로 토큰을 새로 고치는 작업을 처리합니다. 이 클래스는 인증 시스템" -"의 일부로 토큰 새로 고침 작업을 위한 기능을 제공하는 데 사용됩니다. 클라이언" -"트가 정의된 속도 제한 내에서 토큰 새로 고침을 요청할 수 있도록 합니다. 이 보" -"기는 연결된 직렬화기에 의존하여 토큰 새로 고침 입력의 유효성을 검사하고 적절" -"한 출력을 생성합니다." +"인증 목적으로 토큰을 새로 고치는 작업을 처리합니다. 이 클래스는 인증 시스템의 일부로 토큰 새로 고침 작업을 위한 기능을 제공하는 데 " +"사용됩니다. 클라이언트가 정의된 속도 제한 내에서 토큰 새로 고침을 요청할 수 있도록 합니다. 이 보기는 연결된 직렬화기에 의존하여 토큰" +" 새로 고침 입력의 유효성을 검사하고 적절한 출력을 생성합니다." #: engine/vibes_auth/views.py:83 msgid "" "Represents a view for verifying JSON Web Tokens (JWT) using specific " "serialization and validation logic. " -msgstr "" -"특정 직렬화 및 유효성 검사 로직을 사용하여 JSON 웹 토큰(JWT)을 확인하기 위한 " -"보기를 나타냅니다." +msgstr "특정 직렬화 및 유효성 검사 로직을 사용하여 JSON 웹 토큰(JWT)을 확인하기 위한 보기를 나타냅니다." #: engine/vibes_auth/views.py:103 msgid "the token is invalid" @@ -605,16 +926,10 @@ msgstr "토큰이 유효하지 않습니다." #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "사용자 보기 세트 구현.\n" -"생성, 검색, 업데이트, 삭제, 비밀번호 재설정, 아바타 업로드, 계정 활성화, 최근" -"에 본 항목 병합 등의 사용자 관련 데이터와 사용자 지정 작업을 관리하는 일련의 " -"작업을 제공합니다. 이 클래스는 강력한 API 처리를 위해 믹스인 및 " -"GenericViewSet을 확장합니다." +"생성, 검색, 업데이트, 삭제, 비밀번호 재설정, 아바타 업로드, 계정 활성화, 최근에 본 항목 병합 등의 사용자 관련 데이터와 사용자 지정 작업을 관리하는 일련의 작업을 제공합니다. 이 클래스는 강력한 API 처리를 위해 믹스인 및 GenericViewSet을 확장합니다." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..93104f6db0273e1cde85a4262fda43ed0256d8db GIT binary patch literal 20191 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 qvH6lGHSBF6faDyn(HnSl?-Tgl$oY|BB literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po b/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po index 18c7e1d6..e6a9cd34 100644 --- a/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Saldo" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Bestel" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Bestellingen" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Persoonlijke info" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Rechten" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Belangrijke data" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Extra info" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Je kunt niet over je hoofd springen!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Geselecteerde threads sluiten" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Geselecteerde draden openen" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Voorbeeld" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadata" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "voorvertoning" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "afbeeldingsvoorbeeld" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Inhoud" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Documentatie" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Planning" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistieken" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "staten" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Ontvangers voorbereiden (aangemelde gebruikers)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Campagne '{}' bevindt zich niet in conceptstatus." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Ontvangers voorbereiden op campagne '{}'." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Campagne nu verzenden" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Campagne '{}' kan niet worden verzonden (status: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "Campagne '{}' heeft geen ontvangers. Bereid eerst de ontvangers voor." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Campagne '{}' gestart." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Campagne annuleren" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} campagne(s) geannuleerd." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Authenticatie" +msgid "Accounting" +msgstr "Boekhouding" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -191,6 +264,271 @@ msgstr "Activeringslink is ongeldig of account is al geactiveerd" msgid "merge client-stored recently viewed products" msgstr "Laatst bekeken producten samenvoegen" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Ontwerp" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Gepland" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Verzenden" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Laat" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Geannuleerd" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "In afwachting" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Mislukt" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Geopend" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Geklikt" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "naam" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "beschrijvende naam voor de afbeelding" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "afbeelding" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "afbeeldingsbestand voor gebruik in e-mailsjablonen" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "ander tekst" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "alternatieve tekst voor toegankelijkheid" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "e-mailafbeelding" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "e-mailafbeeldingen" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "interne naam voor het sjabloon" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "slug" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "unieke identificatiecode voor de sjabloon" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "onderwerp" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "onderwerpregel van e-mail - ondersteunt {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "HTML-inhoud" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"inhoud van e-mailbericht - ondersteunt {{ user.first_name }}, {{ user.email " +"}}, {{ project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "platte tekstinhoud" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "fallback voor platte tekst (automatisch gegenereerd indien leeg)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "beschikbare variabelen" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "documentatie van beschikbare sjabloonvariabelen" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "e-mail sjabloon" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "e-mailsjablonen" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "interne naam voor de campagne" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "sjabloon" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "E-mailsjabloon voor deze campagne" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "status" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "gepland om" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "" +"wanneer de campagne moet worden verzonden (laat leeg voor handmatige " +"verzending)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "laat dat" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "wanneer de campagne daadwerkelijk werd verstuurd" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "totaal aantal ontvangers" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "aantal verzonden berichten" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "mislukte telling" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "geopende telling" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "aantal klikken" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "e-mailcampagne" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "e-mailcampagnes" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "campagne" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Gebruiker" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "geopend om" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "aangeklikt op" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "tracking-ID" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "unieke ID voor het bijhouden van opens en clicks" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "foutmelding" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "foutdetails als verzenden mislukt is" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "campagneontvanger" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "ontvangers van de campagne" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Alle rechten voorbehouden" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" +"Je hebt deze e-mail ontvangen omdat je je hebt aangemeld voor onze " +"nieuwsbrief." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Afmelden" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Afmeldtoken is vereist." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Ongeldig formaat van het afmeldtoken." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Gebruiker niet gevonden." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Je bent al uitgeschreven." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Je bent nu uitgeschreven voor onze e-mails." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" @@ -242,14 +580,14 @@ msgstr "Token is invalid!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "De producten die deze gebruiker het laatst heeft bekeken (max 48), in " "omgekeerd-chronologische volgorde." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Groepen" @@ -257,7 +595,8 @@ msgstr "Groepen" msgid "wishlist" msgstr "Verlanglijst" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -268,11 +607,11 @@ msgstr "Attributen kunnen worden gebruikt om aangepaste gegevens op te slaan" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" -"Taal is een van de {settings.LANGUAGES} met standaard {settings." -"LANGUAGE_CODE}" +"Taal is een van de {settings.LANGUAGES} met standaard " +"{settings.LANGUAGE_CODE}" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -370,63 +709,67 @@ msgstr "Inschrijvingsstatus nieuwsbrief gebruiker" msgid "activation token" msgstr "Activeringstoken" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "afmeldtoken" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "token voor veilig uitschrijven uit campagnes met één klik" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Attributen" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Gebruiker" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Gebruikers" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Voor anonieme threads" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Draadje chatten" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Gespreksonderwerpen" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "gebruiker of e-mail opgeven voor anonieme thread." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "De toegewezen gebruiker moet een personeelsgebruiker zijn." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Chatbericht" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Chatberichten" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Groep" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Uitstekende penning" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Uitstaande tokens" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Token op zwarte lijst" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Tokens op de zwarte lijst" @@ -489,12 +832,11 @@ msgstr "Hallo %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" -"We hebben een verzoek ontvangen om je wachtwoord opnieuw in te stellen. Klik " -"op de knop hieronder om je wachtwoord opnieuw in te stellen:" +"We hebben een verzoek ontvangen om je wachtwoord opnieuw in te stellen. Klik" +" op de knop hieronder om je wachtwoord opnieuw in te stellen:" #: engine/vibes_auth/templates/user_reset_password_email.html:95 msgid "reset password" @@ -538,8 +880,8 @@ msgid "" "thank you for signing up for %(project_name)s. please activate your account\n" " by clicking the button below:" msgstr "" -"Bedankt voor het aanmelden bij %(project_name)s. Activeer je account door op " -"de onderstaande knop te klikken:" +"Bedankt voor het aanmelden bij %(project_name)s. Activeer je account door op" +" de onderstaande knop te klikken:" #: engine/vibes_auth/templates/user_verification_email.html:96 msgid "" @@ -574,8 +916,8 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." @@ -584,16 +926,16 @@ msgstr "" "verversingstokens en gebruikersgegevens. Deze weergave beheert het proces " "van het afhandelen van authenticatie op basis van tokens, waarbij clients " "een paar JWT-tokens kunnen krijgen (toegang en verversen) met behulp van " -"verstrekte referenties. Het is gebouwd bovenop een basis token view en zorgt " -"voor een goede rate limiting om te beschermen tegen brute force aanvallen." +"verstrekte referenties. Het is gebouwd bovenop een basis token view en zorgt" +" voor een goede rate limiting om te beschermen tegen brute force aanvallen." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Ververst tokens voor authenticatiedoeleinden. Deze klasse wordt gebruikt om " "functionaliteit te bieden voor het verversen van tokens als onderdeel van " @@ -617,17 +959,10 @@ msgstr "Het token is ongeldig" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementatie van gebruikersviewset.\n" -"Biedt een set acties voor het beheren van gebruikersgerelateerde gegevens " -"zoals aanmaken, opvragen, bijwerken, verwijderen en aangepaste acties zoals " -"wachtwoord opnieuw instellen, avatar uploaden, account activeren en onlangs " -"bekeken items samenvoegen. Deze klasse breidt de mixins en GenericViewSet " -"uit voor robuuste API afhandeling." +"Biedt een set acties voor het beheren van gebruikersgerelateerde gegevens zoals aanmaken, opvragen, bijwerken, verwijderen en aangepaste acties zoals wachtwoord opnieuw instellen, avatar uploaden, account activeren en onlangs bekeken items samenvoegen. Deze klasse breidt de mixins en GenericViewSet uit voor robuuste API afhandeling." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a243b75244f7916bfb48dfa431d64fe2aeaf4163 GIT binary patch literal 19564 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 BCLI6( literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po b/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po index cc1ce7a1..fe07290e 100644 --- a/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Balanse" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Bestilling" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Bestillinger" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Personlig informasjon" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Tillatelser" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Viktige datoer" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Ytterligere informasjon" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Du kan ikke hoppe over hodet!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Lukk utvalgte tråder" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Åpne utvalgte tråder" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Forhåndsvisning" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadata" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "forhåndsvisning" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "bildeforhåndsvisning" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Innhold" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Dokumentasjon" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Planlegging" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistikk" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "stats" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Forbered mottakere (abonnenter)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Kampanjen '{}' er ikke i utkaststatus." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Forbereder mottakere for kampanjen '{}'." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Send kampanje nå" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Kampanjen '{}' kan ikke sendes (status: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "Kampanjen '{}' har ingen mottakere. Forbered mottakere først." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Begynte å sende kampanjen '{}'." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Avbryt kampanje" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "Kampanje(r) avlyst." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Autentisering" +msgid "Accounting" +msgstr "Regnskap" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -87,8 +160,8 @@ msgid "" "Anonymous or authenticated non-staff users send messages. Also supports " "action=ping." msgstr "" -"Anonyme eller autentiserte ikke-ansatte brukere kan sende meldinger. Støtter " -"også action=ping." +"Anonyme eller autentiserte ikke-ansatte brukere kan sende meldinger. Støtter" +" også action=ping." #: engine/vibes_auth/docs/drf/messaging.py:30 msgid "Staff inbox control" @@ -99,8 +172,8 @@ msgid "" "Staff-only actions: list_open, assign, reply, close, ping. Unified event " "payloads are emitted." msgstr "" -"Kun personalhandlinger: list_open, assign, reply, close, ping. Unified event " -"payloads sendes ut." +"Kun personalhandlinger: list_open, assign, reply, close, ping. Unified event" +" payloads sendes ut." #: engine/vibes_auth/docs/drf/messaging.py:43 msgid "Per-thread staff channel" @@ -191,6 +264,268 @@ msgstr "Aktiveringslenken er ugyldig eller kontoen er allerede aktivert" msgid "merge client-stored recently viewed products" msgstr "Slå sammen nylig viste produkter lagret hos kunden" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Utkast" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Planlagt" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Sending" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Sent" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Avlyst" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Venter" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Mislykket" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Åpnet" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Klikket" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "navn" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "beskrivende navn for bildet" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "bilde" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "bildefil som skal brukes i e-postmaler" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "annen tekst" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "alternativ tekst for tilgjengelighet" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "e-postbilde" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "e-postbilder" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "internt navn for malen" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "tjenere" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "unik identifikator for malen" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "emne" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "e-postens emnelinje - støtter {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "HTML-innhold" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"e-postinnhold - støtter {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "ren tekstinnhold" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "ren tekst som reserve (genereres automatisk hvis tom)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "tilgjengelige variabler" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "dokumentasjon av tilgjengelige malvariabler" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "e-postmal" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "e-postmaler" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "internt navn for kampanjen" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "mal" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "E-postmal som skal brukes til denne kampanjen" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "status" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "planlagt til" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "når kampanjen skal sendes (la feltet stå tomt for manuell sending)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "sent at" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "når kampanjen faktisk ble sendt" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "totalt antall mottakere" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "sendt antall" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "mislykket telling" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "åpnet telling" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "antall klikk" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "e-postkampanje" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "e-postkampanjer" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "kampanje" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Bruker" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "åpnet kl." + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "klikk på" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "sporings-ID" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "unik ID for sporing av åpninger og klikk" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "feilmelding" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "feildetaljer hvis sending mislyktes" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "kampanjemottaker" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "kampanjemottakere" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Alle rettigheter forbeholdt" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" +"Du har mottatt denne e-posten fordi du har abonnert på vårt nyhetsbrev." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Avmeld" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Avmeldingstoken er påkrevd." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Ugyldig format for avmeldingstoken." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Bruker ikke funnet." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Du er allerede meldt av." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Du har nå meldt deg av våre e-poster." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "Brukerens b64-kodede uuid som henviste den nye brukeren til oss." @@ -240,14 +575,14 @@ msgstr "Tokenet er ugyldig!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Produktene som denne brukeren har sett på sist (maks. 48), i omvendt " "kronologisk rekkefølge." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Grupper" @@ -255,7 +590,8 @@ msgstr "Grupper" msgid "wishlist" msgstr "Ønskeliste" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -266,8 +602,8 @@ msgstr "Attributter kan brukes til å lagre egendefinerte data" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" "Språket er en av {settings.LANGUAGES} med standard {settings.LANGUAGE_CODE}." @@ -365,63 +701,67 @@ msgstr "Status for brukerens abonnement på nyhetsbrev" msgid "activation token" msgstr "Aktiveringstoken" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "avmeldingstoken" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "token for sikker avmelding fra kampanjer med ett klikk" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Egenskaper" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Bruker" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Brukere" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "For anonyme tråder" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Chat-tråd" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Chat-tråder" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "oppgi bruker eller e-post for anonym tråd." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "mottakeren må være en personalbruker." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Chat-melding" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Chat-meldinger" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Gruppe" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Enestående symbol" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Outstanding tokens" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Svartelistet token" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Svartelistede tokens" @@ -485,8 +825,7 @@ msgstr "Hallo %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Vi har mottatt en forespørsel om å tilbakestille passordet ditt. Vennligst " @@ -570,26 +909,26 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" -"Representerer en visning for å hente et par tilgangs- og oppdateringstokener " -"og brukerdata. Denne visningen administrerer prosessen med å håndtere " -"tokenbasert autentisering, der klienter kan hente et par JWT-tokens (tilgang " -"og oppdatering) ved hjelp av oppgitt legitimasjon. Den er bygget på toppen " -"av en grunnleggende token-visning og sørger for riktig hastighetsbegrensning " -"for å beskytte mot brute force-angrep." +"Representerer en visning for å hente et par tilgangs- og oppdateringstokener" +" og brukerdata. Denne visningen administrerer prosessen med å håndtere " +"tokenbasert autentisering, der klienter kan hente et par JWT-tokens (tilgang" +" og oppdatering) ved hjelp av oppgitt legitimasjon. Den er bygget på toppen " +"av en grunnleggende token-visning og sørger for riktig hastighetsbegrensning" +" for å beskytte mot brute force-angrep." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Håndterer oppdatering av tokens for autentiseringsformål. Denne klassen " "brukes til å tilby funksjonalitet for tokenoppdatering som en del av et " @@ -603,8 +942,8 @@ msgid "" "Represents a view for verifying JSON Web Tokens (JWT) using specific " "serialization and validation logic. " msgstr "" -"Representerer en visning for verifisering av JSON Web Tokens (JWT) ved hjelp " -"av spesifikk serialiserings- og valideringslogikk." +"Representerer en visning for verifisering av JSON Web Tokens (JWT) ved hjelp" +" av spesifikk serialiserings- og valideringslogikk." #: engine/vibes_auth/views.py:103 msgid "the token is invalid" @@ -613,17 +952,10 @@ msgstr "Tokenet er ugyldig" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementering av brukervisningssett.\n" -"Tilbyr et sett med handlinger som håndterer brukerrelaterte data som " -"oppretting, henting, oppdateringer, sletting og egendefinerte handlinger, " -"inkludert tilbakestilling av passord, opplasting av avatar, kontoaktivering " -"og sammenslåing av nylig viste elementer. Denne klassen utvider mixins og " -"GenericViewSet for robust API-håndtering." +"Tilbyr et sett med handlinger som håndterer brukerrelaterte data som oppretting, henting, oppdateringer, sletting og egendefinerte handlinger, inkludert tilbakestilling av passord, opplasting av avatar, kontoaktivering og sammenslåing av nylig viste elementer. Denne klassen utvider mixins og GenericViewSet for robust API-håndtering." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1a1ffd688090ea05e8d920e981017994c26bf763 GIT binary patch literal 20544 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 literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po b/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po index cfcb98a4..881c4059 100644 --- a/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Równowaga" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Zamówienie" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Zamówienia" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Informacje osobiste" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Uprawnienia" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Ważne daty" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Dodatkowe informacje" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Nie możesz skakać na główkę!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Zamykanie wybranych wątków" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Otwieranie wybranych wątków" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Podgląd" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadane" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "podgląd" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "podgląd obrazu" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Treść" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Dokumentacja" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Planowanie" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statystyki" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "państwowy" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Przygotuj odbiorców (zarejestrowanych użytkowników)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Kampania „{}” nie ma statusu wersji roboczej." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Przygotowanie odbiorców do kampanii „{}”." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Wyślij kampanię teraz" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Nie można wysłać kampanii „{}” (status: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "Kampania „{}” nie ma odbiorców. Najpierw przygotuj odbiorców." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Rozpoczęto wysyłanie kampanii „{}”." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Anuluj kampanię" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} kampania(-e) anulowana(-e)." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Uwierzytelnianie" +msgid "Accounting" +msgstr "Księgowość" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -116,7 +189,8 @@ msgstr "Uzyskanie pary tokenów" #: engine/vibes_auth/docs/drf/views.py:19 msgid "obtain a token pair (refresh and access) for authentication." -msgstr "Uzyskanie pary tokenów (odświeżenie i dostęp) w celu uwierzytelnienia." +msgstr "" +"Uzyskanie pary tokenów (odświeżenie i dostęp) w celu uwierzytelnienia." #: engine/vibes_auth/docs/drf/views.py:41 msgid "refresh a token pair" @@ -191,6 +265,270 @@ msgstr "Link aktywacyjny jest nieprawidłowy lub konto zostało już aktywowane. msgid "merge client-stored recently viewed products" msgstr "Scalanie ostatnio oglądanych produktów przechowywanych przez klienta" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Projekt" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Zaplanowane" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Wysyłanie" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Późno" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Anulowane" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "W toku" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Niepowodzenie" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Otwarte" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Kliknięto" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "nazwa" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "opisowa nazwa obrazu" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "obraz" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "plik obrazu do wykorzystania w szablonach wiadomości e-mail" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "inny tekst" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "tekst alternatywny dla dostępności" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "obraz e-maila" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "obrazy e-mailowe" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "wewnętrzna nazwa szablonu" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "słuch" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "unikalny identyfikator szablonu" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "temat" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "Temat wiadomości e-mail – obsługuje {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "Treść HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"treść wiadomości e-mail – obsługuje {{ user.first_name }}, {{ user.email }}," +" {{ project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "treść tekstowa" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "" +"rezerwa tekstu zwykłego (generowana automatycznie, jeśli pole jest puste)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "dostępne zmienne" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "dokumentacja dostępnych zmiennych szablonu" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "szablon wiadomości e-mail" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "szablony wiadomości e-mail" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "wewnętrzna nazwa kampanii" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "szablon" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "szablon wiadomości e-mail do wykorzystania w tej kampanii" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "status" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "zaplanowane na" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "kiedy wysłać kampanię (pozostaw puste pole, aby wysłać ręcznie)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "późno, że" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "kiedy kampania została faktycznie wysłana" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "łączna liczba odbiorców" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "liczba wysłanych" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "nieudana próba" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "liczba otwartych" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "liczba kliknięć" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "kampania e-mailowa" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "kampanie e-mailowe" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "kampania" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Użytkownik" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "otwarty w" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "kliknięto w" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "identyfikator śledzenia" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "unikalny identyfikator do śledzenia otwarć i kliknięć" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "komunikat o błędzie" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "szczegóły błędu, jeśli wysyłanie nie powiodło się" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "odbiorca kampanii" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "odbiorcy kampanii" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Wszelkie prawa zastrzeżone" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" +"Otrzymałeś tę wiadomość e-mail, ponieważ zapisałeś się do naszego " +"newslettera." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Wypisz się" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Wymagany jest token rezygnacji z subskrypcji." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Nieprawidłowy format tokenu rezygnacji z subskrypcji." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Nie znaleziono użytkownika." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Już się wypisałeś." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Zostałeś pomyślnie wypisany z naszej listy mailingowej." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" @@ -242,14 +580,14 @@ msgstr "Token jest nieprawidłowy!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Produkty ostatnio przeglądane przez tego użytkownika (maks. 48), w " "kolejności odwrotnej do chronologicznej." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Grupy" @@ -257,7 +595,8 @@ msgstr "Grupy" msgid "wishlist" msgstr "Lista życzeń" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Awatar" @@ -268,11 +607,11 @@ msgstr "Atrybuty mogą być używane do przechowywania niestandardowych danych" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" -"Język jest jednym z {settings.LANGUAGES} z domyślnym {settings." -"LANGUAGE_CODE}." +"Język jest jednym z {settings.LANGUAGES} z domyślnym " +"{settings.LANGUAGE_CODE}." #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -369,63 +708,68 @@ msgstr "Status subskrypcji newslettera użytkownika" msgid "activation token" msgstr "Token aktywacyjny" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "token rezygnacji z subskrypcji" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" +"token umożliwiający bezpieczne wypisanie się z kampanii jednym kliknięciem" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Atrybuty" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Użytkownik" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Użytkownicy" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Dla wątków anonimowych" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Wątek czatu" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Wątki czatu" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "Podaj użytkownika lub adres e-mail dla anonimowego wątku." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "cesjonariusz musi być użytkownikiem personelu." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Wiadomość na czacie" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Wiadomości czatu" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Grupa" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Wyjątkowy token" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Zaległe tokeny" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Token na czarnej liście" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Tokeny znajdujące się na czarnej liście" @@ -488,8 +832,7 @@ msgstr "Witaj %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Otrzymaliśmy prośbę o zresetowanie hasła. Zresetuj hasło, klikając poniższy " @@ -568,19 +911,19 @@ msgid "" "invalid phone number format. the number must be entered in the format: " "\"+999999999\". up to 15 digits allowed." msgstr "" -"Nieprawidłowy format numeru telefonu. Numer musi być wprowadzony w formacie: " -"\"+999999999\". Dozwolone do 15 cyfr." +"Nieprawidłowy format numeru telefonu. Numer musi być wprowadzony w formacie:" +" \"+999999999\". Dozwolone do 15 cyfr." #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" -"Reprezentuje widok pobierania pary tokenów dostępu i odświeżania oraz danych " -"użytkownika. Ten widok zarządza procesem obsługi uwierzytelniania opartego " +"Reprezentuje widok pobierania pary tokenów dostępu i odświeżania oraz danych" +" użytkownika. Ten widok zarządza procesem obsługi uwierzytelniania opartego " "na tokenach, w którym klienci mogą uzyskać parę tokenów JWT (dostęp i " "odświeżanie) przy użyciu dostarczonych poświadczeń. Jest on zbudowany w " "oparciu o podstawowy widok tokenu i zapewnia odpowiednie ograniczenie " @@ -588,11 +931,11 @@ msgstr "" #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Obsługuje odświeżanie tokenów do celów uwierzytelniania. Klasa ta służy do " "zapewnienia funkcjonalności dla operacji odświeżania tokenów w ramach " @@ -616,17 +959,10 @@ msgstr "Token jest nieprawidłowy" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementacja zestawu widoków użytkownika.\n" -"Zapewnia zestaw akcji, które zarządzają danymi związanymi z użytkownikiem, " -"takimi jak tworzenie, pobieranie, aktualizacje, usuwanie i niestandardowe " -"akcje, w tym resetowanie hasła, przesyłanie awatara, aktywacja konta i " -"scalanie ostatnio przeglądanych elementów. Ta klasa rozszerza mixiny i " -"GenericViewSet dla solidnej obsługi API." +"Zapewnia zestaw akcji, które zarządzają danymi związanymi z użytkownikiem, takimi jak tworzenie, pobieranie, aktualizacje, usuwanie i niestandardowe akcje, w tym resetowanie hasła, przesyłanie awatara, aktywacja konta i scalanie ostatnio przeglądanych elementów. Ta klasa rozszerza mixiny i GenericViewSet dla solidnej obsługi API." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7c7c2835abf2e0bf8e569249cb33341b3d0231cb GIT binary patch literal 20424 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 literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po index e687c987..598b4a87 100644 --- a/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,124 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Equilíbrio" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Pedido" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Pedidos" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Informações pessoais" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Permissões" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Datas importantes" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Informações adicionais" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Você não pode pular sobre sua cabeça!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Fechar as linhas selecionadas" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Abrir linhas selecionadas" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Pré-visualização" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadados" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "visualização" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "visualização da imagem" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Conteúdo" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Documentação" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Agendamento" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Estatísticas" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "estatista" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Prepare os destinatários (usuários inscritos)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "A campanha '{}' não está em estado de rascunho." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Preparando destinatários para a campanha '{}'." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Enviar campanha agora" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "A campanha '{}' não pode ser enviada (status: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "" +"A campanha '{}' não tem destinatários. Prepare primeiro os destinatários." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Iniciada a campanha \"{}\"." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Cancelar campanha" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "Campanha(s) cancelada(s)." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Autenticação" +msgid "Accounting" +msgstr "Contabilidade" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -190,6 +264,267 @@ msgstr "O link de ativação é inválido ou a conta já está ativada" msgid "merge client-stored recently viewed products" msgstr "Mesclar produtos recentemente visualizados armazenados pelo cliente" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Rascunho" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Programado" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Envio" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Tarde" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Cancelado" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Pendente" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Falha" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Inaugurado" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Clicado" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "nome" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "nome descritivo para a imagem" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "imagem" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "arquivo de imagem a ser usado em modelos de e-mail" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "outro texto" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "texto alternativo para acessibilidade" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "imagem de e-mail" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "imagens de e-mail" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "nome interno do modelo" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "servos" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "identificador único para o modelo" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "assunto" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "assunto do e-mail - suporta {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "Conteúdo HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"conteúdo do corpo do e-mail - suporta {{ user.first_name }}, {{ user.email " +"}}, {{ project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "conteúdo em texto simples" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "texto simples alternativo (gerado automaticamente se estiver vazio)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "variáveis disponíveis" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "documentação das variáveis de modelo disponíveis" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "modelo de e-mail" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "modelos de e-mail" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "nome interno da campanha" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "modelo" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "modelo de e-mail a ser usado para esta campanha" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "status" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "programado para" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "quando enviar a campanha (deixe em branco para envio manual)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "tarde que" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "quando a campanha foi realmente enviada" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "total de destinatários" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "contagem enviada" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "contagem falhada" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "contagem aberta" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "contagem de cliques" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "campanha por e-mail" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "campanhas por e-mail" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "campanha" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Usuário" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "inaugurado em" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "clicou em" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "ID de rastreamento" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "ID exclusivo para rastrear aberturas e cliques" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "mensagem de erro" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "detalhes do erro se o envio falhou" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "destinatário da campanha" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "destinatários da campanha" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Todos os direitos reservados" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "Você recebeu este e-mail porque se inscreveu em nossa newsletter." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Cancelar inscrição" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "É necessário um token de cancelamento de inscrição." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Formato inválido do token de cancelamento de inscrição." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Usuário não encontrado." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Você já está cancelado." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Você foi excluído com sucesso de nossa lista de e-mails." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "O uuid codificado em b64 do usuário que nos indicou o novo usuário." @@ -239,14 +574,14 @@ msgstr "O token é inválido!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" -"Os produtos que esse usuário visualizou mais recentemente (máximo de 48), em " -"ordem cronológica inversa." +"Os produtos que esse usuário visualizou mais recentemente (máximo de 48), em" +" ordem cronológica inversa." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Grupos" @@ -254,7 +589,8 @@ msgstr "Grupos" msgid "wishlist" msgstr "Lista de desejos" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -265,8 +601,8 @@ msgstr "Os atributos podem ser usados para armazenar dados personalizados" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" "O idioma é um dos {settings.LANGUAGES} com o padrão {settings.LANGUAGE_CODE}" @@ -365,63 +701,68 @@ msgstr "Status da assinatura do boletim informativo do usuário" msgid "activation token" msgstr "Token de ativação" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "token de cancelamento de inscrição" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" +"token para cancelamento seguro de inscrição em campanhas com um clique" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Atributos" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Usuário" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Usuários" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Para tópicos anônimos" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Linha de bate-papo" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Tópicos de bate-papo" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "forneça o usuário ou e-mail para o tópico anônimo." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "O responsável deve ser um usuário da equipe." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Mensagem de bate-papo" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Mensagens de bate-papo" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Grupo" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Token excepcional" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Tokens pendentes" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Token na lista negra" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Tokens na lista negra" @@ -485,8 +826,7 @@ msgstr "Olá %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Recebemos uma solicitação para redefinir sua senha. Para redefinir sua " @@ -570,32 +910,32 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" "Representa uma visualização para obter um par de tokens de acesso e " "atualização e os dados do usuário. Essa visualização gerencia o processo de " -"manipulação da autenticação baseada em token, em que os clientes podem obter " -"um par de tokens JWT (acesso e atualização) usando as credenciais " +"manipulação da autenticação baseada em token, em que os clientes podem obter" +" um par de tokens JWT (acesso e atualização) usando as credenciais " "fornecidas. Ela é construída sobre uma visualização de token de base e " "garante a limitação de taxa adequada para proteger contra ataques de força " "bruta." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Trata da atualização de tokens para fins de autenticação. Essa classe é " "usada para fornecer funcionalidade para operações de atualização de tokens " -"como parte de um sistema de autenticação. Ela garante que os clientes possam " -"solicitar um token atualizado dentro dos limites de taxa definidos. A " +"como parte de um sistema de autenticação. Ela garante que os clientes possam" +" solicitar um token atualizado dentro dos limites de taxa definidos. A " "exibição depende do serializador associado para validar as entradas de " "atualização de token e produzir saídas apropriadas." @@ -604,8 +944,8 @@ msgid "" "Represents a view for verifying JSON Web Tokens (JWT) using specific " "serialization and validation logic. " msgstr "" -"Representa uma visualização para verificação de JSON Web Tokens (JWT) usando " -"lógica específica de serialização e validação." +"Representa uma visualização para verificação de JSON Web Tokens (JWT) usando" +" lógica específica de serialização e validação." #: engine/vibes_auth/views.py:103 msgid "the token is invalid" @@ -614,17 +954,10 @@ msgstr "O token é inválido" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementação do conjunto de visualizações do usuário.\n" -"Fornece um conjunto de ações que gerenciam dados relacionados ao usuário, " -"como criação, recuperação, atualizações, exclusão e ações personalizadas, " -"incluindo redefinição de senha, upload de avatar, ativação de conta e " -"mesclagem de itens visualizados recentemente. Essa classe estende os mixins " -"e o GenericViewSet para um tratamento robusto da API." +"Fornece um conjunto de ações que gerenciam dados relacionados ao usuário, como criação, recuperação, atualizações, exclusão e ações personalizadas, incluindo redefinição de senha, upload de avatar, ativação de conta e mesclagem de itens visualizados recentemente. Essa classe estende os mixins e o GenericViewSet para um tratamento robusto da API." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..de49024dbd2d8f61bd6df9bcd6c78123eebd210f GIT binary patch literal 20882 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 VP&?g>OB-?IhZ#=zs|4rse*s@lha&(0 literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po index a940015b..9a191355 100644 --- a/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Echilibru" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Comandă" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Ordine" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Informații personale" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Permisiuni" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Date importante" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Informații suplimentare" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Nu poți sări peste capul tău!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Închideți firele selectate" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Deschideți firele selectate" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Previzualizare" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadate" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "previzualizare" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "previzualizare imagine" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Conținut" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Documentație" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Programare" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistici" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "stat" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Pregătiți destinatarii (utilizatorii abonați)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Campania „{}” nu se află în stadiul de schiță." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Pregătirea destinatarilor pentru campania „{}”." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Trimiteți campania acum" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Campania „{}” nu poate fi trimisă (stare: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "Campania „{}” nu are destinatari. Pregătiți mai întâi destinatarii." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "A început trimiterea campaniei „{}”." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Anulează campania" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "Campanie (campanii) anulată (anulate)." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Autentificare" +msgid "Accounting" +msgstr "Contabilitate" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -109,7 +182,8 @@ msgstr "Canalul personalului pe fir" #: engine/vibes_auth/docs/drf/messaging.py:44 msgid "Reply, close, and ping within a specific thread." msgstr "" -"Răspundeți, închideți și trimiteți mesaje ping în cadrul unui anumit subiect." +"Răspundeți, închideți și trimiteți mesaje ping în cadrul unui anumit " +"subiect." #: engine/vibes_auth/docs/drf/views.py:18 msgid "obtain a token pair" @@ -193,6 +267,270 @@ msgstr "Linkul de activare este invalid sau contul este deja activat" msgid "merge client-stored recently viewed products" msgstr "Fuzionați produsele recent vizualizate stocate de client" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Proiect" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Programat" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Trimitere" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Târziu" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Anulat" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "În așteptare" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Eșuat" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Deschis" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "A dat clic" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "nume" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "denumire descriptivă pentru imagine" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "imagine" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "fișier imagine pentru utilizare în șabloanele de e-mail" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "alt text" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "text alternativ pentru accesibilitate" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "imagine e-mail" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "imagini e-mail" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "numele intern al șablonului" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "servitori" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "identificator unic pentru șablon" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "subiect" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "subiectul e-mailului - acceptă {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "Conținut HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"conținutul corpului e-mailului - acceptă {{ user.first_name }}, {{ " +"user.email }}, {{ project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "conținut text simplu" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "text simplu de rezervă (generat automat dacă este gol)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "variabile disponibile" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "documentația variabilelor disponibile în șabloane" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "șablon de e-mail" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "șabloane de e-mail" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "denumirea internă a campaniei" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "șablon" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "șablon de e-mail de utilizat pentru această campanie" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "statut" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "programat la" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "" +"când să trimiteți campania (lăsați necompletat pentru trimitere manuală)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "târziu" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "când campania a fost efectiv trimisă" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "numărul total de destinatari" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "număr trimis" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "numărare eșuată" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "număr deschis" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "număr de clicuri" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "campanie prin e-mail" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "campanii prin e-mail" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "campanie" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Utilizator" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "deschis la" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "a făcut clic pe" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "ID de urmărire" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "ID unic pentru urmărirea deschiderilor și clicurilor" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "mesaj de eroare" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "detalii despre eroare dacă trimiterea a eșuat" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "destinatarul campaniei" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "destinatarii campaniei" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Toate drepturile rezervate" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" +"Ați primit acest e-mail deoarece v-ați abonat la buletinul nostru " +"informativ." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Dezabonare" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Este necesar un token de dezabonare." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Format token de dezabonare invalid." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Utilizator neidentificat." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "V-ați dezabonat deja." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "V-ați dezabonat cu succes de la e-mailurile noastre." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" @@ -243,14 +581,14 @@ msgstr "Token-ul nu este valabil!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Produsele pe care acest utilizator le-a vizualizat cel mai recent (max 48), " "în ordine cronologică inversă." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Grupuri" @@ -258,7 +596,8 @@ msgstr "Grupuri" msgid "wishlist" msgstr "Lista dorințelor" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -269,11 +608,11 @@ msgstr "Atributele pot fi utilizate pentru a stoca date personalizate" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" -"Limba este una dintre {settings.LANGUAGES} cu implicit {settings." -"LANGUAGE_CODE}" +"Limba este una dintre {settings.LANGUAGES} cu implicit " +"{settings.LANGUAGE_CODE}" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -307,8 +646,8 @@ msgid "" msgstr "" "Reprezintă o entitate utilizator cu câmpuri și metode personalizate pentru " "funcționalitate extinsă. Această clasă extinde modelul AbstractUser și " -"integrează caracteristici suplimentare, cum ar fi autentificarea prin e-mail " -"personalizat, metode de validare, starea abonamentului, verificarea și " +"integrează caracteristici suplimentare, cum ar fi autentificarea prin e-mail" +" personalizat, metode de validare, starea abonamentului, verificarea și " "stocarea atributelor. De asemenea, oferă utilitare pentru gestionarea " "elementelor vizualizate recent și activare pe bază de token pentru " "verificarea conturilor. Modelul User este conceput pentru a gestiona cazuri " @@ -370,63 +709,67 @@ msgstr "Starea abonării utilizatorului la buletinul informativ" msgid "activation token" msgstr "Jeton de activare" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "token de dezabonare" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "token pentru dezabonarea sigură dintr-un singur clic din campanii" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Atribute" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Utilizator" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Utilizatori" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Pentru subiecte anonime" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Fir de chat" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Fire de chat" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "furnizați utilizatorul sau adresa de e-mail pentru firul anonim." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "cesionarul trebuie să fie un utilizator personal." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Mesaj de chat" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Mesaje de chat" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Grup" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Simbol excepțional" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Jetoane restante" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Token pe lista neagră" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Jetoane pe lista neagră" @@ -491,8 +834,7 @@ msgstr "Bună ziua %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Am primit o cerere de resetare a parolei dumneavoastră. Vă rugăm să vă " @@ -508,8 +850,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți " -"următoarea adresă URL\n" +"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți următoarea adresă URL\n" " în browserul dvs. web:" #: engine/vibes_auth/templates/user_reset_password_email.html:100 @@ -577,8 +918,8 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." @@ -593,11 +934,11 @@ msgstr "" #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Gestionează actualizarea jetoanelor în scopul autentificării. Această clasă " "este utilizată pentru a oferi funcționalitate pentru operațiunile de " @@ -622,17 +963,10 @@ msgstr "Jetonul nu este valabil" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementarea setului de vizualizări ale utilizatorului.\n" -"Oferă un set de acțiuni care gestionează datele legate de utilizator, cum ar " -"fi crearea, recuperarea, actualizările, ștergerea și acțiunile " -"personalizate, inclusiv resetarea parolei, încărcarea avatarului, activarea " -"contului și îmbinarea elementelor vizualizate recent. Această clasă extinde " -"mixinele și GenericViewSet pentru o gestionare robustă a API." +"Oferă un set de acțiuni care gestionează datele legate de utilizator, cum ar fi crearea, recuperarea, actualizările, ștergerea și acțiunile personalizate, inclusiv resetarea parolei, încărcarea avatarului, activarea contului și îmbinarea elementelor vizualizate recent. Această clasă extinde mixinele și GenericViewSet pentru o gestionare robustă a API." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3cd4417339bc0530806e114ddafe3bedff361820 GIT binary patch literal 27104 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 E2V++)kN^Mx literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po index c5455491..308e6f8b 100644 --- a/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Баланс" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Заказ" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Заказы" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Личная информация" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Разрешения" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Важные даты" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Дополнительная информация" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Нельзя прыгать выше головы!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Закрыть выбранные нити" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Открыть выбранные нити" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Предварительный просмотр" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Метаданные" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "предварительный просмотр" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "предварительный просмотр изображения" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Содержание" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Документация" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Планирование" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Статистика" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "государственный" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Подготовьте получателей (подписавшихся пользователей)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Кампания «{}» не находится в статусе черновика." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Подготовка получателей к кампании «{}»." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Отправить кампанию сейчас" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Кампания «{}» не может быть отправлена (статус: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "Кампания «{}» не имеет получателей. Сначала подготовьте получателей." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Начата рассылка кампании «{}»." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Отменить кампанию" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} кампания(и) отменена(ы)." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Аутентификация" +msgid "Accounting" +msgstr "Учётные записи" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -189,7 +262,271 @@ msgstr "Ссылка на активацию недействительна ил #: engine/vibes_auth/docs/drf/viewsets.py:111 msgid "merge client-stored recently viewed products" -msgstr "Объедините недавно просмотренные продукты, хранящиеся в памяти клиента" +msgstr "" +"Объедините недавно просмотренные продукты, хранящиеся в памяти клиента" + +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Проект" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Запланированный" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Отправка" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Поздно" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Отменено" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "В ожидании" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Неудача" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Открыто" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Нажато" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "название" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "описательное название изображения" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "изображение" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "файл изображения для использования в шаблонах электронных писем" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "другой текст" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "альтернативный текст для доступности" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "изображение электронной почты" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "изображения электронной почты" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "внутреннее имя шаблона" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "слуги" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "уникальный идентификатор шаблона" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "предмет" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "тема письма — поддерживает {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "HTML-контент" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"содержимое тела электронного письма — поддерживает {{ user.first_name }}, {{" +" user.email }}, {{ project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "обычный текстовый контент" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "" +"резервный вариант в виде простого текста (создается автоматически, если поле" +" пустое)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "доступные переменные" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "документация доступных переменных шаблона" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "шаблон электронного письма" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "шаблоны электронных писем" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "внутреннее название кампании" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "шаблон" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "шаблон электронного письма для использования в этой кампании" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "статус" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "запланировано на" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "когда отправить кампанию (оставьте поле пустым для отправки вручную)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "поздно, что" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "когда кампания была фактически отправлена" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "общее количество получателей" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "количество отправленных" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "неудачный подсчет" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "открытый счет" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "количество кликов" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "электронная рассылка" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "электронные рассылки" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "кампания" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Пользователь" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "открылся в" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "нажали на" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "идентификатор отслеживания" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "уникальный идентификатор для отслеживания открытий и кликов" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "сообщение об ошибке" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "подробности ошибки, если отправка не удалась" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "получатель кампании" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "получатели кампании" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Все права защищены" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "Вы получили это письмо, потому что подписались на нашу рассылку." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Отписаться" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Требуется токен отписки." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Неверный формат токена для отписки." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Пользователь не найден." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Вы уже отписаны." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Вы успешно отказались от подписки на наши электронные письма." #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." @@ -242,14 +579,14 @@ msgstr "Токен недействителен!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" -"Продукты, которые этот пользователь просматривал в последнее время (не более " -"48), в обратном хронологическом порядке." +"Продукты, которые этот пользователь просматривал в последнее время (не более" +" 48), в обратном хронологическом порядке." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Группы" @@ -257,7 +594,8 @@ msgstr "Группы" msgid "wishlist" msgstr "Список желаний" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Аватар" @@ -268,8 +606,8 @@ msgstr "Атрибуты могут использоваться для хран #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" "Язык - один из {settings.LANGUAGES}, по умолчанию {settings.LANGUAGE_CODE}." @@ -303,14 +641,14 @@ msgid "" "verifying accounts. The User model is designed to handle specific use cases " "for enhanced user management." msgstr "" -"Представляет сущность User с настраиваемыми полями и методами для расширения " -"функциональности. Этот класс расширяет модель AbstractUser и включает в себя " -"дополнительные возможности, такие как пользовательский вход по электронной " -"почте, методы проверки, статус подписки, верификация и хранение атрибутов. " -"Он также предоставляет утилиты для управления недавно просмотренными " -"элементами и активации на основе токенов для проверки учетных записей. " -"Модель User предназначена для обработки конкретных случаев использования для " -"расширенного управления пользователями." +"Представляет сущность User с настраиваемыми полями и методами для расширения" +" функциональности. Этот класс расширяет модель AbstractUser и включает в " +"себя дополнительные возможности, такие как пользовательский вход по " +"электронной почте, методы проверки, статус подписки, верификация и хранение " +"атрибутов. Он также предоставляет утилиты для управления недавно " +"просмотренными элементами и активации на основе токенов для проверки учетных" +" записей. Модель User предназначена для обработки конкретных случаев " +"использования для расширенного управления пользователями." #: engine/vibes_auth/models.py:53 msgid "email" @@ -368,63 +706,68 @@ msgstr "Статус подписки пользователя на рассыл msgid "activation token" msgstr "Активационный токен" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "токен отказа от подписки" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" +"токен для безопасного отказа от подписки на рассылки одним щелчком мыши" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Атрибуты" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Пользователь" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Пользователи" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Для анонимных потоков" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Нить чата" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Нити чата" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "укажите пользователя или e-mail для анонимной темы." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "Назначенный должен быть штатным пользователем." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Сообщение в чате" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Сообщения в чате" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Группа" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Выдающийся жетон" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Выпущенные токены" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Токен в черном списке" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Чёрный список токенов" @@ -487,8 +830,7 @@ msgstr "Привет %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Мы получили запрос на сброс вашего пароля. Пожалуйста, сбросьте пароль, " @@ -504,8 +846,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий " -"URL-адрес\n" +"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий URL-адрес\n" " в свой веб-браузер:" #: engine/vibes_auth/templates/user_reset_password_email.html:100 @@ -572,8 +913,8 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." @@ -581,23 +922,23 @@ msgstr "" "Представляет собой представление для получения пары токенов доступа и " "обновления и данных пользователя. Это представление управляет процессом " "аутентификации на основе токенов, когда клиенты могут получить пару JWT-" -"токенов (доступ и обновление), используя предоставленные учетные данные. Оно " -"построено поверх базового представления токенов и обеспечивает надлежащее " +"токенов (доступ и обновление), используя предоставленные учетные данные. Оно" +" построено поверх базового представления токенов и обеспечивает надлежащее " "ограничение скорости для защиты от атак грубой силы." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Обрабатывает обновление токенов для целей аутентификации. Этот класс " "используется для обеспечения функциональности операций обновления токенов в " "рамках системы аутентификации. Он гарантирует, что клиенты могут запросить " -"обновленный токен в рамках установленных ограничений скорости. Представление " -"полагается на ассоциированный сериализатор для проверки входных данных " +"обновленный токен в рамках установленных ограничений скорости. Представление" +" полагается на ассоциированный сериализатор для проверки входных данных " "обновления маркера и создания соответствующих выходных данных." #: engine/vibes_auth/views.py:83 @@ -615,17 +956,10 @@ msgstr "Токен недействителен" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Реализация набора пользовательских представлений.\n" -"Предоставляет набор действий, которые управляют пользовательскими данными, " -"такими как создание, получение, обновление, удаление, а также " -"пользовательскими действиями, включая сброс пароля, загрузку аватара, " -"активацию учетной записи и объединение недавно просмотренных элементов. Этот " -"класс расширяет миксины и GenericViewSet для надежной работы с API." +"Предоставляет набор действий, которые управляют пользовательскими данными, такими как создание, получение, обновление, удаление, а также пользовательскими действиями, включая сброс пароля, загрузку аватара, активацию учетной записи и объединение недавно просмотренных элементов. Этот класс расширяет миксины и GenericViewSet для надежной работы с API." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f9634071ae8ff0bbda6ab8894800cd3ab36464bd GIT binary patch literal 20003 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 c{)Z2BOIr~`-#_?eZi=#5G{FA?f?J) literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.po b/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.po index 5392efb8..a309165b 100644 --- a/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Balans" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Beställning" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Beställningar" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Personlig information" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Behörigheter" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Viktiga datum" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Ytterligare information" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Du kan inte hoppa över huvudet!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Stäng valda trådar" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Öppna valda trådar" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Förhandsgranska" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Metadata" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "förhandsgranskning" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "bildförhandsvisning" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Innehåll" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Dokumentation" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Schemaläggning" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Statistik" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "tillstånd" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Förbered mottagare (prenumererande användare)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Kampanjen '{}' är inte i utkaststatus." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Förbereder mottagare för kampanj '{}'." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Skicka kampanjen nu" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Kampanjen '{}' kan inte skickas (status: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "Kampanjen '{}' har inga mottagare. Förbered mottagarna först." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Började skicka kampanjen '{}'." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Avbryt kampanj" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} kampanj(er) avbruten." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Autentisering" +msgid "Accounting" +msgstr "Redovisning" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -99,8 +172,8 @@ msgid "" "Staff-only actions: list_open, assign, reply, close, ping. Unified event " "payloads are emitted." msgstr "" -"Åtgärder endast för personal: list_open, assign, reply, close, ping. Unified " -"event payloads sänds ut." +"Åtgärder endast för personal: list_open, assign, reply, close, ping. Unified" +" event payloads sänds ut." #: engine/vibes_auth/docs/drf/messaging.py:43 msgid "Per-thread staff channel" @@ -191,6 +264,269 @@ msgstr "Aktiveringslänken är ogiltig eller kontot är redan aktiverat" msgid "merge client-stored recently viewed products" msgstr "Sammanfoga klientlagrade nyligen visade produkter" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Utkast" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Schemalagd" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Skicka" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Sen" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Inställt" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Väntande" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Misslyckades" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Öppnad" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Klickade" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "namn" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "beskrivande namn för bilden" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "bild" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "bildfil att använda i e-postmallar" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "annan text" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "alternativ text för tillgänglighet" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "e-postbild" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "e-postbilder" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "internt namn för mallen" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "tjänare" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "unik identifierare för mallen" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "ämne" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "e-postens ämnesrad – stöder {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "HTML-innehåll" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"e-postmeddelandets innehåll – stöder {{ user.first_name }}, {{ user.email " +"}}, {{ project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "vanlig text" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "vanlig text som reserv (genereras automatiskt om tom)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "tillgängliga variabler" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "dokumentation av tillgängliga mallvariabler" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "e-postmall" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "e-postmallar" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "internt namn för kampanjen" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "mall" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "E-postmall att använda för denna kampanj" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "status" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "planerad till" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "när kampanjen ska skickas (lämna tomt för manuell sändning)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "senare" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "när kampanjen faktiskt skickades ut" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "totalt antal mottagare" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "skickat antal" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "misslyckad räkning" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "öppnad räkning" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "klickräkning" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "e-postkampanj" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "e-postkampanjer" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "kampanj" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Användare" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "öppnade vid" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "klickade på" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "spårnings-ID" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "unikt ID för spårning av öppningar och klick" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "felmeddelande" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "felinformation om sändningen misslyckades" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "kampanjmottagare" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "kampanjens mottagare" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Alla rättigheter förbehållna" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "" +"Du har fått detta e-postmeddelande eftersom du prenumererar på vårt " +"nyhetsbrev." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Avregistrera" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Avregistreringstoken krävs." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Ogiltigt format för avregistreringstoken." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Användaren hittades inte." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Du är redan avregistrerad." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Du har nu avslutat din prenumeration på våra e-postmeddelanden." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" @@ -241,14 +577,14 @@ msgstr "Token är ogiltig!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "De produkter som den här användaren har tittat på senast (max 48), i omvänd " "kronologisk ordning." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Grupper" @@ -256,7 +592,8 @@ msgstr "Grupper" msgid "wishlist" msgstr "Önskelista" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -267,8 +604,8 @@ msgstr "Attribut kan användas för att lagra anpassade data" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" "Språk är en av {settings.LANGUAGES} med standard {settings.LANGUAGE_CODE}." @@ -366,63 +703,67 @@ msgstr "Användarens status för prenumeration på nyhetsbrev" msgid "activation token" msgstr "Aktiveringstoken" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "avregistreringstoken" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "token för säker avregistrering från kampanjer med ett klick" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Attribut" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Användare" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Användare" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "För anonyma trådar" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Chattråd" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Chatt-trådar" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "ange användare eller e-post för anonym tråd." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "mottagaren måste vara en personalanvändare." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Chattmeddelande" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Chattmeddelanden" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Grupp" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Utestående symbol" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Utestående polletter" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Svartlistad token" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Svartlistade tokens" @@ -485,8 +826,7 @@ msgstr "Hej %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Vi har fått en begäran om att återställa ditt lösenord. Vänligen återställ " @@ -534,8 +874,8 @@ msgid "" "thank you for signing up for %(project_name)s. please activate your account\n" " by clicking the button below:" msgstr "" -"Tack för att du registrerat dig för %(project_name)s. Vänligen aktivera ditt " -"konto genom att klicka på knappen nedan:" +"Tack för att du registrerat dig för %(project_name)s. Vänligen aktivera ditt" +" konto genom att klicka på knappen nedan:" #: engine/vibes_auth/templates/user_verification_email.html:96 msgid "" @@ -570,32 +910,32 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" "Representerar en vy för att hämta ett par access- och refresh-tokens och " "användardata. Den här vyn hanterar processen för hantering av tokenbaserad " -"autentisering där klienter kan hämta ett par JWT-tokens (access och refresh) " -"med hjälp av angivna referenser. Den är byggd ovanpå en bas-tokenvy och " +"autentisering där klienter kan hämta ett par JWT-tokens (access och refresh)" +" med hjälp av angivna referenser. Den är byggd ovanpå en bas-tokenvy och " "säkerställer korrekt hastighetsbegränsning för att skydda mot brute force-" "attacker." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Hanterar uppdatering av tokens för autentiseringsändamål. Denna klass " "används för att tillhandahålla funktionalitet för uppdatering av token som " -"en del av ett autentiseringssystem. Den säkerställer att klienter kan begära " -"en uppfräschad token inom definierade hastighetsgränser. Vyn förlitar sig på " -"den associerade serialiseraren för att validera inmatningar för " +"en del av ett autentiseringssystem. Den säkerställer att klienter kan begära" +" en uppfräschad token inom definierade hastighetsgränser. Vyn förlitar sig " +"på den associerade serialiseraren för att validera inmatningar för " "tokenuppdatering och producera lämpliga utmatningar." #: engine/vibes_auth/views.py:83 @@ -613,17 +953,10 @@ msgstr "Token är ogiltig" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Implementering av användarvyuppsättning.\n" -"Tillhandahåller en uppsättning åtgärder som hanterar användarrelaterade data " -"som skapande, hämtning, uppdateringar, borttagning och anpassade åtgärder " -"inklusive återställning av lösenord, uppladdning av avatar, kontoaktivering " -"och sammanslagning av nyligen visade objekt. Denna klass utökar mixins och " -"GenericViewSet för robust API-hantering." +"Tillhandahåller en uppsättning åtgärder som hanterar användarrelaterade data som skapande, hämtning, uppdateringar, borttagning och anpassade åtgärder inklusive återställning av lösenord, uppladdning av avatar, kontoaktivering och sammanslagning av nyligen visade objekt. Denna klass utökar mixins och GenericViewSet för robust API-hantering." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..374f27a15d971263b665059eaeeaf6e112084b62 GIT binary patch literal 30493 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 literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.po b/engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.po index f8eeea86..04bf7b71 100644 --- a/engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "สมดุล" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "คำสั่ง" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "คำสั่ง" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "ข้อมูลส่วนตัว" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "สิทธิ์การใช้งาน" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "วันที่สำคัญ" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "ข้อมูลเพิ่มเติม" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "คุณไม่สามารถกระโดดข้ามหัวตัวเองได้!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "ปิดกระทู้ที่เลือก" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "เปิดกระทู้ที่เลือก" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "ตัวอย่าง" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "เมตาดาตา" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "ตัวอย่าง" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "ภาพตัวอย่าง" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "เนื้อหา" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "เอกสาร" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "การจัดตารางเวลา" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "สถิติ" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "รัฐ" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "เตรียมผู้รับ (ผู้ใช้ที่สมัครรับข้อมูล)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "แคมเปญ '{}' ไม่ได้อยู่ในสถานะร่าง" + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "เตรียมผู้รับสำหรับแคมเปญ '{}'" + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "ส่งแคมเปญตอนนี้" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "ไม่สามารถส่งแคมเปญ '{}' ได้ (สถานะ: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "แคมเปญ '{}' ไม่มีผู้รับ โปรดเตรียมผู้รับก่อน" + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "เริ่มส่งแคมเปญ '{}'" + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "ยกเลิกแคมเปญ" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} แคมเปญถูกยกเลิก" + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "การยืนยันตัวตน" +msgid "Accounting" +msgstr "บัญชี" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -87,8 +160,8 @@ msgid "" "Anonymous or authenticated non-staff users send messages. Also supports " "action=ping." msgstr "" -"ผู้ใช้ที่ไม่ระบุตัวตนหรือผู้ใช้ที่ผ่านการยืนยันตัวตนแต่ไม่ใช่บุคลากรสามารถส่งข้อความได้ " -"นอกจากนี้ยังรองรับ action=ping" +"ผู้ใช้ที่ไม่ระบุตัวตนหรือผู้ใช้ที่ผ่านการยืนยันตัวตนแต่ไม่ใช่บุคลากรสามารถส่งข้อความได้" +" นอกจากนี้ยังรองรับ action=ping" #: engine/vibes_auth/docs/drf/messaging.py:30 msgid "Staff inbox control" @@ -189,6 +262,267 @@ msgstr "ลิงก์การเปิดใช้งานไม่ถูก msgid "merge client-stored recently viewed products" msgstr "รวมสินค้าที่ลูกค้าดูล่าสุดซึ่งเก็บไว้ในระบบของลูกค้า" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "ร่าง" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "กำหนดไว้แล้ว" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "ส่ง" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "สาย" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "ยกเลิก" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "รอดำเนินการ" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "ล้มเหลว" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "เปิด" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "คลิก" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "ชื่อ" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "ชื่อเชิงอธิบายสำหรับภาพ" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "รูปภาพ" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "ไฟล์ภาพที่จะใช้ในเทมเพลตอีเมล" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "ข้อความอื่น" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "ข้อความทางเลือกเพื่อการเข้าถึง" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "รูปภาพอีเมล" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "รูปภาพทางอีเมล" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "ชื่อภายในสำหรับเทมเพลต" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "คนรับใช้" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "รหัสประจำตัวที่ไม่ซ้ำกันสำหรับแม่แบบ" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "หัวข้อ" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "หัวข้ออีเมล - สนับสนุน {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "เนื้อหา HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"เนื้อหาในอีเมล - รองรับ {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "เนื้อหาข้อความธรรมดา" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "ข้อความธรรมดาสำรอง (สร้างอัตโนมัติหากว่างเปล่า)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "ตัวแปรที่มีอยู่" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "เอกสารประกอบตัวแปรแม่แบบที่มีอยู่" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "แม่แบบอีเมล" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "เทมเพลตอีเมล" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "ชื่อภายในสำหรับแคมเปญ" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "แม่แบบ" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "เทมเพลตอีเมลสำหรับใช้ในแคมเปญนี้" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "สถานะ" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "กำหนดไว้ที่" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "เมื่อใดที่จะส่งแคมเปญ (เว้นว่างไว้สำหรับการส่งด้วยตนเอง)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "สายแล้ว" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "เมื่อแคมเปญถูกส่งออกไปจริง ๆ" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "ผู้รับทั้งหมด" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "จำนวนที่ส่ง" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "ล้มเหลวในการนับ" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "เปิดนับ" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "จำนวนครั้งที่คลิก" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "แคมเปญอีเมล" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "แคมเปญอีเมล" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "แคมเปญ" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "ผู้ใช้" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "เปิดที่" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "คลิกที่" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "หมายเลขติดตาม" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "รหัสประจำตัวที่ไม่ซ้ำกันสำหรับการติดตามการเปิดและการคลิก" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "ข้อความแสดงข้อผิดพลาด" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "รายละเอียดข้อผิดพลาดหากการส่งล้มเหลว" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "ผู้รับแคมเปญ" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "ผู้รับแคมเปญ" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "สงวนลิขสิทธิ์" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "คุณได้รับอีเมลนี้เพราะคุณได้สมัครรับจดหมายข่าวของเรา" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "ยกเลิกการสมัคร" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "จำเป็นต้องใช้โทเคนยกเลิกการสมัคร" + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "รูปแบบโทเค็นยกเลิกการสมัครไม่ถูกต้อง" + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "ไม่พบผู้ใช้" + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "คุณได้ยกเลิกการสมัครแล้ว" + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "คุณได้ยกเลิกการสมัครรับอีเมลจากเราเรียบร้อยแล้ว" + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "ผู้ใช้ที่เข้ารหัส uuid ด้วย b64 ซึ่งแนะนำผู้ใช้ใหม่ให้เรามา" @@ -238,12 +572,13 @@ msgstr "โทเคนไม่ถูกต้อง!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" -msgstr "สินค้าที่ผู้ใช้รายนี้ดูล่าสุด (สูงสุด 48 รายการ) เรียงตามลำดับเวลาล่าสุด" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" +msgstr "" +"สินค้าที่ผู้ใช้รายนี้ดูล่าสุด (สูงสุด 48 รายการ) เรียงตามลำดับเวลาล่าสุด" #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "กลุ่ม" @@ -251,7 +586,8 @@ msgstr "กลุ่ม" msgid "wishlist" msgstr "รายการสิ่งที่ต้องการ" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "อวตาร" @@ -262,9 +598,11 @@ msgstr "คุณลักษณะอาจใช้เพื่อเก็บ #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" -msgstr "ภาษาเป็นหนึ่งใน {settings.LANGUAGES} ที่มีค่าเริ่มต้น {settings.LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" +msgstr "" +"ภาษาเป็นหนึ่งใน {settings.LANGUAGES} ที่มีค่าเริ่มต้น " +"{settings.LANGUAGE_CODE}" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -296,11 +634,12 @@ msgid "" "verifying accounts. The User model is designed to handle specific use cases " "for enhanced user management." msgstr "" -"แทนที่เอนทิตีผู้ใช้ที่มีฟิลด์และเมธอดที่ปรับแต่งได้สำหรับฟังก์ชันการทำงานที่ขยายออกไป " -"คลาสนี้สืบทอดมาจากโมเดล AbstractUser และรวมคุณสมบัติเพิ่มเติม เช่น " -"การเข้าสู่ระบบด้วยอีเมลที่กำหนดเอง วิธีการตรวจสอบความถูกต้อง สถานะการสมัครสมาชิก การยืนยัน " -"และการจัดเก็บแอตทริบิวต์ " -"นอกจากนี้ยังมียูทิลิตี้สำหรับจัดการรายการที่ดูล่าสุดและการเปิดใช้งานแบบใช้โทเค็นเพื่อยืนยันบัญชี " +"แทนที่เอนทิตีผู้ใช้ที่มีฟิลด์และเมธอดที่ปรับแต่งได้สำหรับฟังก์ชันการทำงานที่ขยายออกไป" +" คลาสนี้สืบทอดมาจากโมเดล AbstractUser และรวมคุณสมบัติเพิ่มเติม เช่น " +"การเข้าสู่ระบบด้วยอีเมลที่กำหนดเอง วิธีการตรวจสอบความถูกต้อง " +"สถานะการสมัครสมาชิก การยืนยัน และการจัดเก็บแอตทริบิวต์ " +"นอกจากนี้ยังมียูทิลิตี้สำหรับจัดการรายการที่ดูล่าสุดและการเปิดใช้งานแบบใช้โทเค็นเพื่อยืนยันบัญชี" +" " "โมเดลผู้ใช้ได้รับการออกแบบมาเพื่อจัดการกรณีการใช้งานเฉพาะสำหรับการจัดการผู้ใช้ที่ดียิ่งขึ้น" #: engine/vibes_auth/models.py:53 @@ -359,63 +698,68 @@ msgstr "สถานะการสมัครสมาชิกจดหมา msgid "activation token" msgstr "โทเค็นการเปิดใช้งาน" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "โทเคนยกเลิกการสมัคร" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" +"โทเค็นสำหรับการยกเลิกการสมัครรับข้อมูลจากแคมเปญอย่างปลอดภัยด้วยการคลิกเพียงครั้งเดียว" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "คุณลักษณะ" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "ผู้ใช้" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "ผู้ใช้" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "สำหรับกระทู้ที่ไม่ระบุชื่อ" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "หัวข้อสนทนา" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "หัวข้อสนทนา" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "ให้ผู้ใช้หรืออีเมลสำหรับกระทู้ไม่ระบุตัวตน" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "ผู้รับมอบหมายต้องเป็นผู้ใช้ที่เป็นพนักงานเท่านั้น" -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "ข้อความแชท" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "ข้อความแชท" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "กลุ่ม" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "โทเค็นที่ยังไม่ได้ใช้" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "โทเค็นที่ยังไม่ได้ใช้" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "โทเค็นที่ถูกขึ้นบัญชีดำ" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "โทเค็นที่ถูกขึ้นบัญชีดำ" @@ -478,11 +822,11 @@ msgstr "สวัสดีครับ/ค่ะ %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" -"เราได้รับคำขอให้คุณรีเซ็ตรหัสผ่านของคุณ กรุณาทำการรีเซ็ตรหัสผ่านของคุณโดยคลิกที่ปุ่มด้านล่าง:" +"เราได้รับคำขอให้คุณรีเซ็ตรหัสผ่านของคุณ " +"กรุณาทำการรีเซ็ตรหัสผ่านของคุณโดยคลิกที่ปุ่มด้านล่าง:" #: engine/vibes_auth/templates/user_reset_password_email.html:95 msgid "reset password" @@ -493,7 +837,9 @@ msgstr "รีเซ็ตรหัสผ่าน" msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" -msgstr "หากปุ่มด้านบนไม่ทำงาน โปรดคัดลอกและวาง URL ต่อไปนี้ลงในเว็บเบราว์เซอร์ของคุณ:" +msgstr "" +"หากปุ่มด้านบนไม่ทำงาน โปรดคัดลอกและวาง URL " +"ต่อไปนี้ลงในเว็บเบราว์เซอร์ของคุณ:" #: engine/vibes_auth/templates/user_reset_password_email.html:100 msgid "" @@ -522,7 +868,8 @@ msgid "" "thank you for signing up for %(project_name)s. please activate your account\n" " by clicking the button below:" msgstr "" -"ขอบคุณที่ลงทะเบียนสำหรับ %(project_name)s กรุณาเปิดใช้งานบัญชีของคุณโดยคลิกที่ปุ่มด้านล่าง:" +"ขอบคุณที่ลงทะเบียนสำหรับ %(project_name)s " +"กรุณาเปิดใช้งานบัญชีของคุณโดยคลิกที่ปุ่มด้านล่าง:" #: engine/vibes_auth/templates/user_verification_email.html:96 msgid "" @@ -550,34 +897,37 @@ msgid "" "invalid phone number format. the number must be entered in the format: " "\"+999999999\". up to 15 digits allowed." msgstr "" -"รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง. หมายเลขต้องถูกป้อนในรูปแบบ: \"+999999999\". " -"อนุญาตให้ใช้ได้ถึง 15 หลัก." +"รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง. หมายเลขต้องถูกป้อนในรูปแบบ: \"+999999999\"." +" อนุญาตให้ใช้ได้ถึง 15 หลัก." #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" -"แสดงมุมมองสำหรับการรับคู่ของโทเค็นการเข้าถึงและโทเค็นการรีเฟรช รวมถึงข้อมูลของผู้ใช้ " -"มุมมองนี้จัดการกระบวนการตรวจสอบสิทธิ์ที่ใช้โทเค็น โดยลูกค้าสามารถรับคู่ของโทเค็น JWT " -"(โทเค็นการเข้าถึงและโทเค็นการรีเฟรช) โดยใช้ข้อมูลประจำตัวที่ให้มา " -"มุมมองนี้สร้างขึ้นบนมุมมองโทเค็นพื้นฐานและรับประกันการจำกัดอัตราที่เหมาะสมเพื่อป้องกันการโจมตีแบบ " -"brute force" +"แสดงมุมมองสำหรับการรับคู่ของโทเค็นการเข้าถึงและโทเค็นการรีเฟรช " +"รวมถึงข้อมูลของผู้ใช้ มุมมองนี้จัดการกระบวนการตรวจสอบสิทธิ์ที่ใช้โทเค็น " +"โดยลูกค้าสามารถรับคู่ของโทเค็น JWT (โทเค็นการเข้าถึงและโทเค็นการรีเฟรช) " +"โดยใช้ข้อมูลประจำตัวที่ให้มา " +"มุมมองนี้สร้างขึ้นบนมุมมองโทเค็นพื้นฐานและรับประกันการจำกัดอัตราที่เหมาะสมเพื่อป้องกันการโจมตีแบบ" +" brute force" #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "จัดการการรีเฟรชโทเค็นเพื่อวัตถุประสงค์ในการยืนยันตัวตน " -"คลาสนี้ใช้เพื่อให้บริการฟังก์ชันสำหรับการรีเฟรชโทเค็นเป็นส่วนหนึ่งของระบบยืนยันตัวตน " -"มันทำให้แน่ใจว่าลูกค้าสามารถขอโทเค็นที่รีเฟรชแล้วได้ภายในขีดจำกัดอัตราที่กำหนดไว้ " +"คลาสนี้ใช้เพื่อให้บริการฟังก์ชันสำหรับการรีเฟรชโทเค็นเป็นส่วนหนึ่งของระบบยืนยันตัวตน" +" " +"มันทำให้แน่ใจว่าลูกค้าสามารถขอโทเค็นที่รีเฟรชแล้วได้ภายในขีดจำกัดอัตราที่กำหนดไว้" +" " "หน้าจอนี้พึ่งพาตัวจัดลำดับที่เกี่ยวข้องเพื่อตรวจสอบความถูกต้องของข้อมูลการรีเฟรชโทเค็นและสร้างผลลัพธ์ที่เหมาะสม" #: engine/vibes_auth/views.py:83 @@ -595,15 +945,14 @@ msgstr "โทเค็นไม่ถูกต้อง" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" -"การใช้งานชุดมุมมองผู้ใช้ ให้ชุดของการดำเนินการที่จัดการข้อมูลที่เกี่ยวข้องกับผู้ใช้ เช่น การสร้าง " -"การดึงข้อมูล การอัปเดต การลบ และการดำเนินการที่กำหนดเอง รวมถึงการรีเซ็ตรหัสผ่าน " -"การอัปโหลดอวาตาร์ การเปิดใช้งานบัญชี และการรวมรายการที่ดูล่าสุด คลาสนี้ขยายส่วนผสมและ " -"GenericViewSet เพื่อการจัดการ API ที่มีความแข็งแกร่ง" +"การใช้งานชุดมุมมองผู้ใช้ " +"ให้ชุดของการดำเนินการที่จัดการข้อมูลที่เกี่ยวข้องกับผู้ใช้ เช่น การสร้าง " +"การดึงข้อมูล การอัปเดต การลบ และการดำเนินการที่กำหนดเอง " +"รวมถึงการรีเซ็ตรหัสผ่าน การอัปโหลดอวาตาร์ การเปิดใช้งานบัญชี " +"และการรวมรายการที่ดูล่าสุด คลาสนี้ขยายส่วนผสมและ GenericViewSet " +"เพื่อการจัดการ API ที่มีความแข็งแกร่ง" #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..77904a130c7d05632103a52e9773b6a6cc4c4194 GIT binary patch literal 20592 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 literal 0 HcmV?d00001 diff --git a/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po index f6044ea5..3e95350f 100644 --- a/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-21 00:38+0300\n" +"POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Denge" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Sipariş" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Siparişler" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Kişisel Bilgiler" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "İzinler" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Önemli tarihler" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Ek Bilgi" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Başının üzerinden atlayamazsın!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Seçili konuları kapatın" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Seçili konuları açın" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Önizleme" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Meta veriler" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "ön izleme" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "görüntü önizlemesi" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "İçerik" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Belgeler" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Planlama" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "İstatistik" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "devlet" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Alıcıları hazırlayın (abone olan kullanıcılar)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Kampanya '{}' taslak durumunda değildir." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Alıcıları '{}' kampanyası için hazırlama." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Kampanyayı şimdi gönder" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Kampanya '{}' gönderilemiyor (durum: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "Kampanya '{}'in alıcısı yok. Önce alıcıları hazırlayın." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "'{}' kampanyasını göndermeye başladı." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Kampanyayı iptal et" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} kampanyası/kampanyaları iptal edildi." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Kimlik Doğrulama" +msgid "Accounting" +msgstr "Muhasebe" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -190,6 +263,267 @@ msgstr "Etkinleştirme bağlantısı geçersiz veya hesap zaten etkinleştirilmi msgid "merge client-stored recently viewed products" msgstr "İstemcide depolanan son görüntülenen ürünleri birleştirme" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Taslak" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Planlanmış" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Gönderme" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Geç" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "İptal edildi" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Beklemede" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Başarısız" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Açıldı" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Tıklandı" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "isim" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "görüntü için açıklayıcı ad" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "görüntü" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "e-posta şablonlarında kullanılacak resim dosyası" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "başka metin" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "erişilebilirlik için alternatif metin" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "e-posta görüntüsü" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "e-posta resimleri" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "şablonun dahili adı" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "slug" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "şablon için benzersiz tanımlayıcı" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "konu" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "e-posta konu satırı - {{ variables }}'ı destekler}}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "HTML içeriği" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"e-posta gövdesi içeriği - {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }} destekler" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "düz metin içeriği" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "düz metin yedeği (boşsa otomatik olarak oluşturulur)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "kullanılabilir değişkenler" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "kullanılabilir şablon değişkenlerinin belgelenmesi" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "e-posta şablonu" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "e-posta şablonları" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "kampanyanın iç adı" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "şablon" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "Bu kampanya için kullanılacak e-posta şablonu" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "durum" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "planlanan" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "kampanyayı ne zaman gönderecek (manuel gönderim için boş bırakın)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "geç" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "kampanya gerçekten gönderildiğinde" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "toplam alıcı sayısı" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "gönderilen sayı" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "başarısız sayım" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "açık sayım" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "tıklama sayısı" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "e-posta kampanyası" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "e-posta kampanyaları" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "kampanya" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Kullanıcı" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "açıldı" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "tıklandı" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "izleme kimliği" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "açılışları ve tıklamaları izlemek için benzersiz kimlik" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "hata mesajı" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "gönderme başarısız olursa hata ayrıntıları" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "kampanya alıcısı" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "kampanya alıcıları" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Tüm hakları saklıdır" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "Bu e-postayı, haber bültenimize abone olduğunuz için aldınız." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Abonelikten çık" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Abonelikten çıkma jetonu gereklidir." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Geçersiz abonelik iptal jetonu biçimi." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Kullanıcı bulunamadı." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Zaten abonelikten çıkmış durumdasınız." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "E-postalarımızdan başarıyla aboneliğiniz iptal edildi." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "Yeni kullanıcıyı bize yönlendiren kullanıcının b64 kodlu uuid'si." @@ -239,14 +573,14 @@ msgstr "Jeton geçersiz!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Bu kullanıcının en son görüntülediği ürünler (en fazla 48), ters kronolojik " "sırayla." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Gruplar" @@ -254,7 +588,8 @@ msgstr "Gruplar" msgid "wishlist" msgstr "İstek Listesi" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -265,10 +600,11 @@ msgstr "Öznitelikler özel verileri saklamak için kullanılabilir" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" -"Dil, varsayılan {settings.LANGUAGE_CODE} ile {settings.LANGUAGES}'dan biridir" +"Dil, varsayılan {settings.LANGUAGE_CODE} ile {settings.LANGUAGES}'dan " +"biridir" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -303,8 +639,8 @@ msgstr "" "Genişletilmiş işlevsellik için özelleştirilmiş alanlara ve yöntemlere sahip " "bir Kullanıcı varlığını temsil eder. Bu sınıf AbstractUser modelini " "genişletir ve özel e-posta girişi, doğrulama yöntemleri, abonelik durumu, " -"doğrulama ve öznitelik depolama gibi ek özellikleri entegre eder. Ayrıca son " -"görüntülenen öğeleri yönetmek için yardımcı programlar ve hesapları " +"doğrulama ve öznitelik depolama gibi ek özellikleri entegre eder. Ayrıca son" +" görüntülenen öğeleri yönetmek için yardımcı programlar ve hesapları " "doğrulamak için token tabanlı aktivasyon sağlar. User modeli, gelişmiş " "kullanıcı yönetimi için belirli kullanım durumlarını ele almak üzere " "tasarlanmıştır." @@ -365,63 +701,69 @@ msgstr "Kullanıcının haber bülteni abonelik durumu" msgid "activation token" msgstr "Etkinleştirme belirteci" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "abonelikten çıkma jetonu" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" +"kampanyalardan tek tıklamayla güvenli bir şekilde abonelikten çıkmak için " +"jeton" + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Nitelikler" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Kullanıcı" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Kullanıcılar" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Anonim konular için" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Sohbet başlığı" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Sohbet konuları" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "anonim konu için kullanıcı veya e-posta sağlayın." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "atanan kişi bir personel kullanıcısı olmalıdır." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Sohbet mesajı" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Sohbet mesajları" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Grup" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Olağanüstü belirteç" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Ödenmemiş jetonlar" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Kara listeye alınmış belirteç" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Kara listeye alınmış belirteçler" @@ -484,8 +826,7 @@ msgstr "Merhaba %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Şifrenizi sıfırlamak için bir talep aldık. Lütfen aşağıdaki butona " @@ -569,8 +910,8 @@ msgstr "" #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." @@ -579,21 +920,21 @@ msgstr "" "bir görünümü temsil eder. Bu görünüm, istemcilerin sağlanan kimlik " "bilgilerini kullanarak bir çift JWT belirteci (erişim ve yenileme) " "alabildiği belirteç tabanlı kimlik doğrulama işlemini yönetir. Temel bir " -"token görünümünün üzerine inşa edilmiştir ve kaba kuvvet saldırılarına karşı " -"koruma sağlamak için uygun hız sınırlaması sağlar." +"token görünümünün üzerine inşa edilmiştir ve kaba kuvvet saldırılarına karşı" +" koruma sağlamak için uygun hız sınırlaması sağlar." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" "Kimlik doğrulama amacıyla belirteçlerin yenilenmesini işler. Bu sınıf, bir " "kimlik doğrulama sisteminin parçası olarak belirteç yenileme işlemleri için " -"işlevsellik sağlamak üzere kullanılır. İstemcilerin tanımlanan hız sınırları " -"içinde yenilenmiş bir belirteç talep edebilmesini sağlar. Görünüm, token " +"işlevsellik sağlamak üzere kullanılır. İstemcilerin tanımlanan hız sınırları" +" içinde yenilenmiş bir belirteç talep edebilmesini sağlar. Görünüm, token " "yenileme girdilerini doğrulamak ve uygun çıktıları üretmek için ilişkili " "serileştiriciye dayanır." @@ -612,16 +953,10 @@ msgstr "Belirteç geçersiz" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Kullanıcı görünümü kümesi uygulaması.\n" -"Oluşturma, alma, güncelleme, silme gibi kullanıcıyla ilgili verileri ve " -"parola sıfırlama, avatar yükleme, hesap etkinleştirme ve son görüntülenen " -"öğeleri birleştirme gibi özel eylemleri yöneten bir dizi eylem sağlar. Bu " -"sınıf, sağlam API kullanımı için mixin'leri ve GenericViewSet'i genişletir." +"Oluşturma, alma, güncelleme, silme gibi kullanıcıyla ilgili verileri ve parola sıfırlama, avatar yükleme, hesap etkinleştirme ve son görüntülenen öğeleri birleştirme gibi özel eylemleri yöneten bir dizi eylem sağlar. Bu sınıf, sağlam API kullanımı için mixin'leri ve GenericViewSet'i genişletir." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" diff --git a/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8aa4b9ee7e8324742a2040d15095e6de4bb63231 GIT binary patch literal 22384 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -13,50 +13,125 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 +#: engine/vibes_auth/admin.py:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Cân bằng" -#: engine/vibes_auth/admin.py:60 +#: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Đặt hàng" -#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Đơn hàng" -#: engine/vibes_auth/admin.py:71 +#: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Thông tin cá nhân" -#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50 +#: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Quyền" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Các ngày quan trọng" -#: engine/vibes_auth/admin.py:89 +#: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Thông tin bổ sung" -#: engine/vibes_auth/admin.py:135 +#: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Bạn không thể nhảy qua đầu mình!" -#: engine/vibes_auth/admin.py:167 +#: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Đóng các chủ đề đã chọn" -#: engine/vibes_auth/admin.py:171 +#: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Mở các chủ đề đã chọn" +#: engine/vibes_auth/admin.py:208 +msgid "Preview" +msgstr "Xem trước" + +#: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 +#: engine/vibes_auth/admin.py:326 +msgid "Metadata" +msgstr "Siêu dữ liệu" + +#: engine/vibes_auth/admin.py:212 +msgid "preview" +msgstr "Xem trước" + +#: engine/vibes_auth/admin.py:221 +msgid "image preview" +msgstr "Xem trước hình ảnh" + +#: engine/vibes_auth/admin.py:241 +msgid "Content" +msgstr "Nội dung" + +#: engine/vibes_auth/admin.py:243 +msgid "Documentation" +msgstr "Tài liệu" + +#: engine/vibes_auth/admin.py:313 +msgid "Scheduling" +msgstr "Lập lịch" + +#: engine/vibes_auth/admin.py:315 +msgid "Statistics" +msgstr "Thống kê" + +#: engine/vibes_auth/admin.py:329 +msgid "stats" +msgstr "nhà nước" + +#: engine/vibes_auth/admin.py:335 +msgid "Prepare recipients (subscribed users)" +msgstr "Chuẩn bị danh sách người nhận (người dùng đã đăng ký)" + +#: engine/vibes_auth/admin.py:343 +msgid "Campaign '{}' is not in draft status." +msgstr "Chiến dịch '{}' không ở trạng thái bản nháp." + +#: engine/vibes_auth/admin.py:350 +msgid "Preparing recipients for campaign '{}'." +msgstr "Chuẩn bị cho người nhận tham gia chiến dịch '{}'." + +#: engine/vibes_auth/admin.py:354 +msgid "Send campaign now" +msgstr "Gửi chiến dịch ngay bây giờ" + +#: engine/vibes_auth/admin.py:362 +msgid "Campaign '{}' cannot be sent (status: {})." +msgstr "Chiến dịch '{}' không thể được gửi (trạng thái: {})." + +#: engine/vibes_auth/admin.py:372 +msgid "Campaign '{}' has no recipients. Prepare recipients first." +msgstr "" +"Chiến dịch '{}' không có người nhận. Vui lòng chuẩn bị danh sách người nhận " +"trước." + +#: engine/vibes_auth/admin.py:383 +msgid "Started sending campaign '{}'." +msgstr "Đã bắt đầu gửi chiến dịch '{}'." + +#: engine/vibes_auth/admin.py:387 +msgid "Cancel campaign" +msgstr "Hủy chiến dịch" + +#: engine/vibes_auth/admin.py:396 +msgid "{} campaign(s) cancelled." +msgstr "{} chiến dịch đã bị hủy." + #: engine/vibes_auth/apps.py:8 -msgid "authentication" -msgstr "Xác thực" +msgid "Accounting" +msgstr "Kế toán" #: engine/vibes_auth/choices.py:6 msgid "Open" @@ -190,11 +265,272 @@ msgid "merge client-stored recently viewed products" msgstr "" "Ghép các sản phẩm đã xem gần đây được lưu trữ trên thiết bị của khách hàng" +#: engine/vibes_auth/emailing/choices.py:6 +msgid "Draft" +msgstr "Bản thảo" + +#: engine/vibes_auth/emailing/choices.py:7 +msgid "Scheduled" +msgstr "Được lên lịch" + +#: engine/vibes_auth/emailing/choices.py:8 +msgid "Sending" +msgstr "Gửi" + +#: engine/vibes_auth/emailing/choices.py:9 +#: engine/vibes_auth/emailing/choices.py:15 +msgid "Sent" +msgstr "Gửi" + +#: engine/vibes_auth/emailing/choices.py:10 +msgid "Cancelled" +msgstr "Đã hủy" + +#: engine/vibes_auth/emailing/choices.py:14 +msgid "Pending" +msgstr "Đang chờ xử lý" + +#: engine/vibes_auth/emailing/choices.py:16 +msgid "Failed" +msgstr "Thất bại" + +#: engine/vibes_auth/emailing/choices.py:17 +msgid "Opened" +msgstr "Đã mở" + +#: engine/vibes_auth/emailing/choices.py:18 +msgid "Clicked" +msgstr "Đã nhấp chuột" + +#: engine/vibes_auth/emailing/models.py:35 +#: engine/vibes_auth/emailing/models.py:71 +#: engine/vibes_auth/emailing/models.py:121 +msgid "name" +msgstr "tên" + +#: engine/vibes_auth/emailing/models.py:36 +msgid "descriptive name for the image" +msgstr "Tên mô tả cho hình ảnh" + +#: engine/vibes_auth/emailing/models.py:40 +msgid "image" +msgstr "hình ảnh" + +#: engine/vibes_auth/emailing/models.py:41 +msgid "image file to use in email templates" +msgstr "Tệp hình ảnh để sử dụng trong mẫu email" + +#: engine/vibes_auth/emailing/models.py:47 +msgid "alt text" +msgstr "văn bản khác" + +#: engine/vibes_auth/emailing/models.py:48 +msgid "alternative text for accessibility" +msgstr "Văn bản thay thế cho tính năng truy cập" + +#: engine/vibes_auth/emailing/models.py:52 +msgid "email image" +msgstr "Hình ảnh trong email" + +#: engine/vibes_auth/emailing/models.py:53 +msgid "email images" +msgstr "Hình ảnh trong email" + +#: engine/vibes_auth/emailing/models.py:72 +msgid "internal name for the template" +msgstr "Tên nội bộ cho mẫu" + +#: engine/vibes_auth/emailing/models.py:76 +msgid "slug" +msgstr "slug" + +#: engine/vibes_auth/emailing/models.py:77 +msgid "unique identifier for the template" +msgstr "Mã định danh duy nhất cho mẫu" + +#: engine/vibes_auth/emailing/models.py:81 +msgid "subject" +msgstr "chủ đề" + +#: engine/vibes_auth/emailing/models.py:82 +msgid "email subject line - supports {{ variables }}" +msgstr "Tiêu đề email - Hỗ trợ {{ variables }}" + +#: engine/vibes_auth/emailing/models.py:85 +msgid "HTML content" +msgstr "Nội dung HTML" + +#: engine/vibes_auth/emailing/models.py:87 +msgid "" +"email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" +msgstr "" +"Nội dung thân email - hỗ trợ {{ user.first_name }}, {{ user.email }}, {{ " +"project_name }}, {{ unsubscribe_url }}" + +#: engine/vibes_auth/emailing/models.py:94 +msgid "plain text content" +msgstr "Nội dung văn bản thuần túy" + +#: engine/vibes_auth/emailing/models.py:95 +msgid "plain text fallback (auto-generated if empty)" +msgstr "Nội dung văn bản thuần túy (được tạo tự động nếu trống)" + +#: engine/vibes_auth/emailing/models.py:100 +msgid "available variables" +msgstr "Các biến có sẵn" + +#: engine/vibes_auth/emailing/models.py:101 +msgid "documentation of available template variables" +msgstr "Tài liệu mô tả các biến mẫu có sẵn" + +#: engine/vibes_auth/emailing/models.py:105 +msgid "email template" +msgstr "Mẫu email" + +#: engine/vibes_auth/emailing/models.py:106 +msgid "email templates" +msgstr "Mẫu email" + +#: engine/vibes_auth/emailing/models.py:122 +msgid "internal name for the campaign" +msgstr "Tên nội bộ cho chiến dịch" + +#: engine/vibes_auth/emailing/models.py:129 +msgid "template" +msgstr "mẫu" + +#: engine/vibes_auth/emailing/models.py:130 +msgid "email template to use for this campaign" +msgstr "Mẫu email để sử dụng cho chiến dịch này" + +#: engine/vibes_auth/emailing/models.py:136 +#: engine/vibes_auth/emailing/models.py:206 +msgid "status" +msgstr "tình trạng" + +#: engine/vibes_auth/emailing/models.py:141 +msgid "scheduled at" +msgstr "được lên lịch vào" + +#: engine/vibes_auth/emailing/models.py:142 +msgid "when to send the campaign (leave empty for manual send)" +msgstr "Thời điểm gửi chiến dịch (để trống nếu muốn gửi thủ công)" + +#: engine/vibes_auth/emailing/models.py:147 +#: engine/vibes_auth/emailing/models.py:211 +msgid "sent at" +msgstr "gửi" + +#: engine/vibes_auth/emailing/models.py:148 +msgid "when the campaign was actually sent" +msgstr "Khi chiến dịch thực sự được gửi đi" + +#: engine/vibes_auth/emailing/models.py:153 +msgid "total recipients" +msgstr "Tổng số người nhận" + +#: engine/vibes_auth/emailing/models.py:157 +msgid "sent count" +msgstr "Số lượng tin nhắn đã gửi" + +#: engine/vibes_auth/emailing/models.py:161 +msgid "failed count" +msgstr "Số lần đếm không thành công" + +#: engine/vibes_auth/emailing/models.py:165 +msgid "opened count" +msgstr "Số lượng đã mở" + +#: engine/vibes_auth/emailing/models.py:169 +msgid "clicked count" +msgstr "Số lần nhấp chuột" + +#: engine/vibes_auth/emailing/models.py:173 +msgid "email campaign" +msgstr "Chiến dịch email" + +#: engine/vibes_auth/emailing/models.py:174 +msgid "email campaigns" +msgstr "Chiến dịch email" + +#: engine/vibes_auth/emailing/models.py:194 +msgid "campaign" +msgstr "chiến dịch" + +#: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 +msgid "user" +msgstr "Người dùng" + +#: engine/vibes_auth/emailing/models.py:216 +msgid "opened at" +msgstr "Được mở tại" + +#: engine/vibes_auth/emailing/models.py:221 +msgid "clicked at" +msgstr "được nhấp vào" + +#: engine/vibes_auth/emailing/models.py:227 +msgid "tracking ID" +msgstr "Mã theo dõi" + +#: engine/vibes_auth/emailing/models.py:228 +msgid "unique ID for tracking opens and clicks" +msgstr "Mã định danh duy nhất để theo dõi số lần mở và nhấp chuột" + +#: engine/vibes_auth/emailing/models.py:233 +msgid "error message" +msgstr "Thông báo lỗi" + +#: engine/vibes_auth/emailing/models.py:234 +msgid "error details if sending failed" +msgstr "Chi tiết lỗi nếu việc gửi không thành công" + +#: engine/vibes_auth/emailing/models.py:238 +msgid "campaign recipient" +msgstr "Người nhận chiến dịch" + +#: engine/vibes_auth/emailing/models.py:239 +msgid "campaign recipients" +msgstr "Người nhận chiến dịch" + +#: engine/vibes_auth/emailing/templates/campaign_base.html:136 +msgid "All rights reserved" +msgstr "Tất cả các quyền được bảo lưu." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:138 +msgid "You received this email because you subscribed to our newsletter." +msgstr "Bạn nhận được email này vì bạn đã đăng ký nhận bản tin của chúng tôi." + +#: engine/vibes_auth/emailing/templates/campaign_base.html:139 +msgid "Unsubscribe" +msgstr "Hủy đăng ký" + +#: engine/vibes_auth/emailing/views.py:71 +msgid "Unsubscribe token is required." +msgstr "Mã hủy đăng ký là bắt buộc." + +#: engine/vibes_auth/emailing/views.py:79 +msgid "Invalid unsubscribe token format." +msgstr "Định dạng mã hủy đăng ký không hợp lệ." + +#: engine/vibes_auth/emailing/views.py:87 +msgid "User not found." +msgstr "Không tìm thấy người dùng." + +#: engine/vibes_auth/emailing/views.py:93 +msgid "You are already unsubscribed." +msgstr "Bạn đã hủy đăng ký." + +#: engine/vibes_auth/emailing/views.py:101 +msgid "You have been successfully unsubscribed from our emails." +msgstr "Bạn đã hủy đăng ký nhận email của chúng tôi thành công." + #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" -"Mã UUID được mã hóa bằng B64 của người dùng đã giới thiệu người dùng mới cho " -"chúng tôi." +"Mã UUID được mã hóa bằng B64 của người dùng đã giới thiệu người dùng mới cho" +" chúng tôi." #: engine/vibes_auth/graphene/mutations.py:68 msgid "password too weak" @@ -241,14 +577,14 @@ msgstr "Token không hợp lệ!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Các sản phẩm mà người dùng này đã xem gần đây nhất (tối đa 48), theo thứ tự " "thời gian ngược." #: engine/vibes_auth/graphene/object_types.py:49 -#: engine/vibes_auth/models.py:209 +#: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Nhóm" @@ -256,7 +592,8 @@ msgstr "Nhóm" msgid "wishlist" msgstr "Danh sách mong muốn" -#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70 +#: engine/vibes_auth/graphene/object_types.py:56 +#: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -267,11 +604,11 @@ msgstr "Các thuộc tính có thể được sử dụng để lưu trữ dữ #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" -"language is one of the {settings.LANGUAGES} with default {settings." -"LANGUAGE_CODE}" +"language is one of the {settings.LANGUAGES} with default " +"{settings.LANGUAGE_CODE}" msgstr "" -"Ngôn ngữ là một trong những {settings.LANGUAGES} với mặc định {settings." -"LANGUAGE_CODE}" +"Ngôn ngữ là một trong những {settings.LANGUAGES} với mặc định " +"{settings.LANGUAGE_CODE}" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" @@ -309,9 +646,9 @@ msgstr "" "mở rộng chức năng. Lớp này kế thừa từ mô hình AbstractUser và tích hợp các " "tính năng bổ sung như đăng nhập bằng email tùy chỉnh, phương thức xác thực, " "trạng thái đăng ký, xác minh và lưu trữ thuộc tính. Nó cũng cung cấp các " -"công cụ để quản lý các mục đã xem gần đây và kích hoạt dựa trên token để xác " -"minh tài khoản. Mô hình Người dùng được thiết kế để xử lý các trường hợp sử " -"dụng cụ thể nhằm nâng cao quản lý người dùng." +"công cụ để quản lý các mục đã xem gần đây và kích hoạt dựa trên token để xác" +" minh tài khoản. Mô hình Người dùng được thiết kế để xử lý các trường hợp sử" +" dụng cụ thể nhằm nâng cao quản lý người dùng." #: engine/vibes_auth/models.py:53 msgid "email" @@ -369,64 +706,70 @@ msgstr "Tình trạng đăng ký bản tin của người dùng" msgid "activation token" msgstr "Mã kích hoạt" -#: engine/vibes_auth/models.py:101 +#: engine/vibes_auth/models.py:95 +msgid "unsubscribe token" +msgstr "Mã hủy đăng ký" + +#: engine/vibes_auth/models.py:96 +msgid "token for secure one-click unsubscribe from campaigns" +msgstr "" +"Token để hủy đăng ký một cách an toàn chỉ với một cú nhấp chuột khỏi các " +"chiến dịch." + +#: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Thuộc tính" -#: engine/vibes_auth/models.py:141 -msgid "user" -msgstr "Người dùng" - -#: engine/vibes_auth/models.py:142 +#: engine/vibes_auth/models.py:147 msgid "users" msgstr "Người dùng" -#: engine/vibes_auth/models.py:149 +#: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Đối với các chủ đề ẩn danh" -#: engine/vibes_auth/models.py:173 +#: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Dòng trò chuyện" -#: engine/vibes_auth/models.py:174 +#: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Các chuỗi trò chuyện" -#: engine/vibes_auth/models.py:180 +#: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "" "Cung cấp tên người dùng hoặc địa chỉ email cho chuỗi thảo luận ẩn danh." -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "Người được giao nhiệm vụ phải là người dùng nhân viên." -#: engine/vibes_auth/models.py:201 +#: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Tin nhắn trò chuyện" -#: engine/vibes_auth/models.py:202 +#: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Tin nhắn trò chuyện" -#: engine/vibes_auth/models.py:208 +#: engine/vibes_auth/models.py:213 msgid "group" msgstr "Nhóm" -#: engine/vibes_auth/models.py:215 +#: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Token xuất sắc" -#: engine/vibes_auth/models.py:216 +#: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Token xuất sắc" -#: engine/vibes_auth/models.py:222 +#: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Token bị đưa vào danh sách đen" -#: engine/vibes_auth/models.py:223 +#: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Các token bị đưa vào danh sách đen" @@ -489,8 +832,7 @@ msgstr "Xin chào %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Chúng tôi đã nhận được yêu cầu đặt lại mật khẩu của bạn. Vui lòng đặt lại " @@ -536,8 +878,8 @@ msgid "" "thank you for signing up for %(project_name)s. please activate your account\n" " by clicking the button below:" msgstr "" -"Cảm ơn bạn đã đăng ký cho %(project_name)s. Vui lòng kích hoạt tài khoản của " -"bạn bằng cách nhấp vào nút bên dưới:" +"Cảm ơn bạn đã đăng ký cho %(project_name)s. Vui lòng kích hoạt tài khoản của" +" bạn bằng cách nhấp vào nút bên dưới:" #: engine/vibes_auth/templates/user_verification_email.html:96 msgid "" @@ -565,38 +907,38 @@ msgid "" "invalid phone number format. the number must be entered in the format: " "\"+999999999\". up to 15 digits allowed." msgstr "" -"Định dạng số điện thoại không hợp lệ. Số điện thoại phải được nhập theo định " -"dạng: \"+999999999\". Cho phép tối đa 15 chữ số." +"Định dạng số điện thoại không hợp lệ. Số điện thoại phải được nhập theo định" +" dạng: \"+999999999\". Cho phép tối đa 15 chữ số." #: engine/vibes_auth/views.py:34 msgid "" -"Represents a view for getting a pair of access and refresh tokens and user's " -"data. This view manages the process of handling token-based authentication " +"Represents a view for getting a pair of access and refresh tokens and user's" +" data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" "Đại diện cho một giao diện để lấy cặp token truy cập và token làm mới cùng " "với dữ liệu người dùng. Giao diện này quản lý quá trình xác thực dựa trên " -"token, cho phép các client lấy cặp token JWT (truy cập và làm mới) bằng cách " -"sử dụng thông tin đăng nhập được cung cấp. Nó được xây dựng dựa trên một " +"token, cho phép các client lấy cặp token JWT (truy cập và làm mới) bằng cách" +" sử dụng thông tin đăng nhập được cung cấp. Nó được xây dựng dựa trên một " "giao diện token cơ sở và đảm bảo giới hạn tốc độ thích hợp để bảo vệ khỏi " "các cuộc tấn công dò mật khẩu." #: engine/vibes_auth/views.py:58 msgid "" -"Handles refreshing of tokens for authentication purposes. This class is used " -"to provide functionality for token refresh operations as part of an " -"authentication system. It ensures that clients can request a refreshed token " -"within defined rate limits. The view relies on the associated serializer to " -"validate token refresh inputs and produce appropriate outputs." +"Handles refreshing of tokens for authentication purposes. This class is used" +" to provide functionality for token refresh operations as part of an " +"authentication system. It ensures that clients can request a refreshed token" +" within defined rate limits. The view relies on the associated serializer to" +" validate token refresh inputs and produce appropriate outputs." msgstr "" -"Xử lý việc làm mới token cho mục đích xác thực. Lớp này được sử dụng để cung " -"cấp chức năng cho các hoạt động làm mới token như một phần của hệ thống xác " -"thực. Nó đảm bảo rằng các client có thể yêu cầu token đã được làm mới trong " -"giới hạn tỷ lệ được định nghĩa. Giao diện người dùng dựa vào trình " -"serializer liên quan để xác thực các đầu vào làm mới token và tạo ra các đầu " -"ra phù hợp." +"Xử lý việc làm mới token cho mục đích xác thực. Lớp này được sử dụng để cung" +" cấp chức năng cho các hoạt động làm mới token như một phần của hệ thống xác" +" thực. Nó đảm bảo rằng các client có thể yêu cầu token đã được làm mới trong" +" giới hạn tỷ lệ được định nghĩa. Giao diện người dùng dựa vào trình " +"serializer liên quan để xác thực các đầu vào làm mới token và tạo ra các đầu" +" ra phù hợp." #: engine/vibes_auth/views.py:83 msgid "" @@ -613,15 +955,12 @@ msgstr "Token không hợp lệ" #: engine/vibes_auth/viewsets.py:44 msgid "" "User view set implementation.\n" -"Provides a set of actions that manage user-related data such as creation, " -"retrieval, updates, deletion, and custom actions including password reset, " -"avatar upload, account activation, and recently viewed items merging. This " -"class extends the mixins and GenericViewSet for robust API handling." +"Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "Thực hiện bộ xem người dùng. Cung cấp một tập hợp các hành động quản lý dữ " "liệu liên quan đến người dùng như tạo, truy xuất, cập nhật, xóa và các hành " -"động tùy chỉnh bao gồm đặt lại mật khẩu, tải lên avatar, kích hoạt tài khoản " -"và hợp nhất các mục đã xem gần đây. Lớp này mở rộng các mixin và " +"động tùy chỉnh bao gồm đặt lại mật khẩu, tải lên avatar, kích hoạt tài khoản" +" và hợp nhất các mục đã xem gần đây. Lớp này mở rộng các mixin và " "GenericViewSet để xử lý API một cách mạnh mẽ." #: engine/vibes_auth/viewsets.py:113 diff --git a/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo b/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c8ed6800fc4c25538f1c73467c0ea13b1ac0e545 GIT binary patch literal 18367 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

c>*P9V)iW4gRlTvUOGA!o5DPWXUEFgD=M2NfYV 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�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 literal 9628 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

{% component "unfold/components/title.html" %} - {% if currency_symbol %}{{ currency_symbol }}{% endif %}{{ kpi.net.value|default:0 }} + {% if currency_symbol %}{{ currency_symbol }}{% endif %}{{ kpi.net.value|default:0|floatformat:0|intcomma }} {% endcomponent %} {% endcomponent %} @@ -70,7 +70,7 @@ {{ kpi.refund_rate.value|default:0 }}% {% endcomponent %} {% component "unfold/components/text.html" with class="text-xs text-gray-500 dark:text-gray-400" %} - {% if currency_symbol %}{{ currency_symbol }}{% endif %}{{ returns_amount|default:0 }} {% trans "returned" %} + {% if currency_symbol %}{{ currency_symbol }}{% endif %}{{ returns_amount|default:0|floatformat:0|intcomma }} {% trans "returned" %} {% endcomponent %} {% endcomponent %} diff --git a/engine/core/templates/admin/dashboard/_low_stock.html b/engine/core/templates/admin/dashboard/_low_stock.html index c8677f4e..4f658d3a 100644 --- a/engine/core/templates/admin/dashboard/_low_stock.html +++ b/engine/core/templates/admin/dashboard/_low_stock.html @@ -6,24 +6,28 @@ {% endcomponent %} {% if low_stock_products %} - + {% else %} {% component "unfold/components/text.html" with class="text-sm text-gray-500 dark:text-gray-400" %} {% trans "No low stock items." %} diff --git a/engine/core/views.py b/engine/core/views.py index d7e1a808..07d9404b 100644 --- a/engine/core/views.py +++ b/engine/core/views.py @@ -2,6 +2,7 @@ import logging import mimetypes import os import traceback +from contextlib import suppress from datetime import date, timedelta import requests @@ -456,8 +457,9 @@ def dashboard_callback(request: HttpRequest, context: Context) -> Context: prev_end = cur_start revenue_gross_cur: float = get_revenue(clear=False, period=period) - revenue_net_cur: float = get_revenue(clear=True, period=period) returns_cur: float = get_returns(period=period) + revenue_net_before_returns: float = get_revenue(clear=True, period=period) + revenue_net_cur: float = max(revenue_net_before_returns - returns_cur, 0.0) processed_orders_cur: int = get_total_processed_orders(period=period) orders_finished_cur: int = Order.objects.filter( @@ -500,16 +502,18 @@ def dashboard_callback(request: HttpRequest, context: Context) -> Context: tax_included = bool(getattr(config, "TAX_INCLUDED", False)) if tax_rate <= 0: - revenue_net_prev = revenue_gross_prev + revenue_net_before_returns_prev = revenue_gross_prev else: if tax_included: divisor = 1.0 + (tax_rate / 100.0) - revenue_net_prev = ( + revenue_net_before_returns_prev = ( revenue_gross_prev / divisor if divisor > 0 else revenue_gross_prev ) else: - revenue_net_prev = revenue_gross_prev - revenue_net_prev = round(float(revenue_net_prev or 0.0), 2) + revenue_net_before_returns_prev = revenue_gross_prev + revenue_net_prev = max( + round(float(revenue_net_before_returns_prev or 0.0), 2) - returns_prev, 0.0 + ) def pct_delta(cur: float | int, prev: float | int) -> float: cur_f = float(cur or 0) @@ -684,23 +688,25 @@ def dashboard_callback(request: HttpRequest, context: Context) -> Context: except Exception as exc: logger.error("Failed to build daily stats: %s", exc) - low_stock_list: list[dict[str, str | int]] = [] + low_stock_list: list[dict[str, str | int | None]] = [] try: products = ( Product.objects.annotate(total_qty=Sum("stocks__quantity")) - .values("uuid", "name", "sku", "total_qty") + .prefetch_related("images") .order_by("total_qty")[:5] ) for p in products: - qty = int(p.get("total_qty") or 0) + qty = int(p.total_qty or 0) + img = "" + with suppress(Exception): + img = p.images.first().image_url if p.images.exists() else "" low_stock_list.append( { - "name": str(p.get("name") or ""), - "sku": str(p.get("sku") or ""), + "name": p.name, + "sku": p.sku or "", "qty": qty, - "admin_url": reverse( - "admin:core_product_change", args=[p.get("id")] - ), + "image": img, + "admin_url": reverse("admin:core_product_change", args=[p.pk]), } ) except Exception as exc:

|mRdYI_eG8jH(b&j39Dsg~jQfbs044@5` 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 aJpa?*$kWRGo;f%Nor;ol!{?ia)BgeGVAH_> diff --git a/engine/core/locale/es_ES/LC_MESSAGES/django.po b/engine/core/locale/es_ES/LC_MESSAGES/django.po index c42f0f97..f73ae8b4 100644 --- a/engine/core/locale/es_ES/LC_MESSAGES/django.po +++ b/engine/core/locale/es_ES/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3275,8 +3275,8 @@ msgstr "" "Django para gestionar la redirección HTTP." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "Devuelve la versión actual del eVibes." +msgid "Returns current version of the Schon. " +msgstr "Devuelve la versión actual del Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3289,15 +3289,15 @@ msgstr "Devuelve variables personalizadas para Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "Define un conjunto de vistas para gestionar operaciones relacionadas con " -"Evibes. La clase EvibesViewSet hereda de ModelViewSet y proporciona " -"funcionalidad para manejar acciones y operaciones sobre entidades Evibes. " +"schon. La clase SchonViewSet hereda de ModelViewSet y proporciona " +"funcionalidad para manejar acciones y operaciones sobre entidades schon. " "Incluye soporte para clases serializadoras dinámicas basadas en la acción " "actual, permisos personalizables y formatos de representación." @@ -3377,7 +3377,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3385,7 +3385,7 @@ msgstr "" "Gestiona las operaciones relacionadas con el modelo `Producto` en el " "sistema. Esta clase proporciona un conjunto de vistas para la gestión de " "productos, incluyendo su filtrado, serialización y operaciones en instancias " -"específicas. Se extiende desde `EvibesViewSet` para utilizar funcionalidades " +"específicas. Se extiende desde `SchonViewSet` para utilizar funcionalidades " "comunes y se integra con el framework Django REST para operaciones RESTful " "API. Incluye métodos para recuperar detalles del producto, aplicar permisos " "y acceder a comentarios relacionados de un producto." @@ -3411,7 +3411,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representación de un conjunto de vistas que maneja objetos Feedback. Esta " @@ -3419,7 +3419,7 @@ msgstr "" "incluyendo el listado, filtrado y recuperación de detalles. El propósito de " "este conjunto de vistas es proporcionar diferentes serializadores para " "diferentes acciones e implementar el manejo basado en permisos de los " -"objetos Feedback accesibles. Extiende la base `EvibesViewSet` y hace uso del " +"objetos Feedback accesibles. Extiende la base `SchonViewSet` y hace uso del " "sistema de filtrado de Django para la consulta de datos." #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/fa_IR/LC_MESSAGES/django.mo b/engine/core/locale/fa_IR/LC_MESSAGES/django.mo deleted file mode 100644 index f7b56b65f23ddd46f0761a3fd031f6e6afd9436e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYL@Jx{|h5Qd9j%810q;DHS;v>i||AF4~-63I@gG_3@iX-zN+cICJTeh7b$-@;`f zuk`4KdrtTM9v}S-FbBvfa)ult7f6=`Il<*M&d&MI!n=3936O1Jt$k~prG&4uDPNND zaC{YyqEhdi4;5;R>l@KInl9O95StcedO-sI9-lJ;ky{a`-T76I=SUz8|IeJ1&8WTHT_YO9Y zndE)xQ9O(uoDJIIyYC(L3HmEs?iyw64cWXY-|BF;s%DV%URUc?d*F8Cw#L?!BrhgJ FgFkrqT8aPw diff --git a/engine/core/locale/fa_IR/LC_MESSAGES/django.po b/engine/core/locale/fa_IR/LC_MESSAGES/django.po index 950b596f..0adb635b 100644 --- a/engine/core/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/core/locale/fa_IR/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -2975,7 +2975,7 @@ msgid "" msgstr "" #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " +msgid "Returns current version of the Schon. " msgstr "" #: engine/core/views.py:674 engine/core/views.py:689 @@ -2989,9 +2989,9 @@ msgstr "" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3045,7 +3045,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3066,7 +3066,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" diff --git a/engine/core/locale/fr_FR/LC_MESSAGES/django.mo b/engine/core/locale/fr_FR/LC_MESSAGES/django.mo deleted file mode 100644 index 28e39c812f93d643d1bb55ca5aa656bde43895eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96786 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 E2U;u6vj6}9 diff --git a/engine/core/locale/fr_FR/LC_MESSAGES/django.po b/engine/core/locale/fr_FR/LC_MESSAGES/django.po index a9ea15a9..51207175 100644 --- a/engine/core/locale/fr_FR/LC_MESSAGES/django.po +++ b/engine/core/locale/fr_FR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3330,8 +3330,8 @@ msgstr "" "`redirect` de Django pour gérer la redirection HTTP." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "Renvoie la version actuelle d'eVibes." +msgid "Returns current version of the Schon. " +msgstr "Renvoie la version actuelle d'Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3344,15 +3344,15 @@ msgstr "Renvoie les variables personnalisées pour le tableau de bord." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The schonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Définit un jeu de vues pour la gestion des opérations liées à Evibes. La " -"classe EvibesViewSet hérite de ModelViewSet et fournit des fonctionnalités " -"permettant de gérer les actions et les opérations sur les entités Evibes. " +"Définit un jeu de vues pour la gestion des opérations liées à schon. La " +"classe schonViewSet hérite de ModelViewSet et fournit des fonctionnalités " +"permettant de gérer les actions et les opérations sur les entités schon. " "Elle prend en charge les classes de sérialiseurs dynamiques en fonction de " "l'action en cours, les autorisations personnalisables et les formats de " "rendu." @@ -3434,7 +3434,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`schonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3442,7 +3442,7 @@ msgstr "" "Gère les opérations liées au modèle `Product` dans le système. Cette classe " "fournit un viewset pour gérer les produits, y compris leur filtrage, leur " "sérialisation et les opérations sur des instances spécifiques. Elle s'étend " -"à partir de `EvibesViewSet` pour utiliser des fonctionnalités communes et " +"à partir de `schonViewSet` pour utiliser des fonctionnalités communes et " "s'intègre au framework REST de Django pour les opérations API RESTful. Il " "comprend des méthodes pour récupérer les détails d'un produit, appliquer des " "permissions et accéder aux commentaires connexes d'un produit." @@ -3469,7 +3469,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `schonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Représentation d'un ensemble de vues gérant des objets de retour " @@ -3478,7 +3478,7 @@ msgstr "" "l'extraction de détails. L'objectif de ce jeu de vues est de fournir " "différents sérialiseurs pour différentes actions et d'implémenter une " "gestion basée sur les permissions des objets Feedback accessibles. Il étend " -"la classe de base `EvibesViewSet` et utilise le système de filtrage de " +"la classe de base `schonViewSet` et utilise le système de filtrage de " "Django pour l'interrogation des données." #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/he_IL/LC_MESSAGES/django.mo b/engine/core/locale/he_IL/LC_MESSAGES/django.mo deleted file mode 100644 index a3973c3f1a71b9441cf1a4e7a073045492980962..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101120 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 diff --git a/engine/core/locale/he_IL/LC_MESSAGES/django.po b/engine/core/locale/he_IL/LC_MESSAGES/django.po index 52c98b3a..8bea7571 100644 --- a/engine/core/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/core/locale/he_IL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3114,8 +3114,8 @@ msgstr "" "Django לטיפול בהפניה HTTP." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "מחזיר את הגרסה הנוכחית של eVibes." +msgid "Returns current version of the Schon. " +msgstr "מחזיר את הגרסה הנוכחית של Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3128,14 +3128,14 @@ msgstr "מחזיר משתנים מותאמים אישית עבור לוח המח #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The schonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"מגדיר קבוצת תצוגות לניהול פעולות הקשורות ל-Evibes. מחלקת EvibesViewSet יורשת " -"מ-ModelViewSet ומספקת פונקציונליות לטיפול בפעולות ובפעולות על ישויות Evibes. " +"מגדיר קבוצת תצוגות לניהול פעולות הקשורות ל-schon. מחלקת schonViewSet יורשת " +"מ-ModelViewSet ומספקת פונקציונליות לטיפול בפעולות ובפעולות על ישויות schon. " "היא כוללת תמיכה במחלוקות סריאליזציה דינמיות המבוססות על הפעולה הנוכחית, " "הרשאות הניתנות להתאמה אישית ופורמטים של עיבוד." @@ -3207,14 +3207,14 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`schonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" "מנהל פעולות הקשורות למודל `Product` במערכת. מחלקה זו מספקת מערך תצוגה לניהול " "מוצרים, כולל סינון, סידור סדרתי ופעולות על מופעים ספציפיים. היא מרחיבה את " -"`EvibesViewSet` כדי להשתמש בפונקציונליות משותפת ומשתלבת עם מסגרת Django REST " +"`schonViewSet` כדי להשתמש בפונקציונליות משותפת ומשתלבת עם מסגרת Django REST " "עבור פעולות RESTful API. כוללת שיטות לאחזור פרטי מוצר, החלת הרשאות וגישה " "למשוב הקשור למוצר." @@ -3237,13 +3237,13 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `schonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "ייצוג של קבוצת תצוגה המטפלת באובייקטי משוב. מחלקה זו מנהלת פעולות הקשורות " "לאובייקטי משוב, כולל רישום, סינון ואחזור פרטים. מטרת קבוצת תצוגה זו היא לספק " "סדרנים שונים לפעולות שונות וליישם טיפול מבוסס הרשאות באובייקטי משוב נגישים. " -"היא מרחיבה את `EvibesViewSet` הבסיסי ומשתמשת במערכת הסינון של Django לשאילתת " +"היא מרחיבה את `schonViewSet` הבסיסי ומשתמשת במערכת הסינון של Django לשאילתת " "נתונים." #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/hi_IN/LC_MESSAGES/django.mo b/engine/core/locale/hi_IN/LC_MESSAGES/django.mo deleted file mode 100644 index 9964f0bf6f21a7376a5f3b631dd55508538e3d72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmaiv&rX9t5XNit#L=^dJ$Tc>rAY~0|3pAaND4Fv+*ep}P2FvlZKDt3>-j7W7kl(e zewk$Eo5?pn=V#wD)CqEdTq38)H8Lqc0EbJgljlzxqu)hmA?u+PW|UenlC)WrJd-({ z`>y9yVyBITd>mvC(S8`A){Hot5-M?!(*`_oE7;^;0QJH12@Tj{c||=+oi!gV)P}2Z z%dIweJuNGOL`_k)E5^*g}ra;6$D4$6!%paNK~hLsRl-Z7ipc@ EFP42@z5oCK diff --git a/engine/core/locale/hi_IN/LC_MESSAGES/django.po b/engine/core/locale/hi_IN/LC_MESSAGES/django.po index 062aad45..ca599a44 100644 --- a/engine/core/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/core/locale/hi_IN/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# EVIBES GETTEXT TRANSLATIONS +# SCHON GETTEXT TRANSLATIONS # Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. +# This file is distributed under the same license as the SCHON package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" @@ -2975,7 +2975,7 @@ msgid "" msgstr "" #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " +msgid "Returns current version of the Schon. " msgstr "" #: engine/core/views.py:674 engine/core/views.py:689 @@ -2989,9 +2989,9 @@ msgstr "" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3045,7 +3045,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3066,7 +3066,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" diff --git a/engine/core/locale/hr_HR/LC_MESSAGES/django.mo b/engine/core/locale/hr_HR/LC_MESSAGES/django.mo deleted file mode 100644 index f7b56b65f23ddd46f0761a3fd031f6e6afd9436e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYL@Jx{|h5Qd9j%810q;DHS;v>i||AF4~-63I@gG_3@iX-zN+cICJTeh7b$-@;`f zuk`4KdrtTM9v}S-FbBvfa)ult7f6=`Il<*M&d&MI!n=3936O1Jt$k~prG&4uDPNND zaC{YyqEhdi4;5;R>l@KInl9O95StcedO-sI9-lJ;ky{a`-T76I=SUz8|IeJ1&8WTHT_YO9Y zndE)xQ9O(uoDJIIyYC(L3HmEs?iyw64cWXY-|BF;s%DV%URUc?d*F8Cw#L?!BrhgJ FgFkrqT8aPw diff --git a/engine/core/locale/hr_HR/LC_MESSAGES/django.po b/engine/core/locale/hr_HR/LC_MESSAGES/django.po index 950b596f..0adb635b 100644 --- a/engine/core/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/core/locale/hr_HR/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -2975,7 +2975,7 @@ msgid "" msgstr "" #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " +msgid "Returns current version of the Schon. " msgstr "" #: engine/core/views.py:674 engine/core/views.py:689 @@ -2989,9 +2989,9 @@ msgstr "" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3045,7 +3045,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3066,7 +3066,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" diff --git a/engine/core/locale/id_ID/LC_MESSAGES/django.mo b/engine/core/locale/id_ID/LC_MESSAGES/django.mo deleted file mode 100644 index ab6e827edd4418baf25c53fffce396f1bcee0c5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90973 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 AQUCw| diff --git a/engine/core/locale/it_IT/LC_MESSAGES/django.po b/engine/core/locale/it_IT/LC_MESSAGES/django.po index c99f4290..badd7421 100644 --- a/engine/core/locale/it_IT/LC_MESSAGES/django.po +++ b/engine/core/locale/it_IT/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3296,8 +3296,8 @@ msgstr "" "`redirect` di Django per gestire il reindirizzamento HTTP." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "Restituisce la versione corrente di eVibes." +msgid "Returns current version of the Schon. " +msgstr "Restituisce la versione corrente di Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3310,15 +3310,15 @@ msgstr "Restituisce le variabili personalizzate per Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The schonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "Definisce un insieme di viste per la gestione delle operazioni relative a " -"Evibes. La classe EvibesViewSet eredita da ModelViewSet e fornisce " -"funzionalità per la gestione di azioni e operazioni sulle entità Evibes. " +"schon. La classe schonViewSet eredita da ModelViewSet e fornisce " +"funzionalità per la gestione di azioni e operazioni sulle entità schon. " "Include il supporto per classi di serializzatori dinamici in base all'azione " "corrente, permessi personalizzabili e formati di rendering." @@ -3398,7 +3398,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`schonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3406,7 +3406,7 @@ msgstr "" "Gestisce le operazioni relative al modello `Product` nel sistema. Questa " "classe fornisce un insieme di viste per la gestione dei prodotti, compreso " "il loro filtraggio, la serializzazione e le operazioni su istanze " -"specifiche. Si estende da `EvibesViewSet` per utilizzare funzionalità comuni " +"specifiche. Si estende da `schonViewSet` per utilizzare funzionalità comuni " "e si integra con il framework Django REST per le operazioni API RESTful. " "Include metodi per recuperare i dettagli del prodotto, applicare i permessi " "e accedere ai feedback correlati di un prodotto." @@ -3432,7 +3432,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `schonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Rappresentazione di un insieme di viste che gestisce gli oggetti Feedback. " @@ -3440,7 +3440,7 @@ msgstr "" "l'elencazione, il filtraggio e il recupero dei dettagli. Lo scopo di questo " "insieme di viste è fornire serializzatori diversi per azioni diverse e " "implementare una gestione basata sui permessi degli oggetti Feedback " -"accessibili. Estende l'insieme di base `EvibesViewSet` e fa uso del sistema " +"accessibili. Estende l'insieme di base `schonViewSet` e fa uso del sistema " "di filtraggio di Django per interrogare i dati." #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/ja_JP/LC_MESSAGES/django.mo b/engine/core/locale/ja_JP/LC_MESSAGES/django.mo deleted file mode 100644 index bdb5af7a9385ea8d2772efbb3426e84220724eee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99557 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 UI0%5Ju4ZEv-3e~{l@Npf3n+qnMgRZ+ diff --git a/engine/core/locale/ja_JP/LC_MESSAGES/django.po b/engine/core/locale/ja_JP/LC_MESSAGES/django.po index fbec46f1..2bbc7834 100644 --- a/engine/core/locale/ja_JP/LC_MESSAGES/django.po +++ b/engine/core/locale/ja_JP/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3192,8 +3192,8 @@ msgstr "" "す。" #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "eVibes の現在のバージョンを返します。" +msgid "Returns current version of the Schon. " +msgstr "Schon の現在のバージョンを返します。" #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3206,14 +3206,14 @@ msgstr "ダッシュボードのカスタム変数を返します。" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Evibes 関連の操作を管理するためのビューセットを定義します。EvibesViewSet クラ" -"スは ModelViewSet を継承し、Evibes エンティティに対する アクションや操作を扱" +"schon 関連の操作を管理するためのビューセットを定義します。SchonViewSet クラ" +"スは ModelViewSet を継承し、schon エンティティに対する アクションや操作を扱" "うための機能を提供します。現在のアクションに基づいた動的なシリアライザークラ" "スのサポート、 カスタマイズ可能なパーミッション、レンダリングフォーマットが含" "まれます。" @@ -3290,14 +3290,14 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" "システム内の `Product` モデルに関連する操作を管理する。このクラスは、商品の" "フィルタリング、シリアライズ、特定のインスタンスに対する操作など、商品を管理" -"するためのビューセットを提供します。共通の機能を使うために `EvibesViewSet` を" +"するためのビューセットを提供します。共通の機能を使うために `SchonViewSet` を" "継承し、 RESTful API 操作のために Django REST フレームワークと統合していま" "す。商品の詳細を取得したり、パーミッションを適用したり、商品の関連するフィー" "ドバックにアクセスするためのメソッドを含みます。" @@ -3323,14 +3323,14 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Feedback オブジェクトを扱うビューセットの表現。このクラスは、一覧表示、フィル" "タリング、詳細の取得など、Feedback オブジェクトに関する操作を管理します。この" "ビューセットの目的は、アクションごとに異なるシリアライザを提供し、アクセス可" "能な Feedback オブジェクトのパーミッションベースの処理を実装することです。" -"ベースとなる `EvibesViewSet` を拡張し、Django のフィルタリングシステムを利用" +"ベースとなる `SchonViewSet` を拡張し、Django のフィルタリングシステムを利用" "してデータを取得します。" #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/kk_KZ/LC_MESSAGES/django.mo b/engine/core/locale/kk_KZ/LC_MESSAGES/django.mo deleted file mode 100644 index 9964f0bf6f21a7376a5f3b631dd55508538e3d72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmaiv&rX9t5XNit#L=^dJ$Tc>rAY~0|3pAaND4Fv+*ep}P2FvlZKDt3>-j7W7kl(e zewk$Eo5?pn=V#wD)CqEdTq38)H8Lqc0EbJgljlzxqu)hmA?u+PW|UenlC)WrJd-({ z`>y9yVyBITd>mvC(S8`A){Hot5-M?!(*`_oE7;^;0QJH12@Tj{c||=+oi!gV)P}2Z z%dIweJuNGOL`_k)E5^*g}ra;6$D4$6!%paNK~hLsRl-Z7ipc@ EFP42@z5oCK diff --git a/engine/core/locale/kk_KZ/LC_MESSAGES/django.po b/engine/core/locale/kk_KZ/LC_MESSAGES/django.po index 062aad45..46ae61de 100644 --- a/engine/core/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/core/locale/kk_KZ/LC_MESSAGES/django.po @@ -1,11 +1,11 @@ -# EVIBES GETTEXT TRANSLATIONS +# SCHON GETTEXT TRANSLATIONS # Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. +# This file is distributed under the same license as the SCHON package. # EGOR GORBUNOV , 2025. # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" @@ -2975,7 +2975,7 @@ msgid "" msgstr "" #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " +msgid "Returns current version of the Schon. " msgstr "" #: engine/core/views.py:674 engine/core/views.py:689 @@ -2989,9 +2989,9 @@ msgstr "" #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The schonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" @@ -3045,7 +3045,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`schonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3066,7 +3066,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `schonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" diff --git a/engine/core/locale/ko_KR/LC_MESSAGES/django.mo b/engine/core/locale/ko_KR/LC_MESSAGES/django.mo deleted file mode 100644 index 165f4c2e69e0a3f2c74d1945faf1e0d4879928bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94150 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 diff --git a/engine/core/locale/nl_NL/LC_MESSAGES/django.po b/engine/core/locale/nl_NL/LC_MESSAGES/django.po index c919510c..99091a68 100644 --- a/engine/core/locale/nl_NL/LC_MESSAGES/django.po +++ b/engine/core/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3307,8 +3307,8 @@ msgstr "" "afhandelen van de HTTP-omleiding." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "Geeft als resultaat de huidige versie van eVibes." +msgid "Returns current version of the Schon. " +msgstr "Geeft als resultaat de huidige versie van Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3321,15 +3321,15 @@ msgstr "Geeft aangepaste variabelen voor Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Definieert een viewset voor het beheren van Evibes-gerelateerde handelingen. " -"De klasse EvibesViewSet erft van ModelViewSet en biedt functionaliteit voor " -"het afhandelen van acties en bewerkingen op Evibes-entiteiten. Het omvat " +"Definieert een viewset voor het beheren van schon-gerelateerde handelingen. " +"De klasse SchonViewSet erft van ModelViewSet en biedt functionaliteit voor " +"het afhandelen van acties en bewerkingen op schon-entiteiten. Het omvat " "ondersteuning voor dynamische serializer klassen op basis van de huidige " "actie, aanpasbare machtigingen, en rendering formaten." @@ -3408,7 +3408,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3416,7 +3416,7 @@ msgstr "" "Beheert bewerkingen met betrekking tot het `Product` model in het systeem. " "Deze klasse biedt een viewset voor het beheren van producten, inclusief hun " "filtering, serialisatie en bewerkingen op specifieke instanties. Het breidt " -"uit van `EvibesViewSet` om gemeenschappelijke functionaliteit te gebruiken " +"uit van `SchonViewSet` om gemeenschappelijke functionaliteit te gebruiken " "en integreert met het Django REST framework voor RESTful API operaties. " "Bevat methoden voor het ophalen van productdetails, het toepassen van " "machtigingen en het verkrijgen van toegang tot gerelateerde feedback over " @@ -3443,7 +3443,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Weergave van een weergaveset die Feedback-objecten afhandelt. Deze klasse " @@ -3451,7 +3451,7 @@ msgstr "" "weergeven, filteren en ophalen van details. Het doel van deze viewset is om " "verschillende serializers voor verschillende acties te bieden en op " "toestemming gebaseerde afhandeling van toegankelijke Feedback-objecten te " -"implementeren. Het breidt de basis `EvibesViewSet` uit en maakt gebruik van " +"implementeren. Het breidt de basis `SchonViewSet` uit en maakt gebruik van " "Django's filtersysteem voor het opvragen van gegevens." #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/no_NO/LC_MESSAGES/django.mo b/engine/core/locale/no_NO/LC_MESSAGES/django.mo deleted file mode 100644 index 51a52241cf86c8d39b44ba8460de4e2fccbaa112..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91345 zcmce<37lO;nfHGJh!A8|aK}S5BpuS71&ELkBr626nT<_M-|oKMebe3dHg`$VAc)J1 ziVLEk;s&CCJ1(Q*GH!8HQ0G-gXWSiecTh)1+{Weo{+_4moO5q?CvoQg{`>Pe{X12s zPAyM8^*m2KRj2NEPB`r5guk~Qk|d7XM;2?`Q~|E?ujdsM0#(if;L+e; zz*E78txS>Zyy3huTO)b*H^$U@V`Oz-)xBTFt8g`eoF&x1fM{-4}>+7XM&n`nh!W##Z?`NiHM&o)KtHen*ede!>^myna6) zPm*!sUs+F*4-kJuD@pzi{P=FC zR{=%GF;MB7U=R2@Q2q9K@KNAbK=u32L8bq72>$^T|NR9V01vy$$87~n3BUDf=i|?T zdjEb<{P|;WCip9GAMN=Qcqr}s_%-kd@t=C8^UtrrQwcxrx+GZyt^yZ=El~Y?C#d$` z4L%Y4H_-SFoKJZ6v;6rMQ1MrROTjmRj{(06J|6sIz(+mX(=7odH+n(w)hj@ax3__! z^FHuc@R;W~olXWdUQY$ZkIO;jdm*Uy4uh~(QU^DJ_km9VAN|}USq)wao&dfcJPmv| z_;B#s;4$E@!t>k4-4$cN|03QOr57hYkFnA((FR1*!3my;t8dNX<0DzGEnq>I(P&)0;-)&@F?(F zP~~3_9s#}&RK6btRo=ZJ{_CLn`F>FJ{v9a#9sU9@@6n*jnG?cifGOdX;1OUyco;Ye zJ`}tXRQ?m7`r`$l-oF)8Id2D*{u7|me;QP|{|u`A-wyaoQ0Zq}@BMuesQx+!RR3)N z^?U$Se@uX?_lrT5dmE^FygxkuH27%3-w61d@cft;`gDK6o~G8aN25yqAUW zTfnmje-%6%Jmy7S{|i9X|KflZQ1!hU)cY?2Ro^#)s_#9Z>ic<6_5CiW`aTFMpNG8I z(>)SYy-y3c22{G8p!lE$Dxa5uM}l{NGr_yTmEecK#o(X8hk*-U;^TWcsCqO&(f@g% z>iY^%{dyO8H25y?DDb1;Dd2tK`2*mYgdYSKfv4TzzknX z`R5`08&KsP{!)K_EU0#z0(OC?fs*6f!8^bggGzt;jZU|7z%vMM0X3eU2daNw3@!sd z4K4x?d71a`8Q@&P=YVQY89Wty9;kBO2}&OP2s{D&3#fiO{^id1r-G6L=Yz+Cec%SL z3GN0z366nh-{keV3p|GKJHWNzM?kgj(3_nOM}x}e5uoUKD!2-K8mM~S28u851&;&2 z1S&o&8Gh*9D;3w;X%~xEWjmmcefD zwczRCec++sUqIF8kXQNpr-6?pe0B(L2W21jgJ*!x29^H@z&YT30e=mO?vJ^}^~5=# z!k2+5_>2($I&dN34}-J82f!zSC%oG2rX`^GYzL_KCqU_)*MO?W2f-Bl8Yuew0hHXC z{Tip=Jn%7u&jH0x7l&{!cs}8)L;Svgp9j^CUj>!V55SYapMq*<@>-|+!@)-poC9k7 zoEPFZg5vu=um`Mws{gCNOTiC=qW_7nbG}~>D&1~Se0>L~^4|ukybpoLf?oht&bPtG zf&T%f;1REPIo1X0y&a&&e;HJ|I(Ra811LJY6IA`~1;uAy1m}a_1J%xBZuRnJgJ%&w z6BOT6LFM}#P;%m>pz?n$_*n3R;F;i8LGkfXw>dr>6rVm8d@{HI6yFVj;-8yA#oq_6 z1`m0I)9ZZjsf2fdD(@qp>hW1nbow@^{`@|u@*V(H&Tl}`>4@8%9w&i{pAD-1XM<|@ z+VK2hQ27sr=k@UXnV|B2DfnpcmJt75@R5W+1&ZIk1uEYo-stl9MDRqyDX4sxfTHV4 zQ2cT!sBv8fCBL5wYP{Y6>b+Y)_2b>)`A0#Gk9)xs{3EFG`Pesk|Eva;-!Fbz6|z&dqDByo!~0)+o1aWlskQVTn36?ZUPn(sQB%m=(iVCf4>YA-+TsC`+opl4*n9{3SRVP=Yv~8$+aJV;?JJ9 zc>6C0#Rty-)z3GA%KuhS{qaF?5%|M^k9@1krFEd_ab>{QhWO8bONsv_*agmeo6Fa2 zp!oE;pvr#_cpCU!a1MCX+r1x72j>xfS_nT6RJwP8%J*B~a`2JwaQbft7ZZLusCwQA zir)J|{GUR2!8^TwhC!u!Wx#tw{C|V$w|RFvT}$9H!mj{N2fqxeoWtMc&-e$gXA68H;kSab!G8vi27d#JUk-VnkI&iQ(+DpCj{#o}J{-Iqd3p^gY89WZW3)DEdC&YgOJeKgkfG2_9 z2YbLjg56-(2Phl77<>*m>mKKiJ3;lwKZD|{nI8;v0QFuAoDaScJQe&RI2ZgKsQ1zj zIlZ0+icU9z;qLfuidc@G!6s6kUeE6Tq86)#J^e+VLq+bowcHE_mF>yd9fBwQD=5{_h1< zk0DU)yAC`Nd=aR0w}U5x?*LB$KM$&1zW^T!p8RoSDR?TVetr|EbpHa1uO9@(A4@;s ze7On~-);fLPc2aNc>$>Qyc}Exega$p{uvZsKIN0%PtOKLm%BmH>l@%1;9>iGyqyiI z-Fv|2fUgG^gR?&6{k0ujNq7QO{71lxz+Zw(z-9mB`Pae66Mh}2c6}HWpZp9|xsUv` z%dHjQzzl3#P;~tAXSgT)AK;;cFTL04d<7`}7yw1rD?z1y1}Ob_Gk7HU4p98{0Z{LM zDd1N@wdd=g-oN5L@AqL)`CJXY1H1{G39kH{_vZ#sd~<0CS3vbg3oKF3YeDtnzklAx z^-n+>uiy&eyT0K4H3EL-5d6QO=(ppGu9t2B*Ajj|xD@;|sQx(XOJ4smQ2cZycsTex z@Hp@#0dED>5AOo2;P*kbXUmuAJL)$A4uUhk;^XJaufqF0e=B$d@kjqFa~Z-X{TqBw z_}kzr!iRhv9RRKc4+Fmgsvh45XM=wLRn8N>;q*TX6kRrhqTi*Uo)3Tz0j~++=YZnd z*Mh6TcY)uc+y}u+34i%p$V9^Pzm3iUzw#aL*VF&q^Is00M7p(L3SI%KUe|&P!J9zU z_n$!Z+kFAQ0jgd<15X7X1SS6-_dSna10GL!Gx!*=4}21M4cHCd4ys?j2)+#bE2#Hh zc0aZ=_+e1|IrM#RcM}vnUJNS!6`=U^jo>S1kRDWjZvCOx^D^+Sgm-~Q3x9;}C*5A~ z4DgblFsD9*{C}1e=B%A_=`VdlY*+;2nV`R}ufCnKP`Pp82pD*8i^nFC?4Sf^)zhgNwjpkDg(AWCb{n z@E%Znb31q__+e1}`7u!MeF{7cd;rwAd(<&AtiMuFe6|b}T~`FW02IG%0xtpkLCKqs zfTs{X<+vFppI3n@rw=>|90E1Y8sGz@e=fLG?L1+I@!8uSF~i2`x4|cq?t~L(m>qN> zxPb7rp!)xvp!o6wpvLu2z}evAPnu!!auuldTm_21?gT}ruY$9{^pTFMz%Igr;Mw3y z!8PE0;rVfo@^q(z7ZJY$6u;dLicTK_Mb}S);>T}>=RW~e&*afFk`drYa3|OTp9+2z z+yTycjML>>@N~l0gVL8D4e{RqA3^v>;OoHu2GyUpJl6Z=Q=sU1A2<{ICa8Y-5vcL} zNAO7Sc%1wiw~qxCe;TOwR)Q*TD|if83-Q;28n-uq%J&VR^zGZhM}waO_1+Ib)n~@z zXPCU451vVQCn&n#45~h#0>wXH1JzI81y!$yob34>3#y%6pyJOB;R`^Oe+8)e4TIvZ zJt2GxsPu0R_#RMv_7PC><+Gs5{Vk|`{tTV~9`OY4pT~mg&nJP({~S>1E&|p59iZgK zaKPQ5_~*Hx`1&po_D$XniXZL}ldx_=E6y?z3!K8L0L{!yUHISv$^W`U~D z5>WDYBPeu<8Q+ABTw;g3QGQ-39A1#hxlCqp9zYN zH-TN?>p}J7XF-+!7f^EINwa2{JX;T*NBH@m=yortc6<%gc=#D8{yOxD-i}9rs@J>_ zehR4c+d;K!C_KLk)O$CC_}f6`_g+x#{CtT20hkj0T?ju4B`f-$7Vva%BjIJBfnb&sTvx;Fj?GS>STQ*MpK9p9MAk4>{H8 zbu4%R;WI(C?^;m(b|WY{-vO#UcY`YDGvE`zuZ8gMLGjs}yddiVsBjZhey z{{q#XC!Fr`W-F+1cL}Ke+Xad*o)4wTz5`S{{~Dgp#8?uaJ{*+XdlD!<=mN#Z ztHH;CPYdA*P;|R7gl_@GpYH}m=X*f$^{>DZIQLBF zaX|=Q3X1+Cp!Cz#;9T(4pz_%Vs=W__8lMk+viI8~K&3weR6DkUdR`6jSA(MatHblp zg5taHgW|j2h4^J>d3|<(s^<`>eCuEe-UzB6-vf%yKMVL@pz8G}P;%v%v%TM!gOV%5 zpvJ+SpvKJ)LA7hq(i!IOxeQc!w}a}(cYx}b&w(0WUj#+}Z-5#P_k(KRgP{2TkY&!F z$AL!??gABmCMf!@0+oJSh%bR^e+^Xr&jHonF9wzWTS3+1A3@RWo1pSJ@*L0SF`(!? z2UIyL!6$;7LCM`FsQh0Ds$I8&lDlsOHI6t1je{4uC;viV$pz6TUv-Uh0^cYzu&_kfaz4}hZo;-|Pgy%xNf@Ml52m!9Y2 zW)7%&uL4g2HwGLBRo=@&_=5qz8Su~GIXr*D3V-iupxS*cxC?wS_;m31;70J`l{3u0 zdM7A(_eW6lp0~=!`z4_I{kfp%`XX>X_(o84`68%sap-E78)t%&6FWgYe_;rJ6kJO9 zXW%?=_8Kp5Gbnz&E`;v}_5OE3(fg>i{`?G3<@SSm{!&ooegsr|e*vBco_4;|Z4{Iq z-2-aezZ={F{tR3XF2BI#()Hj4guex99L`?n{ZauHes2i>4%B-qE_8kP5^x>iF9v+f zMKjD_FaWM4{w`4Ie*snA-wsM%{53p3Y^#@d6ezpkL{RxG10~-#gy&`O1j4oO{Mn%N z#!cV~@Lk|};IF~ggQstsVe7141|{#;ZFjm~2Ws5z1D^u^2o%4ay2JUW1ggF-1vMT& z2uhFt99#}AzS#L|9Mm{?9Vq&J0hB%T8}LGK-X)&C1&aUP3yL3q2&(^%ztrVZ2^5{G zpy=KLQ}CIf^1Tgw68ITV^6LRm^6ZbG`1!=keB5mT#YdNcM}T*MqTjnf@zrNR_4lcl zd%JdmvU6Sz&e3yF_RxQVs?S57=HudFpvqkfif-FL_0t|u^?DsBI(-rpAN&?nJN^V7 z1s;Bd>!lMw$=OAq-z{^49I}B>PzXrSr{3^H-Jf+wBZva#|uLh+*KMg9~U%+kP zg(ZJ}EBIW(p93}iH}`qJ-2`qW{60|cAKCBpUjd2_Zv~bAzk;&k4jFL1n*~bVJr&gR zXMp0vH-j_4oOzh;D++S)>C;uz+>;clWxbz3>WPgJ^dlMnq zq~9a{1%+oHg4<{c?s$@O*_kku=&$kkH5BO!Som~IMMVBXt>0~9>9fUu}RpZiMojBPs z@$X%P2M8<&ujl$M_gmsa%1|GElIt#>>F=QdJ>)(%$rb%Qi)R{JCxQFGkAT;Jh#r&K z+$OIg&-W01uJQ&S$Ms?2Paymf?)A6V!SsE&HQ&!d{%;7+{z_<&=VRak;`&0G4}hCOnk&Iu!u{V7uQ7HL z?>vUM=Ys!->)FKZ1NC=kNZZf7#{Xd<{4<`z;wED%#6LX5|BASk+@BP}hky(%^G)AM zx*u^NvXd?@{rxE5zXep>KXIK+_+P+ldH-38+kQm zmmgJsCGczD?Obz+KPJSF5WY0rbDRB@!rhL5FCooc+~3VL!TpsXz82nn40+Du`ViML z;@$~#zH%NC!A+2Qa>q45xhWHl{_pA`dZSq6nUlhU( z!awGk#dTYVlfHT?_x}wZ$`${9&3lh0UV1A2eU7-FbNv_BYlxH#e~|kNLSAbLKaJ}* z#L17Xzaj9mpyd8P5q~eZTNn4IgP1P%_b~^P=ixT_YPD<4J_#3(AaDNQ= zKCahty_4%nr1=e~zwdDWaIR~(?&Xrr@oL`rD)%Q_3idg0ufLTJ$;`FzG>srF^=lV4F42D#ph3i$^e;B-v>twDIxZXnCaa{k* zrN0XAznu8^*UQZ#iF-RZ7yM*+_Ga+oTuX_sg}5WYn+c!5bp!VcNw2?mbN_PgzYx-$ z6XI{;*_k2k7vSy0F95fI&*RyAy&V2N5Ykn_=Y{v*!ToxkA0E=Yp7nA+_ zet0H$0^vQR*$bWwJ_mdy_+qX;uAh-+2RNJS)#1IjkmeG??;*SbT&H}%_Yr>-*A0aK zlj|Ddeg*1pn0Wm?*TL5Q?&tp1#Qz{XTTOcXy_j$}*iZN{@Izc$)70PT;HN|S--9<0 zo=f~y;rT1Le`$DrH23Sm{VCvQxR!A}mb6dd+2gn_BYYc|{zkd}T{rw~a!6+I?8&5m z1lLWWj5$2}7T2y2-oX9yx&EEBzX1ONKAUIvgMZ|D8`mSb^f#01n_M4MApCuoXRi&< zKTg~++~3MIFXXReEA)@QzY>2r*L~bS59|WJ0xsoBxjsrb|b*}S>yo&H^xQ^yJi))DzhQHSlegl{OZU^7$x5;0?7T0ZD zFC_hT@QGZH<+_`6F9r4YkKF$*ysz+?`o~|LclP*gQU@Q(bqd#F;%_1SMO>$FKZENu z?*D-+{{4yjSRT_yHeiMC^yr= zT0I>rRZBya>QK6(*{oOkTFvr~(rBxk*7|mp`eJ z)T*V?N^`<88m%;%&9qW&mWS%4 zCZ+AEG>6mGyGqreTDoP;)@|w9dTFe@r&b@ClhAZ-rU zYptPSupFx7Z>=o#kCdweJ;{nqJCYTBwHD-VBr666(k-<;Nk-j9vQn>8=paRGf0#zrYmG)a+@i;K(k%m}zR~i|%D{Xw8z|Rz(m?S@qbJ<-R3Y(vBjq#+ z#!K~PwKdjPu2VdHRioQglX#nMrHWa^L`ThQV`HW6Mwv`_VIURzq_x3xuu>i!Xr#?r z+Njl=Y2QQ-+*=;3>~$vS?e6u?D>wR~Htp+4)0y+;tr#7x?I{l|oi{ISwbUqb<>CC) zTOnf2PmLSPJRGah`4!#48~wCWl&y^=t7_H33RJCCoA8ACZ&j<&tc{6f#;C&F(-#hO zC96x7(TTKC8l|P^DQKO~N>bkIQLkV60M2R@cgn>YQe(0dIAx)~el& zW@&IxqrA?$J_O;G)FhsBImC7@cMeaHeVyryvt2Cak7`xKACgg{uoR`DG17wFCL6~~ z6$*v#?!WH#bl$wJ6R^wPdGnU0y-L1QEVq2D+#IeAblVG;FH`*D5VzPP7hiGzb$9k= znQXB14fuENKzXp#8l~SE1ih7hF(V_pH?0h&wXsT*(b7dx6>Dkl{IoZ_$>y~ll} zQEiQmDlJs2Hye_t3Nhx2LHZ2pLUuRWR2Xq77_z{S2P)OPRjx~#6XW!> z2z24rO&e463G^tBjceQwLds@3w^2(cYAwWWH60i4OB^&73{((ET@=u)x5~W>dIw9R zjj{`XzFKXxToOB(o`4JHr-P$4IB8j0gCFaADvfg5l>VWV5aMFz=ExRH^Zz zeCbvG&YVXSjs&_AFb7wTZh1X z1JDMNqjHuHHMju^x(fSrvk|?rTl#Y*xm~={d`x8C||^>!$RqB?}j&*a7JNv2v`zly99o z?OW$>*pZxHuF)Bi9_4zyR$rQ4UA`tcU;54er*p?EbX5&;(iLLr<=y3KtDIaQ(TMEw z@qv(UF|s6sq%ot6>dBJzm->-yxwIygbZG-Cr(_k7B*vC9W5yHHzLG1eQrZ|V_nW3k zN6Hf>h1GIwgS>>H(OO?=G-~N9TS&z+5-rxVP;}HCFz1R)ECoBw3aq#!#^@QX^qY2( z@(dOml|i$hVOMNkhu9w&uQ6~;#%KW5rSHtl%ClBOg8k)ltXjXid67zwu{n1`PUgvfv z<|QI?lyOg%4TeLb!VvX-s8n6yFsMj24k1*Rpu_5An${?E&eYV0re;oWD-AifPepjM zo1Jd^(bRdRrzNK9S12*J%+c6EQDXy)miJbqX>%&kri@C`KW5xF;CE#xI_J#kFCpp7 zgf%`5y+dzJxG9~R%dwYb6}6cFZf&G}WtD)+7p2Qs#QW#vt<75hhGHx9&)$>!zhTv4z?0THJXyB&6}7k#Mh_EP^1_v?UsZU%QAM$eKJ0J zW?C11e`S{_Kw$X5=5obYQI;U6N~CR(0LC@L!> ziUS zbm>J+Xb!IX+Vh&a6KnO-5QIBmFNy>HANSs9Z3u>fjZm*P0yN*~(~xFJSo<~a#7M(@ z^7%zOEkoZKq16eY!^KDCy*8d)?via)J&|>u%@3Gd%5sU!=A2^_SWOy~Uy%(Y*EPGw z`kSJInN%egXfB#=iB|f$)yX=|hOx2`9t}AcyerEC*#nexw-`Q5Hc3xLraI)*NY*vd z6-?%Lmvt8>6zdsd`D!5xLF+d+Af==QbtnZJV{4)r{2$5y!^JA&L)o5lL2edUVw8 zqE}}ydUcFH<>(n~jhelZ*Ns{@k1!+mDU&76^{Aw)X=j&onr~tc*=U(G3oZ3WRT6Eh z!E$*(YS1-7$f_snKh-!C1#_xR*;JcBNf(aQR%w=y5e>?_yJ&Z*Ua4V<$odMi@;qDF z+KAIow4`9{#5Vg2;le5>*4fa;An_q0^1Dfz)6Q(xth>z7Y5cLuWyZv`4w#rA zdRV+NP&}weH?HWJyu)E98$L?o?G9v!c}+c(i)LHSw)-{zg2bCJx;U|{X;OcqOr6Uz zYGLJ~pGAG*0^7U1R)uh-7G8-u6H@b!V!vs^?V})?gV-yw`=Q}p7#iMW5xMJJ74Lh;e(lPu*n2bmb`QG4X z491OkP?C-1rY^GfncGI}6?ZD39FmRVf71iO6&INeCTgaqFQgR{Orw-6xbSS)?UuVb zi0DZv)o{HbOef0B0|?+p8(}=;)|BF+YDi`3cri`^dF^Z{v}eAFiH1gg1A}R-q%;jY z;Qi(RG5?p_E?ML#uI?7X$B{atk;6wKbJF26B{{OF4J8RR+Ry zrfKF%8(bQEvQzk;C9!szk72$^2Bv%F!I;un8+{7VU)$~)p3^fp+WbL|*>$YC7W_4Gx88?5mnQRW~!`vaofSPJfcOrceWEur*)QNAB zWpJ?CY$6WZa#f~zBVDy+`|6@yA(}hGMlF$#%OG9avNuU+qT7`{Sr)W>uJBSAuYW{R zn*yTprw`@t>mQbh&^D6`b|Qn;byZKwLI&-SO*T4#Wq}yTsgTVn!URxEnu*Cwtzi=t)4H*IDf6^;3Y8Ah^N#~CLs6Qjl9g+mHx;`2b8 zL&bTZ(EvGP2EAoJ7V{0(NX#CNA1rA?RVWDYZ7Rx>;y3G!S>ZH)1&l)1+T$=Z$Pi*XhzPBE8Fme1N~AhfT|xu$YOIGv5!`D)QN%ogqnj3X|| zbyJwh*(0oH7StR)}w#(B4>_O<#DOQ=`nb*xX~OsidHMwzOV_6W@{ z`W|z(7O^sIZ4z-ptP)Cd3w8)Qc^sy5OUm@BXj)2#E7(~WsW>`tld=-fFRQmFUFGUu z3$$aUV9mCrwY(s9W4JONywbKZ5UXNj3LZ2`K(rin>!zepaX%G_FS~dNCSja@gq2DO zJ9Hx}O&AU8*4>pxi<-7mZhpFl1`JE|Vszs_F2P-lf2Xwai1f)w8y5;xI72HlNVS>* zDcmn-69E>CZ~$20E(W3%7Bdx%D8gHhGZe>AJvD;U?#zWLQ!sZO!!prRDM`oDga>YSET0x)VREWIa zK7WjJbEP9Q3=!K&K^ZO$jbSWDa}Oz*YKtmo7_!+zL=;cuRb`h673lCnwC_UEGI=)P zWxd`evR;8;uw_O}G_tZm*3M8ajHGTd$9WvVflDG+YbZ`f|1cQUxLnl541N63o)rwc z_DF_p6*@^!1fk@KnIob=B&w#DiY_a7AM+kQkOM`ujN|Sqdz%Vb-7FBxMvTgbP@HE= z{$fF)nD<7-)=sCuCq7W~5ffdpk&pJH9Fc5ApGF{A@TIBdQ?g=vzmv-OQth!@*gpS-vV)WOMZqW~{a;R6}BTJC4huzGS+ck9yI^Tu8Q82p09l-QbDVW+GgT z+K$sK@Ad5zVrp+)$3TyyY!hKo>ZnSzGKdj(W`!Z@x@ohAwjpaWMNy=y+X9H1n8nmW z4I;U_N)yPjJ~>LGLHfUtXfiaim8#s8$6gKXGLbL~rA{?wqkIV?HX0{lje72b3FFnjRLGT%%-d zHMNt>R7XJ&2KyR^B1A?FYe6M=0Q)fw2;BnLEFa~@zfRIIjQ zD>W?==QBVgfHsw4xKt-d>UNcF38HmsbE{$Q5+rh_#iG~37i#E`u%_-a3K7BWd*cK2 zf_6b+9*1>SO>F3Rb2W=Ca6D@5(KeTquqTk;9i5h$Xq3bJR6V5O7wr(|e(VA<+9XSt zin~WvTrnqmX^vGXPI>28&U0vgoWk_6MF+}En%~AvDDAT~u|nWv9A`K`@zmCt_f+~j zm5b<&4@e$v+retX46!Ooi1-=5Ng3lPirF$i#8A#g6gAbZYKZKD6CuFHGWm;xG7fcv zp9|C1f?|!rxrDtNDpD_xQ3!$jU1p(i{xx+r)-zLNF~;u13Pxd;7oCTz7xCP#dC@Qf zbS}b6+RwIB^AfbxxKUk-g4hQSW|C~CQFiX=-Qq+eZc`Esq&py|twcE`cX(Nu@k7T< zp&=x4i-kt5=KS1IxG9@3#Kmo1C3@RU0j;H|X-G0vDGGs5HJ^e?<1*Ski4RBRln-Zm zxITj4!$ghOICcQ0ofps&dCd!~Ug*L0w~9hH^XxHT7{~}ZcX4@-1UkcX(g5hCK;Mj)%+BMPdZ3^a z-~_GdFmVsldRiG52DD~Az_xH(YTLuq9uDKN<_gBV>@suSjyrJN2iM+&seF!c0ilgv z?ug7B>TUJUD%CFL^?vki?sx66=;U;@4x6yK!oJ3U1Uu-!t?IyR@t&rJ4R@|LGS6-{ znGo3+uVD+Ks?uJ{L9j>|?-^^@yf+djdNs8{2|2Uh_JxeR-_b5^Qi}V_P9V55W}s1I zi8bjkD1;RQlNK!|ZqYAfq8ySQhzmS`~dU6E0tHU-8ba)X= zXa|Wb!i7c_CBHXPN=Ob4)+x0a)|`$axw^dHEJN+3s#OWe6suz@iU!msqs`pWYy*)V zjZ$gtChBtS;U7|HC2HCRF&N+^TM$%r)OCR*;tcII*Klc<6N9Zf>C8D|?g!pu5Fr5Y zY=~&iU@pLHhd>w+S?BSBY_32UpBjs8>#%yMU(;3EK_WDjZNxG;X5D2x&7(=26lFHm z@J3ADxo#+wI?D;8IbBe9;xs&f_%6lzysNf4jV7dLPwHJN-LCX>IzW9X_4r}~{PIKO4 z=PO=vH&oy_!=7_mjx~wn!MlQO=;i*2er?Mwc&W0q1&TNuo14dk4te5| z%<1i8e3KGv_C^QJ%#FbU(TkH)n}EBhXUmYBSTJpz&lNj55+Kee;$|`0*5Q~64JcI4 zC8hVY$wHsY*zV@MkIn8AwbcLC%z{%d+W*mmm9s#`YuIjlCLjhYker2IHqf}Ai>}tw z=voWIs$e=(b2r+iTe6Ul2|b)|wY817ntnwe;%L8oPq8BIqcbW=Fb|chwpUDpf+Y># z&#e9G*8J#cj7;Di>s5?;16DPDP%Ev=jaF^_?)GGuuT0*Y$A0<(!zrIw5u?u}k9w>X z99fpFn#;=qV|rD?M%xuixjMGal}|=p73g2onk^hBwv4=B*2LPhEl36NmASgH&-TaN zR!CmawzqNePzCqang$6K4Ps``FuO@%!H@+8Ey`-V)yJ1KxIb9a)doO!KW5&wume@L zeduA@n0ISo-+G=a<%F+vI_pV!w%#p!gs-EK*J1E<_8VQ?u|d@*TD&p6>diVLj_KUL zXA)NC9I~2aqvoD6RrJX&#ED$#B7UJ@y5$?EoTNQd0&m*(Xk_!p-Hp1RF@|h8(nDDWS`mf}lX9oL&w$XHqpi`r| zoojmD+azGZr$xiFq^gbrW*& z&(kB{#qPl3&df6FHQRU6NVdwL;DdmG>F#WwfA~6EADt&#&A>=l4r}mlZ<+rnkrDgG zRMSmHmMx;0C~GxNNiXIT1(}6RIxx`&ETKIN-duS-XQuo4Q?3-kAnp)+aZcK9GAMcG z9qC=+_DFB;>DWfsgxEO2_I#(=I2dQB@VF10j!lHoiqeP(Mt^P_7oEZ8oRxzFBJ`D^ z2^%gtw{6*GwxBL^j|#$5pYYXjYX_Oim=9l6`l`PM;8fcTHLcbHX-~4PHeT#^4A!{z z6?#`XGmM0&8W|jkZPwf_6C%H}U8PB+UK_zLj_%srqHs+XAH=udMmG-Hy%j22PGL1D zaEa`f;0QJuKrck!vx?SG%lu6700Osji~SW>H;Zyf1q8V+H?!rg+QMqFn%R_1!@o_F zM+3#pAU4hhH?SAl*BTu`|7ynQeVqBR<1l1apLe3~A+_T$BJtr8SgN?sT!e7b+;*G? zMNj+D8)!u6<*st3f>p#7u7|z)T(wf%_lGQE>KDdh&(wWr%H3sZWbXFfoIDiUNkhFu zkFY?4wZ-Nhr%I@@TMwCosW?cYZfNI$(->Mekjp$zc&?aRgri*H%;H@T~z^&QmuVFD+QYZ2hN!Sq*J^gfQ zc6dtL5Y85JoQ;qf)`0l&rz_m4K2N~xgH9yIyz(WaNu$c?Xr8&`;$gn`kFsH6E}yJu z(SaiX*zLb4Qc;v;3fYygKStk{VSt1aAo8`gY{p@^lQL>-FD){@n^N#lOeT`~#|ow> zjJdVFy^V&dQ;7{)e7@i_Z4(drCXa2MVN$~Cq(1OuPrA#F5TD2n){zL@nBOaY7*S^Y zQ*_xaF-_xg;+nz#hJE}-_eVjrXIV}5P-Q$>MB_;0Sz-Wt;>ie&I zd8|aVwypFS8JpP|S*%Rhe!pKUWI6+-U}36=kQF>WSW{Ro;D}5MA+b1=FUlLuELuM3 zwm>$JqB$I&mMt&YlT&qPBndJo$|$HHEjy6*272t&89u!xJ9=}6M{kcxP`(AS{ePcb zr1^m>=+&9TK~(9W^Jp-P2N;k|zUa2i?~-;2rbAkK=g!{Fa9H2%jE1M92iXl!#G(0l3-MEi3olN}nrH2c$ed7R zJB9JtcRup5+G6e>`~ztixL6lMe4T7YT#|jKmK)ANAjdI-DQVO9glVLGD$Xh;_WC(} z^>d~EXV3LDuAa?XHeI-8)wZ1*S8Q0*#mW-PQ0=ei4N2Pn$s1HgCm@&#$}*2`;~Z_XOkIDOca;e6IV9&ALnh@1M0EJ?@W<}7`gJpZDUM~X!|ierjbZ5XA;IkMPAL8 z;^PqaB*A%Z0aO2e7RbhclM;C|ED}pxhA|C*Cfnkt13M%GNWc zOk7}=FopFpqeh^?jAI_zAV~(w2XC*&1w`B^wu1)66}Cy5VG_C_C>QFHu}64OqAR?r z33`@3&Iz+!H@q8qATtG>^Ri$eYdLOVsf_coG?9HeBLe$OiWd76BP08?$4Tht$=cW_ zOW09)SS1M9n4-WuSzd*>z)(}94h)q)37xCMJ)uI7iBpZL{FRL7h+-2r`cHMx9o8YY zQvVE7jQ-3)Plse9fNqVSI{1#OY^#qZL0GY5fv<*L{bZ5N3&e50#2h{}kTziprar<^ z1;W;EeQ?qiNDBst`F-%ru!d;bl>nXzRd&OWOT<-vLWO_QFpOx#bE zvu}Qw?G!>2+#l#9#JG$?(y+|bd0>v|o9JOcFNMa2zKd_69`bpgkN7CrI$9duXe4|w zXImuQq1$c8HHJMEY+z&?I-ju~E zj)~KoaAK>=jF1vHX_2iWRgH2e7LKXxaMJX63DdmSqca|R5l8*yoxv@@v5&rK!q=~| z5{Q*H^@XB*DkV~3W`>uS74jP|O-Lsf^1~*_+uaE61~TN+7abL#6BwWaemceiC$G{Y z89V!yeE`$2?U(t&OwxWJV01Bx8*RT{8V>ShG|Ge~7u&$uNV0F%yd9a1 zVDa=yCNo1)TLLOX4)ZN$4Qt+r-y=rqvBNookv>0(3G`@Z$0Iw*NfStG4M#x01FQzC z)^=#8xEBs{Z>oeg$GO@86f8C3u@>=zOpJF6e?^}QRaWBIC9hRpuX7ygAz*k zgokyHGMjPun8e1b782m+lvvwjiE%r(Z(Xyci>==O zuZvY({qzefO<%hv{{32M6xy*Q5`qKBNltc_o1TTX7T+hkgQg!!rF*U(EA8F6r!vqS zz9!w94qK41g#X~0be!?aWYTk$&F>m737h=#4e7-AS#lk!Hk0}|6I@j=RC8s0fVVZIeoV40wUYhqxlzUP4(o` z(LN(lN^%=B$&y};<8`n{{;X@V^rS$&xI&A01o0fU6mX(xh}h}tY}Yv5uFmH7JKLW( z^4z0K#`0%3Pp(|!8tX!H-7H?TWZ}Yvj8X>802~5YEHze=p8+5PfpJjSO$6ISvx-}j zDhUoNU1F)xTFnoT#{Q$1B%t7vpyqYbYZ4dhVH><;S!i&yq}_Xi?h|dKOS|%CHfvATjv~PV_UA_Dz;-&x$M;}ow37#(@mSg<~-9r4O1X_=clPjw7RBEVEnNEr&CNN zrhOqYZLsjCsZ~tHa6V8@`+FW{XZug$%dFE>#3m8bzVCCmX&>ii&*a=0Kk{E?Zr!{e zB&c#vmyQ-mCe5XZ*;^TFjiupRG!t%aNhU}pJM|*bH`CLliI1?;V^(He`_g70|KwS^ z4Yo|!^(3}F%ee>K$cp8dc#arkP%~RM^DwbdsDGJvHWM56EQ|KJdt1sdL$31Og3nzv zW0cghRf(RYO~xeo7P5?#iQ6@anXx$UG$&+_i`F-6nmF8Sj?Zm$EnTp{Y+5=*KUUz$ zvqqX^q@M~0Up736JYk(*C`LN~&FT(~fpqfsf_wqUFM61*U|v)@yz0w|JxR?D7MFrV zE&FkrXj;}UP4pU-WW9IHc=OjFPvH8@?l(!wJ1*H{0a{{+etXY64mzVv^y7t>Z0Vez zv_L3UM-q!f7W36b*gPDfas$MZge=3;SU|^8R$J1-T5j}Ibi94FrH?<1VQW&?7%hE1 z*_InUWi@wCSqOv-O!;@d*p{sbojJ2Dque4Xsy}-aiqhF(P9;TPnaS7*ngaH-@9Ut0 zFRWo=OZiA4CQLPCXJx}9_;*5d=F19UTRot9G2SeCc5)**ibr6mL|4i&|M;R!Ke9*> zNrCv?eDOXv4PtL9A=?h%Ah#anQ;HL`sh-)2rAD0*Y6@*ZaW)H1!m2%(c@5(ncdEFI z#W4YVMjYfJl#wM4VF#vsPx4Zf&z9dq(;7<6L+D78e8FGq#jrg}AKJxq7$}y3wdiks zDe8p;KY>ou4E&IWEd`dR@ihc0Czd)={k!VlDRW)d^^4BVOx<#3dl z4t2l>7|jm}5+{Unrkc(}*xWXRD&3;xmdB#`3M}@(;)Dq@(%#K6-D}If{hm!Qq!QC6 z`fo>Dabx@cBO)C0<)82@HIpDq5hg_Oq1L%2zWEu2EQu+Xm>}**%bxoA4Ovh#gP2xk zMGRocwilH>nXLZeJIGR&>-eRaJYrJw{d)(9YqC4+q}To!DRT&{JwvvsQF+K^VEZr? zh(6`~wlL!?cb(nj3nPV!n(d@a zB+nQod_chwR$*64G%F+sALX~F%PN>B-0z_-Cc=C}d&Q50 zNivUJre!9@sEbg8;TZ49Z?r$xL7CI;oZ!bSOsn<=3QW6`Vsa&-_eC4CbnJjF0?GN3 zC3UwbY-WPP-L2VZh&K{gX3Qp8OjHHgUa?TQcG>2`$fw0V+g&7Oqe+oDEA%5-b_m!) zO~fR1nZNZU`asT>liWMznvdOdF7a^5OBNYT^3_(Hdfn?bvu)8oK}{wdWE_>B>2w=e z=2?>Oz|5n_U)hU6xOE&Xqz1-rj{_9$i*}>gS8_#A0exi%jGB+c>6;fqtb9K_=Occx zeYTx~0_32E~R@t^9CO_HVKCjTawwF4}T7Y#B zny4W)Nts&xvL4ybIGSeM6!LDX#{VKqIM{ks_3g|vwr+nT-fNm=GDUw-xr5G#{Ydz5 z^tqrI_rUg4=I|+SwG-KlO*PJZwKQ(krY&1hN7~zvJK?p$7FS$JBf-Wt&uHUK@gy1) z`kAcwBQNIi*k4+AjsGogm??4)W%xYlz&U5;^MR9Q(&4~KT}~Wix+%=zgJ@u6$paS> zQ<{89|*?uxOh+(&%xBrGwco4Z9a8T|)kAoU#2g<_c{r^*@I`~nzpK2V;pxn>v`yZq3 z@eA9`LhqqzZM&oW$QAo!HdEXz>M4 zMm#+uuSlf?FduXIwwlhU=+4#X>k&5Q?u{4bY z(7L|uv(D!m=m=}NZ~T#ZF*U=l+*o@2-1!cC+3`394{4%78CS2(e`oy@2XndrLZ>#sf7O=g0 zWbAuU{~XD-^r&+C-JiqTHVm5lW_e#@Jpe(p_E9T-gQ-$2Mt_ie4#PgYq==ei_rn&d!QeXNc1 zlg5Ybm||@!ENt&&2@cj&jK3Q?k@PIt%bDhTt0G5PO8579?!JJO?S*tltIIAsP6n@F zq=h>MRa7B^AacUE>3lsDXHHvWNcNSF`R%OjKJq08CfX7kb6X0ZcjgWWOP0x*D2=A0 z=p^6dl(opF986Hmn(;z9-F{QP>vXrz=tP^WK(~rAieyDt*0w>m$(h62|6EuJ!llo6 z*P5Tc)VHLX(~*j^ytvuF}Clk*k~KoJ0*vLA{@1=xSeQuA`wnZz|wfsTyX_YzxkEFOg{PnY5(u6T)fXV6ogT! zv~3?<1=`x;PDqn)w=D?k!n5e-jf?&2!i*m>mJ2Ht+M(nEB0JYh4%SjQ(<_9$2&1Y1+&&-A6OV zvT-!@BpLg~8?h#=o&~RtcSecg_L%sfXr;zDh+XH)!MO1usKQ|C#ECY0V0~l6H6gW0 zMSVf(tAi#td-z;)Zdbl*R%zz4OlLn?+jR=tV(B+)uY|mP+ZlE^`9`vAp%A+wEe&yu zvSwxafNM|6wzd{u9%VV$?k;69K0MLT@4iH1$#<^jM+in+BWqWC7STlW9xd8ubTc!N zSYs>C%rb2N3mZdi*H0L`^_Wy`qfn~uTX^$|A%$GOgiK>f`>B^O0wikWA&x(BDGInj z(D729o>PRv*Ijzo&PubK8TITUr)Q~gv2sTE_(rzSoSN7y6ryDDsed@*XTWB?6dG=n z8{|mz+8z~FINe}r{<)6C4W~%OU;hk0GMRR&U_gCycWEw|7StMN=F`ZjJNvSI6^rN>G&BQ8=4OU^&Y z)emQCSE8R3W0j1oVn5L-`$2pZX<&K9`Ieo!VcQMEhk8map_F$-VEm=Y)gt~i`Q*YD z5?zz{GW|JM8(wqn)JYlpzGa^6^G(&b(e^$1HR&_7DbPOk;5U`C@0OD3lY3*^b`l;a zalXfJ`jn737@u*Y%VytX)4gt>dxsz0wlrO{W8KO%Thql07cc2qG;>Q?KYP=?p)ph$ z=w8_xYIJX_Elp=`-qg*JYaBGl`o(H2@1;tAX7|EH-Ta#E!qb;7e)4JT*IzhuJzv>% zZ<8sBxmc@{`}v!;q+BbvZ``yaJ!jRXjoVhN+IHUB?OWCmvu;bzs!bctgVQCf#fJbxsM3rRiCHmFCRNb`nkZT6TstD9sP1X)Is7 zj0ug-s98R@nx3*eUDUN~W-_+A<($>6+A3JIAxgPnih)Q{i;$dc)J-omME;M5C6z{e1 zh;>Z`{M`KRvGNGN*w`4u^rV2kdTWHcajZ}Tv9=xBu}uvz3h}CM%QoD_v#QkSwS4Ts zQ_+m`p7?A?U(90Mj`mG7(xF{tjw>1q^-$7seIb%C{6Lm?!3Y?B@R;AD7Hjl&^NX|eXk&ukNwMCx z#PnlNn$DazZyU}eW{*qf%?rQ3yt}2w@_asS#objt!R4&PoLM=Knrz@(P0%Ww2|{;L z8@~EUE{Z?SO^YOV8E)$Ii}+TnJXWDT{%hZ>OGEIFHY^S$egtKGAX#m{PAT?d#7r8T z!~5>24$wqur5;+dTgO|5gF|ULBZ-stG~~po{xqCW);)s33!CHjGrHAF=?136qwxSU z{kV{L7?MsNwH?Lg!$B-mDAV{SRH|IHks&D|D-lkHnqtZ3zI!yR)faw9cZ1)qj6=@{ zme-Y|rRj6}TU^OOFDZmP_Az$!O4mHzg9AfwoZcrRsXdz3o z+HJ@r$cl!}+%ch-tZh{}Zk%^3BUDKhbO}NA;4q8ip*{kp0X<2O1Yt;JGM3p5Ut8LG zLZf@#YI_%{!vcWLh@;o|B!lnkkv!Apz&Jt#+To1tg}~QgWOJsuya_=zHpQU}=-7b@ zV?+$yoz9!LbwbS7m^W`J=b@3(zD-@u#sWIN+Y(>CO!13D++vShd__-BPj8Q9vB478 z85DChORyj5s4`&)o>$1xTQS>$SwwF-48x|(0yL1iD6~@Ei<#9sKkdzK^3=p;Z*q?w z;@{vcQlBD%H@w9q<>w5bMLq zNFr+4G6?rL5U9&XMIb~ z2ojAwV%-gKrwd8OKY`K&$oUS`do)rSqxtZ~ZFtSfrw&+Jt-VEB=`kF(`j|8|$o z-!VL}YSFH~#d}A3J6PQqoQ`GNIAk4xo2Wd8{ftVI+bJgu-$t8m>gvcM3{6}=Q;d`R zVYyrT;KjZ2_fN_-rQ8<%%g+LF2v1%{K8CGgEEu#VcFKd5p0ixCh$-f}t((%bmSAvV zvD7%rCyrEWn_5$N>D=jFI)B5CWNjHkprWtqz27kB%hx0;>#Zh71vwxE*#Zs&B_3a)pWxEhEJh5|6Ct|O47Cm#TtxMClIiB9-zyLX#Hh& zC#15a(Ggd4`t=T1TpB$Rkg6F!0@4j7%Ht?AsAj@kwqhN5D6>{+B>F0R@zs={$n+Gw z8r5V}dA!>gXZ*V%Fqj#C#!6@_Y+LCr7a)@>i|tTz^)ZB>FzUNh{ZeN}?naEt=gfQ4 z6u#L@Mhrp%4OF%v3sDP2yLl)UEssf)$_8?K&wgUd>mtwD=q{;G1VDpvMs8))FjNX2 zfMDPA&Jbn@ovReqSS^}Y52}020vu`D0xSI2*)!<=0!``9=?n~c$7N|1TB)(xNno43 z@J+_H(on_^Zeawof}S3QWSB*56q5xJI8~}W>v?(???gJhOY6N*KvqV9qoJ*t@O^H= z%iN$=E?n}?l%im0q4DvS$0~<8M8Sf|tR{+Jh_#whD;!Q<93In+0@jPr?HYEKa9X=I z^B2Zd-gT0sWFIt27{z!pap*=imBP@Nzy@S^kC?ZE>Ca{kbLei%X#YioLu0}~1*$Nn zPGswu>HQupNr);MNtxOV5Gw)7vi}hM-wlODbP1gbtMpjjiUMV8?Rt!BM~G!=PY z8aDal$5$_qth}dYKL&2vG9!UK?z%GqnW5qW1vdn2Ua;6 zEbYiZj&>g0Y6c|dEAjI^1zIz*sA3phh54_hVLrN<%WQQw zCDu8r_$Z^f>xDJ){0o_@C>_)<@uC@#H1S}QW)vL_*5FGvtZ!=u$Hd474u_B$-sgWf zvLF(}dW9Y-%41UHy753AJ<6f@kXQW~vbIn9Md&HI9VQotGLwrvE(I{T&y8XJf9h*E zPbIm+fMrHBL3c@Qlo$}TW%BAYhaqfLrVq5CjnMg!l33N?Ec72dC=pNe5INZA*BR#v34C=O?-whM*;_)X*IQGDerkH?QQc0_`C#uHeDtQ z0ygNJ`BU2T?zL{bYhxPTBQ#S?sb9`x_m){+g-Y@xB>CLmr=HHl6mIUnNP{R*ZAK4$ z*`3rrn;+y2$z)`mS%&`km%JXt_OaiI`9m;$8Di8b5EsW=8;3+2iRN|m1|2+BTcydd zuZcnR%%kUyK$(@99&b0K-72ty^E#`ee#&~flT#=IQvmNopd)DqX`*~N{FW!<6R9{w z6V<1&NQsn!b(0l^;Kfyf{5G$m%aMY_C|W`4K}z<*JYTm9n0)IO*i63RhQ|3}l`#dC z_dqNX+p?e@T&nTkGo+j7R|Z9Nto5W91*eoJ$QEqPq779FgUu&znR8ldrM=r5W*&*u z6jP=?AzhHCS~wdv28 z+q6O?I>_oaJdhIyG>W4P_G!$Hg2;iTtVY8cs4!Cl>OeKzGwve`wMJ?~PPB?S(fIa- zkHg`8Mwa)Ba}h6QV=tR~SeeNNW>s)_rIBo4HPmmIouuP6eq(;$on#&uBw34`k+J29 zuBcdoQ*?u#@4E+wI6HH)*EYvr;-POhZrZSJ;7&G|bV=g3!@h`FFZWDkq1@>9B*=>^Era}UDkWQ7;sHzJa(l8(wI!Cut-WpbT2vC1sD z<Acf(?{Zxa_*608Qe}HX1ycs57Egm?*GxEFu%1u z*1otfr+bcxfNXIAO*~STUkO1zcd!Q&uP2?;9W$BJl{Jb1j!_jVZh>^}iXB_mZ{N0U z%{Kf|==4#X!O7<0x?M34X8!g=PTMj^$bk%xOg>AmoSE1hcwl*#;xAAl{c8eo)IR$7HCC`8!YWhV|63}3X^zEblWHK8d$YLNvuIx_P+k1{Q$85Yi6cm&AryZ_(0`j#mXb+CPYxy z@%>(Gd3HA9=kJaae#;1QWOcOpcXw6`HJ@?4r99Y@6N*Au24$h2uEG&y1&hRVN0Aqe zqp~dP=~|9+lxL>h6IAdw719^D9Csp7%n6wMNDRj5VblslZ+`_d&oBCDs1)3O=vR^IvuE;M9WPSli6{c zwU;tfXWP0nh=ip?AJZu`ruw2H3Fl`~jnLJoJh~KX3|rjoU>)D7)ve)pWR;SM+29IW zST^oP2hxNhsiL1dcfc=GXqEwf z7mAwF)@oHA0iT4%3gu*tA}P#?3(~=OSv%$B>7XbRigZ~}X4YYuFcdk14I9g#bWNKz z3lJ^Hq$*9QDvA6i;+@=u!&#^q^uCG8k4fa5k$>h!EZIm!Y z7HVL~M!F8V`vA0Fplv3Ed|@f0eDrG+_@>x4RfnQ%nTHL)w60rPQ+viC4iCu|K5@dc zkJ&t2Q9z5pQ#5^`Hqz3_Db;Nmu|vd!#@pzh%vqsbKBsPzTd;4IFFjDql`i&Gos6(W z5r)8(QVMQcYf&~})O@~TXz;tc_?wG%4N2%ZZ$FCH_Zmgnk;zu`JK;4HnN(*O7{x-f zEaR-cR6$cADs$9T~hFXpjz1hvZF@)kQ7xv!^S#Cnu3K^NpD( zh?aVh4ap@i;C|FH#ft-MO;Jq3Aa1L2aJK5v)Z9FIrx96*yJ14SU-rKE4Rsx)Lo{9s z%#~#={_^3&GJPD^1tpFB+%YiRBSL4vmYJy}gDSG4>$>a^GxlqWs%ntcO)h~+(lXRX z^2aFKA?0XZSTL7bmi~xB%DO#kjV743yH0DJ(Ihj9Q#>O&j^DPop}^FFGqQ|XGv*X) zU-*Oua7`ah_^>Mczm%j#>C6-;THiJ;9BF7%FESwCGU+nH7Fgvxk7A9UK}Ohb){E>J zf3Z5q=hPwvCikRX$ho&|p&#<8_&Cm(-@A?Invmn9!{-Ij4=_pV>cnZpUklf_iBoL} z%=RDTMu*(uY;&8?+_*#9$_mRppyF&!8)R~5lCkK-j@t^uW64f^G>4nV(~HxY4V#%E z#B^gcdLn-cf6235Gt`Ert(t)dABnu8@x=3tbB zfB^c+GPx$qjTwe@`!FjSaUAkh!4Fw5;mp<+MJuDjT7;L`R#ebtBp0l)MnBfI z%e7-RXq`xWbkv-*A~b#diWJH6jrlvrQc>-kV3bmn=Ez~jSGS^!Fj*a@w6BZWBal&R z#yGQ7S2i?~>HL(4IGxp+Lac)=PG$nwq$TO{_32o2Gz&UbjlyF_U0BGE{U|$58TFOx z^n%7kiN2sK@{;#M`OF&aFeSZ78d>zP*cvv&3`EjQXm>8+T|PWDI~Y5qsy=FyN8Ds? zSOSV7*UUHhSg197khOUT(nwwg4p2RcHky?sIZH#h&&Wt$4V+b|A8*RqE& zt0`(uKm9=da6r`0ZosBMyHxxWU5>nl?E!t%&51F zWA|^Kc=Mbz^>kMDR=GJ#G*g{T=gqRrXSMIgaxs$GfD%FQOtwp_ecmbQ6gfQ;Qd97! zcTXcMV)$Nl^-8d*+hky-Z97*yG}XCCrULa3gMaFNYZD&ogVIh%2 z8^n#SvbXSpnk}xH4YFg54vXz%5ZP3+_*xjfQ@!S9efF}wD-M~0O13ow4PoM!F&Pvy z+oWy1vvas%c3H)WubBpBUW0xpZ0*CVQ`+5=?qEpQ>Y3qWopRtQezDj%+yWQL@}mln z3r_NiJMRSnQHYnYanpgdG)Vv~J9w*+$yPH$>SScQ@??4GTom8XXksgff-#**tXI{s zNS)9Mjl}|yrQBs!_(FeMJ*;Vu=-Z zN1M43wnDhV>aZKw7BjF*pKmnzs3)V}6qCIUkFR(w8ZH{048bUNCr=a){O*dlne_a6 ztuJ4J%1Db`oZQgH^VJ;{ueIC2WkVH>p>HB9y9v?xarX5Mp~Per3v zi)zSCt(GWj&w(jNSO9lFEu&rxP~^wx*>7{=NxVU~ILbIAWAZ0&KFgvJzOYf8Ai!t5 zjp2wRdEY(KJ-c+YjwYz&oNX8gG|J}>RNnSm<~wY{_c+=|RNP!NiA6DNF#geu?gE!w zEI0%a(gV4mg#zf%TBG7LvDJ1nV{9EGo4HM)TBEjxYuK320u_7QvFPH=Ayh%ZpdzEu zD={T9W!w21O_ulN)$?6h^h-1?p}ZrrP<+hqr_+1wQJcAhLBPnf!63I66V9*nze;KR0~xA>+C#TUBwntd0!yiKd=Q ziOK3p>$(U9bR6}8FaK|QXSW;Ik=*ffou{B2EFu9*+H#OwD9!?s=bk;yFvM^S|bGrLU;zg=Wy3Vex|w@u43+(n%|Xmw(XH}@jN6nx)CP4#Xx`;SalLYN63CFcF(lkd1gKMW1XEftvJ} z)oz}+ej#!yT-eH%ALIeMA=w(8m@|Vshfy^oj)pKJ`z>(o4pXl!LGs37fx74R9G9`u zo2PqR*H-qo7sA@c1^hz#@3v@f9D*??_jcQ4O}^O*^Gvdk6v#%X(xXNp(4Hf>=Lkyz zs08P*&&hme4Xm4-8M2e!g3cCju@>WmXi%`IKw>^G1~zsLdLz4@9pZR4Y*q=ctB688 z8aQt<(033_s6Z$v|={4li6w3U` z)WFwLw7^!o&?Zt~H~g+nOA)Ohdt|{#249D6vFVzB*^(7uTsnF)j8+A7iNM|9Ym{3Zr)8P)A7ivF>sW zc{mC<9G;Qx+Kr6VA3%By#c!O4bdN zP*Jjaw677UL{bjWS*Ui2|J^x9G)P<`zxr=K)5KKAW7v=D!0=mw!NWd-Nl;~=!}Hh5 zO*xka5xVfw1cDA}G|r_@&E zd{%>CTZ3Y4C=V4*dI{MWQSCO4kpn-2mLj%0^($O@qM2z1_}AEn$%+9}4XW+(Re@*C zOk64m*A`HMWS$@#b{HZFUqMjzVg?>SxOa0gK}kDBl1zCg?BBBr9?ARhTQ;vq*B?q% z5)qtAc0&(kHDN6G>F=bUy`6tLUcS-O(z|1Ff_`uG=?umu6F@p-u94k-PLZriXj*R= zIk+-l47IWzBzQzOReNHj4dwKprX7e^HhY4aBRa@}8{->o{P@^++dhG%;exG878B((<<5;3 zL`=`wqPOLZLaE}cO|fY*>lmVWTG%o+q>91)ZWdi^&FxaQ)|!R;N9IJ$G6kB#fd22) z8uZ*tgnqJHC5yQEBIue;IdL#rd=&7$9@h9zsF<}6iblf>*ece<3{vcfg}ziBd3~t8 zd0j3hlu!dJGLm|9K%P2$YkPGV8HFy+&C&CM+diuXuWSWm*}}^jw>rfqiogfn5u|gw zNFWJfrSaYxzLLC&F#}tkq|!`&9rBv01|W;`Bz>$4SN3+^U00juCnSlxsfvTyPN!e zK|q2l3q6m@bGN$kW?)58mE{z!5!Z%sK&*0-(^eI2V>gJurIFQkZ42QWH}CecG)SkF zYKZ0bs{Tguv~yGeL!WRHE?|35YPWGZvj4=qajhmqr{I2V6OnVTquo7JOsicLPf`)v z(<$$UsIjRGwHhkV7*m;XM>bQRWI*@c&F(c|`&x_H43f^zc&QY(v*CZ8CNy+o!MC8T zp&^mwDcx{U{zc%$uqea3_#4N+ys(pE^oOBmP2;pYKl8%r3AhBEz#5&r0$>K!i$)JP z)}vY?AdooRV&}kJUasQyLDA=fW)?bK9PEw0)uYvKJAQ6_hi=m)z&~c!Fq-ik3N!Ib zhMgaE2_WuLKaqqZk@w*)2oFWgESJURyD30{P~KN-eYCUn9hE3A%GeJ2Ay&4F;u-EC z>V%xb^h-4(@ouy1$b3eAVMjGT>##L|4RM@co4@i9*_CKPHDkNGa!6)jjTcMn$S(wS zj6OoT$DbIqK<*+XJ>~OQl&Z5vfKw7s`VA6f^~XvBD9_rb)-|uhr1;P zy8Q~z!u0P9dzd~xYY)8Cp!;x+BMcDjogYm8WTN%!(xIis_VqHM#m7|T3e7-Z907K? zI|{!TkqVNWi!}&=)^r28(P#%4s-Z&C0;MRVLzQFC@f149JVPN3s)WP%B}=?HCV~u? z+wX2t)`m>vQ4QW(%U#_Y#El6vUA}m6_J?@8sq>Y+n4B)FHXnuof89ALa&^N!dufJy zPQaZ*%-{rsaGf9Vz0A#Ozl^vlqlULd7Xu8>5NOPeJH{T(y-jrpNGB&I`qYP6>$LKn z;cJP&y~)iL4tg={dzCS09pX<;*6`)wOA0H0_vxeI9)YBwySMSnLu_rj?<4FiUa`iM zs0yl-tWfEyLc?=N!>T_a-&Z5Z-(;#xeXD%kk~}8VC^AfK5aHqVPcY>N8DNAswQc!f z5Dw)pnK`;bs7O!1uA$y4k1Z*~WK|9KE{1QzLAhB)TMgu9AIX4YsC%9my%wa1laHlJlr67k@VE7ZfjY6IZ_7;? zWoB3qLg5vibph}*H2*MBH_4-Zr*cGQa{J*3~z&Bh5U7d_0nRDnd(PN0mL0=9U(23ISBF z8W{b^%Rya+oR1ZE3G;C>{A3opQZN^rlH&ZGcl zbAp1`lBCwOfzmfSPC96cR&pciEqZrc3jpk^ezYh`oUr_}$5}PNK(U6jwP#MS4K+f% zI$}OG+SP{zxpbn-04-{`J!uG6yLRhn?aJAyldIU&wVB{v9kI3z%$pfwS%I-Z518qb zreLI3hJ|cVlkJ2cnffs}3c`;+$xm&W6=4~aYAj|(&nXbxaYcpdX5EK{Q!RS6x}@Gj z$!CnaLeNsxS4nLB?~yw!zMu+_;?oYF4(rHj_|XC3?4xiq|5A*d94gdah^*h>{7Tv; zzUh?D5UfDKtKoj190#&Z9$dGs@B@M%^bhgKQxZ1_sEIDWa$%_=Y7?Ci=siR6>psd*{vYxpGV ztioU;#`-iY8dziCc>q2{P`k~D(Be>v7J(TguiL&DNP=(|^;-3&NUfB%;2gJ@c(MG4 z$IFuoyd}#aO8^q6f{fuR6J!KKD3RhiKE$R>9|$!SdCP{w)Yji~suU?G54D(MXorv! zS-X=a4Ml|HQG+Xs)#CU^^MRdZUAVF!Do3Xul5XBV>XwVDXHmlgdcRyee{o3Y&CA6> zLJlKh>9x!&`R5AqTXcfupAdiT&c8^j>bC<-q(`N zUn50=L6IsEi3;mae5n25WqdA=P;5oKpy&^oI#jy`D29l>WK>McGNOPk#}=otkvSZo zHY#^eCE!;h9iq0TuSPaimTg)kwe+%K!x+Ux#=Yk+O(~5!fbW&byd2BQ%85 z;TuOOoUHgU3aF#R2!&=ds!ruBh>B`qb;H*j0tW0XPcsfnteFb6QqhT0+m@|SsvNK} zV44eY_~zst2trJjs%lnyw5QCs{M6!Rt>&+diQ1Xq^CA0*;eYtXx#|*OLo8^Nn-xYL zJ0zn$Ej<7^;mU>CFwnPXrti>RKxF*Ms;0B&JDE};`F(BRqC4YPm)A&#rz~@JX_a>w z4PlVarR!|VWoc7m;9VA4FQ{TmDmwX*oXTuC$2q+a;#iFSJ^}?4RI8%X)aM4NcuIMr zpb-8NaFrVjmVu*Kp$BgpF{OSHzKi*P-*T3jTbdO7vEz;Qc zR8$SC#|r&Yxv3&m7K_mk^y-M3)u%eu%ENiV0s}(fA5_8G7a!gp{_*+093QRTeBAlt z&Kv*vWf_GOlp6<6Zp2s$!--$53?#5f=?5&hi>(NjPkOrrtMWpQE~pL1JK5A~ zkX326C3?h(l7&#$+(Q~$BtfZK1utH6QN{3-WhxpG`ikmJVA?Uo)5BE9E>%J~BFb_W z$VZ8%J?;#_^s+o(9Q$u2z4XjLZ6?orwyLWrT_AO>L8v-tta9ABLIh$D2^^=M;t~z^ z)+MH?O)o<3aIMbCt36-zbECE=+2xgv_|b8F^g`u}w6<^tQ%yW+|8pL^d3W^DqQi%J zfz|Wz>*dEbdS|u*QhY@Duf2aEqgg%^Fa7-X-*e#(N@PZCd|$eLu<<&8S}?V2&#v4U>>up zDp3fWK4!tbhzmro#p$#=s+E*%J83PwA{h>~%tg}6zhPPgZ$hxZqHHUFnC`Jit?OR< z4s{8w!asGJsG@RBWh7b20lM6|Lp9Z6bO>$(Nrx89ZQyNf;O)|cy>Fy0c+bX;>}4+@C*;A zIW;^E0|*D2$5t~{HWRZbQe5T%t6L%8SW=@Bl4@!mzkUC9Iol}TInMR1$D^f`7AD!T z8U9)~u_Vo4_SN3KHxN#n_c`!WG?GhwA43Efp-9)OEU#Ip%ew3+!lU)WjN_$GTJ+1O zQug~@IfY;10T0m?WH+ym_>hQ~&nkL?`sj=ek9;AS45HLYf{Yg86S~Rb^#z}bh?FG1iak7Qd*HGa4tQq&&2 z8tIB$#>TJ8lX^}};|fhd%%8Y#A4$3JYp#HhU4du{AjY(c+sXqVt;W2{xH}(s-tH~S z%U3&N!CDWt*B?vMYOXGau?QC1hcN_4ZZz+6MD+<@7&ymSsLJu4<@m}$N$45)9eeGa|1yamdd zjgGTYfduuL`bM={skS6Xh%b(2!(o&Rt$ZM& zwQu0*Rosz*++SSdouElb$~b=Qm_w=`s6*z7r?!-HdaV#r#lDb0^>+Iq7jM_Ni z%VY@=y&WHtE24fSiEhTCu@Vf&-DLKro1t=r9S-v~?R1#woRI zO;p!mreOdGdm_5yw7i&zr*SWgl+nvVnE)1HOO6OQ_&KtxW@DSqi0H9}+l0zwShR!Kpg)Q5gb!FoHI+%< za#?pBXQTn|q-TE7nVjZb)aJ6$Lvb zH*g_Bqo8Z$g0N*HWV(4zAqRq_<3k{|QtE>>mgpgj&AZ<{-ldFK)+89Hi9EVx0is-( zwa!f4X;Dpxq{IPd7OgpUV$F)-?XQpkA*{llw%Q6l)zkKxLKD&r9olNgT1%-3?@$^)UbZ?M1 zN}g=;8FG9Iyzv-zCEHmi-tXLm^p#ux!s2*qZH%!6?pj?ej9t6E%(i_au~Z<-QO6*j?J|MbwT3qpTvHP+`Al7Ip(mT+KW%CTf635w%{jFE1lu$( zB93IQ>$Kmdt!-`FH0+sVc#2thZGaZ`iJFM;xMu=_^83%>tD+ zRP@F|WLs!yNUccc{+v5U90_)8D^hgrzG2k?B%T@I$Lg z2Iwx{99K%ex@X}Rga(c}?n_)wqBPQ%>xP8(?gfOL1+|i7jzb1DFul^XH4te-vb)86 zBT&{x*BI>4+YsnY0cHmaf|RBS#K7&R$NB0S9H8f? z<#HGi;J?0Kx>cY<$u;0KHT4Rt3{AFyXv0WXjIsrYtjf65{ANfCO)r6RPkgU~IurQ* zngd$_q^hK%S=s>Ed7LOSI&gLPtw_vxBWFhcm6N}6+{s4QSqI_Syhqm^xRQ-a&qc%K z84ygSy5)$K2zf;Bmu!uaxqA9IAxRq-{u|8j8c4O}n*V>qD-P%XNjUy*j`%a~sgwOi z(aDv!ghdQ&&k_r|ys{Ybihb_s%9*YxA*Gn4L&d^&>F^dzAOy@@)-3M|bi;j&w06&i zF`Q$Tx0c#2lmTU#DfB==Qy4avMeUnDFuREvHw%DbHBKVSg-R$?yF(7i&=AhFO_j>1 zrkanB*G!D&u;LIrhKPJ93&cd+# z#8(8iyNjl-p1bzut0|_zoruPP-B|>$6$fiUMRH@+kkZP18W^-m!h5OqpjFBXw}@K1 z9e2c;;o5|X`>N%4hi|ZIu`apQ@NAqAWy}q?TLy6MlR~t>g+W;O3oLpp`dQw_SuMpG z@AX9LoE}EP6asQNb98#BjzQAQV}wjDuMk}^GFtxG)@?%(Z=QGZ$*f#H zii$AjQ2|D#m~JqRibls?PCn=H(cTVG>I)_R22$JXVM(Ju3hHvFO>g?j)n=wsA_#zS zisQP5T2nxgn*Q@2)hwoC-b43uAH9qBUU(bGc_JDjF_<)q$6-{49_V91G15I!!vbaIjx3apUTy>I`xkK07vZX2Ai1&eiHw6#LqqY^@7fE6`!pRVKZK#Dypp7s_ zc@QN4mI#aD!A`zA|UssFtfglvBg9@565wb_bcD4tHh8Qn2*~E=vpS3H1Jz)VpIfy4p!lv zehFVLLjw8^S1Q>yTkxClxT>BeMG4i^3N@SHka1PJ4eb+EWTNM+h;B(KkB zbft+bnWQq}veKAfRR}E7dcBLvFi5l4f)XbR071UdSCtgKqkARYctn)){77XF5BsR& z_4~jP6{0Zvp}_gd)$0u1Lnf!5s8sII&=J@PO|+j$H}W5U4ZyQu5H1B21(hD1fk_V8 zJrf?*t^9$}IJ#gm`gb-`QkmU>PvCw>1}KhMPpM5dhYgo%^S@_<6t1FC7tSvmCy^}+ zIayv&w$IUwy(evjsHYfu|G(n-dWzWpmduFDxzA*szP42NK(c!wsARqM&h2RjRqb1A z&o-Xfhq`3vbPeAyVyxtNIkFmL&FG({d`8o8RPs@K+MO{LuY=n_+J9OCYbZD|E?eCb z6-!|M{qO&gVx6hH1iN{uXiSho6eB4aC$a-J8C!gWV?^);GPX|>8dx5FCop$ywO%Lr zn(O)*(^q2qCrStZ(4&84yoI;sr{iB@^qsXR@K_5yi;Nz569RJt*0Z#id@Qg1I zcgpUiQ_`Eo8R(qvw;M-k2UI*g|tc%!j3{GyAx8{dch$+h~03% zo%7Z!`meFgjD?-_n_g@K{b9CMfMw_!qGM)dDQUwT%E{BGS#UdFjnzOQc>|q!{mY;1 zh-!^SgU*K5XiU@68v`k9;#&Q#JNl-kq_QdfzI(%TDv7j`)26GKawk;G0|(iNe+(pN5C(QWa1 zltg9fS3p`4v&UrCnKD?k>r$XESXnv8y4D=1ODYavGR?|}0Ci<+SSfPNRgvCR+-1tl z4Q0phQW!y#1x=5kf{LXJi9K^7>kj7L+!;QcQVxaGF9i(2k07{?Z>pEF?0oUzpDEsZ z@$nBgO517x4j4dJGWm>5G-@(om>QM1`MC3MB|lP?TtOa6^I-HEHaGX?6-`?q;+vax S2;yUY*|40j3>y^r8U6=#CwOlF diff --git a/engine/core/locale/no_NO/LC_MESSAGES/django.po b/engine/core/locale/no_NO/LC_MESSAGES/django.po index 9132e3b9..ce4e1d4f 100644 --- a/engine/core/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/core/locale/no_NO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3266,8 +3266,8 @@ msgstr "" "håndtere HTTP-omdirigeringen." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "Returnerer gjeldende versjon av eVibes." +msgid "Returns current version of the Schon. " +msgstr "Returnerer gjeldende versjon av Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3280,15 +3280,15 @@ msgstr "Returnerer egendefinerte variabler for Dashboard." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The schonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Definerer et visningssett for håndtering av Evibes-relaterte operasjoner. " -"EvibesViewSet-klassen arver fra ModelViewSet og tilbyr funksjonalitet for " -"håndtering av handlinger og operasjoner på Evibes-enheter. Den inkluderer " +"Definerer et visningssett for håndtering av schon-relaterte operasjoner. " +"schonViewSet-klassen arver fra ModelViewSet og tilbyr funksjonalitet for " +"håndtering av handlinger og operasjoner på schon-enheter. Den inkluderer " "støtte for dynamiske serialiseringsklasser basert på den aktuelle " "handlingen, tilpassbare tillatelser og gjengivelsesformater." @@ -3366,7 +3366,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`schonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3374,7 +3374,7 @@ msgstr "" "Håndterer operasjoner knyttet til `Product`-modellen i systemet. Denne " "klassen gir et visningssett for håndtering av produkter, inkludert " "filtrering, serialisering og operasjoner på spesifikke forekomster. Den " -"utvides fra `EvibesViewSet` for å bruke felles funksjonalitet og integreres " +"utvides fra `schonViewSet` for å bruke felles funksjonalitet og integreres " "med Django REST-rammeverket for RESTful API-operasjoner. Inkluderer metoder " "for å hente produktdetaljer, tildele tillatelser og få tilgang til relaterte " "tilbakemeldinger om et produkt." @@ -3400,7 +3400,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `schonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representasjon av et visningssett som håndterer Feedback-objekter. Denne " @@ -3408,7 +3408,7 @@ msgstr "" "opplisting, filtrering og henting av detaljer. Formålet med dette " "visningssettet er å tilby forskjellige serialisatorer for ulike handlinger " "og implementere rettighetsbasert håndtering av tilgjengelige " -"tilbakemeldingsobjekter. Den utvider basisklassen `EvibesViewSet` og bruker " +"tilbakemeldingsobjekter. Den utvider basisklassen `schonViewSet` og bruker " "Djangos filtreringssystem for å spørre etter data." #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/pl_PL/LC_MESSAGES/django.mo b/engine/core/locale/pl_PL/LC_MESSAGES/django.mo deleted file mode 100644 index 9f3db49a089f3ffd40b1a1cfbfb876e98c85f5b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93104 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 diff --git a/engine/core/locale/ro_RO/LC_MESSAGES/django.po b/engine/core/locale/ro_RO/LC_MESSAGES/django.po index 55637f3a..fb1fcfae 100644 --- a/engine/core/locale/ro_RO/LC_MESSAGES/django.po +++ b/engine/core/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -3291,8 +3291,8 @@ msgstr "" "`redirect` din Django pentru gestionarea redirecționării HTTP." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "Returnează versiunea curentă a eVibes." +msgid "Returns current version of the Schon. " +msgstr "Returnează versiunea curentă a Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3305,16 +3305,16 @@ msgstr "Returnează variabilele personalizate pentru tabloul de bord." #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "Definește un set de vizualizări pentru gestionarea operațiunilor legate de " -"Evibes. Clasa EvibesViewSet moștenește din ModelViewSet și oferă " +"schon. Clasa SchonViewSet moștenește din ModelViewSet și oferă " "funcționalitate pentru gestionarea acțiunilor și operațiunilor asupra " -"entităților Evibes. Aceasta include suport pentru clase de serializare " +"entităților schon. Aceasta include suport pentru clase de serializare " "dinamice în funcție de acțiunea curentă, permisiuni personalizabile și " "formate de redare." @@ -3394,7 +3394,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3402,7 +3402,7 @@ msgstr "" "Gestionează operațiunile legate de modelul `Product` din sistem. Această " "clasă oferă un set de vizualizări pentru gestionarea produselor, inclusiv " "filtrarea lor, serializarea și operațiunile asupra instanțelor specifice. Se " -"extinde de la `EvibesViewSet` pentru a utiliza funcționalități comune și se " +"extinde de la `SchonViewSet` pentru a utiliza funcționalități comune și se " "integrează cu cadrul REST Django pentru operațiuni API RESTful. Include " "metode pentru recuperarea detaliilor produsului, aplicarea permisiunilor și " "accesarea feedback-ului aferent unui produs." @@ -3428,7 +3428,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `schonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Reprezentarea unui set de vizualizări care gestionează obiecte Feedback. " @@ -3436,7 +3436,7 @@ msgstr "" "inclusiv listarea, filtrarea și extragerea detaliilor. Scopul acestui set de " "vizualizări este de a furniza serializatoare diferite pentru acțiuni " "diferite și de a implementa gestionarea pe bază de permisiuni a obiectelor " -"Feedback accesibile. Aceasta extinde clasa de bază `EvibesViewSet` și " +"Feedback accesibile. Aceasta extinde clasa de bază `schonViewSet` și " "utilizează sistemul de filtrare Django pentru interogarea datelor." #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/ru_RU/LC_MESSAGES/django.mo b/engine/core/locale/ru_RU/LC_MESSAGES/django.mo deleted file mode 100644 index b8f02c6c9b0d6dfde079e17fb563f6ed55946329..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123716 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 diff --git a/engine/core/locale/ru_RU/LC_MESSAGES/django.po b/engine/core/locale/ru_RU/LC_MESSAGES/django.po index 6ace69d7..bec930b5 100644 --- a/engine/core/locale/ru_RU/LC_MESSAGES/django.po +++ b/engine/core/locale/ru_RU/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2026.1\n" +"Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-04 19:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" @@ -2836,7 +2836,7 @@ msgstr "Брутто" #: engine/core/templates/admin/dashboard/_header.html:3 msgid "Dashboard" -msgstr "Приборная панель" +msgstr "Панель" #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" @@ -3282,8 +3282,8 @@ msgstr "" "функция Django `redirect`." #: engine/core/views.py:445 -msgid "Returns current version of the eVibes. " -msgstr "Возвращает текущую версию eVibes." +msgid "Returns current version of the Schon. " +msgstr "Возвращает текущую версию Schon." #: engine/core/views.py:674 engine/core/views.py:689 #, python-format @@ -3296,15 +3296,15 @@ msgstr "Возвращает пользовательские переменны #: engine/core/viewsets.py:139 msgid "" -"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " +"Defines a viewset for managing schon-related operations. The SchonViewSet " "class inherits from ModelViewSet and provides functionality for handling " -"actions and operations on Evibes entities. It includes support for dynamic " +"actions and operations on schon entities. It includes support for dynamic " "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" "Определяет набор представлений для управления операциями, связанными с " -"Evibes. Класс EvibesViewSet наследует от ModelViewSet и предоставляет " -"функциональность для обработки действий и операций над сущностями Evibes. Он " +"schon. Класс SchonViewSet наследует от ModelViewSet и предоставляет " +"функциональность для обработки действий и операций над сущностями schon. Он " "включает в себя поддержку динамических классов сериализаторов в зависимости " "от текущего действия, настраиваемые разрешения и форматы рендеринга." @@ -3384,7 +3384,7 @@ msgid "" "Manages operations related to the `Product` model in the system. This class " "provides a viewset for managing products, including their filtering, " "serialization, and operations on specific instances. It extends from " -"`EvibesViewSet` to use common functionality and integrates with the Django " +"`SchonViewSet` to use common functionality and integrates with the Django " "REST framework for RESTful API operations. Includes methods for retrieving " "product details, applying permissions, and accessing related feedback of a " "product." @@ -3392,7 +3392,7 @@ msgstr "" "Управляет операциями, связанными с моделью `Product` в системе. Этот класс " "предоставляет набор представлений для управления продуктами, включая их " "фильтрацию, сериализацию и операции над конкретными экземплярами. Он " -"расширяется от `EvibesViewSet` для использования общей функциональности и " +"расширяется от `SchonViewSet` для использования общей функциональности и " "интегрируется с фреймворком Django REST для операций RESTful API. Включает " "методы для получения информации о продукте, применения разрешений и доступа " "к связанным отзывам о продукте." @@ -3418,7 +3418,7 @@ msgid "" "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " "serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"accessible Feedback objects. It extends the base `SchonViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Представление набора представлений, обрабатывающих объекты Feedback. Этот " @@ -3426,7 +3426,7 @@ msgstr "" "составление списка, фильтрацию и получение подробной информации. Цель этого " "набора представлений - предоставить различные сериализаторы для различных " "действий и реализовать обработку доступных объектов Feedback на основе прав " -"доступа. Он расширяет базовый `EvibesViewSet` и использует систему " +"доступа. Он расширяет базовый `schonViewSet` и использует систему " "фильтрации Django для запроса данных." #: engine/core/viewsets.py:652 diff --git a/engine/core/locale/sv_SE/LC_MESSAGES/django.mo b/engine/core/locale/sv_SE/LC_MESSAGES/django.mo deleted file mode 100644 index f6436ad29a0e9b21d7ac04e958b91db1963bb068..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91415 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