From 6f4e952b9b51f579389e7671b5339275e99023d4 Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Fri, 19 Sep 2025 17:02:11 +0300 Subject: [PATCH] Features: 1) Added new language options to `User` model's `language` field in `vibes_auth`; 2) Introduced localized `title` and `content` fields to `Post` model in `blog`; 3) Implemented multilingual support for various fields in `Attribute`, `AttributeGroup`, `AttributeValue`, `Brand`, `Category`, `CategoryTag`, and `Product` models in `core`; Fixes: None; Extra: None; --- blog/locale/ar_AR/LC_MESSAGES/django.po | 2 +- blog/locale/cs_CZ/LC_MESSAGES/django.po | 2 +- blog/locale/da_DK/LC_MESSAGES/django.po | 2 +- blog/locale/de_DE/LC_MESSAGES/django.po | 2 +- blog/locale/en_GB/LC_MESSAGES/django.po | 2 +- blog/locale/en_US/LC_MESSAGES/django.po | 2 +- blog/locale/es_ES/LC_MESSAGES/django.po | 2 +- blog/locale/fa_IR/LC_MESSAGES/django.mo | Bin 0 -> 337 bytes blog/locale/fa_IR/LC_MESSAGES/django.po | 70 + blog/locale/fr_FR/LC_MESSAGES/django.po | 2 +- blog/locale/he_IL/LC_MESSAGES/django.mo | Bin 0 -> 1422 bytes blog/locale/he_IL/LC_MESSAGES/django.po | 67 + blog/locale/hi_IN/LC_MESSAGES/django.po | 2 +- blog/locale/hr_HR/LC_MESSAGES/django.mo | Bin 0 -> 337 bytes blog/locale/hr_HR/LC_MESSAGES/django.po | 70 + blog/locale/id_ID/LC_MESSAGES/django.mo | Bin 0 -> 1328 bytes blog/locale/id_ID/LC_MESSAGES/django.po | 71 + blog/locale/it_IT/LC_MESSAGES/django.po | 2 +- blog/locale/ja_JP/LC_MESSAGES/django.po | 2 +- blog/locale/kk_KZ/LC_MESSAGES/django.po | 2 +- blog/locale/ko_KR/LC_MESSAGES/django.mo | Bin 0 -> 1377 bytes blog/locale/ko_KR/LC_MESSAGES/django.po | 67 + blog/locale/nl_NL/LC_MESSAGES/django.po | 2 +- blog/locale/no_NO/LC_MESSAGES/django.mo | Bin 0 -> 1300 bytes blog/locale/no_NO/LC_MESSAGES/django.po | 68 + blog/locale/pl_PL/LC_MESSAGES/django.po | 2 +- blog/locale/pt_BR/LC_MESSAGES/django.po | 2 +- blog/locale/ro_RO/LC_MESSAGES/django.po | 2 +- blog/locale/ru_RU/LC_MESSAGES/django.po | 2 +- blog/locale/sv_SE/LC_MESSAGES/django.mo | Bin 0 -> 1324 bytes blog/locale/sv_SE/LC_MESSAGES/django.po | 69 + blog/locale/th_TH/LC_MESSAGES/django.mo | Bin 0 -> 1871 bytes blog/locale/th_TH/LC_MESSAGES/django.po | 69 + blog/locale/tr_TR/LC_MESSAGES/django.mo | Bin 0 -> 1365 bytes blog/locale/tr_TR/LC_MESSAGES/django.po | 71 + blog/locale/vi_VN/LC_MESSAGES/django.mo | Bin 0 -> 1436 bytes blog/locale/vi_VN/LC_MESSAGES/django.po | 70 + blog/locale/zh_Hans/LC_MESSAGES/django.po | 2 +- ...ntent_fa_ir_post_content_he_il_and_more.py | 173 ++ core/locale/ar_AR/LC_MESSAGES/django.mo | Bin 60319 -> 70499 bytes core/locale/ar_AR/LC_MESSAGES/django.po | 780 +++-- core/locale/cs_CZ/LC_MESSAGES/django.mo | Bin 51776 -> 60305 bytes core/locale/cs_CZ/LC_MESSAGES/django.po | 792 +++-- core/locale/da_DK/LC_MESSAGES/django.mo | Bin 50220 -> 58648 bytes core/locale/da_DK/LC_MESSAGES/django.po | 795 +++-- core/locale/de_DE/LC_MESSAGES/django.mo | Bin 53211 -> 62147 bytes core/locale/de_DE/LC_MESSAGES/django.po | 800 +++-- core/locale/en_GB/LC_MESSAGES/django.mo | Bin 48407 -> 56541 bytes core/locale/en_GB/LC_MESSAGES/django.po | 788 +++-- core/locale/en_US/LC_MESSAGES/django.mo | Bin 48398 -> 56532 bytes core/locale/en_US/LC_MESSAGES/django.po | 788 +++-- core/locale/es_ES/LC_MESSAGES/django.mo | Bin 52004 -> 60733 bytes core/locale/es_ES/LC_MESSAGES/django.po | 798 +++-- core/locale/fa_IR/LC_MESSAGES/django.mo | Bin 0 -> 337 bytes core/locale/fa_IR/LC_MESSAGES/django.po | 2432 +++++++++++++++ core/locale/fr_FR/LC_MESSAGES/django.mo | Bin 53236 -> 62404 bytes core/locale/fr_FR/LC_MESSAGES/django.po | 802 +++-- core/locale/he_IL/LC_MESSAGES/django.mo | Bin 0 -> 65152 bytes core/locale/he_IL/LC_MESSAGES/django.po | 2498 ++++++++++++++++ core/locale/hi_IN/LC_MESSAGES/django.po | 734 +++-- core/locale/hr_HR/LC_MESSAGES/django.mo | Bin 0 -> 337 bytes core/locale/hr_HR/LC_MESSAGES/django.po | 2432 +++++++++++++++ core/locale/id_ID/LC_MESSAGES/django.mo | Bin 0 -> 58724 bytes core/locale/id_ID/LC_MESSAGES/django.po | 2623 +++++++++++++++++ core/locale/it_IT/LC_MESSAGES/django.mo | Bin 52327 -> 61005 bytes core/locale/it_IT/LC_MESSAGES/django.po | 799 +++-- core/locale/ja_JP/LC_MESSAGES/django.mo | Bin 54415 -> 63597 bytes core/locale/ja_JP/LC_MESSAGES/django.po | 748 +++-- core/locale/kk_KZ/LC_MESSAGES/django.po | 734 +++-- core/locale/ko_KR/LC_MESSAGES/django.mo | Bin 0 -> 60496 bytes core/locale/ko_KR/LC_MESSAGES/django.po | 2479 ++++++++++++++++ core/locale/nl_NL/LC_MESSAGES/django.mo | Bin 51565 -> 60339 bytes core/locale/nl_NL/LC_MESSAGES/django.po | 800 +++-- core/locale/no_NO/LC_MESSAGES/django.mo | Bin 0 -> 59136 bytes core/locale/no_NO/LC_MESSAGES/django.po | 2607 ++++++++++++++++ core/locale/pl_PL/LC_MESSAGES/django.mo | Bin 51819 -> 60385 bytes core/locale/pl_PL/LC_MESSAGES/django.po | 795 +++-- core/locale/pt_BR/LC_MESSAGES/django.mo | Bin 51844 -> 60457 bytes core/locale/pt_BR/LC_MESSAGES/django.po | 796 +++-- core/locale/ro_RO/LC_MESSAGES/django.mo | Bin 52741 -> 61584 bytes core/locale/ro_RO/LC_MESSAGES/django.po | 796 +++-- core/locale/ru_RU/LC_MESSAGES/django.mo | Bin 66479 -> 78734 bytes core/locale/ru_RU/LC_MESSAGES/django.po | 796 +++-- core/locale/sv_SE/LC_MESSAGES/django.mo | Bin 0 -> 59038 bytes core/locale/sv_SE/LC_MESSAGES/django.po | 2587 ++++++++++++++++ core/locale/th_TH/LC_MESSAGES/django.mo | Bin 0 -> 93959 bytes core/locale/th_TH/LC_MESSAGES/django.po | 2557 ++++++++++++++++ core/locale/tr_TR/LC_MESSAGES/django.mo | Bin 0 -> 60703 bytes core/locale/tr_TR/LC_MESSAGES/django.po | 2602 ++++++++++++++++ core/locale/vi_VN/LC_MESSAGES/django.mo | Bin 0 -> 68120 bytes core/locale/vi_VN/LC_MESSAGES/django.po | 2620 ++++++++++++++++ core/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 46591 -> 53898 bytes core/locale/zh_Hans/LC_MESSAGES/django.po | 745 +++-- core/management/commands/__init__.py | 35 + core/management/commands/check_translated.py | 12 +- core/management/commands/deepl_translate.py | 36 +- core/management/commands/translate_fields.py | 23 +- ...ame_fa_ir_attribute_name_he_il_and_more.py | 1262 ++++++++ core/models.py | 317 +- core/static/flags/fa-ir.png | Bin 0 -> 297 bytes core/static/flags/he-il.png | Bin 0 -> 224 bytes core/static/flags/hr-hr.png | Bin 0 -> 336 bytes core/static/flags/id-id.png | Bin 0 -> 99 bytes core/static/flags/ko-kr.png | Bin 0 -> 556 bytes core/static/flags/no-no.png | Bin 0 -> 164 bytes core/static/flags/sv-se.png | Bin 0 -> 104 bytes core/static/flags/th-th.png | Bin 0 -> 113 bytes core/static/flags/tr-tr.png | Bin 0 -> 279 bytes core/static/flags/vi-vn.png | Bin 0 -> 216 bytes evibes/locale/ar_AR/LC_MESSAGES/django.po | 2 +- evibes/locale/cs_CZ/LC_MESSAGES/django.po | 2 +- evibes/locale/da_DK/LC_MESSAGES/django.po | 2 +- evibes/locale/de_DE/LC_MESSAGES/django.po | 2 +- evibes/locale/en_GB/LC_MESSAGES/django.po | 2 +- evibes/locale/en_US/LC_MESSAGES/django.po | 2 +- evibes/locale/es_ES/LC_MESSAGES/django.po | 2 +- evibes/locale/fa_IR/LC_MESSAGES/django.mo | Bin 0 -> 337 bytes evibes/locale/fa_IR/LC_MESSAGES/django.po | 161 + evibes/locale/fr_FR/LC_MESSAGES/django.po | 2 +- evibes/locale/he_IL/LC_MESSAGES/django.mo | Bin 0 -> 2883 bytes evibes/locale/he_IL/LC_MESSAGES/django.po | 158 + evibes/locale/hi_IN/LC_MESSAGES/django.po | 2 +- evibes/locale/hr_HR/LC_MESSAGES/django.mo | Bin 0 -> 337 bytes evibes/locale/hr_HR/LC_MESSAGES/django.po | 161 + evibes/locale/id_ID/LC_MESSAGES/django.mo | Bin 0 -> 2565 bytes evibes/locale/id_ID/LC_MESSAGES/django.po | 158 + evibes/locale/it_IT/LC_MESSAGES/django.po | 2 +- evibes/locale/ja_JP/LC_MESSAGES/django.po | 2 +- evibes/locale/kk_KZ/LC_MESSAGES/django.po | 2 +- evibes/locale/ko_KR/LC_MESSAGES/django.mo | Bin 0 -> 2635 bytes evibes/locale/ko_KR/LC_MESSAGES/django.po | 158 + evibes/locale/nl_NL/LC_MESSAGES/django.po | 2 +- evibes/locale/no_NO/LC_MESSAGES/django.mo | Bin 0 -> 2665 bytes evibes/locale/no_NO/LC_MESSAGES/django.po | 158 + evibes/locale/pl_PL/LC_MESSAGES/django.po | 2 +- evibes/locale/pt_BR/LC_MESSAGES/django.po | 2 +- evibes/locale/ro_RO/LC_MESSAGES/django.po | 2 +- evibes/locale/ru_RU/LC_MESSAGES/django.po | 2 +- evibes/locale/sv_SE/LC_MESSAGES/django.mo | Bin 0 -> 2672 bytes evibes/locale/sv_SE/LC_MESSAGES/django.po | 158 + evibes/locale/th_TH/LC_MESSAGES/django.mo | Bin 0 -> 3673 bytes evibes/locale/th_TH/LC_MESSAGES/django.po | 158 + evibes/locale/tr_TR/LC_MESSAGES/django.mo | Bin 0 -> 2705 bytes evibes/locale/tr_TR/LC_MESSAGES/django.po | 158 + evibes/locale/vi_VN/LC_MESSAGES/django.mo | Bin 0 -> 2910 bytes evibes/locale/vi_VN/LC_MESSAGES/django.po | 158 + evibes/locale/zh_Hans/LC_MESSAGES/django.po | 2 +- evibes/settings/base.py | 12 +- payments/locale/ar_AR/LC_MESSAGES/django.po | 2 +- payments/locale/cs_CZ/LC_MESSAGES/django.po | 2 +- payments/locale/da_DK/LC_MESSAGES/django.po | 2 +- payments/locale/de_DE/LC_MESSAGES/django.po | 2 +- payments/locale/en_GB/LC_MESSAGES/django.po | 2 +- payments/locale/en_US/LC_MESSAGES/django.po | 2 +- payments/locale/es_ES/LC_MESSAGES/django.po | 2 +- payments/locale/fa_IR/LC_MESSAGES/django.mo | Bin 0 -> 337 bytes payments/locale/fa_IR/LC_MESSAGES/django.po | 119 + payments/locale/fr_FR/LC_MESSAGES/django.po | 2 +- payments/locale/he_IL/LC_MESSAGES/django.mo | Bin 0 -> 2457 bytes payments/locale/he_IL/LC_MESSAGES/django.po | 119 + payments/locale/hi_IN/LC_MESSAGES/django.po | 2 +- payments/locale/hr_HR/LC_MESSAGES/django.mo | Bin 0 -> 337 bytes payments/locale/hr_HR/LC_MESSAGES/django.po | 119 + payments/locale/id_ID/LC_MESSAGES/django.mo | Bin 0 -> 2429 bytes payments/locale/id_ID/LC_MESSAGES/django.po | 122 + payments/locale/it_IT/LC_MESSAGES/django.po | 2 +- payments/locale/ja_JP/LC_MESSAGES/django.po | 2 +- payments/locale/kk_KZ/LC_MESSAGES/django.po | 2 +- payments/locale/ko_KR/LC_MESSAGES/django.mo | Bin 0 -> 2391 bytes payments/locale/ko_KR/LC_MESSAGES/django.po | 122 + payments/locale/nl_NL/LC_MESSAGES/django.po | 2 +- payments/locale/no_NO/LC_MESSAGES/django.mo | Bin 0 -> 2373 bytes payments/locale/no_NO/LC_MESSAGES/django.po | 122 + payments/locale/pl_PL/LC_MESSAGES/django.po | 2 +- payments/locale/pt_BR/LC_MESSAGES/django.po | 2 +- payments/locale/ro_RO/LC_MESSAGES/django.po | 2 +- payments/locale/ru_RU/LC_MESSAGES/django.po | 2 +- payments/locale/sv_SE/LC_MESSAGES/django.mo | Bin 0 -> 2392 bytes payments/locale/sv_SE/LC_MESSAGES/django.po | 122 + payments/locale/th_TH/LC_MESSAGES/django.mo | Bin 0 -> 3167 bytes payments/locale/th_TH/LC_MESSAGES/django.po | 120 + payments/locale/tr_TR/LC_MESSAGES/django.mo | Bin 0 -> 2386 bytes payments/locale/tr_TR/LC_MESSAGES/django.po | 123 + payments/locale/vi_VN/LC_MESSAGES/django.mo | Bin 0 -> 2557 bytes payments/locale/vi_VN/LC_MESSAGES/django.po | 122 + payments/locale/zh_Hans/LC_MESSAGES/django.po | 2 +- scripts/Windows/compile-messages.ps1 | 4 +- scripts/Windows/make-messages.ps1 | 4 +- vibes_auth/locale/ar_AR/LC_MESSAGES/django.po | 15 +- vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po | 14 +- vibes_auth/locale/da_DK/LC_MESSAGES/django.po | 14 +- vibes_auth/locale/de_DE/LC_MESSAGES/django.po | 22 +- vibes_auth/locale/en_GB/LC_MESSAGES/django.po | 11 +- vibes_auth/locale/en_US/LC_MESSAGES/django.po | 11 +- vibes_auth/locale/es_ES/LC_MESSAGES/django.po | 14 +- vibes_auth/locale/fa_IR/LC_MESSAGES/django.mo | Bin 0 -> 337 bytes vibes_auth/locale/fa_IR/LC_MESSAGES/django.po | 431 +++ vibes_auth/locale/fr_FR/LC_MESSAGES/django.po | 25 +- vibes_auth/locale/he_IL/LC_MESSAGES/django.mo | Bin 0 -> 9142 bytes vibes_auth/locale/he_IL/LC_MESSAGES/django.po | 435 +++ vibes_auth/locale/hi_IN/LC_MESSAGES/django.po | 2 +- vibes_auth/locale/hr_HR/LC_MESSAGES/django.mo | Bin 0 -> 337 bytes vibes_auth/locale/hr_HR/LC_MESSAGES/django.po | 431 +++ vibes_auth/locale/id_ID/LC_MESSAGES/django.mo | Bin 0 -> 8488 bytes vibes_auth/locale/id_ID/LC_MESSAGES/django.po | 447 +++ vibes_auth/locale/it_IT/LC_MESSAGES/django.po | 11 +- vibes_auth/locale/ja_JP/LC_MESSAGES/django.po | 30 +- vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po | 2 +- vibes_auth/locale/ko_KR/LC_MESSAGES/django.mo | Bin 0 -> 8980 bytes vibes_auth/locale/ko_KR/LC_MESSAGES/django.po | 437 +++ vibes_auth/locale/nl_NL/LC_MESSAGES/django.po | 19 +- vibes_auth/locale/no_NO/LC_MESSAGES/django.mo | Bin 0 -> 8475 bytes vibes_auth/locale/no_NO/LC_MESSAGES/django.po | 446 +++ vibes_auth/locale/pl_PL/LC_MESSAGES/django.po | 18 +- vibes_auth/locale/pt_BR/LC_MESSAGES/django.po | 15 +- vibes_auth/locale/ro_RO/LC_MESSAGES/django.po | 14 +- vibes_auth/locale/ru_RU/LC_MESSAGES/django.po | 21 +- vibes_auth/locale/sv_SE/LC_MESSAGES/django.mo | Bin 0 -> 8623 bytes vibes_auth/locale/sv_SE/LC_MESSAGES/django.po | 446 +++ vibes_auth/locale/th_TH/LC_MESSAGES/django.mo | Bin 0 -> 12397 bytes vibes_auth/locale/th_TH/LC_MESSAGES/django.po | 436 +++ vibes_auth/locale/tr_TR/LC_MESSAGES/django.mo | Bin 0 -> 8823 bytes vibes_auth/locale/tr_TR/LC_MESSAGES/django.po | 444 +++ vibes_auth/locale/vi_VN/LC_MESSAGES/django.mo | Bin 0 -> 9331 bytes vibes_auth/locale/vi_VN/LC_MESSAGES/django.po | 440 +++ .../locale/zh_Hans/LC_MESSAGES/django.po | 14 +- .../migrations/0004_alter_user_language.py | 50 + 227 files changed, 43699 insertions(+), 6013 deletions(-) create mode 100644 blog/locale/fa_IR/LC_MESSAGES/django.mo create mode 100644 blog/locale/fa_IR/LC_MESSAGES/django.po create mode 100644 blog/locale/he_IL/LC_MESSAGES/django.mo create mode 100644 blog/locale/he_IL/LC_MESSAGES/django.po create mode 100644 blog/locale/hr_HR/LC_MESSAGES/django.mo create mode 100644 blog/locale/hr_HR/LC_MESSAGES/django.po create mode 100644 blog/locale/id_ID/LC_MESSAGES/django.mo create mode 100644 blog/locale/id_ID/LC_MESSAGES/django.po create mode 100644 blog/locale/ko_KR/LC_MESSAGES/django.mo create mode 100644 blog/locale/ko_KR/LC_MESSAGES/django.po create mode 100644 blog/locale/no_NO/LC_MESSAGES/django.mo create mode 100644 blog/locale/no_NO/LC_MESSAGES/django.po create mode 100644 blog/locale/sv_SE/LC_MESSAGES/django.mo create mode 100644 blog/locale/sv_SE/LC_MESSAGES/django.po create mode 100644 blog/locale/th_TH/LC_MESSAGES/django.mo create mode 100644 blog/locale/th_TH/LC_MESSAGES/django.po create mode 100644 blog/locale/tr_TR/LC_MESSAGES/django.mo create mode 100644 blog/locale/tr_TR/LC_MESSAGES/django.po create mode 100644 blog/locale/vi_VN/LC_MESSAGES/django.mo create mode 100644 blog/locale/vi_VN/LC_MESSAGES/django.po create mode 100644 blog/migrations/0005_post_content_fa_ir_post_content_he_il_and_more.py create mode 100644 core/locale/fa_IR/LC_MESSAGES/django.mo create mode 100644 core/locale/fa_IR/LC_MESSAGES/django.po create mode 100644 core/locale/he_IL/LC_MESSAGES/django.mo create mode 100644 core/locale/he_IL/LC_MESSAGES/django.po create mode 100644 core/locale/hr_HR/LC_MESSAGES/django.mo create mode 100644 core/locale/hr_HR/LC_MESSAGES/django.po create mode 100644 core/locale/id_ID/LC_MESSAGES/django.mo create mode 100644 core/locale/id_ID/LC_MESSAGES/django.po create mode 100644 core/locale/ko_KR/LC_MESSAGES/django.mo create mode 100644 core/locale/ko_KR/LC_MESSAGES/django.po create mode 100644 core/locale/no_NO/LC_MESSAGES/django.mo create mode 100644 core/locale/no_NO/LC_MESSAGES/django.po create mode 100644 core/locale/sv_SE/LC_MESSAGES/django.mo create mode 100644 core/locale/sv_SE/LC_MESSAGES/django.po create mode 100644 core/locale/th_TH/LC_MESSAGES/django.mo create mode 100644 core/locale/th_TH/LC_MESSAGES/django.po create mode 100644 core/locale/tr_TR/LC_MESSAGES/django.mo create mode 100644 core/locale/tr_TR/LC_MESSAGES/django.po create mode 100644 core/locale/vi_VN/LC_MESSAGES/django.mo create mode 100644 core/locale/vi_VN/LC_MESSAGES/django.po create mode 100644 core/migrations/0042_attribute_name_fa_ir_attribute_name_he_il_and_more.py create mode 100644 core/static/flags/fa-ir.png create mode 100644 core/static/flags/he-il.png create mode 100644 core/static/flags/hr-hr.png create mode 100644 core/static/flags/id-id.png create mode 100644 core/static/flags/ko-kr.png create mode 100644 core/static/flags/no-no.png create mode 100644 core/static/flags/sv-se.png create mode 100644 core/static/flags/th-th.png create mode 100644 core/static/flags/tr-tr.png create mode 100644 core/static/flags/vi-vn.png create mode 100644 evibes/locale/fa_IR/LC_MESSAGES/django.mo create mode 100644 evibes/locale/fa_IR/LC_MESSAGES/django.po create mode 100644 evibes/locale/he_IL/LC_MESSAGES/django.mo create mode 100644 evibes/locale/he_IL/LC_MESSAGES/django.po create mode 100644 evibes/locale/hr_HR/LC_MESSAGES/django.mo create mode 100644 evibes/locale/hr_HR/LC_MESSAGES/django.po create mode 100644 evibes/locale/id_ID/LC_MESSAGES/django.mo create mode 100644 evibes/locale/id_ID/LC_MESSAGES/django.po create mode 100644 evibes/locale/ko_KR/LC_MESSAGES/django.mo create mode 100644 evibes/locale/ko_KR/LC_MESSAGES/django.po create mode 100644 evibes/locale/no_NO/LC_MESSAGES/django.mo create mode 100644 evibes/locale/no_NO/LC_MESSAGES/django.po create mode 100644 evibes/locale/sv_SE/LC_MESSAGES/django.mo create mode 100644 evibes/locale/sv_SE/LC_MESSAGES/django.po create mode 100644 evibes/locale/th_TH/LC_MESSAGES/django.mo create mode 100644 evibes/locale/th_TH/LC_MESSAGES/django.po create mode 100644 evibes/locale/tr_TR/LC_MESSAGES/django.mo create mode 100644 evibes/locale/tr_TR/LC_MESSAGES/django.po create mode 100644 evibes/locale/vi_VN/LC_MESSAGES/django.mo create mode 100644 evibes/locale/vi_VN/LC_MESSAGES/django.po create mode 100644 payments/locale/fa_IR/LC_MESSAGES/django.mo create mode 100644 payments/locale/fa_IR/LC_MESSAGES/django.po create mode 100644 payments/locale/he_IL/LC_MESSAGES/django.mo create mode 100644 payments/locale/he_IL/LC_MESSAGES/django.po create mode 100644 payments/locale/hr_HR/LC_MESSAGES/django.mo create mode 100644 payments/locale/hr_HR/LC_MESSAGES/django.po create mode 100644 payments/locale/id_ID/LC_MESSAGES/django.mo create mode 100644 payments/locale/id_ID/LC_MESSAGES/django.po create mode 100644 payments/locale/ko_KR/LC_MESSAGES/django.mo create mode 100644 payments/locale/ko_KR/LC_MESSAGES/django.po create mode 100644 payments/locale/no_NO/LC_MESSAGES/django.mo create mode 100644 payments/locale/no_NO/LC_MESSAGES/django.po create mode 100644 payments/locale/sv_SE/LC_MESSAGES/django.mo create mode 100644 payments/locale/sv_SE/LC_MESSAGES/django.po create mode 100644 payments/locale/th_TH/LC_MESSAGES/django.mo create mode 100644 payments/locale/th_TH/LC_MESSAGES/django.po create mode 100644 payments/locale/tr_TR/LC_MESSAGES/django.mo create mode 100644 payments/locale/tr_TR/LC_MESSAGES/django.po create mode 100644 payments/locale/vi_VN/LC_MESSAGES/django.mo create mode 100644 payments/locale/vi_VN/LC_MESSAGES/django.po create mode 100644 vibes_auth/locale/fa_IR/LC_MESSAGES/django.mo create mode 100644 vibes_auth/locale/fa_IR/LC_MESSAGES/django.po create mode 100644 vibes_auth/locale/he_IL/LC_MESSAGES/django.mo create mode 100644 vibes_auth/locale/he_IL/LC_MESSAGES/django.po create mode 100644 vibes_auth/locale/hr_HR/LC_MESSAGES/django.mo create mode 100644 vibes_auth/locale/hr_HR/LC_MESSAGES/django.po create mode 100644 vibes_auth/locale/id_ID/LC_MESSAGES/django.mo create mode 100644 vibes_auth/locale/id_ID/LC_MESSAGES/django.po create mode 100644 vibes_auth/locale/ko_KR/LC_MESSAGES/django.mo create mode 100644 vibes_auth/locale/ko_KR/LC_MESSAGES/django.po create mode 100644 vibes_auth/locale/no_NO/LC_MESSAGES/django.mo create mode 100644 vibes_auth/locale/no_NO/LC_MESSAGES/django.po create mode 100644 vibes_auth/locale/sv_SE/LC_MESSAGES/django.mo create mode 100644 vibes_auth/locale/sv_SE/LC_MESSAGES/django.po create mode 100644 vibes_auth/locale/th_TH/LC_MESSAGES/django.mo create mode 100644 vibes_auth/locale/th_TH/LC_MESSAGES/django.po create mode 100644 vibes_auth/locale/tr_TR/LC_MESSAGES/django.mo create mode 100644 vibes_auth/locale/tr_TR/LC_MESSAGES/django.po create mode 100644 vibes_auth/locale/vi_VN/LC_MESSAGES/django.mo create mode 100644 vibes_auth/locale/vi_VN/LC_MESSAGES/django.po create mode 100644 vibes_auth/migrations/0004_alter_user_language.py diff --git a/blog/locale/ar_AR/LC_MESSAGES/django.po b/blog/locale/ar_AR/LC_MESSAGES/django.po index 2818fe24..a6ace719 100644 --- a/blog/locale/ar_AR/LC_MESSAGES/django.po +++ b/blog/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/cs_CZ/LC_MESSAGES/django.po b/blog/locale/cs_CZ/LC_MESSAGES/django.po index bc65e8f1..9d94fca1 100644 --- a/blog/locale/cs_CZ/LC_MESSAGES/django.po +++ b/blog/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/da_DK/LC_MESSAGES/django.po b/blog/locale/da_DK/LC_MESSAGES/django.po index f385278e..5917b53a 100644 --- a/blog/locale/da_DK/LC_MESSAGES/django.po +++ b/blog/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/de_DE/LC_MESSAGES/django.po b/blog/locale/de_DE/LC_MESSAGES/django.po index 621ca6c4..560cda92 100644 --- a/blog/locale/de_DE/LC_MESSAGES/django.po +++ b/blog/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/en_GB/LC_MESSAGES/django.po b/blog/locale/en_GB/LC_MESSAGES/django.po index 759fbc4a..fd7ab858 100644 --- a/blog/locale/en_GB/LC_MESSAGES/django.po +++ b/blog/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/en_US/LC_MESSAGES/django.po b/blog/locale/en_US/LC_MESSAGES/django.po index 0e17b6bd..9868cc70 100644 --- a/blog/locale/en_US/LC_MESSAGES/django.po +++ b/blog/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/es_ES/LC_MESSAGES/django.po b/blog/locale/es_ES/LC_MESSAGES/django.po index 8f5f3104..c129548f 100644 --- a/blog/locale/es_ES/LC_MESSAGES/django.po +++ b/blog/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/fa_IR/LC_MESSAGES/django.mo b/blog/locale/fa_IR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c5906d1cd061dff54de8b533942893de34efc9e GIT binary patch literal 337 zcmYL@Jx{|h5Qd9j%E-dP;DHUUz!pqFHI3Uw*h!U-O0b#M1fyU_j*H-j@b~yFTo(FD zk8Zg4bkFbc(a#8TfSe*{$RTop42h8wT;AXuI{#UD_pUbq(k-mD?~SvRtk~?4EjU^8 zqD=EFDs<<30NFQY3lF=dhsseBt#T;zrx|V_Q9)Dk#909{hlG)3PGx%joM$`|st-_k zW&2hI=P8-jLXeC}P9|KkR7_ct6ud0&v1*&0YBW?@eNZA;wx|b_i4fD)jGb@x9W;=s z, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: blog/apps.py:8 +msgid "blog" +msgstr "" + +#: blog/models.py:36 +msgid "post title" +msgstr "" + +#: blog/models.py:36 +msgid "title" +msgstr "" + +#: blog/models.py:83 +msgid "post" +msgstr "" + +#: blog/models.py:84 +msgid "posts" +msgstr "" + +#: blog/models.py:88 +msgid "markdown files are not supported yet - use markdown content instead" +msgstr "" + +#: blog/models.py:90 +msgid "" +"a markdown file or markdown content must be provided - mutually exclusive" +msgstr "" + +#: blog/models.py:122 +msgid "internal tag identifier for the post tag" +msgstr "" + +#: blog/models.py:123 +msgid "tag name" +msgstr "" + +#: blog/models.py:127 +msgid "user-friendly name for the post tag" +msgstr "" + +#: blog/models.py:128 +msgid "tag display name" +msgstr "" + +#: blog/models.py:136 +msgid "post tag" +msgstr "" + +#: blog/models.py:137 +msgid "post tags" +msgstr "" diff --git a/blog/locale/fr_FR/LC_MESSAGES/django.po b/blog/locale/fr_FR/LC_MESSAGES/django.po index 0900e710..c089d1ec 100644 --- a/blog/locale/fr_FR/LC_MESSAGES/django.po +++ b/blog/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/he_IL/LC_MESSAGES/django.mo b/blog/locale/he_IL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a2e13bb4ce55980f42fd08c36b132cba8aff64cb GIT binary patch literal 1422 zcmaizO>bL86o!YA7BFoER4fo5I#m}>0-1#y$tW16~4i;HThOa1wkEoB~7K z^~`?*yn=lVyoFi@tYQDpo1?hT(6osCRZxHu4EcY9?}Pt>LGM%WL+}}R9z2hxAA=u( z7rK zSW;rfj#i?b)Q-A+>u5t#&m>zak`ZyZTwlcTHp$zqxNp^#WE*kPVG0>Wib!R@pWmeN_2tB>y@SQ z_w?mdekz}9$e^58ZAV3Xso$}@nG`6uTIUV9r9uM#PB>Yhnf%Nw&(HDcIm*u$X21G8 zKb_C#ZVKyo(+F*2;Sz)5EA<9pEv?n+>-2T0UTZFvn%^$3HOlZ*8dIfu^&6z=PG58+ zZ%WZE(9Ol#%G%;e`L*!{+LT*I|Z8GP%gI`_l=18a$>r+K)RQ1ZEoAxH{tti04_Rss{4VqN z{jYw{?}gl5G#U6~Lhx@e@B1Mkd%(ovV@Q=e3|C5>N4N4eV tL(Z{(h{)YA_>n&d!Kjv\n" +"Language-Team: LANGUAGE \n" +"Language: he-il\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blog/apps.py:8 +msgid "blog" +msgstr "בלוג" + +#: blog/models.py:36 +msgid "post title" +msgstr "כותרת הפוסט" + +#: blog/models.py:36 +msgid "title" +msgstr "כותרת" + +#: blog/models.py:83 +msgid "post" +msgstr "פוסט" + +#: blog/models.py:84 +msgid "posts" +msgstr "פוסטים" + +#: blog/models.py:88 +msgid "markdown files are not supported yet - use markdown content instead" +msgstr "קובצי Markdown אינם נתמכים עדיין - השתמש בתוכן Markdown במקום!" + +#: blog/models.py:90 +msgid "" +"a markdown file or markdown content must be provided - mutually exclusive" +msgstr "יש לספק קובץ markdown או תוכן markdown - באופן בלעדי" + +#: blog/models.py:122 +msgid "internal tag identifier for the post tag" +msgstr "מזהה תגיות פנימי עבור תגיות הפוסט" + +#: blog/models.py:123 +msgid "tag name" +msgstr "שם היום" + +#: blog/models.py:127 +msgid "user-friendly name for the post tag" +msgstr "שם ידידותי למשתמש עבור תגיות הפוסט" + +#: blog/models.py:128 +msgid "tag display name" +msgstr "שם תצוגה של התג" + +#: blog/models.py:136 +msgid "post tag" +msgstr "תגית פוסט" + +#: blog/models.py:137 +msgid "post tags" +msgstr "תגיות פוסט" diff --git a/blog/locale/hi_IN/LC_MESSAGES/django.po b/blog/locale/hi_IN/LC_MESSAGES/django.po index 0c9db07b..da8da329 100644 --- a/blog/locale/hi_IN/LC_MESSAGES/django.po +++ b/blog/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/hr_HR/LC_MESSAGES/django.mo b/blog/locale/hr_HR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c5906d1cd061dff54de8b533942893de34efc9e GIT binary patch literal 337 zcmYL@Jx{|h5Qd9j%E-dP;DHUUz!pqFHI3Uw*h!U-O0b#M1fyU_j*H-j@b~yFTo(FD zk8Zg4bkFbc(a#8TfSe*{$RTop42h8wT;AXuI{#UD_pUbq(k-mD?~SvRtk~?4EjU^8 zqD=EFDs<<30NFQY3lF=dhsseBt#T;zrx|V_Q9)Dk#909{hlG)3PGx%joM$`|st-_k zW&2hI=P8-jLXeC}P9|KkR7_ct6ud0&v1*&0YBW?@eNZA;wx|b_i4fD)jGb@x9W;=s z, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: blog/apps.py:8 +msgid "blog" +msgstr "" + +#: blog/models.py:36 +msgid "post title" +msgstr "" + +#: blog/models.py:36 +msgid "title" +msgstr "" + +#: blog/models.py:83 +msgid "post" +msgstr "" + +#: blog/models.py:84 +msgid "posts" +msgstr "" + +#: blog/models.py:88 +msgid "markdown files are not supported yet - use markdown content instead" +msgstr "" + +#: blog/models.py:90 +msgid "" +"a markdown file or markdown content must be provided - mutually exclusive" +msgstr "" + +#: blog/models.py:122 +msgid "internal tag identifier for the post tag" +msgstr "" + +#: blog/models.py:123 +msgid "tag name" +msgstr "" + +#: blog/models.py:127 +msgid "user-friendly name for the post tag" +msgstr "" + +#: blog/models.py:128 +msgid "tag display name" +msgstr "" + +#: blog/models.py:136 +msgid "post tag" +msgstr "" + +#: blog/models.py:137 +msgid "post tags" +msgstr "" diff --git a/blog/locale/id_ID/LC_MESSAGES/django.mo b/blog/locale/id_ID/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..da0c0d249eed8beeb499ed357d137f1d078a66de GIT binary patch literal 1328 zcmaizOK($06vw9!Ugiy3Djmco2u*N;f>MXjCax2Vh#eUxD?mE-jBlpCo@>n`#NVO2 zs#3oQ3zjUq>bjds{S0hb@Skg&2oT~*$G*JUIUlFl=t&2{sg=OzXiTP zEeF1Y|Ig`ZKZ&OI;IDuO;42VQ;thBXd^_Vi@GAVjXa2w7b@=~-so#4r>G%Lj@Dv=h z`}Cz+DKBYHd1qniOdv;GhGChw1eV~?1rj%ZE0X~O@%uN^a~rb4K#{A zP*2m?6-P#CMG~P9InO7gkNbJ_=17ZPUSz^xg|nPf;Ea%KgBcj@Xn?xm5G4wf!kqZ5 zt0#7vY!S%E@wjjSJtjJ!PxSh0J;wT=S&3Av{3$EWOZ!>Kgj|T)nbW$#NeP)#0 zikX+)qDGayw(RI5lNQKdIp`X#R99AI^`TsTNY%C4>QDEo%hhV-8T%l+j;+r*6b{9A z+8u&z?YG(o^r+r$bvNtXU$*x<4MduqrFwh!F_zgZa;9Zh^QcD8Hd{OUn>&r~=GSmL z(x}RAbGLD_p=Io&KD~9>os1zi=;Lr72WRX$^$*#39X9s6+j8wBFKHg&02{VnC}Xo4 zt@TW(?B&sMF1HIe@-?#K()AlF>ogs1ELys~LCbg7E24aQV{N00mMx)A#>9am4NEoj z97a@@ltF81{SAp;_c&ui8RJi2CwyD%p>!8rQ;RvDMiuiEK@Kug mP8x|8ghS70Y;v@K)_Eio<&vpe?r{_qAL11*Tw literal 0 HcmV?d00001 diff --git a/blog/locale/id_ID/LC_MESSAGES/django.po b/blog/locale/id_ID/LC_MESSAGES/django.po new file mode 100644 index 00000000..b41ccb51 --- /dev/null +++ b/blog/locale/id_ID/LC_MESSAGES/django.po @@ -0,0 +1,71 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: id-id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blog/apps.py:8 +msgid "blog" +msgstr "Blog" + +#: blog/models.py:36 +msgid "post title" +msgstr "Judul postingan" + +#: blog/models.py:36 +msgid "title" +msgstr "Judul" + +#: blog/models.py:83 +msgid "post" +msgstr "Pos" + +#: blog/models.py:84 +msgid "posts" +msgstr "Posting" + +#: blog/models.py:88 +msgid "markdown files are not supported yet - use markdown content instead" +msgstr "" +"File penurunan harga tidak didukung - gunakan konten penurunan harga sebagai" +" gantinya!" + +#: blog/models.py:90 +msgid "" +"a markdown file or markdown content must be provided - mutually exclusive" +msgstr "" +"file penurunan harga atau konten penurunan harga harus disediakan - tidak " +"boleh ada yang sama" + +#: blog/models.py:122 +msgid "internal tag identifier for the post tag" +msgstr "pengidentifikasi tag internal untuk tag pos" + +#: blog/models.py:123 +msgid "tag name" +msgstr "Nama tag" + +#: blog/models.py:127 +msgid "user-friendly name for the post tag" +msgstr "Nama yang mudah digunakan untuk tag postingan" + +#: blog/models.py:128 +msgid "tag display name" +msgstr "Nama tampilan tag" + +#: blog/models.py:136 +msgid "post tag" +msgstr "Tag pos" + +#: blog/models.py:137 +msgid "post tags" +msgstr "Tag pos" diff --git a/blog/locale/it_IT/LC_MESSAGES/django.po b/blog/locale/it_IT/LC_MESSAGES/django.po index c6795032..d774430e 100644 --- a/blog/locale/it_IT/LC_MESSAGES/django.po +++ b/blog/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/ja_JP/LC_MESSAGES/django.po b/blog/locale/ja_JP/LC_MESSAGES/django.po index 4dd68566..1b2395f0 100644 --- a/blog/locale/ja_JP/LC_MESSAGES/django.po +++ b/blog/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/kk_KZ/LC_MESSAGES/django.po b/blog/locale/kk_KZ/LC_MESSAGES/django.po index 0c9db07b..da8da329 100644 --- a/blog/locale/kk_KZ/LC_MESSAGES/django.po +++ b/blog/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/ko_KR/LC_MESSAGES/django.mo b/blog/locale/ko_KR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c401f85e6766c35e83cc84ea3bf139e668695559 GIT binary patch literal 1377 zcmaiy&u<$=6vr26D3~9rT22VWtGJ}9*0oc$3Jw7hICJ3-@Q(iiIP^RA2CI}GBRzlSy?OI}@6G!6 z^Jkg{*7LBJV0G99*q<=HZaiifX)q0*0Y3)E!4{YV?}zcR#|`5t_!01F@B$bCUk1m( zaqt`%1$Ew=Vf+U8D*Q$8U1)JI1OL}2hB~jH=wBFsg8W-LaWXCPK1mx$XwBTLrf&oONcbxPHlSaD#i6 zOVTP4ay{u39mc5$UAYPgA5u6o9;zzH;*30BlBiZHK9{Jm!6fQb1$(p~#}krSwxPua zKLf>6X%U7T>9WCA7`hqT5f#_kAkQkZL14HUWT6T-i`-$Jjgj=hqYW={|2m|3>&=nLlCmShQ z&PJ1&g*R}`D^;x$Gjq%;C+OzP;(UH)KJ~x(30m{bH6B?=FQi5T#W6>6_|?taMg`4E zc1vEt!#Um*6;>@Sn4He%=FG`ap6hs1wb)h<_bFisCYv?)$aGE=6=iaamsn$0Bqd|RB)%O3T(cr5SQg@Ej z-eJGlQd?cMw|jBa)MyuW^IrkX8+>y($}ol#QU9YhMkLia4!+(x4Tj#|?}TOaD-65B T+@yYN_dnfL`?po6dn)q))r{`P literal 0 HcmV?d00001 diff --git a/blog/locale/ko_KR/LC_MESSAGES/django.po b/blog/locale/ko_KR/LC_MESSAGES/django.po new file mode 100644 index 00000000..67df3b9d --- /dev/null +++ b/blog/locale/ko_KR/LC_MESSAGES/django.po @@ -0,0 +1,67 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: ko-kr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blog/apps.py:8 +msgid "blog" +msgstr "블로그" + +#: blog/models.py:36 +msgid "post title" +msgstr "게시물 제목" + +#: blog/models.py:36 +msgid "title" +msgstr "제목" + +#: blog/models.py:83 +msgid "post" +msgstr "게시물" + +#: blog/models.py:84 +msgid "posts" +msgstr "게시물" + +#: blog/models.py:88 +msgid "markdown files are not supported yet - use markdown content instead" +msgstr "마크다운 파일은 지원되지 않습니다 예 - 대신 마크다운 콘텐츠를 사용하세요!" + +#: blog/models.py:90 +msgid "" +"a markdown file or markdown content must be provided - mutually exclusive" +msgstr "마크다운 파일 또는 마크다운 콘텐츠가 제공되어야 합니다." + +#: blog/models.py:122 +msgid "internal tag identifier for the post tag" +msgstr "게시물 태그의 내부 태그 식별자" + +#: blog/models.py:123 +msgid "tag name" +msgstr "태그 이름" + +#: blog/models.py:127 +msgid "user-friendly name for the post tag" +msgstr "게시물 태그의 사용자 친화적인 이름" + +#: blog/models.py:128 +msgid "tag display name" +msgstr "태그 표시 이름" + +#: blog/models.py:136 +msgid "post tag" +msgstr "게시물 태그" + +#: blog/models.py:137 +msgid "post tags" +msgstr "게시물 태그" diff --git a/blog/locale/nl_NL/LC_MESSAGES/django.po b/blog/locale/nl_NL/LC_MESSAGES/django.po index c78659e3..26d54e39 100644 --- a/blog/locale/nl_NL/LC_MESSAGES/django.po +++ b/blog/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/no_NO/LC_MESSAGES/django.mo b/blog/locale/no_NO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..4006ecbcf251b9c4c04aa7070cd93b18f43e7cb5 GIT binary patch literal 1300 zcmaizL2nyH6vqc>DVP?~^nj2+ysD~{icWBXS_Ov`V&kNi;y5y!oVZN9&zq^oGuF(k zX+8rSDpg4E0l4u2I3b}*z4jaQ%&DKChyG`6Cu(!(NN;~TZ{Pgio0+%ImoEG+Fg}KT z4*Lyu4fYb2#{GAM=ztyY0{9qQ2LAwC;D2-f#dn4H0P`C7A$Sd}fnR_Z!Da9ha0N_p z-_QN`!5f(Gfj>jbgDKy$_h#!pL(e3JGl6pfW11eom z4I&kj>o76ugsd8K<(R!xQOM%u&}+6iwv;}cFL>X(2Rw+flgmT)K|9-^_F<>l{)xU> zsjt*)eNL6jZYXpvn`IGX<{DJn@5w$-by^^QRFNCBR$sd#>v!eqU8=7)?tJ@IeYIY% z?Wz!E=9LXbMdu;D)9Vwgd9c?zr0-h2y=<$M{jhz|Z^P5+ue5sIdst?RQWY#SR^tZk zZtd+HZ0)q)8sETiOY3UgPPcuwp;hdoHM@10olH<{wj5r;Zh99Xbwir+8&BD0E;2-pGK8?*)95$$@e1C@WVrwU literal 0 HcmV?d00001 diff --git a/blog/locale/no_NO/LC_MESSAGES/django.po b/blog/locale/no_NO/LC_MESSAGES/django.po new file mode 100644 index 00000000..a39b1e80 --- /dev/null +++ b/blog/locale/no_NO/LC_MESSAGES/django.po @@ -0,0 +1,68 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: no-no\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blog/apps.py:8 +msgid "blog" +msgstr "Blogg" + +#: blog/models.py:36 +msgid "post title" +msgstr "Innleggets tittel" + +#: blog/models.py:36 +msgid "title" +msgstr "Title" + +#: blog/models.py:83 +msgid "post" +msgstr "Post" + +#: blog/models.py:84 +msgid "posts" +msgstr "Innlegg" + +#: blog/models.py:88 +msgid "markdown files are not supported yet - use markdown content instead" +msgstr "Markdown-filer støttes ikke - bruk markdown-innhold i stedet!" + +#: blog/models.py:90 +msgid "" +"a markdown file or markdown content must be provided - mutually exclusive" +msgstr "" +"en markdown-fil eller markdown-innhold må oppgis - gjensidig utelukkende" + +#: blog/models.py:122 +msgid "internal tag identifier for the post tag" +msgstr "intern tagg-identifikator for innleggstaggen" + +#: blog/models.py:123 +msgid "tag name" +msgstr "Tagg navn" + +#: blog/models.py:127 +msgid "user-friendly name for the post tag" +msgstr "Brukervennlig navn for innleggstaggen" + +#: blog/models.py:128 +msgid "tag display name" +msgstr "Visningsnavn for taggen" + +#: blog/models.py:136 +msgid "post tag" +msgstr "Post tag" + +#: blog/models.py:137 +msgid "post tags" +msgstr "Tagger for innlegg" diff --git a/blog/locale/pl_PL/LC_MESSAGES/django.po b/blog/locale/pl_PL/LC_MESSAGES/django.po index 589ba2c4..8509f86d 100644 --- a/blog/locale/pl_PL/LC_MESSAGES/django.po +++ b/blog/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/pt_BR/LC_MESSAGES/django.po b/blog/locale/pt_BR/LC_MESSAGES/django.po index f4d3e814..c4b25cab 100644 --- a/blog/locale/pt_BR/LC_MESSAGES/django.po +++ b/blog/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/ro_RO/LC_MESSAGES/django.po b/blog/locale/ro_RO/LC_MESSAGES/django.po index dfbdee42..036a8678 100644 --- a/blog/locale/ro_RO/LC_MESSAGES/django.po +++ b/blog/locale/ro_RO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/ru_RU/LC_MESSAGES/django.po b/blog/locale/ru_RU/LC_MESSAGES/django.po index 689b225e..7e8b5993 100644 --- a/blog/locale/ru_RU/LC_MESSAGES/django.po +++ b/blog/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/sv_SE/LC_MESSAGES/django.mo b/blog/locale/sv_SE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d95aba43276b0fbd177112a194d1d3687b56c03a GIT binary patch literal 1324 zcmaiz&u<$=6vwAOQd$EQA{?poDlTbZ!X_wH>X1TgoWxQcN3NX%g2Tl7ycs&4wPt4B z=6~RZkT`Nk&b{Sc`48x&$BO@fb9>-BYr7!|5+l9+?7V&R-gjo+{`Kkg-v!2P*ypfc zVT-VLusC+F2+;(a;C1jfa0&batb;FS{)MYT+{C;B-U1iF3U~)x0GGf|z-2JTeK+&( zf?r_12mXXy4*U`GSJ$TN?xW~em?vNj{27co{=_5JIR&HM7hudk0Y3m=gP(zKz!>*8 z7c}Bi)R8k;$s+=iH~6O0eRxX*(B~$C>kpFG|it`8fe3m zyK_fBw}EY-Vc`QEGL2k5)+whX;R=N^=9u_--xOYtSsa=?6B;X=RfdAf2(dQkfo4Yo zq*o-gas)(2Lph{?)FnQ@-l&s;hfE?>Qf zVp8o#Mjew?LoOZDmof@foE$jKHpQ0Whs%QZUH%LAgKVbqfSuR5ty1HlS!+C@Z^fz=Q6YCozSHgytk&CWAJDh;_Fi|Z-u-^N*J;4h>@3&Ytw&g9vqEJoyR3#)dc3u_ z)7#o<{BL}f{8)Ofw3@BP`G!`okNWi1W%qalv4Nk5uW@kNZczV7InQCU*WH%u=W$W< z00-Ex{XEq+tJ3>dm9zO_WdnOv>~xE zXqtJCNNp`2O-_xW;p7x|PeB`Vq-?56ukz@W$=T4e*Qw3|6@k4e0s>gn(3bPQjD3RJ znRjJuy20ekk+x=Xl4U-AW-D5=KO#zj3?C+EsYehBOHy_`IkD+~iPMNYf%0%y?8nxO zkFuobBC*0>@ULQ`IW5Y;V>^M(+))Oz^@OIeI8Kj#w52n4Cf>^6t*H#E HFyGEU>0Nlp literal 0 HcmV?d00001 diff --git a/blog/locale/sv_SE/LC_MESSAGES/django.po b/blog/locale/sv_SE/LC_MESSAGES/django.po new file mode 100644 index 00000000..518a0fdd --- /dev/null +++ b/blog/locale/sv_SE/LC_MESSAGES/django.po @@ -0,0 +1,69 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: sv-se\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blog/apps.py:8 +msgid "blog" +msgstr "Blogg" + +#: blog/models.py:36 +msgid "post title" +msgstr "Inläggets titel" + +#: blog/models.py:36 +msgid "title" +msgstr "Titel" + +#: blog/models.py:83 +msgid "post" +msgstr "Post" + +#: blog/models.py:84 +msgid "posts" +msgstr "Inlägg" + +#: blog/models.py:88 +msgid "markdown files are not supported yet - use markdown content instead" +msgstr "Markdown-filer stöds inte - använd markdown-innehåll istället!" + +#: blog/models.py:90 +msgid "" +"a markdown file or markdown content must be provided - mutually exclusive" +msgstr "" +"en markdown-fil eller markdown-innehåll måste tillhandahållas - ömsesidigt " +"uteslutande" + +#: blog/models.py:122 +msgid "internal tag identifier for the post tag" +msgstr "intern taggidentifierare för inläggstaggen" + +#: blog/models.py:123 +msgid "tag name" +msgstr "Tagg namn" + +#: blog/models.py:127 +msgid "user-friendly name for the post tag" +msgstr "Användarvänligt namn för inläggstaggen" + +#: blog/models.py:128 +msgid "tag display name" +msgstr "Taggens visningsnamn" + +#: blog/models.py:136 +msgid "post tag" +msgstr "Post tagg" + +#: blog/models.py:137 +msgid "post tags" +msgstr "Taggar för inlägg" diff --git a/blog/locale/th_TH/LC_MESSAGES/django.mo b/blog/locale/th_TH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..dd885c5e36e1cb4f5282787ec844745ae99c88f9 GIT binary patch literal 1871 zcmbtSOK)366rPqAig^@KAt6!FRImtCH#niKfRml$p)54`~WmU;$N`fn`66)Tf{@X^7xxM=gj%ObI$zs z=$Qmf->F@Um4Rj89^fV52=F6d5%^=@zIQic`*6+y?*|?L=73KE z_X0-*+!#PXHeW zJ_kI~KfewP{rl170KH=TT`)&c?6T~h$LC(@=QJH z7_}zZN|H61!VR5@gj><%h)u0(D5-e^dF?7vWJm=c8)7wFXvx#ea?@$IGi|}KE-iRE zM&7AMrN&ATvyhDbDB~ct>6?^IBy9}~Vq#_5iCE{UXh|~kHWURG9W}I)X^fJB<4(bg zI(tLbZB&kAL%L+WVSc$4~O@#~5 z%fiY6AJ2~;jq=B$v12?xQ8@bI;rv)WpF1s#jcQt?CJ{E%NIqAoa;%x9g~~F2saRR4 zO&4n?XP2raSjyGWVrBj~uBFY6Xv(N2MXSJ1PcO_ZP0yA7HNJpxM0PbdU!E^*7c_=C zioK~vwe>c{T6xAkkH)EVlGj&-HquTl)n=oK?YN-1fd-b+dKRm+S>O{Z%H|f6juuHY zo9UJ*@U%@wGc`WRd)ujzlpmVnW6w_JnD4&h-Dlo?<-42Sec{~=@4lq{Iqxph@tSv6 z$ns5axgWgy)_2baBlg{Q!_mQY!*_AzWBUDbo~^;H4Pw7cM`Zqv?ji|ka2Lq}FSxdd z`lfeRgUF!y8gAj4(jFEBe@zz$)b0b{z2Mz@{p2A4g}{saAVNh*5~vxmqW%r4N>d{755eUDW zbQ?- fb|Y2j=|!4$?>&JIwQRp38WJS;3WTKp{2cxQs3mQ_ literal 0 HcmV?d00001 diff --git a/blog/locale/th_TH/LC_MESSAGES/django.po b/blog/locale/th_TH/LC_MESSAGES/django.po new file mode 100644 index 00000000..64784163 --- /dev/null +++ b/blog/locale/th_TH/LC_MESSAGES/django.po @@ -0,0 +1,69 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: th-th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blog/apps.py:8 +msgid "blog" +msgstr "บล็อก" + +#: blog/models.py:36 +msgid "post title" +msgstr "ชื่อโพสต์" + +#: blog/models.py:36 +msgid "title" +msgstr "ชื่อเรื่อง" + +#: blog/models.py:83 +msgid "post" +msgstr "โพสต์" + +#: blog/models.py:84 +msgid "posts" +msgstr "โพสต์" + +#: blog/models.py:88 +msgid "markdown files are not supported yet - use markdown content instead" +msgstr "ไฟล์มาร์กดาวน์ยังไม่รองรับในตอนนี้ - กรุณาใช้เนื้อหาแบบมาร์กดาวน์แทน!" + +#: blog/models.py:90 +msgid "" +"a markdown file or markdown content must be provided - mutually exclusive" +msgstr "" +"ไฟล์มาร์กดาวน์หรือเนื้อหาแบบมาร์กดาวน์ต้องได้รับการจัดเตรียมไว้ - " +"ไม่สามารถใช้ร่วมกันได้" + +#: blog/models.py:122 +msgid "internal tag identifier for the post tag" +msgstr "ตัวระบุแท็กภายในสำหรับแท็กโพสต์" + +#: blog/models.py:123 +msgid "tag name" +msgstr "ชื่อวัน" + +#: blog/models.py:127 +msgid "user-friendly name for the post tag" +msgstr "ชื่อที่ใช้งานได้ง่ายสำหรับแท็กโพสต์" + +#: blog/models.py:128 +msgid "tag display name" +msgstr "แสดงชื่อแท็ก" + +#: blog/models.py:136 +msgid "post tag" +msgstr "โพสต์แท็ก" + +#: blog/models.py:137 +msgid "post tags" +msgstr "ป้ายกำกับโพสต์" diff --git a/blog/locale/tr_TR/LC_MESSAGES/django.mo b/blog/locale/tr_TR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..cb3e00f4f228e22e69bfc680708c24f38612a6c1 GIT binary patch literal 1365 zcmaiz&uyPF%*`u`_r)Yt77t z?Eke&HSjd}6r2H{gB9@YVgAeyjQxUr0Xz#{1`FU7@C-NuUIJ&qaPH1w z{yumO`wj3Rv@F=h{=<)xde>2O5&N6q7AU}=_Y%ASz6OKe_uwDkM=h^nWE~y%nZgZggeEWggtNx0o|2Y& z(Dgfzh#`e{?5nDdgq37sPc9jaV(U>Ol^%5xC%^ThjPp`NEQsa5a>c2%J4`9BWxjMQ zn2D4dX_1lU9M1{=;Z^~U2F7SK8%M#5O=NEW!kK@ zoaZeojMKu$7UJuTCLzl0jm9?pTWM^xRx7Q$YwczgnObwU(x~6YHPcT-U-Fg|!xBAM z-B@q0u2;W%zC_+~ZwvKWy?Wfx9QvqC{_4Dyj$qcyJ^vRzoHEPQ-4WJFztV24@ulN) z!E+BEuxh$-q)fj=OC9A4n>w*V^R?IxU5U&n-@29gWtuEkW(-|jp}8B&1=dj~#x9Co zDqJ?EU74O3Pj&D@T9xf9aw6N;!VHDZ#!)u5m=g%#M;S#(yu;g67*-Aw**|z?B3vZt z)c`@zQHCP1qx3Y1`7zmeh+EmXn~hPM)u;azxf?Ak{6rFSH_*}yRf>5|G1sV^n8bv& zGABm$*z6$D@S2UyRkn$F6|63ucrvco@YxaQCL3q_!Be;iE3BHgLTJq% hyfM;{K-bf3zAjI$4UV*?1rOVwxv4t)X%_5}m9k!b(` literal 0 HcmV?d00001 diff --git a/blog/locale/tr_TR/LC_MESSAGES/django.po b/blog/locale/tr_TR/LC_MESSAGES/django.po new file mode 100644 index 00000000..7ecf4a06 --- /dev/null +++ b/blog/locale/tr_TR/LC_MESSAGES/django.po @@ -0,0 +1,71 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: tr-tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blog/apps.py:8 +msgid "blog" +msgstr "Blog" + +#: blog/models.py:36 +msgid "post title" +msgstr "Gönderinin başlığı" + +#: blog/models.py:36 +msgid "title" +msgstr "Başlık" + +#: blog/models.py:83 +msgid "post" +msgstr "Posta" + +#: blog/models.py:84 +msgid "posts" +msgstr "Mesajlar" + +#: blog/models.py:88 +msgid "markdown files are not supported yet - use markdown content instead" +msgstr "" +"Markdown dosyaları desteklenmiyor yer - bunun yerine markdown içeriği " +"kullanın!" + +#: blog/models.py:90 +msgid "" +"a markdown file or markdown content must be provided - mutually exclusive" +msgstr "" +"bir markdown dosyası veya markdown içeriği sağlanmalıdır - birbirini " +"dışlayan" + +#: blog/models.py:122 +msgid "internal tag identifier for the post tag" +msgstr "gönderi etiketi için dahili etiket tanımlayıcısı" + +#: blog/models.py:123 +msgid "tag name" +msgstr "Etiket adı" + +#: blog/models.py:127 +msgid "user-friendly name for the post tag" +msgstr "Gönderi etiketi için kullanıcı dostu ad" + +#: blog/models.py:128 +msgid "tag display name" +msgstr "Etiket görünen adı" + +#: blog/models.py:136 +msgid "post tag" +msgstr "Mesaj etiketi" + +#: blog/models.py:137 +msgid "post tags" +msgstr "Gönderi etiketleri" diff --git a/blog/locale/vi_VN/LC_MESSAGES/django.mo b/blog/locale/vi_VN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d934047bb59edb100f084afc5b6a953433cc962e GIT binary patch literal 1436 zcmaiyL2nyH6vqc>p}2s69(n=kRlNkEb)BG=;MCCAIEke?j?5+}gf!kA?@qg(UG2`A z_=tMoP&iZw0YXTDsFzAexuJRw71}6QJ^&KZp7;z%9Qe=LX(*}0NN<1h-n@D5KeO}4 z>u0`Z7_Y$IfPDeG0Q(ze#>O*@b-)gI2K)+K0KWxW;IH%e*=HF$2fqTo2wngy;G5uC zZ~=T3tb!)*gL!-dybOO6{1~-j@HYJ4o}2YsLDP5P-v9^TE_fdN9efS^bI!lOi}25* znOVOK8vhDtbga+geXs%l6AI$6LDIPREZYcWu{p9 zDJveAPUa!015r*BX2iHMi2^<$#YdtH%qC?Py2REnmO{BWl36${cq+qK17t#Xqm+OlJ=l7Qjq zdfoT2O?fHzgk=jps?*KY&Gqfo_4fbf*J&)Rv8r@C-S)|W7IBW&?5|t)B!XBicJ&op zoK!31_&iR8Zfx6Y*78Z7(LBTjwv`jQQh9Y+9!Oo;3euPd)>;^kk~*oVbd$!?3eBdC z1x1${wD{Iag>Cu8bYGH_Dvz9EdOspvWS>XWJ${>hSWJI$NEO+4l3bJac*!E4OVatn z2?Q3|mx@%rH=!WkBYkvm^doX3Qyy`jr&ZQ8@3fom)8V}$yQ_S1IX)UG*}VP$T~I5W z2M76{#BCMRN1ECHktN|PhzBI4-j9B~r~1f50!uADUnF)I0hI;@8J~ literal 0 HcmV?d00001 diff --git a/blog/locale/vi_VN/LC_MESSAGES/django.po b/blog/locale/vi_VN/LC_MESSAGES/django.po new file mode 100644 index 00000000..2829cc99 --- /dev/null +++ b/blog/locale/vi_VN/LC_MESSAGES/django.po @@ -0,0 +1,70 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: vi-vn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blog/apps.py:8 +msgid "blog" +msgstr "Blog" + +#: blog/models.py:36 +msgid "post title" +msgstr "Tiêu đề bài đăng" + +#: blog/models.py:36 +msgid "title" +msgstr "Tiêu đề" + +#: blog/models.py:83 +msgid "post" +msgstr "Bài đăng" + +#: blog/models.py:84 +msgid "posts" +msgstr "Bài đăng" + +#: blog/models.py:88 +msgid "markdown files are not supported yet - use markdown content instead" +msgstr "" +"Tệp Markdown hiện chưa được hỗ trợ - hãy sử dụng nội dung Markdown thay thế!" + +#: blog/models.py:90 +msgid "" +"a markdown file or markdown 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." + +#: blog/models.py:122 +msgid "internal tag identifier for the post tag" +msgstr "Mã định danh thẻ nội bộ cho thẻ bài viết" + +#: blog/models.py:123 +msgid "tag name" +msgstr "Tên ngày" + +#: blog/models.py:127 +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" + +#: blog/models.py:128 +msgid "tag display name" +msgstr "Hiển thị tên thẻ" + +#: blog/models.py:136 +msgid "post tag" +msgstr "Thẻ bài viết" + +#: blog/models.py:137 +msgid "post tags" +msgstr "Thẻ bài viết" diff --git a/blog/locale/zh_Hans/LC_MESSAGES/django.po b/blog/locale/zh_Hans/LC_MESSAGES/django.po index d891a2f9..75619bef 100644 --- a/blog/locale/zh_Hans/LC_MESSAGES/django.po +++ b/blog/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/migrations/0005_post_content_fa_ir_post_content_he_il_and_more.py b/blog/migrations/0005_post_content_fa_ir_post_content_he_il_and_more.py new file mode 100644 index 00000000..85b99695 --- /dev/null +++ b/blog/migrations/0005_post_content_fa_ir_post_content_he_il_and_more.py @@ -0,0 +1,173 @@ +# Generated by Django 5.2 on 2025-09-19 11:59 + +import markdown_field.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("blog", "0004_post_content_ar_ar_post_content_cs_cz_and_more"), + ] + + operations = [ + migrations.AddField( + model_name="post", + name="content_fa_ir", + field=markdown_field.fields.MarkdownField(blank=True, null=True, verbose_name="content"), + ), + migrations.AddField( + model_name="post", + name="content_he_il", + field=markdown_field.fields.MarkdownField(blank=True, null=True, verbose_name="content"), + ), + migrations.AddField( + model_name="post", + name="content_hr_hr", + field=markdown_field.fields.MarkdownField(blank=True, null=True, verbose_name="content"), + ), + migrations.AddField( + model_name="post", + name="content_id_id", + field=markdown_field.fields.MarkdownField(blank=True, null=True, verbose_name="content"), + ), + migrations.AddField( + model_name="post", + name="content_ko_kr", + field=markdown_field.fields.MarkdownField(blank=True, null=True, verbose_name="content"), + ), + migrations.AddField( + model_name="post", + name="content_no_no", + field=markdown_field.fields.MarkdownField(blank=True, null=True, verbose_name="content"), + ), + migrations.AddField( + model_name="post", + name="content_sv_se", + field=markdown_field.fields.MarkdownField(blank=True, null=True, verbose_name="content"), + ), + migrations.AddField( + model_name="post", + name="content_th_th", + field=markdown_field.fields.MarkdownField(blank=True, null=True, verbose_name="content"), + ), + migrations.AddField( + model_name="post", + name="content_tr_tr", + field=markdown_field.fields.MarkdownField(blank=True, null=True, verbose_name="content"), + ), + migrations.AddField( + model_name="post", + name="content_vi_vn", + field=markdown_field.fields.MarkdownField(blank=True, null=True, verbose_name="content"), + ), + migrations.AddField( + model_name="post", + name="title_fa_ir", + field=models.CharField( + help_text="post title", + max_length=128, + null=True, + unique=True, + verbose_name="title", + ), + ), + migrations.AddField( + model_name="post", + name="title_he_il", + field=models.CharField( + help_text="post title", + max_length=128, + null=True, + unique=True, + verbose_name="title", + ), + ), + migrations.AddField( + model_name="post", + name="title_hr_hr", + field=models.CharField( + help_text="post title", + max_length=128, + null=True, + unique=True, + verbose_name="title", + ), + ), + migrations.AddField( + model_name="post", + name="title_id_id", + field=models.CharField( + help_text="post title", + max_length=128, + null=True, + unique=True, + verbose_name="title", + ), + ), + migrations.AddField( + model_name="post", + name="title_ko_kr", + field=models.CharField( + help_text="post title", + max_length=128, + null=True, + unique=True, + verbose_name="title", + ), + ), + migrations.AddField( + model_name="post", + name="title_no_no", + field=models.CharField( + help_text="post title", + max_length=128, + null=True, + unique=True, + verbose_name="title", + ), + ), + migrations.AddField( + model_name="post", + name="title_sv_se", + field=models.CharField( + help_text="post title", + max_length=128, + null=True, + unique=True, + verbose_name="title", + ), + ), + migrations.AddField( + model_name="post", + name="title_th_th", + field=models.CharField( + help_text="post title", + max_length=128, + null=True, + unique=True, + verbose_name="title", + ), + ), + migrations.AddField( + model_name="post", + name="title_tr_tr", + field=models.CharField( + help_text="post title", + max_length=128, + null=True, + unique=True, + verbose_name="title", + ), + ), + migrations.AddField( + model_name="post", + name="title_vi_vn", + field=models.CharField( + help_text="post title", + max_length=128, + null=True, + unique=True, + verbose_name="title", + ), + ), + ] diff --git a/core/locale/ar_AR/LC_MESSAGES/django.mo b/core/locale/ar_AR/LC_MESSAGES/django.mo index ed93aafe7e91d20207fe6dc7b63befa6042c8c87..24d744a09bcf9120b8d4ba542a2e146b3ed985e4 100644 GIT binary patch delta 21113 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 delta 11647 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 E0MU>wng9R* diff --git a/core/locale/ar_AR/LC_MESSAGES/django.po b/core/locale/ar_AR/LC_MESSAGES/django.po index 6a0bbf2e..a665b755 100644 --- a/core/locale/ar_AR/LC_MESSAGES/django.po +++ b/core/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -86,12 +86,12 @@ msgstr "إلغاء التنشيط المحدد _PH_0_%(verbose_name_plural)s" msgid "selected items have been deactivated." msgstr "تم إلغاء تنشيط العناصر المحددة!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "قيمة السمة" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "قيم السمات" @@ -99,23 +99,23 @@ msgstr "قيم السمات" msgid "image" msgstr "الصورة" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "الصور" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "المخزون" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "الأسهم" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "طلب المنتج" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "اطلب المنتجات" @@ -319,7 +319,7 @@ msgstr "إعادة كتابة بعض حقول فئة موجودة حفظ غير #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "لقطة تعريفية لتحسين محركات البحث SEO" @@ -751,117 +751,117 @@ msgstr "إضافة أو إزالة الملاحظات على العلاقة بي msgid "no search term provided." msgstr "لم يتم توفير مصطلح بحث." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "الاسم" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "الفئات" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "الفئات الرخويات" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "الوسوم" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "الحد الأدنى للسعر" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "ماكس برايس" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "نشط" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "العلامة التجارية" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "السمات" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "الكمية" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "سبيكة" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "هو رقمي" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "تضمين الفئات الفرعية" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "تضمين المنتجات المطلوبة شخصيًا" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "وحدة التخزين" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "يجب أن يكون هناك category_uid لاستخدام علامة تضمين_الفئات_الفرعية" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "البحث (المعرف أو اسم المنتج أو رقم الجزء)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "تم الشراء بعد (شامل)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "تم الشراء من قبل (شامل)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "البريد الإلكتروني للمستخدم" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "معرّف المستخدم UUID" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "الحالة" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "معرّف قابل للقراءة من قبل الإنسان" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "الوالدين" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "الفئة الكاملة (تحتوي على منتج واحد على الأقل أو لا)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "المستوى" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "UUID المنتج" @@ -991,8 +991,8 @@ msgstr "طلب المنتج {order_product_uuid} غير موجود!" msgid "original address string provided by the user" msgstr "سلسلة العنوان الأصلي المقدمة من المستخدم" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1007,8 +1007,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - يعمل مثل السحر" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "السمات" @@ -1021,11 +1021,11 @@ msgid "groups of attributes" msgstr "مجموعات السمات" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "الفئات" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "العلامات التجارية" @@ -1034,7 +1034,7 @@ msgid "category image url" msgstr "الفئات" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "النسبة المئوية للترميز" @@ -1056,7 +1056,7 @@ msgstr "العلامات الخاصة بهذه الفئة" msgid "products in this category" msgstr "المنتجات في هذه الفئة" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "البائعون" @@ -1072,7 +1072,7 @@ msgstr "خط الطول (الإحداثي X)" msgid "comment" msgstr "كيفية" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "قيمة التصنيف من 1 إلى 10، شاملة، أو 0 إذا لم يتم تعيينها." @@ -1080,8 +1080,8 @@ msgstr "قيمة التصنيف من 1 إلى 10، شاملة، أو 0 إذا ل msgid "represents feedback from a user." msgstr "يمثل ملاحظات من المستخدم." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "الإشعارات" @@ -1089,15 +1089,19 @@ msgstr "الإشعارات" msgid "download url for this order product if applicable" msgstr "تحميل الرابط الخاص بمنتج الطلب هذا إن أمكن" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "الملاحظات" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "قائمة بطلب المنتجات بهذا الترتيب" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "عنوان إرسال الفواتير" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1105,51 +1109,51 @@ msgstr "" "عنوان الشحن لهذا الطلب، اترك العنوان فارغًا إذا كان هو نفسه عنوان إرسال " "الفواتير أو إذا لم يكن منطبقًا" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "السعر الإجمالي لهذا الطلب" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "إجمالي كمية المنتجات بالترتيب" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "هل جميع المنتجات في الطلب رقمي" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "المعاملات الخاصة بهذا الطلب" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "الطلبات" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "رابط الصورة" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "صور المنتج" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "الفئة" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "الملاحظات" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "العلامة التجارية" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "مجموعات السمات" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1157,7 +1161,7 @@ msgstr "مجموعات السمات" msgid "price" msgstr "السعر" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1165,35 +1169,35 @@ msgstr "السعر" msgid "quantity" msgstr "الكمية" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "عدد الملاحظات" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "المنتجات متاحة للطلبات الشخصية فقط" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "المنتجات" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "الرموز الترويجية" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "المنتجات المعروضة للبيع" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "العروض الترويجية" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "البائع" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1201,643 +1205,772 @@ msgstr "البائع" msgid "product" msgstr "المنتج" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "المنتجات المفضلة" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "قوائم التمنيات" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "المنتجات الموسومة" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "علامات المنتج" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "الفئات الموسومة" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "علامات الفئات" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "اسم المشروع" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "البريد الإلكتروني للشركة" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "اسم الشركة" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "عنوان الشركة" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "رقم هاتف الشركة" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "\"البريد الإلكتروني من\"، في بعض الأحيان يجب استخدامه بدلاً من قيمة المستخدم" " المضيف" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "مستخدم البريد الإلكتروني المضيف" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "الحد الأقصى لمبلغ السداد" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "الحد الأدنى لمبلغ السداد" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "بيانات التحليلات" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "بيانات الإعلانات" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "التكوين" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "رمز اللغة" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "اسم اللغة" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "علم اللغة، إذا كان موجوداً :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "الحصول على قائمة باللغات المدعومة" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "نتائج البحث عن المنتجات" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "نتائج البحث عن المنتجات" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"يمثل مجموعة من السمات، والتي يمكن أن تكون هرمية. تُستخدم هذه الفئة لإدارة " +"مجموعات السمات وتنظيمها. يمكن أن تحتوي مجموعة السمات على مجموعة أصل، مما " +"يشكل بنية هرمية. يمكن أن يكون هذا مفيدًا لتصنيف السمات وإدارتها بشكل أكثر " +"فعالية في النظام المعقد." + +#: core/models.py:86 msgid "parent of this group" msgstr "والد هذه المجموعة" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "مجموعة السمات الرئيسية" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "اسم مجموعة السمات" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "مجموعة السمات" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"يمثل كيان بائع قادر على تخزين معلومات حول البائعين الخارجيين ومتطلبات " +"تفاعلهم. يتم استخدام فئة البائع لتعريف وإدارة المعلومات المتعلقة ببائع " +"خارجي. وهو يخزن اسم البائع، وتفاصيل المصادقة المطلوبة للاتصال، والنسبة " +"المئوية للترميز المطبقة على المنتجات المسترجعة من البائع. يحتفظ هذا النموذج " +"أيضًا ببيانات وصفية وقيود إضافية، مما يجعله مناسبًا للاستخدام في الأنظمة " +"التي تتفاعل مع البائعين الخارجيين." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "تخزين بيانات الاعتماد ونقاط النهاية المطلوبة لاتصالات واجهة برمجة التطبيقات " "الخاصة بالمورّد" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "معلومات المصادقة" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "تحديد الترميز للمنتجات المسترجعة من هذا البائع" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "نسبة هامش الربح للبائع" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "اسم هذا البائع" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "اسم البائع" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"يمثل علامة منتج تُستخدم لتصنيف المنتجات أو تعريفها. صُممت فئة ProductTag " +"لتعريف المنتجات وتصنيفها بشكل فريد من خلال مزيج من معرّف علامة داخلي واسم " +"عرض سهل الاستخدام. وهي تدعم العمليات التي يتم تصديرها من خلال mixins وتوفر " +"تخصيص البيانات الوصفية لأغراض إدارية." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "معرّف العلامة الداخلي لعلامة المنتج" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "اسم العلامة" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "اسم سهل الاستخدام لعلامة المنتج" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "اسم عرض العلامة" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "علامة المنتج" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"يمثل علامة فئة تستخدم للمنتجات. تمثل هذه الفئة علامة فئة يمكن استخدامها لربط" +" المنتجات وتصنيفها. وهي تتضمن سمات لمعرف علامة داخلي واسم عرض سهل الاستخدام." + +#: core/models.py:220 msgid "category tag" msgstr "علامة الفئة" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "علامات الفئة" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"يمثل كيان فئة لتنظيم وتجميع العناصر ذات الصلة في بنية هرمية. قد يكون للفئات " +"علاقات هرمية مع فئات أخرى، مما يدعم العلاقات بين الأصل والطفل. تتضمن الفئة " +"حقول للبيانات الوصفية والتمثيل المرئي، والتي تعمل كأساس للميزات المتعلقة " +"بالفئات. تُستخدم هذه الفئة عادةً لتعريف وإدارة فئات المنتجات أو غيرها من " +"التجميعات المماثلة داخل التطبيق، مما يسمح للمستخدمين أو المسؤولين بتحديد اسم" +" الفئات ووصفها وتسلسلها الهرمي، بالإضافة إلى تعيين سمات مثل الصور أو " +"العلامات أو الأولوية." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "تحميل صورة تمثل هذه الفئة" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "صورة الفئة" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "تحديد نسبة ترميز للمنتجات في هذه الفئة" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "أصل هذه الفئة لتكوين بنية هرمية" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "الفئة الرئيسية" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "اسم الفئة" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "تقديم اسم لهذه الفئة" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "إضافة وصف تفصيلي لهذه الفئة" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "وصف الفئة" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "العلامات التي تساعد في وصف هذه الفئة أو تجميعها" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "الأولوية" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "اسم هذه العلامة التجارية" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "اسم العلامة التجارية" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "تحميل شعار يمثل هذه العلامة التجارية" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "صورة العلامة التجارية الصغيرة" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "رفع شعار كبير يمثل هذه العلامة التجارية" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "صورة كبيرة للعلامة التجارية" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "إضافة وصف تفصيلي للعلامة التجارية" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "وصف العلامة التجارية" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "الفئات الاختيارية التي ترتبط بها هذه العلامة التجارية" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "الفئات" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" +"يمثل مخزون منتج تتم إدارته في النظام. توفر هذه الفئة تفاصيل حول العلاقة بين " +"البائعين والمنتجات ومعلومات المخزون الخاصة بهم، بالإضافة إلى الخصائص " +"المتعلقة بالمخزون مثل السعر وسعر الشراء والكمية ووحدة المخزون المخزنية " +"والأصول الرقمية. وهي جزء من نظام إدارة المخزون للسماح بتتبع وتقييم المنتجات " +"المتاحة من مختلف البائعين." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "البائع الذي يورد هذا المنتج المخزون" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "البائع المرتبط" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "السعر النهائي للعميل بعد هوامش الربح" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "سعر البيع" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "المنتج المرتبط بإدخال المخزون هذا" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "المنتج المرتبط" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "السعر المدفوع للبائع مقابل هذا المنتج" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "سعر الشراء من البائع" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "الكمية المتوفرة من المنتج في المخزون" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "الكمية في المخزون" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU المعين من قبل البائع لتحديد المنتج" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "وحدة تخزين البائع" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "الملف الرقمي المرتبط بهذا المخزون إن أمكن" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "ملف رقمي" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "إدخالات المخزون" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"يمثل منتجًا بخصائص مثل الفئة والعلامة التجارية والعلامات والحالة الرقمية " +"والاسم والوصف ورقم الجزء والعلامة التجارية والحالة الرقمية والاسم والوصف " +"ورقم الجزء والسبيكة. يوفر خصائص الأداة المساعدة ذات الصلة لاسترداد التقييمات" +" وعدد الملاحظات والسعر والكمية وإجمالي الطلبات. مصمم للاستخدام في نظام " +"يتعامل مع التجارة الإلكترونية أو إدارة المخزون. تتفاعل هذه الفئة مع النماذج " +"ذات الصلة (مثل الفئة والعلامة التجارية وعلامة المنتج) وتدير التخزين المؤقت " +"للخصائص التي يتم الوصول إليها بشكل متكرر لتحسين الأداء. يتم استخدامه لتعريف " +"ومعالجة بيانات المنتج والمعلومات المرتبطة به داخل التطبيق." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "الفئة التي ينتمي إليها هذا المنتج" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "ربط هذا المنتج اختياريًا بعلامة تجارية" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "العلامات التي تساعد في وصف أو تجميع هذا المنتج" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "يشير إلى ما إذا كان هذا المنتج يتم تسليمه رقميًا أم لا" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "هل المنتج رقمي" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "توفير اسم تعريفي واضح للمنتج" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "اسم المنتج" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "إضافة وصف تفصيلي للمنتج" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "وصف المنتج" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "رقم الجزء لهذا المنتج" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "رقم الجزء" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "وحدة حفظ المخزون لهذا المنتج" -#: core/models.py:784 +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" +"يمثل سمة في النظام. تُستخدم هذه الفئة لتعريف السمات وإدارتها، وهي عبارة عن " +"أجزاء قابلة للتخصيص من البيانات التي يمكن ربطها بكيانات أخرى. تحتوي السمات " +"على فئات ومجموعات وأنواع قيم وأسماء مرتبطة بها. يدعم النموذج أنواعًا متعددة " +"من القيم، بما في ذلك السلسلة، والعدد الصحيح، والعائم، والمنطقي، والصفيف، " +"والكائن. وهذا يسمح بهيكلة ديناميكية ومرنة للبيانات." + +#: core/models.py:619 msgid "category of this attribute" msgstr "فئة هذه السمة" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "مجموعة هذه السمة" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "الخيط" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "عدد صحيح" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "تعويم" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "منطقية" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "المصفوفة" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "الكائن" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "نوع قيمة السمة" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "نوع القيمة" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "اسم هذه السمة" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "اسم السمة" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "قابل للتصفية" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "يحدد ما إذا كان يمكن استخدام هذه السمة للتصفية أم لا" + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "السمة" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "سمة هذه القيمة" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "المنتج المحدد المرتبط بقيمة هذه السمة" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "القيمة المحددة لهذه السمة" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "توفير نص بديل للصورة لإمكانية الوصول" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "النص البديل للصورة" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "تحميل ملف الصورة لهذا المنتج" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "صورة المنتج" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "يحدد الترتيب الذي يتم عرض الصور به" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "أولوية العرض" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "المنتج الذي تمثله هذه الصورة" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "صور المنتج" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "النسبة المئوية للخصم على المنتجات المختارة" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "نسبة الخصم" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "تقديم اسم فريد لهذا العرض الترويجي" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "اسم الترقية" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "وصف الترقية" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "حدد المنتجات المشمولة في هذا العرض الترويجي" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "المنتجات المشمولة" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "الترقية" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "المنتجات التي حددها المستخدم على أنها مطلوبة" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "المستخدم الذي يمتلك قائمة الرغبات هذه" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "مالك قائمة الرغبات" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "قائمة الرغبات" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "فيلم وثائقي" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "الأفلام الوثائقية" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "لم يتم حلها" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "سطر العنوان للعميل" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "سطر العنوان" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "الشارع" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "المنطقة" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "المدينة" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "المنطقة" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "الرمز البريدي" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "البلد" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "نقطة تحديد الموقع الجغرافي(خط الطول، خط العرض)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "استجابة JSON كاملة من أداة التشفير الجغرافي لهذا العنوان" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "استجابة JSON مخزّنة من خدمة الترميز الجغرافي" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "العنوان" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "العناوين" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "الرمز الفريد الذي يستخدمه المستخدم لاسترداد قيمة الخصم" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "معرّف الرمز الترويجي" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "مبلغ الخصم الثابت المطبق في حالة عدم استخدام النسبة المئوية" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "مبلغ الخصم الثابت" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "النسبة المئوية للخصم المطبق في حالة عدم استخدام مبلغ ثابت" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "النسبة المئوية للخصم" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "الطابع الزمني عند انتهاء صلاحية الرمز الترويجي" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "وقت انتهاء الصلاحية" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "الطابع الزمني الذي يكون هذا الرمز الترويجي صالحاً منه" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "وقت بدء الصلاحية" -#: core/models.py:1273 +#: core/models.py:1118 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "الطابع الزمني للاستخدام" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "المستخدم المعين لهذا الرمز الترويجي إن أمكن" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "المستخدم المعين" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "الرمز الترويجي" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "الرموز الترويجية" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1845,143 +1978,158 @@ msgstr "" "يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين" " أو لا هذا ولا ذاك." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "تم استخدام الرمز الترويجي بالفعل" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "نوع الخصم غير صالح للرمز الترويجي {self.uuid}" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"يمثل الطلب الذي يقدمه المستخدم. تقوم هذه الفئة بنمذجة الطلب داخل التطبيق، " +"بما في ذلك سماته المختلفة مثل معلومات الفوترة والشحن والحالة والمستخدم " +"المرتبط والإشعارات والعمليات ذات الصلة. يمكن أن تحتوي الطلبات على منتجات " +"مرتبطة، ويمكن تطبيق العروض الترويجية، وتعيين العناوين، وتحديث تفاصيل الشحن " +"أو الفوترة. وبالمثل، تدعم الوظيفة إدارة المنتجات في دورة حياة الطلب." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "عنوان إرسال الفواتير المستخدم لهذا الطلب" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "الرمز الترويجي الاختياري المطبق على هذا الطلب" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "الرمز الترويجي المطبق" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "عنوان الشحن المستخدم لهذا الطلب" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "عنوان الشحن" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "الحالة الحالية للطلب في دورة حياته" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "حالة الطلب" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 msgid "json structure of notifications to display to users" msgstr "" "بنية JSON للإشعارات التي سيتم عرضها للمستخدمين، في واجهة مستخدم المشرف، يتم " "استخدام عرض الجدول" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "تمثيل JSON لسمات الطلب لهذا الطلب" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "المستخدم الذي قدم الطلب" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "المستخدم" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "الطابع الزمني عند الانتهاء من الطلب" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "وقت الشراء" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "معرّف يمكن قراءته بواسطة البشر للطلب" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "معرّف يمكن قراءته من قبل البشر" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "الطلب" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "يجب أن يكون لدى المستخدم طلب واحد فقط معلق في كل مرة!" -#: core/models.py:1481 +#: core/models.py:1316 msgid "you cannot add products to an order that is not a pending one" msgstr "لا يمكنك إضافة منتجات إلى طلب غير معلق إلى طلب غير معلق" -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "لا يمكنك إضافة منتجات غير نشطة للطلب" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "لا يمكنك إضافة منتجات أكثر من المتوفرة في المخزون" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 msgid "you cannot remove products from an order that is not a pending one" msgstr "لا يمكنك إزالة المنتجات من طلب غير معلق من طلب غير معلق" -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} غير موجود مع الاستعلام <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "الرمز الترويجي غير موجود" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "يمكنك فقط شراء المنتجات المادية مع تحديد عنوان الشحن فقط!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "العنوان غير موجود" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "لا يمكنك الشراء في هذه اللحظة، يرجى المحاولة مرة أخرى بعد بضع دقائق." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "قيمة القوة غير صالحة" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "لا يمكنك شراء طلبية فارغة!" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "لا يمكنك شراء طلب بدون مستخدم!" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "المستخدم بدون رصيد لا يمكنه الشراء بالرصيد!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "عدم كفاية الأموال لإكمال الطلب" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1989,155 +2137,151 @@ msgstr "" "لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد" " الإلكتروني للعميل، رقم هاتف العميل" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "طريقة الدفع غير صالحة: {payment_method} من {available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 msgid "the price paid by the customer for this product at purchase time" msgstr "السعر الذي دفعه العميل لهذا المنتج وقت الشراء" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "سعر الشراء وقت الطلب" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "تعليقات داخلية للمسؤولين حول هذا المنتج المطلوب" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "التعليقات الداخلية" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "إشعارات المستخدم" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "تمثيل JSON لسمات هذا العنصر" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "سمات المنتج المطلوبة" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "الإشارة إلى الطلب الأصلي الذي يحتوي على هذا المنتج" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "ترتيب الوالدين" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "المنتج المحدد المرتبط بخط الطلب هذا" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "كمية هذا المنتج المحدد في الطلب" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "كمية المنتج" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "الحالة الحالية لهذا المنتج بالترتيب" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "حالة خط الإنتاج" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "يجب أن يكون لـ Orderproduct طلب مرتبط به!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "تم تحديد إجراء خاطئ للتغذية الراجعة: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "لا يمكنك التعليق على طلب لم يتم استلامه" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "الاسم" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "رابط التكامل" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "بيانات اعتماد المصادقة" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "يمكن أن يكون لديك موفر CRM افتراضي واحد فقط" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "إدارة علاقات العملاء" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "إدارة علاقات العملاء" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "رابط إدارة علاقات العملاء الخاصة بالطلب" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "روابط إدارة علاقات العملاء الخاصة بالطلبات" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "تنزيل" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "التنزيلات" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "لا يمكنك تنزيل أصل رقمي لطلب غير مكتمل" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "التعليقات المقدمة من المستخدمين حول تجربتهم مع المنتج" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "تعليقات على الملاحظات" -#: core/models.py:2079 +#: core/models.py:1921 msgid "" "references the specific product in an order that this feedback is about" msgstr "الإشارة إلى المنتج المحدد في الطلب الذي تدور حوله هذه الملاحظات" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "منتجات الطلبات ذات الصلة" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "التصنيف المعين من قبل المستخدم للمنتج" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "تصنيف المنتج" -#: core/models.py:2096 -msgid "feedback" -msgstr "الملاحظات" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2147,6 +2291,26 @@ msgstr "يجب عليك تقديم تعليق، وتقييم، وطلب المن msgid "error during promocode creation: {e!s}" msgstr "خطأ أثناء إنشاء الرمز الترويجي: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "الصفحة الرئيسية" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "اتصل بنا" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "نبذة عنا" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "معلومات الدفع" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "التوصيل" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/cs_CZ/LC_MESSAGES/django.mo b/core/locale/cs_CZ/LC_MESSAGES/django.mo index 4c18fc4848b000e158869489c3609f8651381be8..514b7cc194c460fd8f0da06403b048a96372444f 100644 GIT binary patch delta 20134 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 mw^Yu2G3llImQU_xoAqLPV&\n" "Language-Team: BRITISH ENGLISH \n" @@ -88,12 +88,12 @@ msgstr "Deaktivace vybraných %(verbose_name_plural)s" msgid "selected items have been deactivated." msgstr "Vybrané položky byly deaktivovány!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Hodnota atributu" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Hodnoty atributů" @@ -101,23 +101,23 @@ msgstr "Hodnoty atributů" msgid "image" msgstr "Obrázek" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Obrázky" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Stock" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Zásoby" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Objednat produkt" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Objednat produkty" @@ -330,7 +330,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "Meta snímek SEO" @@ -776,118 +776,118 @@ msgstr "přidat nebo odebrat zpětnou vazbu na vztah objednávka-produkt." msgid "no search term provided." msgstr "Nebyl zadán žádný vyhledávací termín." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Název" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Kategorie" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Kategorie Slimáci" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Štítky" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Minimální cena" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Max Price" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Je aktivní" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Značka" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Atributy" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Množství" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Slug" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "Je digitální" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Zahrnout podkategorie" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Zahrnout osobně objednané produkty" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" "Pro použití příznaku include_subcategories musí existovat category_uuid." -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Vyhledávání (ID, název produktu nebo číslo dílu)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Koupeno po (včetně)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Koupeno před (včetně)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "E-mail uživatele" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "UUID uživatele" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Stav" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "Lidsky čitelné ID" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Rodič" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Celá kategorie (má nebo nemá alespoň 1 produkt)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Úroveň" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "UUID produktu" @@ -1018,8 +1018,8 @@ msgstr "Orderproduct {order_product_uuid} nenalezen!" msgid "original address string provided by the user" msgstr "Původní řetězec adresy zadaný uživatelem" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1034,8 +1034,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funguje jako kouzlo" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Atributy" @@ -1048,11 +1048,11 @@ msgid "groups of attributes" msgstr "Skupiny atributů" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Kategorie" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Značky" @@ -1061,7 +1061,7 @@ msgid "category image url" msgstr "Kategorie" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Procento přirážky" @@ -1084,7 +1084,7 @@ msgstr "Štítky pro tuto kategorii" msgid "products in this category" msgstr "Produkty v této kategorii" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Prodejci" @@ -1100,7 +1100,7 @@ msgstr "Zeměpisná délka (souřadnice X)" msgid "comment" msgstr "Jak na to" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Hodnota hodnocení od 1 do 10 včetně nebo 0, pokud není nastaveno." @@ -1108,8 +1108,8 @@ msgstr "Hodnota hodnocení od 1 do 10 včetně nebo 0, pokud není nastaveno." msgid "represents feedback from a user." msgstr "Představuje zpětnou vazbu od uživatele." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Oznámení" @@ -1117,15 +1117,19 @@ 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é" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Zpětná vazba" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "Seznam objednaných produktů v tomto pořadí" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Fakturační adresa" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1133,51 +1137,51 @@ msgstr "" "Dodací adresa pro tuto objednávku, pokud je stejná jako fakturační adresa " "nebo pokud není použitelná, ponechte prázdné." -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Celková cena této objednávky" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Celkové množství objednaných produktů" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Jsou všechny produkty v objednávce digitální" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Transakce pro tuto objednávku" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Objednávky" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "Adresa URL obrázku" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Obrázky produktu" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Kategorie" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Zpětná vazba" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Značka" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Skupiny atributů" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1185,7 +1189,7 @@ msgstr "Skupiny atributů" msgid "price" msgstr "Cena" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1193,35 +1197,35 @@ msgstr "Cena" msgid "quantity" msgstr "Množství" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Počet zpětných vazeb" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Produkty jsou k dispozici pouze pro osobní objednávky" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Produkty" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Propagační kódy" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Produkty v prodeji" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Propagační akce" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Prodejce" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1229,641 +1233,780 @@ msgstr "Prodejce" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Produkty uvedené na seznamu přání" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Seznamy přání" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Produkty s příznakem" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Štítky produktu" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Kategorie s příznakem" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Štítky kategorií" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Název projektu" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "E-mail společnosti" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Název společnosti" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Adresa společnosti" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Telefonní číslo společnosti" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', někdy se musí použít místo hodnoty hostitelského uživatele." -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "Uživatel hostitelského e-mailu" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Maximální částka pro platbu" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Minimální částka pro platbu" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Analytická data" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Reklamní údaje" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Konfigurace" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Kód jazyka" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Název jazyka" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Příznak jazyka, pokud existuje :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Získat seznam podporovaných jazyků" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Výsledky vyhledávání produktů" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Výsledky vyhledávání produktů" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"Reprezentuje skupinu atributů, která může být hierarchická. Tato třída " +"slouží ke správě a organizaci skupin atributů. Skupina atributů může mít " +"nadřazenou skupinu, která tvoří hierarchickou strukturu. To může být " +"užitečné pro efektivnější kategorizaci a správu atributů v komplexním " +"systému." + +#: core/models.py:86 msgid "parent of this group" msgstr "Rodič této skupiny" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Nadřazená skupina atributů" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Název skupiny atributů" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Skupina atributů" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"Představuje entitu dodavatele, která může uchovávat informace o externích " +"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é " +"komunikují s prodejci třetích stran." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Ukládá pověření a koncové body potřebné pro komunikaci s rozhraním API " "dodavatele." -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Informace o ověřování" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "Definice přirážky pro produkty získané od tohoto dodavatele" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Procento přirážky prodejce" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Název tohoto prodejce" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Název prodejce" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Představuje značku produktu používanou pro klasifikaci nebo identifikaci " +"produktů. Třída ProductTag je určena k jedinečné identifikaci a klasifikaci " +"produktů pomocí kombinace interního identifikátoru značky a uživatelsky " +"přívětivého zobrazovacího názvu. Podporuje operace exportované " +"prostřednictvím mixinů a poskytuje přizpůsobení metadat pro účely správy." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Interní identifikátor značky produktu" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Název štítku" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "Uživatelsky přívětivý název pro značku produktu" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Zobrazení názvu štítku" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Štítek produktu" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Představuje značku kategorie používanou pro produkty. Tato třída modeluje " +"značku kategorie, kterou lze použít k přiřazení a klasifikaci produktů. " +"Obsahuje atributy pro interní identifikátor značky a uživatelsky přívětivý " +"zobrazovací název." + +#: core/models.py:220 msgid "category tag" msgstr "značka kategorie" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "štítky kategorií" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Představuje entitu kategorie pro uspořádání a seskupení souvisejících " +"položek v hierarchické struktuře. Kategorie mohou mít hierarchické vztahy s " +"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 " +"kategorií a také přiřazovat atributy, jako jsou obrázky, značky nebo " +"priorita." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Nahrát obrázek reprezentující tuto kategorii" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Obrázek kategorie" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "Definovat procento přirážky pro produkty v této kategorii." -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Nadřízený této kategorie, který tvoří hierarchickou strukturu." -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Nadřazená kategorie" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Název kategorie" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Uveďte název této kategorie" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Přidejte podrobný popis této kategorie" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Popis kategorie" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "značky, které pomáhají popsat nebo seskupit tuto kategorii" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Priorita" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Název této značky" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Název značky" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Nahrát logo reprezentující tuto značku" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Malý obrázek značky" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Nahrát velké logo reprezentující tuto značku" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Velká image značky" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Přidejte podrobný popis značky" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Popis značky" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Volitelné kategorie, se kterými je tato značka spojena" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Kategorie" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" +"Představuje zásobu produktu spravovaného v systému. Tato třída poskytuje " +"podrobnosti o vztazích mezi dodavateli, produkty a informacemi o jejich " +"zásobách a také o vlastnostech souvisejících se zásobami, jako je cena, " +"nákupní cena, množství, SKU a digitální aktiva. Je součástí systému správy " +"zásob, který umožňuje sledovat a vyhodnocovat produkty dostupné od různých " +"dodavatelů." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "Prodejce dodávající tento výrobek na sklad" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Přidružený prodejce" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Konečná cena pro zákazníka po přirážkách" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Prodejní cena" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "Produkt spojený s touto skladovou položkou" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Související produkt" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "Cena zaplacená prodejci za tento výrobek" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Kupní cena prodejce" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Dostupné množství produktu na skladě" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Množství na skladě" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU přidělený prodejcem pro identifikaci výrobku" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "SKU prodejce" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "Digitální soubor spojený s touto zásobou, je-li to vhodné" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Digitální soubor" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Zápisy do zásob" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"Reprezentuje produkt s atributy, jako jsou kategorie, značka, značky, " +"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 " +"informacemi v rámci aplikace." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Kategorie, do které tento produkt patří" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Volitelně přiřadit tento produkt ke značce" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Značky, které pomáhají popsat nebo seskupit tento produkt" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Označuje, zda je tento produkt dodáván digitálně" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "Je produkt digitální" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Uveďte jasný identifikační název výrobku" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Název produktu" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Přidejte podrobný popis produktu" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Popis produktu" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Číslo dílu pro tento produkt" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Číslo dílu" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Skladová jednotka pro tento produkt" -#: core/models.py:784 +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" +"Reprezentuje atribut v systému. Tato třída slouží k definování a správě " +"atributů, což jsou přizpůsobitelné části dat, které lze přiřadit k jiným " +"entitám. Atributy mají přiřazené kategorie, skupiny, typy hodnot a názvy. " +"Model podporuje více typů hodnot, včetně řetězce, celého čísla, floatu, " +"booleanu, pole a objektu. To umožňuje dynamické a flexibilní strukturování " +"dat." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Kategorie tohoto atributu" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Skupina tohoto atributu" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "Řetězec" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Celé číslo" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Float" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Boolean" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Pole" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Objekt" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Typ hodnoty atributu" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Typ hodnoty" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Název tohoto atributu" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Název atributu" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "je filtrovatelný" + +#: core/models.py:654 +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." + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atribut" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Atribut této hodnoty" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "Konkrétní produkt spojený s hodnotou tohoto atributu" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "Konkrétní hodnota tohoto atributu" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "Poskytněte alternativní text k obrázku kvůli přístupnosti." -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Text alt obrázku" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Nahrát soubor s obrázkem tohoto produktu" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Obrázek produktu" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Určuje pořadí, v jakém se obrázky zobrazují." -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Priorita zobrazení" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "Výrobek, který tento obrázek představuje" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Obrázky produktů" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Procentuální sleva na vybrané produkty" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Procento slevy" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Uveďte jedinečný název této propagační akce" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Název akce" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Popis propagace" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Vyberte, které produkty jsou zahrnuty do této akce" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Zahrnuté produkty" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Propagace" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Výrobky, které uživatel označil jako požadované" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "Uživatel, který vlastní tento seznam přání" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Majitel seznamu přání" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Seznam přání" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Dokumentární film" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Dokumentární filmy" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Nevyřešené" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Adresní řádek pro zákazníka" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Adresní řádek" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Ulice" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "Okres" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "Město" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Region" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Poštovní směrovací číslo" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "Země" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokace Bod(Zeměpisná délka, Zeměpisná šířka)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Úplná odpověď JSON z geokodéru pro tuto adresu" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Uložená odpověď JSON ze služby geokódování" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Adresa" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Adresy" -#: core/models.py:1240 +#: core/models.py:1085 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." -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Identifikátor propagačního kódu" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "Pevná výše slevy, pokud není použito procento" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Pevná výše slevy" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentuální sleva uplatněná v případě nevyužití pevné částky" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Procentuální sleva" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Časové razítko ukončení platnosti promokódu" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "Doba ukončení platnosti" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Časové razítko, od kterého je tento promokód platný" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Čas zahájení platnosti" -#: core/models.py:1273 +#: core/models.py:1118 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." -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Časové razítko použití" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "Uživatel přiřazený k tomuto promokódu, je-li to relevantní" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Přiřazený uživatel" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Propagační kód" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Propagační kódy" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1871,145 +2014,162 @@ 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." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "Promo kód byl již použit" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Neplatný typ slevy pro promokód {self.uuid}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"Představuje objednávku zadanou uživatelem. Tato třída modeluje objednávku v " +"rámci aplikace, včetně jejích různých atributů, jako jsou fakturační a " +"přepravní informace, stav, přidružený uživatel, oznámení a související " +"operace. Objednávky mohou mít přiřazené produkty, lze na ně aplikovat " +"propagační akce, nastavovat adresy a aktualizovat údaje o dopravě nebo " +"fakturaci. Stejně tak funkce podporuje správu produktů v životním cyklu " +"objednávky." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "Fakturační adresa použitá pro tuto objednávku" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Volitelný promo kód použitý na tuto objednávku" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Použitý promo kód" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "Dodací adresa použitá pro tuto objednávku" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Dodací adresa" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Aktuální stav zakázky v jejím životním cyklu" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Stav objednávky" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 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í." -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "JSON reprezentace atributů objednávky pro tuto objednávku" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "Uživatel, který zadal objednávku" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "Uživatel" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "Časové razítko, kdy byla objednávka dokončena." -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Kupte si čas" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "Lidsky čitelný identifikátor objednávky" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "lidsky čitelné ID" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Objednávka" -#: core/models.py:1447 +#: core/models.py:1282 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!" -#: core/models.py:1481 +#: core/models.py:1316 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." -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "Do objednávky nelze přidat neaktivní produkty" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "Nelze přidat více produktů, než je dostupné na skladě" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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á." -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} neexistuje s dotazem <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Promo kód neexistuje" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "Fyzické produkty můžete zakoupit pouze se zadanou dodací adresou!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "Adresa neexistuje" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Neplatná hodnota síly" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "Nelze zakoupit prázdnou objednávku!" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "Bez uživatele nelze objednávku zakoupit!" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "Uživatel bez zůstatku nemůže nakupovat se zůstatkem!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Nedostatek finančních prostředků na dokončení objednávky" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2017,157 +2177,153 @@ 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." -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Neplatný způsob platby: {payment_method} z {available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 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." -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Nákupní cena v době objednávky" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "Interní komentáře pro administrátory k tomuto objednanému produktu" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Interní připomínky" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "Oznámení uživatele" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "JSON reprezentace atributů této položky" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Objednané atributy produktu" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Odkaz na nadřazenou objednávku, která obsahuje tento produkt" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Objednávka rodičů" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "Konkrétní produkt spojený s touto objednávkou" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Množství tohoto konkrétního produktu v objednávce" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Množství produktu" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Aktuální stav tohoto produktu v objednávce" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Stav produktové řady" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "Orderproduct musí mít přiřazenou objednávku!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Špatně zadaná akce pro zpětnou vazbu: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "nelze poskytnout zpětnou vazbu na objednávku, která nebyla přijata" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Název" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "Adresa URL integrace" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Ověřovací pověření" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "Můžete mít pouze jednoho výchozího poskytovatele CRM" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRM" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "Odkaz na CRM objednávky" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "Odkazy CRM objednávek" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Stáhnout" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Ke stažení na" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "Digitální aktivum pro nedokončenou objednávku nelze stáhnout." -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "Komentáře uživatelů o jejich zkušenostech s produktem" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Zpětná vazba" -#: core/models.py:2079 +#: core/models.py:1921 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á." -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Související objednávka produktu" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "Hodnocení produktu přidělené uživatelem" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Hodnocení produktu" -#: core/models.py:2096 -msgid "feedback" -msgstr "Zpětná vazba" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2178,6 +2334,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Chyba při vytváření promokódu: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Home" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Kontaktujte nás" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "O nás" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Informace o platbě" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Dodávka" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/da_DK/LC_MESSAGES/django.mo b/core/locale/da_DK/LC_MESSAGES/django.mo index 37f6843b493aaeef44fdc132d03c7dac9115a509..2b0aac4d379117068a057803049de07d2ffb0a57 100644 GIT binary patch delta 19935 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 Vy;&>1)~^G2B^ThDP!{vSM$DuMt2 delta 11657 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 iF5ecC{e0#ex4Buf60%n\n" "Language-Team: BRITISH ENGLISH \n" @@ -87,12 +87,12 @@ msgstr "Deaktiver valgte %(verbose_name_plural)s." msgid "selected items have been deactivated." msgstr "Udvalgte varer er blevet deaktiveret!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Attributværdi" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Attributværdier" @@ -100,23 +100,23 @@ msgstr "Attributværdier" msgid "image" msgstr "Billede" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Billeder" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Lager" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Aktier" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Bestil produkt" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Bestil produkter" @@ -331,7 +331,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "SEO-meta-snapshot" @@ -778,118 +778,118 @@ msgstr "tilføje eller fjerne feedback på en ordre-produkt-relation" msgid "no search term provided." msgstr "Der er ikke angivet noget søgeord." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Navn" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Kategorier" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Kategorier Snegle" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Tags" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Min. pris" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Maks. pris" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Er aktiv" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Brand" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Egenskaber" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Mængde" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Snegl" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "Er digital" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Inkluder underkategorier" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Inkluder personligt bestilte produkter" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "VARENUMMER" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" "Der skal være en category_uuid for at bruge include_subcategories-flaget" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Søg (ID, produktnavn eller reservedelsnummer)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Købt efter (inklusive)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Købt før (inklusive)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "Brugerens e-mail" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "Bruger UUID" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Status" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "Menneskeligt læsbart ID" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Forælder" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Hele kategorien (har mindst 1 produkt eller ej)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Niveau" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "Produkt UUID" @@ -1020,8 +1020,8 @@ msgstr "Ordreprodukt {order_product_uuid} ikke fundet!" msgid "original address string provided by the user" msgstr "Original adressestreng leveret af brugeren" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1036,8 +1036,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - fungerer som en charme" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Egenskaber" @@ -1050,11 +1050,11 @@ msgid "groups of attributes" msgstr "Grupper af attributter" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Kategorier" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Mærker" @@ -1063,7 +1063,7 @@ msgid "category image url" msgstr "Kategorier" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Markup-procentdel" @@ -1088,7 +1088,7 @@ msgstr "Tags for denne kategori" msgid "products in this category" msgstr "Produkter i denne kategori" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Leverandører" @@ -1104,7 +1104,7 @@ msgstr "Længdegrad (X-koordinat)" msgid "comment" msgstr "Sådan gør du" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" "Vurderingsværdi fra 1 til 10, inklusive, eller 0, hvis den ikke er " @@ -1114,8 +1114,8 @@ msgstr "" msgid "represents feedback from a user." msgstr "Repræsenterer feedback fra en bruger." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Meddelelser" @@ -1123,15 +1123,19 @@ msgstr "Meddelelser" msgid "download url for this order product if applicable" msgstr "Download url for dette ordreprodukt, hvis det er relevant" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Feedback" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "En liste over bestillingsprodukter i denne ordre" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Faktureringsadresse" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1139,51 +1143,51 @@ msgstr "" "Leveringsadresse for denne ordre, lad den være tom, hvis den er den samme " "som faktureringsadressen, eller hvis den ikke er relevant" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Samlet pris for denne ordre" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Samlet antal produkter i ordren" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Er alle produkterne i ordren digitale?" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Transaktioner for denne ordre" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Bestillinger" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "Billed-URL" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Produktets billeder" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Kategori" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Tilbagemeldinger" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Attributgrupper" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1191,7 +1195,7 @@ msgstr "Attributgrupper" msgid "price" msgstr "Pris" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1199,35 +1203,35 @@ msgstr "Pris" msgid "quantity" msgstr "Mængde" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Antal tilbagemeldinger" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Produkter kun tilgængelige for personlige bestillinger" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Produkter" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Promokoder" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Produkter til salg" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Kampagner" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Leverandør" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1235,642 +1239,784 @@ msgstr "Leverandør" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Produkter på ønskelisten" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Ønskelister" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Mærkede produkter" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Produktmærker" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Tagged kategorier" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Kategoriernes tags" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Projektets navn" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "Virksomhedens e-mail" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Virksomhedens navn" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Virksomhedens adresse" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Virksomhedens telefonnummer" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'e-mail fra', nogle gange skal den bruges i stedet for værtsbrugerværdien" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "E-mail-værtsbruger" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Maksimalt beløb til betaling" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Minimumsbeløb for betaling" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Analytiske data" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Data om reklamer" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Konfiguration" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Sprogkode" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Sprogets navn" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Sprogflag, hvis det findes :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Få en liste over understøttede sprog" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Søgeresultater for produkter" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Søgeresultater for produkter" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"Repræsenterer en gruppe af attributter, som kan være hierarkiske. Denne " +"klasse bruges til at administrere og organisere attributgrupper. En " +"attributgruppe kan have en overordnet gruppe, som danner en hierarkisk " +"struktur. Dette kan være nyttigt til at kategorisere og styre attributter " +"mere effektivt i et komplekst system." + +#: core/models.py:86 msgid "parent of this group" msgstr "Forælder til denne gruppe" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Overordnet attributgruppe" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Attributgruppens navn" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Attributgruppe" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +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, " +"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." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Gemmer legitimationsoplysninger og slutpunkter, der er nødvendige for " "leverandørens API-kommunikation" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Oplysninger om godkendelse" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "Definer markeringen for produkter, der hentes fra denne leverandør" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Sælgerens markup-procentdel" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Navn på denne leverandør" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Leverandørens navn" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Repræsenterer et produkttag, der bruges til at klassificere eller " +"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." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Intern tag-identifikator for produkttagget" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Tag-navn" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "Brugervenligt navn til produktmærket" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Navn på tag-visning" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Produktmærke" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Repræsenterer et kategoritag, der bruges til produkter. Denne klasse " +"modellerer et kategoritag, der kan bruges til at tilknytte og klassificere " +"produkter. Den indeholder attributter til en intern tag-identifikator og et " +"brugervenligt visningsnavn." + +#: core/models.py:220 msgid "category tag" msgstr "Kategori-tag" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "Kategori-tags" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Repræsenterer en kategorienhed til at organisere og gruppere relaterede " +"elementer i en hierarkisk struktur. Kategorier kan have hierarkiske " +"relationer til andre kategorier og understøtte forældre-barn-relationer. " +"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." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Upload et billede, der repræsenterer denne kategori" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Kategori billede" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "Definer en markup-procentdel for produkter i denne kategori" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Forælder til denne kategori for at danne en hierarkisk struktur" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Overordnet kategori" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Navn på kategori" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Giv et navn til denne kategori" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Tilføj en detaljeret beskrivelse af denne kategori" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Beskrivelse af kategori" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "tags, der hjælper med at beskrive eller gruppere denne kategori" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Prioritet" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Navnet på dette mærke" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Varemærke" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Upload et logo, der repræsenterer dette brand" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Brandets lille image" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Upload et stort logo, der repræsenterer dette brand" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Brandets store image" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Tilføj en detaljeret beskrivelse af brandet" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Varemærkebeskrivelse" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Valgfrie kategorier, som dette brand er forbundet med" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Kategorier" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" +"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 " +"muliggøre sporing og evaluering af produkter, der er tilgængelige fra " +"forskellige leverandører." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "Den leverandør, der leverer dette produkt, lagerfører" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Tilknyttet leverandør" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Endelig pris til kunden efter tillæg" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Salgspris" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "Det produkt, der er knyttet til denne lagerpost" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Tilknyttet produkt" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "Den pris, der er betalt til sælgeren for dette produkt" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Leverandørens købspris" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Tilgængelig mængde af produktet på lager" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Antal på lager" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "Leverandørtildelt SKU til identifikation af produktet" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "Leverandørens SKU" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "Digital fil knyttet til dette lager, hvis relevant" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Digital fil" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Lagerposteringer" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"Repræsenterer et produkt med attributter som kategori, mærke, tags, digital " +"status, navn, beskrivelse, delnummer og slug. Indeholder relaterede " +"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 " +"manipulere produktdata og tilhørende oplysninger i en applikation." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Kategori, som dette produkt tilhører" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Tilknyt eventuelt dette produkt til et brand" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Tags, der hjælper med at beskrive eller gruppere dette produkt" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Angiver, om dette produkt leveres digitalt" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "Er produktet digitalt?" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Giv produktet et klart identificerende navn" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Produktets navn" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Tilføj en detaljeret beskrivelse af produktet" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Produktbeskrivelse" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Reservedelsnummer for dette produkt" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Varenummer" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Lagerbeholdning for dette produkt" -#: core/models.py:784 +#: core/models.py:607 +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 " +"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, " +"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." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Kategori for denne attribut" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Gruppe af denne attribut" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "Streng" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Heltal" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Flyder" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Boolsk" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Array" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Objekt" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Type af attributtens værdi" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Værditype" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Navn på denne attribut" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Attributtens navn" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "er filtrerbar" + +#: core/models.py:654 +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." + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribut" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Attribut for denne værdi" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "Det specifikke produkt, der er knyttet til denne attributs værdi" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "Den specifikke værdi for denne attribut" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "Giv alternativ tekst til billedet af hensyn til tilgængeligheden" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Billedets alt-tekst" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Upload billedfilen til dette produkt" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Produktbillede" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Bestemmer den rækkefølge, billederne vises i" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Skærm-prioritet" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "Det produkt, som dette billede repræsenterer" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Produktbilleder" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Procentvis rabat for de valgte produkter" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Rabatprocent" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Giv et unikt navn til denne kampagne" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Navn på kampagne" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Beskrivelse af kampagnen" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Vælg, hvilke produkter der er inkluderet i denne kampagne" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Inkluderede produkter" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Forfremmelse" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Produkter, som brugeren har markeret som ønskede" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "Bruger, der ejer denne ønskeliste" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Ønskelistens ejer" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Ønskeliste" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Dokumentarfilm" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Dokumentarfilm" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Uafklaret" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Adresselinje til kunden" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Adresselinje" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Gade" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "Distrikt" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "By" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Region" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Postnummer" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "Land" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokaliseringspunkt (længdegrad, breddegrad)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Fuldt JSON-svar fra geokoderen for denne adresse" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Gemt JSON-svar fra geokodningstjenesten" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Adresse" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Adresser" -#: core/models.py:1240 +#: core/models.py:1085 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" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Identifikator for kampagnekode" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "Fast rabatbeløb anvendes, hvis procent ikke bruges" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Fast rabatbeløb" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentvis rabat, hvis det faste beløb ikke bruges" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Procentvis rabat" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Tidsstempel, når promokoden udløber" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "Slut gyldighedstid" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Tidsstempel, hvorfra denne promokode er gyldig" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Start gyldighedstid" -#: core/models.py:1273 +#: core/models.py:1118 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" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Tidsstempel for brug" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "Bruger tildelt denne promokode, hvis relevant" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Tildelt bruger" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Kampagnekode" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Kampagnekoder" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1878,147 +2024,164 @@ msgstr "" "Der skal kun defineres én type rabat (beløb eller procent), men ikke begge " "eller ingen af dem." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "Promokoden er allerede blevet brugt" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ugyldig rabattype for promokode {self.uuid}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"Repræsenterer en ordre afgivet af en bruger. Denne klasse modellerer en " +"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 " +"funktionaliteten håndtering af produkterne i ordrens livscyklus." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "Den faktureringsadresse, der bruges til denne ordre" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Valgfri kampagnekode anvendt på denne ordre" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Anvendt kampagnekode" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "Den leveringsadresse, der er brugt til denne ordre" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Leveringsadresse" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Ordrens aktuelle status i dens livscyklus" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Bestillingsstatus" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 msgid "json structure of notifications to display to users" msgstr "" "JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges" " tabelvisningen" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "JSON-repræsentation af ordreattributter for denne ordre" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "Den bruger, der har afgivet ordren" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "Bruger" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "Tidsstemplet for, hvornår ordren blev afsluttet" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Køb tid" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "En menneskeligt læsbar identifikator for ordren" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "menneskeligt læsbart ID" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Bestil" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "En bruger må kun have én afventende ordre ad gangen!" -#: core/models.py:1481 +#: core/models.py:1316 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." -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "Du kan ikke tilføje inaktive produkter til en ordre" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "Du kan ikke tilføje flere produkter, end der er på lager" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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." -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} findes ikke med forespørgslen <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Promokode findes ikke" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "Du kan kun købe fysiske produkter med angivet leveringsadresse!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "Adressen findes ikke" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Ugyldig kraftværdi" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "Du kan ikke købe en tom ordre!" -#: core/models.py:1652 +#: core/models.py:1487 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." -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "En bruger uden saldo kan ikke købe med saldo!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Utilstrækkelige midler til at gennemføre ordren" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2026,159 +2189,155 @@ msgstr "" "du kan ikke købe uden registrering, angiv venligst følgende oplysninger: " "kundens navn, kundens e-mail, kundens telefonnummer" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Ugyldig betalingsmetode: {payment_method} fra {available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 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" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Købspris på bestillingstidspunktet" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "Interne kommentarer til administratorer om dette bestilte produkt" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Interne kommentarer" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "Notifikationer til brugere" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "JSON-repræsentation af dette elements attributter" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Bestilte produktattributter" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Henvisning til den overordnede ordre, der indeholder dette produkt" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Forældreordre" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "Det specifikke produkt, der er knyttet til denne ordrelinje" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Mængde af dette specifikke produkt i ordren" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Produktmængde" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Aktuel status for dette produkt i bestillingen" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Status for produktlinje" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "Orderproduct skal have en tilknyttet ordre!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Forkert handling angivet for feedback: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 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." -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Navn" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "URL til integrationen" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Legitimationsoplysninger til godkendelse" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "Du kan kun have én standard CRM-udbyder" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRM'er" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "Ordrens CRM-link" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "Bestillingernes CRM-links" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Download" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Downloads" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "Du kan ikke downloade et digitalt aktiv for en ikke-færdiggjort ordre" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "Brugernes kommentarer om deres oplevelse med produktet" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Kommentarer til feedback" -#: core/models.py:2079 +#: core/models.py:1921 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" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Relateret ordreprodukt" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "Brugertildelt vurdering af produktet" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Produktvurdering" -#: core/models.py:2096 -msgid "feedback" -msgstr "Feedback" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2190,6 +2349,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Fejl under oprettelse af promokode: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Hjem" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Kontakt os" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Om os" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Oplysninger om betaling" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Levering" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/de_DE/LC_MESSAGES/django.mo b/core/locale/de_DE/LC_MESSAGES/django.mo index fb9f75800c5ce22901872cb0f6dc6dbe348dda5c..243efe5aea95e5ea7b187c37a9423384b50b1f8b 100644 GIT binary patch delta 20475 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 KZn<{ki2ny{4GWS0 delta 11651 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 diff --git a/core/locale/de_DE/LC_MESSAGES/django.po b/core/locale/de_DE/LC_MESSAGES/django.po index 5d935a21..ba3e4058 100644 --- a/core/locale/de_DE/LC_MESSAGES/django.po +++ b/core/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -89,12 +89,12 @@ msgstr "Ausgewählte %(verbose_name_plural)s deaktivieren" msgid "selected items have been deactivated." msgstr "Ausgewählte Artikel wurden deaktiviert!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Attribut Wert" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Attribut Werte" @@ -102,23 +102,23 @@ msgstr "Attribut Werte" msgid "image" msgstr "Bild" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Bilder" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Lagerbestand" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Bestände" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Produkt bestellen" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Produkte bestellen" @@ -337,7 +337,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "SEO-Meta-Schnappschuss" @@ -806,119 +806,119 @@ msgstr "" msgid "no search term provided." msgstr "Kein Suchbegriff angegeben." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Name" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Kategorien" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Kategorien Schnecken" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Tags" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Mindestpreis" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Maximaler Preis" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Ist aktiv" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Marke" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Attribute" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Menge" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Schnecke" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "Is Digital" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Unterkategorien einbeziehen" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Persönlich bestellte Produkte einbeziehen" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 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" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Suche (ID, Produktname oder Teilenummer)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Gekauft nach (einschließlich)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Gekauft vor (einschließlich)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "Benutzer-E-Mail" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "User UUID" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Status" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "Human Readable ID" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Elternteil" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Gesamte Kategorie (mit oder ohne mindestens 1 Produkt)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Ebene" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "Produkt UUID" @@ -1052,8 +1052,8 @@ msgstr "Bestellprodukt {order_product_uuid} nicht gefunden!" msgid "original address string provided by the user" msgstr "Vom Benutzer angegebene Originaladresse" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1068,8 +1068,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funktioniert wie ein Zauber" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Attribute" @@ -1082,11 +1082,11 @@ msgid "groups of attributes" msgstr "Gruppen von Attributen" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Kategorien" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Marken" @@ -1095,7 +1095,7 @@ msgid "category image url" msgstr "Kategorien" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Markup Percentage" @@ -1120,7 +1120,7 @@ msgstr "Tags für diese Kategorie" msgid "products in this category" msgstr "Produkte in dieser Kategorie" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Anbieter" @@ -1136,7 +1136,7 @@ msgstr "Längengrad (X-Koordinate)" msgid "comment" msgstr "Wie" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" "Bewertungswert von 1 bis einschließlich 10 oder 0, wenn nicht festgelegt." @@ -1145,8 +1145,8 @@ msgstr "" msgid "represents feedback from a user." msgstr "Stellt das Feedback eines Benutzers dar." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Benachrichtigungen" @@ -1154,15 +1154,19 @@ msgstr "Benachrichtigungen" msgid "download url for this order product if applicable" msgstr "Download-Url für dieses Bestellprodukt, falls zutreffend" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Rückmeldung" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "Eine Liste der bestellten Produkte in dieser Reihenfolge" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Rechnungsadresse" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1170,51 +1174,51 @@ msgstr "" "Lieferadresse für diese Bestellung, leer lassen, wenn sie mit der " "Rechnungsadresse übereinstimmt oder nicht zutrifft" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Gesamtpreis für diese Bestellung" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Gesamtmenge der bestellten Produkte" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Sind alle Produkte in der Bestellung digital" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Vorgänge für diesen Auftrag" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Bestellungen" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "Bild URL" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Bilder des Produkts" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Kategorie" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Rückmeldungen" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Marke" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Attribut-Gruppen" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1222,7 +1226,7 @@ msgstr "Attribut-Gruppen" msgid "price" msgstr "Preis" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1230,35 +1234,35 @@ msgstr "Preis" msgid "quantity" msgstr "Menge" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Anzahl der Rückmeldungen" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Produkte nur für persönliche Bestellungen verfügbar" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Produkte" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Zum Verkauf stehende Produkte" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Werbeaktionen" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Anbieter" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1266,656 +1270,802 @@ msgstr "Anbieter" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Auf dem Wunschzettel stehende Produkte" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Wunschzettel" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Markierte Produkte" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Produkt-Tags" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Markierte Kategorien" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Kategorien'-Tags" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Name des Projekts" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "Unternehmen E-Mail" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Name des Unternehmens" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Adresse des Unternehmens" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Telefonnummer des Unternehmens" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "E-Mail von\", muss manchmal anstelle des Host-Benutzerwerts verwendet werden" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "E-Mail-Host-Benutzer" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Höchstbetrag für die Zahlung" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Mindestbetrag für die Zahlung" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Analytische Daten" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Konfiguration" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Sprachcode" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Name der Sprache" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Sprachflagge, falls vorhanden :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Eine Liste der unterstützten Sprachen abrufen" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Suchergebnisse für Produkte" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Suchergebnisse für Produkte" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"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 " +"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." + +#: core/models.py:86 msgid "parent of this group" msgstr "Elternteil dieser Gruppe" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Übergeordnete Attributgruppe" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Name der Attributgruppe" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Attribut-Gruppe" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +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 " +"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." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Speichert Anmeldeinformationen und Endpunkte, die für die API-Kommunikation " "des Anbieters erforderlich sind" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Informationen zur Authentifizierung" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definieren Sie den Aufschlag für Produkte, die von diesem Lieferanten " "bezogen werden" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Prozentualer Aufschlag des Lieferanten" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Name dieses Anbieters" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Name des Anbieters" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"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. " +"Sie unterstützt Operationen, die über Mixins exportiert werden, und " +"ermöglicht die Anpassung von Metadaten für Verwaltungszwecke." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Interner Tag-Identifikator für das Produkt-Tag" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Tag name" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "Benutzerfreundlicher Name für den Produktanhänger" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Tag-Anzeigename" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Produkt-Tag" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Stellt ein für Produkte verwendetes Kategorie-Tag dar. Diese Klasse " +"modelliert ein Kategorie-Tag, das verwendet werden kann, um Produkte " +"zuzuordnen und zu klassifizieren. Sie enthält Attribute für einen internen " +"Tag-Bezeichner und einen benutzerfreundlichen Anzeigenamen." + +#: core/models.py:220 msgid "category tag" msgstr "Kategorie-Tag" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "Kategorie-Tags" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Stellt eine Kategorie-Entität zur Organisation und Gruppierung verwandter " +"Elemente in einer hierarchischen Struktur dar. Kategorien können " +"hierarchische Beziehungen zu anderen Kategorien haben, die Eltern-Kind-" +"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 " +"wie Bilder, Tags oder Priorität zuzuweisen." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Laden Sie ein Bild hoch, das diese Kategorie repräsentiert" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Kategorie Bild" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "" "Definieren Sie einen prozentualen Aufschlag für Produkte in dieser Kategorie" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "" "Übergeordneter dieser Kategorie, um eine hierarchische Struktur zu bilden" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Übergeordnete Kategorie" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Name der Kategorie" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Geben Sie einen Namen für diese Kategorie an" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Fügen Sie eine detaillierte Beschreibung für diese Kategorie hinzu" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Beschreibung der Kategorie" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "Tags, die helfen, diese Kategorie zu beschreiben oder zu gruppieren" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Priorität" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Name dieser Marke" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Markenname" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Laden Sie ein Logo hoch, das diese Marke repräsentiert" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Marke kleines Bild" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Laden Sie ein großes Logo hoch, das diese Marke repräsentiert" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Großes Image der Marke" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Fügen Sie eine detaillierte Beschreibung der Marke hinzu" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Beschreibung der Marke" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "" "Optionale Kategorien, mit denen diese Marke in Verbindung gebracht wird" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Kategorien" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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, " +"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." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "Der Verkäufer, der dieses Produkt liefert, hat folgende Bestände" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Zugehöriger Anbieter" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Endpreis für den Kunden nach Aufschlägen" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Verkaufspreis" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "Das mit diesem Bestandseintrag verbundene Produkt" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Zugehöriges Produkt" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "Der an den Verkäufer gezahlte Preis für dieses Produkt" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Einkaufspreis des Verkäufers" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Verfügbare Menge des Produkts auf Lager" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Vorrätige Menge" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "Vom Hersteller zugewiesene SKU zur Identifizierung des Produkts" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "SKU des Verkäufers" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "" "Digitale Datei, die mit diesem Bestand verbunden ist, falls zutreffend" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Digitale Datei" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Bestandseinträge" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +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 " +"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 " +"Anwendung zu definieren und zu manipulieren." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Kategorie, zu der dieses Produkt gehört" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Optional können Sie dieses Produkt mit einer Marke verknüpfen" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Tags, die helfen, dieses Produkt zu beschreiben oder zu gruppieren" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Gibt an, ob dieses Produkt digital geliefert wird" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "Ist das Produkt digital" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "" "Geben Sie einen eindeutigen Namen zur Identifizierung des Produkts an." -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Name des Produkts" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Fügen Sie eine detaillierte Beschreibung des Produkts hinzu" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Beschreibung des Produkts" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Teilenummer für dieses Produkt" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Teilnummer" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Lagerhaltende Einheit für dieses Produkt" -#: core/models.py:784 +#: core/models.py:607 +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 " +"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 " +"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." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Kategorie dieses Attributs" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Gruppe dieses Attributs" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "Zeichenfolge" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Integer" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Schwimmer" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Boolesche" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Array" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Objekt" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Typ des Attributwerts" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Werttyp" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Name dieses Attributs" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Name des Attributs" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "ist filterbar" + +#: core/models.py:654 +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." + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribut" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Attribut dieses Wertes" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "" "Das spezifische Produkt, das mit dem Wert dieses Attributs verbunden ist" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "Der spezifische Wert für dieses Attribut" -#: core/models.py:902 +#: core/models.py:747 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." -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Bild-Alt-Text" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Laden Sie die Bilddatei für dieses Produkt hoch" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Produktbild" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Legt die Reihenfolge fest, in der die Bilder angezeigt werden" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Priorität anzeigen" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "Das Produkt, das dieses Bild darstellt" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Produktbilder" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Prozentualer Rabatt für die ausgewählten Produkte" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Prozentsatz der Ermäßigung" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Geben Sie einen eindeutigen Namen für diese Aktion an" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Name der Aktion" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Wählen Sie aus, welche Produkte in dieser Aktion enthalten sind" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Enthaltene Produkte" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Förderung" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Produkte, die der Benutzer als gewünscht markiert hat" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "Benutzer, dem diese Wunschliste gehört" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Besitzer der Wishlist" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Wunschzettel" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Dokumentarfilm" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Dokumentarfilme" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Ungelöst" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Adresszeile für den Kunden" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Adresszeile" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Straße" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "Bezirk" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "Stadt" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Region" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Postleitzahl" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "Land" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Längengrad, Breitengrad)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Vollständige JSON-Antwort vom Geocoder für diese Adresse" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Gespeicherte JSON-Antwort vom Geokodierungsdienst" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Adresse" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Adressen" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "" "Einzigartiger Code, den ein Nutzer zum Einlösen eines Rabatts verwendet" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Kennung des Promo-Codes" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "" "Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet " "wird" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Fester Rabattbetrag" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "Prozentualer Rabatt, wenn der Festbetrag nicht verwendet wird" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Prozentualer Rabatt" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Zeitstempel, wann der Promocode abläuft" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "Ende der Gültigkeitsdauer" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Zeitstempel, ab dem dieser Promocode gültig ist" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Beginn der Gültigkeitsdauer" -#: core/models.py:1273 +#: core/models.py:1118 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Zeitstempel, wann der Promocode verwendet wurde, leer, wenn noch nicht " "verwendet" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Zeitstempel der Verwendung" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "Diesem Promocode zugewiesener Benutzer, falls zutreffend" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Zugewiesener Benutzer" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Promo-Code" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Promo-Codes" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1923,152 +2073,170 @@ msgstr "" "Es sollte nur eine Art von Rabatt definiert werden (Betrag oder " "Prozentsatz), aber nicht beides oder keines von beiden." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "Promocode wurde bereits verwendet" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ungültiger Rabatttyp für den Promocode {self.uuid}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"Stellt eine von einem Benutzer aufgegebene Bestellung dar. Diese Klasse " +"modelliert eine Bestellung innerhalb der Anwendung, einschließlich ihrer " +"verschiedenen Attribute wie Rechnungs- und Versandinformationen, Status, " +"zugehöriger Benutzer, Benachrichtigungen und zugehörige Vorgänge. " +"Bestellungen können mit Produkten verknüpft werden, es können Werbeaktionen " +"durchgeführt, Adressen festgelegt und Versand- oder Rechnungsdaten " +"aktualisiert werden. Ebenso unterstützt die Funktionalität die Verwaltung " +"der Produkte im Lebenszyklus der Bestellung." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "Die für diese Bestellung verwendete Rechnungsadresse" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Optionaler Promo-Code für diese Bestellung" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Angewandter Promo-Code" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "Die für diese Bestellung verwendete Lieferadresse" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Lieferadresse" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Aktueller Status des Auftrags in seinem Lebenszyklus" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Status der Bestellung" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 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" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "JSON-Darstellung der Auftragsattribute für diesen Auftrag" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "Der Benutzer, der die Bestellung aufgegeben hat" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "Benutzer" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "Der Zeitstempel, zu dem der Auftrag abgeschlossen wurde" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Zeit kaufen" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "Ein von Menschen lesbarer Identifikator für den Auftrag" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "menschenlesbare ID" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Bestellung" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "Ein Benutzer darf immer nur einen schwebenden Auftrag haben!" -#: core/models.py:1481 +#: core/models.py:1316 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." -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "Sie können keine inaktiven Produkte zur Bestellung hinzufügen" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "Sie können nicht mehr Produkte hinzufügen, als auf Lager sind" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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." -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} existiert nicht mit Abfrage <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Promocode existiert nicht" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "" "Sie können nur physische Produkte mit angegebener Lieferadresse kaufen!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "Adresse ist nicht vorhanden" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Ungültiger Force-Wert" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "Sie können keine leere Bestellung kaufen!" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "" "Sie können keine Produkte aus einer Bestellung entfernen, die nicht in " "Bearbeitung ist." -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "Ein Benutzer ohne Guthaben kann nicht mit Guthaben kaufen!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Unzureichende Mittel für die Ausführung des Auftrags" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2076,163 +2244,159 @@ msgstr "" "Sie können nicht ohne Registrierung kaufen, bitte geben Sie die folgenden " "Informationen an: Kundenname, Kunden-E-Mail, Kunden-Telefonnummer" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Ungültige Zahlungsmethode: {payment_method} von {available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 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" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Einkaufspreis zum Zeitpunkt der Bestellung" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "Interne Kommentare für Administratoren zu diesem bestellten Produkt" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Interne Kommentare" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "Benutzerbenachrichtigungen" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "JSON-Darstellung der Attribute dieses Artikels" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Bestellte Produktattribute" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Verweis auf den übergeordneten Auftrag, der dieses Produkt enthält" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Übergeordneter Auftrag" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "Das spezifische Produkt, das mit dieser Auftragszeile verbunden ist" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Menge dieses spezifischen Produkts in der Bestellung" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Produktmenge" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Aktueller Status dieses Produkts im Auftrag" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Status der Produktlinie" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "Das Bestellprodukt muss eine zugehörige Bestellung haben!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Falsche Aktion für Feedback angegeben: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 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." -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Name" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "URL der Integration" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Anmeldeinformationen zur Authentifizierung" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "Sie können nur einen Standard-CRM-Anbieter haben" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRMs" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "CRM-Link der Bestellung" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "CRM-Links der Bestellungen" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Herunterladen" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Herunterladen" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "" "Sie können kein digitales Asset für eine nicht abgeschlossene Bestellung " "herunterladen" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "Kommentare der Nutzer über ihre Erfahrungen mit dem Produkt" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Kommentare zum Feedback" -#: core/models.py:2079 +#: core/models.py:1921 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" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Produkt zur Bestellung" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "Vom Benutzer zugewiesene Bewertung für das Produkt" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Produktbewertung" -#: core/models.py:2096 -msgid "feedback" -msgstr "Rückmeldung" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2244,6 +2408,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Fehler bei der Erstellung des Promocodes: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Startseite" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Kontakt" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Über uns" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Zahlungsinformationen" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Lieferung" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/en_GB/LC_MESSAGES/django.mo b/core/locale/en_GB/LC_MESSAGES/django.mo index db92f655dc2522ab1f38653a161665d64dda856a..4735aea9e8071834a8384440e74e979db0fd6ab7 100644 GIT binary patch literal 56541 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 delta 11672 zcmZA72Yk=h{>Skz*^$T;LPCOs3?q?idgOC*V?;gQIx7(qr@n!wrK5^ zqEwA;wW?^98n^$~JLh;@kN@}4PoAH1zU$0yaPO79Zi^ombX^U0U*vEUE9f{8csbB< zPLVH2`x>bl$L>o_jQ zv!b~n2z4SJJum~^uo1drQyh=2kQ<#dNL!sNs0QA_h3H<%aXfJ;st>DB4LFF!@h0w~ zgC3O~=Oy0ne3Wb+@BmY}pimWKUF&F6Pq$!@9)#-QISj+!(FfgAOv4IeQOe<{jwGS3 zPeWbT+?s>Yyx-|Xq8?7cWjGVngL1US4=Z9Q)_vGas=6#X>n>}91g}xhAijpVWHI5?#;|)#4tg7v|cs3$>W$ zp?bOm^?-G#AwPy%3+GWi{T>V94OGJ(*z-}0yPg||dS421pUcT0(Hu8H4S5gL5Dr7V za1yHL^HDF{V(a%|6y>9+2HZfc{`;u4@euW*e^FBtP{%wk2KAgO7^?kWheS8FLEV^x z`6FS?MKy2=YVMbz=I#J$t(?Jdyk>Rknim&GbtE43+;mLD2B@_*9K(3O^Ny|9g)DgI zM`Xb|#p{`dw6^v^y?Bf*Pe(Oi8L9!>tjAD2{~1f;pQwg})i+ZVhnk8i=+dI8MWP`Y zhT3-HQ4ijUdf`#j5MM-1$xo;`zKhZL)SfSyVHRIG)LQ6(YCun{gHuoqJAxYF3mJ^R zJ}@_^&>{#N<|`8z@AtI=b;;Zfoi}p)Ec;tdZ43&qtWHK@nMdlA_gNd6DwmcEQO2g`CXVm`8>K~!DeQJyih|Q zj^3DJ%jw9hIqhxzD(glpO#KdY*Zx01qHpqHREw{mR{vcrhVIQx42d~Ks8_*25bK>CJDez=#Tp_3XftU-ay?D*3xX#7>uBt zjOuwaRD%X!APz&_Hv!eLZK&rTM(u+0sKp!5iuv~=DN9lalTZ&%N6l>xYVnOiExOIt zofty-W7Oh1jTO+lwVC^>sQQ7(&UW5IjnH+ZFHWI0=6#*pF#e%b^ru2YGafaElTa_5 zje5}{)W~c^jl>>Xe;Cz)?@&Ge&7OaR>X27kb3O!hJ__~xB-9tPdRxX{Ct6dX{oNb2 z$i|@_yb*nIHx|JIs0UxbF#H*{Mjm4jhO{%+$Dp=XWz>DuQ4Mcy&v(Vjln1y-qDYpZ zw%5m~Ir@9FE~t#XC^yG=+=ZH|A5cAdhPvL96<86AVO7jRzRu2gtcC|syW$CI z&A964m=-odwYVE<+YLa?*$nFzjG=tmmjA|Z%HbW&oL50Ls2^&?CL{kjbNRvYaBid4 zLY+?LgESdgq%P+aNfalZqSiuWXY=4>)Kt8TNjS#32{i(jtzKQs2PPS-Q=fy{c8gHg zeTvC=6ZM?Pu4W{fVY2rBG+Xfz>Vm(lvE9s2w#OROPeq+Sgc`yJSQpc~o3ab*P(EVy z?!h_A*{J%dn1V;K3_imc-tR>BG^;xcOH*!xT9jjuL2;&|7SA=*Zg_y&Ej}y=?TP>_ zgOR8?t&5egA=bk&w*DjQLDUo-Lzfu)|x^-&KVi)C>g*2EL29(oTjBNc+$w&AEn8-p6L+5;H>5+psT(0+HJUN{Ri zgqzR@ze8=GU(gpL2bz6f9k>8KH`=OPIvc?H#w ziKw2eMBVr~*1}upf$@V)11h5@tP}6i2C64MKyFBsw30T3qQnh_!(*{UA2ao z-^YV7gNirN8_!{3ynV?N`{a>glE|tr)7hwL=Ni<~djx=AeJ=Sv=O8q_5)Oe0Ei>EYd$ZKK*2fslz?0YPV zH&Hz)$cie4-l*%MtqGVwITh8x?zjy5pgK@+JoE2I;zPI9fH2hJOF%Uw1>GGsz(d#$PhwLn%hsulBT(Bp4}r+uv)DShqIT(PwPz}ySE#8@^wX)ov-)ZYVH@ci}Nc7-q zsFApb+E#v3OgReUDc3+vQ6JP4Ew%M0P%r))HDaDq%{DBI9+Z<%=hILP&O*JfLw=e0 z?M32A#VFJekHbls^r+v?0P4-Q4Goe0!o%SNq*k+wVwtLZtY z57WIF?0+>NVWw$OI_kyEY`Gh%0mD%Zm||UJ>-S-4>c6t(d+0;iW0o1>0Mwc(j(*q# zwe50H&z(Dq@z)F2P~nZcP(%3%7Q&Mljo;eyk1>g|+idfqR8#|MV?FGFnv%7sj_tx& zJc3$dcWnIw)cd?#bIgT-sFs(;I84MeY>R7g4(f)KH_f*^9aAW`Lap*?sG*&MHSh@L zH*~I91usb%v5txGqumwiU zHw_wsg(>G^7EVNU@C0fkzQLgU-~S|$%o(wCF@uSViV#avVa7NS4y#}atLmVd*NlpkO! zhQ4JU+z882?rfcm8saV1Qy4}0o-GG2HXTU8QriE$Np!H2z-kg`kSaV z;IYJ%3!{cM4pl$Q`YLMZC!(G+AH#4lY9zLzM(zN*ijjOnq8{I|C!V6_C~&FyLt;@> z!!of04#%o^617;}-Zs}&KrO~j7>GSkFC2jZI0f~dw@}Yp^ETt3NOGDAwfGtOp&x%r z&~LeLERJcY2DL`pX%A&1F|A z^l4mVU4a^+wU~x`QH$mtreLWRroJ^cpgap>@C>%VM_33Oy<>J&Thz!5K}}UI>V4x} zBzn1WVyrEQWughTdV|8Wh2fjb-|4!e%I{$vyk$*%-;@VqUFx@@ zcE?>TgE5=UuE<6$?xCm=9EV!Wt2Q(L8p7>VXz>)@Vs=9$YP%$%ZcIZxumO5vf2@SB zU_)GG>u*@^qA&FiF&YbQH7_iS-jq{Oi@DZT#$O+f=2YlI(hV!(Xsm$ia6X>HzSwu0 z`PQGpI+P!xuB-Nend?3nOL+m7$9<@g{TcJW8{5r@w8nVqUv-g0lB~sYcnE9bE!2l8 zVTXBecPvYJ4%WmxR1fc>M(PO`!UB0_arvW0tQ?lW#^{HAQSZyeO6ZzT;zM!}wP;SF z9_+Ex?E65>rW}WHI09pE1*!*!P(8kb0a#?0`K1$s8ku+u#`dU&3`BKgDsrF8*-TQ4 zinFMm1n)KtD2AHrGFS}bQ9Z1WMX(vFN4-%!8IE4K8oT2r)KvQIG5fs+YI}A>t$|e- z$orj*BpRxH7=l+(BXS@0fTyTAO!(03g1(qec^lTp-!T!B_L>ptf*Psmn1Xqz>#w7x zICh`;2acwgto?t6L=Eux$owHP4wESl!p67~tKu!xi%NfNUepZrz*kW(T#X5M5=-JE zEP!7U7f9|9YS4OBa;!zyGJdQhLWsUZd7=lQ<5&C(&tQRq`Blz;$hQ)q6lN zk#ZSA)0B&W+(Vn4Rrb12Y(Tj?;XyuI^Z$cAIRT4vLPv31r#zc@s)S>{!I^9oQG^@U z7bX57`cu|A_>24ov61}w!7g^bAbuj&5OJFSNG{Ux8Znr>6mgF{8o$;F4yG>uXvfbR z#9PD&;tKJY>#hnPs)D88^nJ!|2m>xxM-lMa%NC>jMzl^ zP2vPGk{C$cMq(~`CUJ)7MYJWxQXk5&&%*_Tjz6t$;R?zDxE4DTE={Yp(-SJSU$0?9 zB7)Fy6KC3d6y@Q>Af4dICEg%v5*r8|?-AM++G09>CwAs%=0|s))$f00{{BxzA1W&1 zetTjYc`A`aT(fn*khj)##93SSDs>0QTM=%=1zUfG`hvts%8jr+p(6!15Ps@4N1o-^(wa(A-D#3S-YxPbVD=tk7kc^>FNuA@2SG@^tl=6|HB+gyy} z+)?6N6*T{|C`==UkUzu9gpNEcY;%4cI6o89h~KG8#nZ$m_B?6+5k%R|_D&Vki9cSr zCd}rq<1oVI&kucOUp$Ub7(smt{1Q(Sr-<1^puMm^`B3s5SOwb?XUT69!Gwv%x?MtKqX(34T*hlv`Ln-ZDi zI>s2BgIJEb!dzR`p6fx~_x5}--k<*`p9u8iqC&*S_QK9sjF`YV{`_DL${99YZhZ;A zvw029*Coml&yONDKaQ1bWh?SO$X${A=w>h2On#H7M(F5c>y^iluORB%y4%#fL+(q1 zpC2?`@GB%%QU59&2uKx2c-NYqs+(KL@o*$P;mQbE->q6{_W7hR}l5-yr z1!>58_?^A>sa2Q0Of)CT5|fD6?75x#_kSIuU%2=u^47#xw$6hGXW2X*!_6&D8}fs; zUR7O)-HI3LRR0;}VM^@L!k*uYle85I*ow>eU*aWVC~=t^qKRF^=ah@mkZSn+SVEHg zynu^2*A<@-J?(WLTEndi@hi@MO1wh2Zt>tL@cqHxJ8sE{^eXE9z}n`i~I+i zi(&ZUF@?J8RE#F(kWVB^5ITy`_+V^8w4=_4h|&H(N0P29>@gNUvNu&FZ%l-7vlpS` zG4WrblD+0v@?}I2p<@X3tBH3^(Fx$bHz`lFWwDF$xcoBn-+;o@7fv>z{D3%5ETldj zzp>~4!KK6$;%Dj`+WPk~i`Y)xQsVh>;)T4tt?Z41ZLa_QG5?=bTE1|h&fTTFiTIIx zAG#C1#45_Ah;PXY5e~gugRhfTCf+3vrtThIq^#p_@;aD9d{17T7)0zL^nT|vVv7=v z@l?j5PP|Wk2XjzIJ>qbFW`5}ZGpyrXVqbn{{zh!me0=%2i2IW;p718Wk0Z@9UCwF> zI)ZrEMJhirMdwrUUc>=nIq|Wr7gZ=fwB_HhuFd19|C_uhkxhOTd!s+kK2F|=d?oRa zc!kK{KOIQgkiLw~h{nWx;tN8@EMg3~HxD^Po|iDCQh~glQlavXVorqrh(RO!IxR+aAClWYckF@%8-(>}*&5{{T$I!`}b^ diff --git a/core/locale/en_GB/LC_MESSAGES/django.po b/core/locale/en_GB/LC_MESSAGES/django.po index 1c43cfa5..e6b56caf 100644 --- a/core/locale/en_GB/LC_MESSAGES/django.po +++ b/core/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -91,12 +91,12 @@ msgstr "Deactivate selected %(verbose_name_plural)s" msgid "selected items have been deactivated." msgstr "Selected items have been deactivated!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Attribute Value" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Attribute Values" @@ -104,23 +104,23 @@ msgstr "Attribute Values" msgid "image" msgstr "Image" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Images" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Stock" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Stocks" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Order Product" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Order Products" @@ -326,7 +326,7 @@ msgstr "Rewrite some fields of an existing category saving non-editables" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "SEO Meta snapshot" @@ -756,117 +756,117 @@ msgstr "add or remove feedback on an order–product relation" msgid "no search term provided." msgstr "No search term provided." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Name" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Categories" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Categories Slugs" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Tags" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Min Price" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Max Price" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Is Active" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Brand" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Attributes" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Quantity" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Slug" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "Is Digital" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Include sub-categories" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Include personal ordered products" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "There must be a category_uuid to use include_subcategories flag" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Search (ID, product name or part number)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Bought after (inclusive)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Bought before (inclusive)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "User email" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "User UUID" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Status" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "Human Readable ID" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Parent" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Whole category(has at least 1 product or not)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Level" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "Product UUID" @@ -997,8 +997,8 @@ msgstr "Orderproduct {order_product_uuid} not found!" msgid "original address string provided by the user" msgstr "Original address string provided by the user" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1013,8 +1013,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - works like a charm" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Attributes" @@ -1027,11 +1027,11 @@ msgid "groups of attributes" msgstr "Groups of attributes" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Categories" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Brands" @@ -1040,7 +1040,7 @@ msgid "category image url" msgstr "Categories" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Markup Percentage" @@ -1062,7 +1062,7 @@ msgstr "Tags for this category" msgid "products in this category" msgstr "Products in this category" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Vendors" @@ -1078,7 +1078,7 @@ msgstr "Longitude (X coordinate)" msgid "comment" msgstr "Comment" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Rating value from 1 to 10, inclusive, or 0 if not set." @@ -1086,8 +1086,8 @@ msgstr "Rating value from 1 to 10, inclusive, or 0 if not set." msgid "represents feedback from a user." msgstr "Represents feedback from a user." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Notifications" @@ -1095,15 +1095,19 @@ msgstr "Notifications" msgid "download url for this order product if applicable" msgstr "Download url for this order product if applicable" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Feedback" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "A list of order products in this order" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Billing address" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1111,51 +1115,51 @@ msgstr "" "Shipping address for this order, leave blank if same as billing address or " "if not applicable" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Total price of this order" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Total quantity of products in order" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Are all of the products in the order digital" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Transactions for this order" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Orders" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "Image URL" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Product's images" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Category" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Attribute groups" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1163,7 +1167,7 @@ msgstr "Attribute groups" msgid "price" msgstr "Price" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1171,35 +1175,35 @@ msgstr "Price" msgid "quantity" msgstr "Quantity" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Number of feedbacks" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Products only available for personal orders" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Products" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Products on sale" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1207,639 +1211,775 @@ msgstr "Vendor" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Wishlisted products" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Wishlists" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Product tags" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Tagged categories" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Categories' tags" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Project name" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "Company Email" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Company Name" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Company Address" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Company Phone Number" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "'email from', sometimes it must be used instead of host user value" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "Email host user" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Maximum amount for payment" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Minimum amount for payment" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Analytics data" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Language code" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Language name" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Language flag, if exists :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Get a list of supported languages" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Products search results" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Products search results" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." + +#: core/models.py:86 msgid "parent of this group" msgstr "Parent of this group" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Parent attribute group" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Attribute group's name" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Attribute group" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stores credentials and endpoints required for vendor's API communication" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Authentication info" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "Define the markup for products retrieved from this vendor" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Vendor markup percentage" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Name of this vendor" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Vendor name" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Tag name" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "User-friendly name for the product tag" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Tag display name" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Product tag" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Represents a category tag used for products. This class models a category " +"tag that can be used to associate and classify products. It includes " +"attributes for an internal tag identifier and a user-friendly display name." + +#: core/models.py:220 msgid "category tag" msgstr "category tag" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "category tags" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Upload an image representing this category" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Category image" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "Define a markup percentage for products in this category" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Parent of this category to form a hierarchical structure" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Parent category" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Category name" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Provide a name for this category" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Add a detailed description for this category" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Category description" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "tags that help describe or group this category" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Priority" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Name of this brand" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Brand name" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Upload a logo representing this brand" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Brand small image" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Upload a big logo representing this brand" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Brand big image" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Add a detailed description of the brand" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Brand description" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Optional categories that this brand is associated with" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Categories" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 " +"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." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "The vendor supplying this product stock" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Associated vendor" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Final price to the customer after markups" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Selling price" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Associated product" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "The price paid to the vendor for this product" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Vendor purchase price" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Available quantity of the product in stock" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Quantity in stock" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "Vendor's SKU" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Digital file" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Stock entries" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Category this product belongs to" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Optionally associate this product with a brand" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Tags that help describe or group this product" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Indicates whether this product is digitally delivered" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "Is product digital" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Provide a clear identifying name for the product" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Product name" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Add a detailed description of the product" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Product description" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Part number for this product" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Part number" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Stock Keeping Unit for this product" -#: core/models.py:784 +#: core/models.py:607 +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 " +"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 " +"for dynamic and flexible data structuring." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Category of this attribute" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Group of this attribute" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "String" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Integer" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Float" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Boolean" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Array" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Object" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Type of the attribute's value" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Value type" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Name of this attribute" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Attribute's name" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "is filterable" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "designates whether this attribute can be used for filtering or not" + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribute" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Attribute of this value" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "The specific product associated with this attribute's value" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "The specific value for this attribute" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Image alt text" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Upload the image file for this product" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Product image" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Determines the order in which images are displayed" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Display priority" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "The product that this image represents" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Product images" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Percentage discount for the selected products" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Discount percentage" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Provide a unique name for this promotion" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Promotion name" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Select which products are included in this promotion" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Included products" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Promotion" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Wishlist" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Documentary" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Unresolved" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Address line for the customer" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Address line" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Street" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "District" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "City" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Region" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Postal code" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "Country" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Full JSON response from geocoder for this address" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Stored JSON response from the geocoding service" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Address" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Adresses" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "Unique code used by a user to redeem a discount" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Percentage discount" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "End validity time" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Start validity time" -#: core/models.py:1273 +#: core/models.py:1118 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "Timestamp when the promocode was used, blank if not used yet" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Usage timestamp" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Assigned user" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Promo code" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1847,144 +1987,160 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "Promocode has been used already" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Applied promo code" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Shipping address" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Order status" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 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" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "The user who placed the order" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "User" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Buy time" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "human-readable ID" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Order" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "A user must have only one pending order at a time!" -#: core/models.py:1481 +#: core/models.py:1316 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" -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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" -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "You can only buy physical products with shipping address specified!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "Address does not exist" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Invalid force value" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "You cannot buy an order without a user!" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "A user without a balance cannot buy with balance!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1992,156 +2148,152 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Invalid payment method: {payment_method} from {available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 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" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Internal comments" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "User notifications" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Parent order" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Product quantity" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Product line status" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "Orderproduct must have an associated order!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Wrong action specified for feedback: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "you cannot feedback an order which is not received" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Name" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "URL of the integration" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Authentication credentials" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "You can only have one default CRM provider" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRMs" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "Order's CRM link" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "Orders' CRM links" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Download" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Downloads" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "You can not download a digital asset for a non-finished order" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Feedback comments" -#: core/models.py:2079 +#: core/models.py:1921 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" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Related order product" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Product rating" -#: core/models.py:2096 -msgid "feedback" -msgstr "Feedback" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2152,6 +2304,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Error during promocode creation: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Home" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Contact Us" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "About Us" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Payment Information" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Delivery" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/en_US/LC_MESSAGES/django.mo b/core/locale/en_US/LC_MESSAGES/django.mo index 5684b9ff1ef860f4127b4954761a3d3859c7babe..d5d7265ec6cf29c8ccba98fd23a2f240da139272 100644 GIT binary patch literal 56532 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 BRs;Y5 delta 11682 zcmZA72Y8QH|Htt=5*dOd5|NOQh(sn4F^Ukx-kVspiQSqleyzQ0)>c~7tP!hLYt(9$ zst!esR*foZw3TZ6ygxa|^>_X6tKYo7=iKYeJ9wT8AG^=a$>aL5kjFxYBP5UGgyCg> z$2m*BJW{oe^L?V@6vm6F^AD`~lN=|AavT=J>KKZd7=ptv5NBa&T#Y616zaNrn9p%s zj%OKjLjdYTJm$p=bjOD1flYB7wnA=n&LeGguAmxt9~YoUS;z6jC8$2ELN(wB7R9@` ziw@>ZcAQsuzq3EZJm4u--~!+B#+ufVsGe@Y06hrR!wVRUzo8F$q?(2m#3GbKQ5`9V zy1o+Xy5`nQjO6`JPZITTGA_dzs2-H2HTkg&24Pk7#^$JobU=+ze~iV!sOKz3-M_+? z*I-Y|8&C}{SkYV;jV`q)ohlh|+a~`4^5?RR%Z9GO%Zi%{Y z1hPz=RrdTDTmKZRP+y|5nTpKHjDI*4!>N$-Q4iRTG}gI<>UqE`W=LbOA?51mh0`z? z=b}bxJ?c5TP#yak+u;>#iWPW!4V;J>c&rNJUx>t~s^cVJ7zSc}EQp;@=lkQEI1ZyR z2Q{}5)f}e)#$aJgMP1(zHAS6K4H=AnI2zU9X{g1!%0*IyWV^lKls$3LdKWb{f1_5f zXPRkXBt}rKfbrNCS-;NPsHxg%>wiJLIH0;2u}IW5j6-$6)tE#Vv_!SIJL-kQY}tic zOmk5^U5t9bI@FM#Lal{wQ9ZqizIX@Ku&4HX1mmvf#-ZMqirnXNGDtMXO;AJL9W{hQ zQ7@c`>iIm>3%A(%eHcOcB&q>-P^zzmGTrpUL%8HHX}byS5%LtVhnCXz33~{Hub4*hB6YhCQ>m18=w|x7OH2Hun8{0 z5qJ{^Vy6bCL8noR{hW)0#yD5e2V)wVkw`{8s1j;Q8elBC&ZoY2=zd9Q{^x$ zj`66WZ-82KsMJfU_t74pojMVVG@0lkE2?A1-1GgVhDOPH$4nT)hD1Q*1$4Y z7q!ZVV+UM}8p%f(hjA^;b*)f~aXhL4Q?Zct{~{7U+=vBmA4cFwOvF2=8-iP!Z5oYX zlv7YWZ-#167W(5*)P3Vo9ovd}{&CbU_!hNz{aP{q`AJHV_+mNKgVRuRn~7R{BT$QO zvvns1Qa*rMeCIF;y<3~PuZXJekL+yc1JnrJM*8CTwlVMP+=lTFqM{!a8k%vaIh=@k z;VjgP7NSOG18OAp*!ttB4*Y=X`7L|?FI0!T+M4r$sPhr1=a)l$F{`v?{B@!=724mu zP>XCV>cJZ@AMVD&co_BI?=TpDLamV;48Xv4=K5&V_DV+GR|VDZ=JtG7Os1UWB8ebb zhT2{SP;+z>^}yoo%`QmBo|KzoJnlkG)iqR){y|;u$qFokAy^UXAzx=_99G67s9o_l zYR$N6XPOo^M78);)V9k)&DnJ87L2BR&X)hcP|Bel&77AujU-G~~2%T}*0<^z+0RjAKIZM%i2 z>psC0yo-8HcvmwL%`ip#f2yt6kGkNAHRe?_l(Qbjl~J z-rYGzxdEzv3Z~*ojKY5~n)f@AJbgm)NXi++ATgT2<-|# zjKXl#oYus$SRZTQC|keZdIU8^r_iMbULes6Z=)8|GYr5yz08Lr2!kn?LM^VUsQsRW zr*Sb(z#hHLRNTUJ%6@&!b6uo`}j>Y;a*8L2?jwhcus+Gx~>)yQJ}i;?u8Li^o?df`me z5N<>t`~kIne#U$l-rwx|SZqMKCdT0mjK*CUkC#wA_8eeFG6_8>r=do$mW!ki$q-aS zCZKxq9_q$pSRH@Gycj>wG$0v0DObf1tcAYV5%t08gKFqlR7a+w7w*Ne_$g{CUDXGf z-^T+ngNk?18!uo%ynqFyu-wPxN& zz3{ZHe}bCg62q8wH|9T$L_@ZExcP$Zv0lI+>VHQ~jpqoncuJy%ycz~#8`O*Xp+;&h zYLV?kO~IF_>o3~+N2saHKaz#4{a=Vgiy|1uVKLN=OVJkw`fWf#MeeevbVc%g9 zyn*UT4u+ssmaYr6MqvWwBvc1G;4Ojs|=087)8{Jj|3ZfQY6sjSK=#JGf7Hgp% z)F1VLA+|gcdr%&OYVb8%|0k+J&ruEcWVp3x15j(ChKnSIq#tTg&B1bb6xEQYs2Bfh zE&Z0cu{kDE{|0L4KSVw7Eb5ogGt^Y1zHR@Ah8ocE4^`i?jM!V!aB z)DK1VXf$f1=3qFkKs9hbw!>rC6vHN%FJynzcHV@A@F8j{+$WkvTNbswUA0McK}%#^ zIK5CkyN;UMf|JZInIO~^3+(yLw*G+8<(whW zgMUPg#2wVO@|bMOAsA1&JZg%%pr&Z9tv`x-@qN^Y{fi~hbBgIe9O`^oRD)}v-q#|x z%)E9Y@uXr9YKVtp2^??B@1ur#E2^h^(HD=P8uq0<{|xouJX1~23!v^Rj#}KMQA1u0 zbzLJY!26xHBJ;7-nbbxl)KOuk76XAwda4wa+GsWFG`$c8c-2yQSN}6lI5t5 zZN?ZpgqpIOw*DUKegC>_h1YEJz)+0iL=;xSCb$+Sp>9Zc$9&6EF_m&d%!@A6&`!dt zcnEVFikh0lIi?}0s19|sW!G2|y=V<;pI%1o?9L^q5<^>8I>pPxpJz**GL zUq`Kh=eC@8u^HM3RDECTP}I=BfqKp~493~0kywiwxxMHLA^CztJ-%sAJVwot*AnxG z#Db`XrC|r`hZXTCYO&^E87#Hb%zZ2Lr`!Sc!YuT|v8eaVLOpNUQpP`#R zmu;!gHkoN%fEuFZSP8eG7R_x;#o!gDz7f`;JOTCPJcTXr0s3Oim1b8pL2c7ssHy6Y zdfzY?iC#1YH8gWjBeBxfZ$b6oFltD@wCAs)UU1)@&#~vd-ZL)zYHNPvr_MjO$SkK7=LkG=|_^)X=-HGS?SIZLbK_eetM&VEv${BQ4cfjOw%Qf!@>nmU-k`<<>N<#2}eAZi32Sc`sW%5|^`^+Qk(+Ju_RZ!iVj z)|=;~qDG=Os{TD&K5x(aZZOxSp-V3wOi~qBqi(o@_0WH#`8!>ERCy_;;|*)nCR6T- zHK|{V+8wtr3d1&=U6GDj+`UmFI1IHY7j0(#HH7P_(BjFv#q5S4%u6{Ibz>RS1FNAY zzKUhB57x&;w*H#+7UrY=K1Sj*)C-G!WY$t5YAsdxi1F8lqaGFdkhH@xI0%z)1#)OBUInYr$aF_focEN(}Q><^gx-PmqMq!GqbKh#AMPO=82hmqkv6E2dJ9u= zBkKCAs3{KLXa0es4yI`TpCVBMo?|VH*l)IB4{SvFU95;VP%jESU|v)g^}wO17cRjB zJc`Bf0lMKC;yaT2gc|grDmm7oYZ*V*5rIS>B9`b*=(veb@I1QZ$*pq6kbgu3QLKSF zDiO_yj+CPaP17*+=N{VZtg_byVI9idh`i*pH2>G^$?;f}6FQ38I^_+B=Sn!{8JtO0 z5ka_feG%dr(T}p$!4vX3#0K&g2fNt$jJQFpA>uUu;asHSO=2K<3F3G1Nc>7CIGDQJ zqa8o*5bqMN6IX~FuKSVDaUG`-nx=1wuH;kfIh}7vcv8+!yiJVJ{OgE#>7xFo%9&2x zDPkk#cZko4;Y5GxHV|{j>k{XQoH1$CY`&^t)=y+^>7gtdB!?oC%aA{h#o&Kg$ z`}G&BPlORV?&1uakD&Y-F+e9ch7oTQ)d+sK>>aytS?)zP5F5P)c~0xd+)I;xF>Qa6a)f@hVYG=XqdWavjYnS0aj; zV(v$(ip|AX&YdK_S3&bXlfqPD5cxltOz6nQf;Q*Zf%6kFmH3Ui3V4nah8}x_}dHnkq;){f#tD1@iqB9 zq7b3uApS>`BtM&5!*_a-h@7asSS^qz^xTZLfPUv?=4SPWkJW5?( z;xTz!)RBU(*<58GqK^`e9fY68U!Tw}Tr?Z?+03#xTp)i${uObIT*p)57UhNLLr+GK zA1A6(Zc5Z8*D=cA9Kq7m73A8A_FQ-BuG;eui6VXliwvO6FPd^dgamND~Q^* z?jCh3$@9_R7sm{erqs2>hc7BI%I0&e>u`_B)qnnANnGN_EyQi&#c_#bG380NF3_Gh zW&IGp;M_JM4-NSMf3Vj+x9ZZyM027PF_C!Fp4+K^|JO0{rHgNnwyLw>~8tEvmJTk%qz>OZACREa%W*z+IbL~R8(TX7lxC0-#06PLLmlGsHYqg;fB zRK^#_Vv>{>1zg0ruJ||6!(O-78fsmDUvmBvVhG{-l^-363{F%hVu;PeuS7}WKh7oM zNi0Bkkzd0(7>q9;lc~E+#Ykc{`2?aEp`$R3FN95qcGUS0(c1qPNYZqLJx1exds9X7 zMno_-dl5Qvh<}N)_L`gI%ZLC%#~|w8CsvxGtxH?mwxteCa}+ zdq{aBah-f0dJy@DRg_B*-;?_i4!v80Z;>VwtH}#d_d8ystm6;zbj&2Kl2;)H5PJx{ z-}#i-qJ(1{l`*Ijo5=5DChDj~9M8?n5B-0Jb*v`#sdNyvZNo zaPv%;^F9R~0X*y?m4{5x`GmYDahO<69I*AGJmo)a`4-l+c^vhBkQX5ukpGCiumI0K zP2P$8J>pMd2$8#gI*_y>ZH&!`M#MbgGeXBqVidVI4>?MnoiMqqTXv5rOWfxBPrHH|%cXnbvsbUUS->r0{()90+0Qq+{0khxC#sB~S diff --git a/core/locale/en_US/LC_MESSAGES/django.po b/core/locale/en_US/LC_MESSAGES/django.po index 80f42663..593147bb 100644 --- a/core/locale/en_US/LC_MESSAGES/django.po +++ b/core/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -87,12 +87,12 @@ msgstr "Deactivate selected %(verbose_name_plural)s" msgid "selected items have been deactivated." msgstr "Selected items have been deactivated!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Attribute Value" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Attribute Values" @@ -100,23 +100,23 @@ msgstr "Attribute Values" msgid "image" msgstr "Image" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Images" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Stock" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Stocks" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Order Product" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Order Products" @@ -322,7 +322,7 @@ msgstr "Rewrite some fields of an existing category saving non-editables" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "SEO Meta snapshot" @@ -752,117 +752,117 @@ msgstr "add or remove feedback on an order–product relation" msgid "no search term provided." msgstr "No search term provided." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Name" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Categories" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Categories Slugs" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Tags" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Min Price" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Max Price" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Is Active" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Brand" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Attributes" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Quantity" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Slug" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "Is Digital" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Include sub-categories" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Include personal ordered products" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "There must be a category_uuid to use include_subcategories flag" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Search (ID, product name or part number)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Bought after (inclusive)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Bought before (inclusive)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "User email" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "User UUID" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Status" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "Human Readable ID" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Parent" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Whole category(has at least 1 product or not)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Level" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "Product UUID" @@ -993,8 +993,8 @@ msgstr "Orderproduct {order_product_uuid} not found!" msgid "original address string provided by the user" msgstr "Original address string provided by the user" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1009,8 +1009,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - works like a charm" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Attributes" @@ -1023,11 +1023,11 @@ msgid "groups of attributes" msgstr "Groups of attributes" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Categories" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Brands" @@ -1036,7 +1036,7 @@ msgid "category image url" msgstr "Categories" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Markup Percentage" @@ -1058,7 +1058,7 @@ msgstr "Tags for this category" msgid "products in this category" msgstr "Products in this category" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Vendors" @@ -1074,7 +1074,7 @@ msgstr "Longitude (X coordinate)" msgid "comment" msgstr "How to" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Rating value from 1 to 10, inclusive, or 0 if not set." @@ -1082,8 +1082,8 @@ msgstr "Rating value from 1 to 10, inclusive, or 0 if not set." msgid "represents feedback from a user." msgstr "Represents feedback from a user." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Notifications" @@ -1091,15 +1091,19 @@ msgstr "Notifications" msgid "download url for this order product if applicable" msgstr "Download url for this order product if applicable" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Feedback" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "A list of order products in this order" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Billing address" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1107,51 +1111,51 @@ msgstr "" "Shipping address for this order, leave blank if same as billing address or " "if not applicable" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Total price of this order" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Total quantity of products in order" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Are all of the products in the order digital" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Transactions for this order" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Orders" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "Image URL" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Product's images" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Category" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Attribute groups" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1159,7 +1163,7 @@ msgstr "Attribute groups" msgid "price" msgstr "Price" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1167,35 +1171,35 @@ msgstr "Price" msgid "quantity" msgstr "Quantity" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Number of feedbacks" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Products only available for personal orders" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Products" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Products on sale" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1203,639 +1207,775 @@ msgstr "Vendor" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Wishlisted products" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Wishlists" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Product tags" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Tagged categories" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Categories' tags" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Project name" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "Company Email" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Company Name" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Company Address" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Company Phone Number" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "'email from', sometimes it must be used instead of host user value" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "Email host user" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Maximum amount for payment" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Minimum amount for payment" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Analytics data" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Language code" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Language name" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Language flag, if exists :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Get a list of supported languages" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Products search results" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Products search results" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." + +#: core/models.py:86 msgid "parent of this group" msgstr "Parent of this group" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Parent attribute group" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Attribute group's name" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Attribute group" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stores credentials and endpoints required for vendor's API communication" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Authentication info" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "Define the markup for products retrieved from this vendor" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Vendor markup percentage" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Name of this vendor" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Vendor name" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Tag name" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "User-friendly name for the product tag" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Tag display name" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Product tag" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Represents a category tag used for products. This class models a category " +"tag that can be used to associate and classify products. It includes " +"attributes for an internal tag identifier and a user-friendly display name." + +#: core/models.py:220 msgid "category tag" msgstr "category tag" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "category tags" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Upload an image representing this category" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Category image" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "Define a markup percentage for products in this category" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Parent of this category to form a hierarchical structure" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Parent category" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Category name" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Provide a name for this category" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Add a detailed description for this category" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Category description" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "tags that help describe or group this category" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Priority" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Name of this brand" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Brand name" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Upload a logo representing this brand" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Brand small image" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Upload a big logo representing this brand" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Brand big image" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Add a detailed description of the brand" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Brand description" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Optional categories that this brand is associated with" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Categories" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 " +"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." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "The vendor supplying this product stock" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Associated vendor" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Final price to the customer after markups" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Selling price" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Associated product" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "The price paid to the vendor for this product" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Vendor purchase price" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Available quantity of the product in stock" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Quantity in stock" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "Vendor's SKU" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Digital file" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Stock entries" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Category this product belongs to" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Optionally associate this product with a brand" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Tags that help describe or group this product" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Indicates whether this product is digitally delivered" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "Is product digital" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Provide a clear identifying name for the product" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Product name" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Add a detailed description of the product" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Product description" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Part number for this product" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Part number" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Stock Keeping Unit for this product" -#: core/models.py:784 +#: core/models.py:607 +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 " +"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 " +"for dynamic and flexible data structuring." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Category of this attribute" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Group of this attribute" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "String" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Integer" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Float" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Boolean" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Array" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Object" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Type of the attribute's value" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Value type" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Name of this attribute" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Attribute's name" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "is filterable" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "designates whether this attribute can be used for filtering or not" + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribute" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Attribute of this value" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "The specific product associated with this attribute's value" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "The specific value for this attribute" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Image alt text" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Upload the image file for this product" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Product image" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Determines the order in which images are displayed" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Display priority" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "The product that this image represents" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Product images" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Percentage discount for the selected products" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Discount percentage" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Provide a unique name for this promotion" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Promotion name" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Select which products are included in this promotion" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Included products" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Promotion" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Wishlist" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Documentary" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Unresolved" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Address line for the customer" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Address line" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Street" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "District" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "City" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Region" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Postal code" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "Country" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Full JSON response from geocoder for this address" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Stored JSON response from the geocoding service" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Address" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Adresses" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "Unique code used by a user to redeem a discount" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Percentage discount" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "End validity time" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Start validity time" -#: core/models.py:1273 +#: core/models.py:1118 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "Timestamp when the promocode was used, blank if not used yet" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Usage timestamp" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Assigned user" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Promo code" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1843,144 +1983,160 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "Promocode has been used already" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Applied promo code" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Shipping address" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Order status" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 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" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "The user who placed the order" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "User" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Buy time" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "human-readable ID" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Order" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "A user must have only one pending order at a time!" -#: core/models.py:1481 +#: core/models.py:1316 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" -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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" -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "You can only buy physical products with shipping address specified!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "Address does not exist" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Invalid force value" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "You cannot buy an order without a user!" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "A user without a balance cannot buy with balance!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1988,156 +2144,152 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Invalid payment method: {payment_method} from {available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 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" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Internal comments" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "User notifications" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Parent order" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Product quantity" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Product line status" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "Orderproduct must have an associated order!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Wrong action specified for feedback: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "you cannot feedback an order which is not received" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Name" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "URL of the integration" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Authentication credentials" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "You can only have one default CRM provider" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRMs" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "Order's CRM link" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "Orders' CRM links" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Download" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Downloads" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "You can not download a digital asset for a non-finished order" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Feedback comments" -#: core/models.py:2079 +#: core/models.py:1921 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" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Related order product" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Product rating" -#: core/models.py:2096 -msgid "feedback" -msgstr "Feedback" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2148,6 +2300,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Error during promocode creation: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Home" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Contact Us" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "About Us" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Payment Information" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Delivery" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/es_ES/LC_MESSAGES/django.mo b/core/locale/es_ES/LC_MESSAGES/django.mo index bac9e23811a49c6b02e0c291ad5bea1f808e3ca6..ac70d03bb8098184471e8f20a7d2dae0b5989f63 100644 GIT binary patch delta 20168 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 delta 11651 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 vROWA!?`E4fI5R1;\n" "Language-Team: BRITISH ENGLISH \n" @@ -89,12 +89,12 @@ msgstr "Desactivar %(verbose_name_plural)s seleccionado" msgid "selected items have been deactivated." msgstr "Los artículos seleccionados se han desactivado." -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Atributo Valor" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Valores de los atributos" @@ -102,23 +102,23 @@ msgstr "Valores de los atributos" msgid "image" msgstr "Imagen" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Imágenes" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Stock" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Acciones" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Pedir un producto" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Pedir productos" @@ -331,7 +331,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "SEO Meta snapshot" @@ -788,118 +788,118 @@ msgstr "añadir o eliminar comentarios en una relación pedido-producto" msgid "no search term provided." msgstr "No se proporciona ningún término de búsqueda." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Nombre" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Categorías" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Categorías Babosas" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Etiquetas" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Precio mínimo" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Precio máximo" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Está activo" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Marca" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Atributos" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Cantidad" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Babosa" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "Es Digital" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Incluir subcategorías" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Incluir productos personales solicitados" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" "Debe haber un category_uuid para usar la bandera include_subcategories" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Búsqueda (ID, nombre del producto o número de pieza)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Comprado después (inclusive)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Comprado antes (inclusive)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "Correo electrónico del usuario" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "UUID de usuario" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Estado" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "Identificación legible" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Padres" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Toda la categoría (tenga o no al menos 1 producto)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Nivel" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "UUID del producto" @@ -1031,8 +1031,8 @@ 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" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1047,8 +1047,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funciona a las mil maravillas" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Atributos" @@ -1061,11 +1061,11 @@ msgid "groups of attributes" msgstr "Grupos de atributos" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Categorías" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Marcas" @@ -1074,7 +1074,7 @@ msgid "category image url" msgstr "Categorías" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Porcentaje de recargo" @@ -1098,7 +1098,7 @@ msgstr "Etiquetas para esta categoría" msgid "products in this category" msgstr "Productos de esta categoría" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Vendedores" @@ -1114,7 +1114,7 @@ msgstr "Longitud (coordenada X)" msgid "comment" msgstr "Cómo" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 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á " @@ -1124,8 +1124,8 @@ msgstr "" msgid "represents feedback from a user." msgstr "Representa la opinión de un usuario." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Notificaciones" @@ -1133,15 +1133,19 @@ msgstr "Notificaciones" msgid "download url for this order product if applicable" msgstr "Descargar url para este producto de pedido si procede" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Comentarios" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "Una lista de los productos del pedido" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Dirección de facturación" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1149,51 +1153,51 @@ msgstr "" "Dirección de envío para este pedido, dejar en blanco si es la misma que la " "de facturación o si no procede" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Precio total de este pedido" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Cantidad total de productos del pedido" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "¿Están todos los productos en el pedido digital" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Transacciones para este pedido" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Pedidos" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "URL de la imagen" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Imágenes del producto" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Categoría" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Comentarios" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Marca" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Grupos de atributos" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1201,7 +1205,7 @@ msgstr "Grupos de atributos" msgid "price" msgstr "Precio" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1209,35 +1213,35 @@ msgstr "Precio" msgid "quantity" msgstr "Cantidad" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Número de reacciones" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Productos sólo disponibles para pedidos personales" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Productos" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Códigos promocionales" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Productos a la venta" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Promociones" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Vendedor" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1245,645 +1249,790 @@ msgstr "Vendedor" msgid "product" msgstr "Producto" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Productos deseados" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Listas de deseos" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Productos con etiqueta" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Etiquetas del producto" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Categorías" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Etiquetas de las categorías" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Nombre del proyecto" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "Correo electrónico de la empresa" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Nombre de la empresa" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Dirección de la empresa" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Teléfono de la empresa" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', a veces debe utilizarse en lugar del valor del usuario host" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "Correo electrónico del usuario anfitrión" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Importe máximo de pago" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Importe mínimo de pago" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Datos analíticos" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Datos publicitarios" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Configuración" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Código de idioma" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Nombre de la lengua" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Bandera de idioma, si existe :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Obtener una lista de los idiomas admitidos" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Resultados de la búsqueda de productos" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Resultados de la búsqueda de productos" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +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." + +#: core/models.py:86 msgid "parent of this group" msgstr "Padre de este grupo" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Grupo de atributos padre" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Nombre del grupo de atributos" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Grupo de atributos" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +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 " +"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 " +"que interactúan con proveedores externos." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Almacena las credenciales y los puntos finales necesarios para la " "comunicación API del proveedor" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Información de autenticación" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definir el margen de beneficio para los productos recuperados de este " "proveedor" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Porcentaje de margen del vendedor" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Nombre de este vendedor" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Nombre del vendedor" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Representa una etiqueta de producto utilizada para clasificar o identificar " +"productos. La clase ProductTag está diseñada para identificar y clasificar " +"productos de forma única mediante una combinación de un identificador de " +"etiqueta interno y un nombre de visualización fácil de usar. Admite " +"operaciones exportadas a través de mixins y proporciona personalización de " +"metadatos con fines administrativos." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Identificador interno de la etiqueta del producto" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Nombre de la etiqueta" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "Nombre fácil de usar para la etiqueta del producto" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Nombre de la etiqueta" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Etiqueta del producto" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Representa una etiqueta de categoría utilizada para los productos. Esta " +"clase modela una etiqueta de categoría que puede utilizarse para asociar y " +"clasificar productos. Incluye atributos para un identificador de etiqueta " +"interno y un nombre de visualización fácil de usar." + +#: core/models.py:220 msgid "category tag" msgstr "etiqueta de categoría" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "etiquetas de categoría" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Representa una entidad de categoría para organizar y agrupar elementos " +"relacionados en una estructura jerárquica. Las categorías pueden tener " +"relaciones jerárquicas con otras categorías, admitiendo relaciones padre-" +"hijo. La clase incluye campos para metadatos y representación visual, que " +"sirven de base para las funciones relacionadas con las categorías. Esta " +"clase se utiliza normalmente para definir y gestionar categorías de " +"productos u otras agrupaciones similares dentro de una aplicación, " +"permitiendo a los usuarios o administradores especificar el nombre, la " +"descripción y la jerarquía de las categorías, así como asignar atributos " +"como imágenes, etiquetas o prioridad." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Cargar una imagen que represente esta categoría" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Categoría imagen" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "Definir un porcentaje de recargo para los productos de esta categoría" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Padre de esta categoría para formar una estructura jerárquica" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Categoría de padres" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Nombre de la categoría" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Indique un nombre para esta categoría" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Añadir una descripción detallada para esta categoría" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Descripción de la categoría" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "etiquetas que ayudan a describir o agrupar esta categoría" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Prioridad" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Nombre de esta marca" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Marca" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Cargar un logotipo que represente a esta marca" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Marca pequeña imagen" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Sube un logotipo grande que represente a esta marca" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Gran imagen de marca" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Añadir una descripción detallada de la marca" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Descripción de la marca" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Categorías opcionales a las que se asocia esta marca" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Categorías" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" +"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 " +"seguimiento y la evaluación de los productos disponibles de varios " +"vendedores." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "El vendedor que suministra este producto dispone de" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Proveedor asociado" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Precio final al cliente después de márgenes" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Precio de venta" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "El producto asociado a esta entrada en stock" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Producto asociado" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "El precio pagado al vendedor por este producto" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Precio de compra al vendedor" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Cantidad disponible del producto en stock" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Cantidad en stock" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU asignada por el proveedor para identificar el producto" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "SKU del vendedor" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "Archivo digital asociado a esta acción, si procede" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Archivo digital" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Entradas en existencias" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +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." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Categoría a la que pertenece este producto" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Si lo desea, puede asociar este producto a una marca" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Etiquetas que ayudan a describir o agrupar este producto" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Indica si este producto se entrega digitalmente" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "¿Es digital el producto?" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Proporcionar un nombre que identifique claramente el producto" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Nombre del producto" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Añada una descripción detallada del producto" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Descripción del producto" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Número de pieza de este producto" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Número de pieza" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Unidad de Mantenimiento de Existencias para este producto" -#: core/models.py:784 +#: core/models.py:607 +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 " +"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, " +"enteros, flotantes, booleanos, matrices y objetos. Esto permite una " +"estructuración dinámica y flexible de los datos." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Categoría de este atributo" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Grupo de este atributo" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "Cadena" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Entero" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Flotador" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Booleano" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Matriz" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Objeto" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Tipo del valor del atributo" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Tipo de valor" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Nombre de este atributo" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Nombre del atributo" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "es filtrable" + +#: core/models.py:654 +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." + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atributo" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Atributo de este valor" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "El producto específico asociado al valor de este atributo" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "El valor específico de este atributo" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "" "Proporcione un texto alternativo para la imagen en aras de la accesibilidad" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Texto alternativo de la imagen" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Cargar el archivo de imagen para este producto" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Imagen del producto" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Determina el orden de visualización de las imágenes" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Prioridad de visualización" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "El producto que representa esta imagen" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Imágenes de productos" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Porcentaje de descuento para los productos seleccionados" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Porcentaje de descuento" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Proporcione un nombre único para esta promoción" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Nombre de la promoción" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Descripción de la promoción" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Seleccione los productos incluidos en esta promoción" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Productos incluidos" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Promoción" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Productos que el usuario ha marcado como deseados" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "Usuario propietario de esta lista de deseos" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Propietario de Wishlist" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Lista de deseos" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Documental" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Sin resolver" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Dirección del cliente" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Dirección" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Calle" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "Distrito" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "Ciudad" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Región" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Promo code" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "País" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocalización Punto(Longitud, Latitud)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Respuesta JSON completa del geocodificador para esta dirección" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Respuesta JSON almacenada del servicio de geocodificación" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Dirección" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Direcciones" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "Código único utilizado por un usuario para canjear un descuento" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "Se aplica un descuento fijo si no se utiliza el porcentaje" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Importe fijo del descuento" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "Porcentaje de descuento aplicado si no se utiliza el importe fijo" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Porcentaje de descuento" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Fecha de caducidad del promocode" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "Hora de fin de validez" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Fecha a partir de la cual es válido este promocode" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Hora de inicio de validez" -#: core/models.py:1273 +#: core/models.py:1118 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" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Marca de tiempo de uso" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "Usuario asignado a este promocode si procede" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Usuario asignado" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Promo code" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1891,146 +2040,163 @@ msgstr "" "Sólo debe definirse un tipo de descuento (importe o porcentaje), pero no " "ambos ni ninguno." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "El código promocional ya ha sido utilizado" -#: core/models.py:1326 +#: core/models.py:1171 #, 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}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"Representa un pedido realizado por un usuario. Esta clase modela un pedido " +"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." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "La dirección de facturación utilizada para este pedido" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Código promocional aplicado" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "La dirección de envío utilizada para este pedido" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Dirección de envío" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Estado actual del pedido en su ciclo de vida" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Estado del pedido" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 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." -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "Representación JSON de los atributos de la orden para esta orden" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "El usuario que realizó el pedido" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "Usuario" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "Fecha de finalización de la orden" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Comprar tiempo" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "Un identificador legible por el ser humano para la orden" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "ID legible por humanos" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Pida" -#: core/models.py:1447 +#: core/models.py:1282 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." -#: core/models.py:1481 +#: core/models.py:1316 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" -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "No se pueden añadir productos inactivos al pedido" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "No puede añadir más productos de los disponibles en stock" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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" -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} ¡no existe con la consulta <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Promocode no existe" -#: core/models.py:1584 +#: core/models.py:1419 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." -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "La dirección no existe" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Valor de fuerza no válido" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "No se puede comprar un pedido vacío." -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "No se puede comprar un pedido sin un usuario." -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "¡Un usuario sin saldo no puede comprar con saldo!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Fondos insuficientes para completar el pedido" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2038,159 +2204,155 @@ 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" -#: core/models.py:1714 +#: core/models.py:1549 #, 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}!" -#: core/models.py:1839 +#: core/models.py:1674 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" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Precio de compra en el momento del pedido" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarios internos para los administradores sobre este producto solicitado" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Comentarios internos" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "Notificaciones a los usuarios" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "Representación JSON de los atributos de este elemento" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Atributos ordenados del producto" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Referencia al pedido principal que contiene este producto" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Orden de los padres" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "El producto específico asociado a esta línea de pedido" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Cantidad de este producto específico en el pedido" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Cantidad de productos" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Estado actual de este producto en el pedido" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Estado de la línea de productos" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "El pedido-producto debe tener un pedido asociado." -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Acción incorrecta especificada para la retroalimentación: ¡{action}!" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "no se puede comentar un pedido no recibido" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Nombre" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "URL de la integración" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Credenciales de autenticación" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "Sólo puede tener un proveedor de CRM por defecto" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRMs" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "Enlace CRM del pedido" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "Enlaces CRM de los pedidos" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Descargar" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Descargas" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "No puede descargar un activo digital para un pedido no finalizado" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "Comentarios de los usuarios sobre su experiencia con el producto" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Comentarios" -#: core/models.py:2079 +#: core/models.py:1921 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" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Producto relacionado con el pedido" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "Valoración del producto asignada por el usuario" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Valoración del producto" -#: core/models.py:2096 -msgid "feedback" -msgstr "Comentarios" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2202,6 +2364,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Error durante la creación del promocode: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Inicio" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Contacte con nosotros" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Quiénes somos" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Información de pago" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Entrega" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/fa_IR/LC_MESSAGES/django.mo b/core/locale/fa_IR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c5906d1cd061dff54de8b533942893de34efc9e GIT binary patch literal 337 zcmYL@Jx{|h5Qd9j%E-dP;DHUUz!pqFHI3Uw*h!U-O0b#M1fyU_j*H-j@b~yFTo(FD zk8Zg4bkFbc(a#8TfSe*{$RTop42h8wT;AXuI{#UD_pUbq(k-mD?~SvRtk~?4EjU^8 zqD=EFDs<<30NFQY3lF=dhsseBt#T;zrx|V_Q9)Dk#909{hlG)3PGx%joM$`|st-_k zW&2hI=P8-jLXeC}P9|KkR7_ct6ud0&v1*&0YBW?@eNZA;wx|b_i4fD)jGb@x9W;=s z, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: core/abstract.py:11 +msgid "unique id" +msgstr "" + +#: core/abstract.py:12 +msgid "unique id is used to surely identify any database object" +msgstr "" + +#: core/abstract.py:19 +msgid "is active" +msgstr "" + +#: core/abstract.py:20 +msgid "" +"if set to false, this object can't be seen by users without needed permission" +msgstr "" + +#: core/abstract.py:22 core/choices.py:18 +msgid "created" +msgstr "" + +#: core/abstract.py:22 +msgid "when the object first appeared on the database" +msgstr "" + +#: core/abstract.py:23 +msgid "modified" +msgstr "" + +#: core/abstract.py:23 +msgid "when the object was last modified" +msgstr "" + +#: core/admin.py:63 +msgid "translations" +msgstr "" + +#: core/admin.py:67 +msgid "general" +msgstr "" + +#: core/admin.py:69 +msgid "relations" +msgstr "" + +#: core/admin.py:87 +msgid "metadata" +msgstr "" + +#: core/admin.py:94 +msgid "timestamps" +msgstr "" + +#: core/admin.py:109 +#, python-format +msgid "activate selected %(verbose_name_plural)s" +msgstr "" + +#: core/admin.py:114 +msgid "selected items have been activated." +msgstr "" + +#: core/admin.py:120 +#, python-format +msgid "deactivate selected %(verbose_name_plural)s" +msgstr "" + +#: core/admin.py:125 +msgid "selected items have been deactivated." +msgstr "" + +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 +msgid "attribute value" +msgstr "" + +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 +msgid "attribute values" +msgstr "" + +#: core/admin.py:146 +msgid "image" +msgstr "" + +#: core/admin.py:147 core/graphene/object_types.py:501 +msgid "images" +msgstr "" + +#: core/admin.py:155 core/models.py:457 +msgid "stock" +msgstr "" + +#: core/admin.py:156 core/graphene/object_types.py:663 +msgid "stocks" +msgstr "" + +#: core/admin.py:166 core/models.py:1735 +msgid "order product" +msgstr "" + +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 +msgid "order products" +msgstr "" + +#: core/admin.py:180 core/admin.py:181 +msgid "children" +msgstr "" + +#: core/admin.py:566 +msgid "Config" +msgstr "" + +#: core/apps.py:8 +msgid "core" +msgstr "" + +#: core/choices.py:4 core/choices.py:20 +msgid "finished" +msgstr "" + +#: core/choices.py:5 core/choices.py:19 +msgid "delivering" +msgstr "" + +#: core/choices.py:6 +msgid "delivered" +msgstr "" + +#: core/choices.py:7 +msgid "canceled" +msgstr "" + +#: core/choices.py:8 core/choices.py:16 core/choices.py:24 +msgid "failed" +msgstr "" + +#: core/choices.py:9 core/choices.py:15 +msgid "pending" +msgstr "" + +#: core/choices.py:10 +msgid "accepted" +msgstr "" + +#: core/choices.py:11 +msgid "money returned" +msgstr "" + +#: core/choices.py:17 +msgid "payment" +msgstr "" + +#: core/choices.py:21 +msgid "momental" +msgstr "" + +#: core/choices.py:24 +msgid "successful" +msgstr "" + +#: core/docs/drf/views.py:17 core/graphene/mutations.py:36 +msgid "cache I/O" +msgstr "" + +#: core/docs/drf/views.py:19 +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 "" + +#: core/docs/drf/views.py:32 +msgid "get a list of supported languages" +msgstr "" + +#: core/docs/drf/views.py:41 +msgid "get application's exposable parameters" +msgstr "" + +#: core/docs/drf/views.py:48 +msgid "send a message to the support team" +msgstr "" + +#: core/docs/drf/views.py:59 core/graphene/mutations.py:55 +msgid "request a CORSed URL" +msgstr "" + +#: core/docs/drf/views.py:85 +msgid "global search endpoint to query across project's tables" +msgstr "" + +#: core/docs/drf/views.py:91 +msgid "purchase an order as a business" +msgstr "" + +#: core/docs/drf/views.py:98 +msgid "" +"purchase an order as a business, using the provided `products` with " +"`product_uuid` and `attributes`." +msgstr "" + +#: core/docs/drf/viewsets.py:44 +msgid "list all attribute groups (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:48 +msgid "retrieve a single attribute group (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:52 +msgid "create an attribute group" +msgstr "" + +#: core/docs/drf/viewsets.py:56 +msgid "delete an attribute group" +msgstr "" + +#: core/docs/drf/viewsets.py:60 +msgid "rewrite an existing attribute group saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:64 +msgid "rewrite some fields of an existing attribute group saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:71 +msgid "list all attributes (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:75 +msgid "retrieve a single attribute (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:79 +msgid "create an attribute" +msgstr "" + +#: core/docs/drf/viewsets.py:83 +msgid "delete an attribute" +msgstr "" + +#: core/docs/drf/viewsets.py:87 +msgid "rewrite an existing attribute saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:91 +msgid "rewrite some fields of an existing attribute saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:98 +msgid "list all attribute values (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:102 +msgid "retrieve a single attribute value (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:106 +msgid "create an attribute value" +msgstr "" + +#: core/docs/drf/viewsets.py:110 +msgid "delete an attribute value" +msgstr "" + +#: core/docs/drf/viewsets.py:114 +msgid "rewrite an existing attribute value saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:118 +msgid "rewrite some fields of an existing attribute value saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:125 core/docs/drf/viewsets.py:126 +msgid "list all categories (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:130 core/docs/drf/viewsets.py:131 +msgid "retrieve a single category (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:135 core/docs/drf/viewsets.py:136 +msgid "create a category" +msgstr "" + +#: core/docs/drf/viewsets.py:140 core/docs/drf/viewsets.py:141 +msgid "delete a category" +msgstr "" + +#: core/docs/drf/viewsets.py:145 core/docs/drf/viewsets.py:146 +msgid "rewrite an existing category saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:150 core/docs/drf/viewsets.py:151 +msgid "rewrite some fields of an existing category saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 +#: core/graphene/object_types.py:117 core/graphene/object_types.py:207 +#: core/graphene/object_types.py:509 +msgid "SEO Meta snapshot" +msgstr "" + +#: core/docs/drf/viewsets.py:156 +msgid "returns a snapshot of the category's SEO meta data" +msgstr "" + +#: core/docs/drf/viewsets.py:161 +msgid "Category UUID or slug" +msgstr "" + +#: core/docs/drf/viewsets.py:174 +msgid "list all orders (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:175 +msgid "for non-staff users, only their own orders are returned." +msgstr "" + +#: core/docs/drf/viewsets.py:181 +msgid "" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" +msgstr "" + +#: core/docs/drf/viewsets.py:188 +msgid "Filter orders with buy_time >= this ISO 8601 datetime" +msgstr "" + +#: core/docs/drf/viewsets.py:193 +msgid "Filter orders with buy_time <= this ISO 8601 datetime" +msgstr "" + +#: core/docs/drf/viewsets.py:198 +msgid "Filter by exact order UUID" +msgstr "" + +#: core/docs/drf/viewsets.py:203 +msgid "Filter by exact human-readable order ID" +msgstr "" + +#: core/docs/drf/viewsets.py:208 +msgid "Filter by user's email (case-insensitive exact match)" +msgstr "" + +#: core/docs/drf/viewsets.py:213 +msgid "Filter by user's UUID" +msgstr "" + +#: core/docs/drf/viewsets.py:218 +msgid "Filter by order status (case-insensitive substring match)" +msgstr "" + +#: core/docs/drf/viewsets.py:224 +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')." +msgstr "" + +#: core/docs/drf/viewsets.py:233 +msgid "retrieve a single order (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:237 +msgid "create an order" +msgstr "" + +#: core/docs/drf/viewsets.py:238 +msgid "doesn't work for non-staff users." +msgstr "" + +#: core/docs/drf/viewsets.py:242 +msgid "delete an order" +msgstr "" + +#: core/docs/drf/viewsets.py:246 +msgid "rewrite an existing order saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:250 +msgid "rewrite some fields of an existing order saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:254 +msgid "purchase an order" +msgstr "" + +#: core/docs/drf/viewsets.py:256 +msgid "" +"finalizes the order purchase. if `force_balance` is used, the purchase is " +"completed using the user's balance; if `force_payment` is used, a " +"transaction is initiated." +msgstr "" + +#: core/docs/drf/viewsets.py:268 core/graphene/mutations.py:324 +msgid "purchase an order without account creation" +msgstr "" + +#: core/docs/drf/viewsets.py:269 +msgid "finalizes the order purchase for a non-registered user." +msgstr "" + +#: core/docs/drf/viewsets.py:277 +msgid "add product to order" +msgstr "" + +#: core/docs/drf/viewsets.py:278 +msgid "" +"adds a product to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" + +#: core/docs/drf/viewsets.py:283 +msgid "add a list of products to order, quantities will not count" +msgstr "" + +#: core/docs/drf/viewsets.py:284 +msgid "" +"adds a list of products to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" + +#: core/docs/drf/viewsets.py:289 +msgid "remove product from order" +msgstr "" + +#: core/docs/drf/viewsets.py:290 +msgid "" +"removes a product from an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" + +#: core/docs/drf/viewsets.py:295 +msgid "remove product from order, quantities will not count" +msgstr "" + +#: core/docs/drf/viewsets.py:296 +msgid "" +"removes a list of products from an order using the provided `product_uuid` " +"and `attributes`" +msgstr "" + +#: core/docs/drf/viewsets.py:304 +msgid "list all wishlists (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:305 +msgid "for non-staff users, only their own wishlists are returned." +msgstr "" + +#: core/docs/drf/viewsets.py:309 +msgid "retrieve a single wishlist (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:313 +msgid "create an wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:314 +msgid "Doesn't work for non-staff users." +msgstr "" + +#: core/docs/drf/viewsets.py:318 +msgid "delete an wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:322 +msgid "rewrite an existing wishlist saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:326 +msgid "rewrite some fields of an existing wishlist saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:330 +msgid "add product to wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:331 +msgid "adds a product to an wishlist using the provided `product_uuid`" +msgstr "" + +#: core/docs/drf/viewsets.py:336 +msgid "remove product from wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:337 +msgid "removes a product from an wishlist using the provided `product_uuid`" +msgstr "" + +#: core/docs/drf/viewsets.py:342 +msgid "add many products to wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:343 +msgid "adds many products to an wishlist using the provided `product_uuids`" +msgstr "" + +#: core/docs/drf/viewsets.py:348 +msgid "remove many products from wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:349 +msgid "" +"removes many products from an wishlist using the provided `product_uuids`" +msgstr "" + +#: core/docs/drf/viewsets.py:356 +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" +"• **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" +"`b64-description=icontains-aGVhdC1jb2xk`" +msgstr "" + +#: core/docs/drf/viewsets.py:372 core/docs/drf/viewsets.py:373 +msgid "list all products (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:378 +msgid "(exact) Product UUID" +msgstr "" + +#: core/docs/drf/viewsets.py:384 +msgid "(icontains) Product name" +msgstr "" + +#: core/docs/drf/viewsets.py:390 +msgid "(list) Category names, case-insensitive" +msgstr "" + +#: core/docs/drf/viewsets.py:396 +msgid "(exact) Category UUID" +msgstr "" + +#: core/docs/drf/viewsets.py:402 +msgid "(list) Tag names, case-insensitive" +msgstr "" + +#: core/docs/drf/viewsets.py:408 +msgid "(gte) Minimum stock price" +msgstr "" + +#: core/docs/drf/viewsets.py:414 +msgid "(lte) Maximum stock price" +msgstr "" + +#: core/docs/drf/viewsets.py:420 +msgid "(exact) Only active products" +msgstr "" + +#: core/docs/drf/viewsets.py:426 +msgid "(iexact) Brand name" +msgstr "" + +#: core/docs/drf/viewsets.py:438 +msgid "(gt) Minimum stock quantity" +msgstr "" + +#: core/docs/drf/viewsets.py:444 +msgid "(exact) Digital vs. physical" +msgstr "" + +#: core/docs/drf/viewsets.py:451 +msgid "" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" +"**Allowed:** uuid, rating, name, slug, created, modified, price, random" +msgstr "" + +#: core/docs/drf/viewsets.py:465 core/docs/drf/viewsets.py:466 +msgid "retrieve a single product (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:471 core/docs/drf/viewsets.py:495 +#: core/docs/drf/viewsets.py:511 core/docs/drf/viewsets.py:527 +#: core/docs/drf/viewsets.py:543 core/docs/drf/viewsets.py:559 +msgid "Product UUID or slug" +msgstr "" + +#: core/docs/drf/viewsets.py:481 core/docs/drf/viewsets.py:482 +msgid "create a product" +msgstr "" + +#: core/docs/drf/viewsets.py:489 core/docs/drf/viewsets.py:490 +msgid "rewrite an existing product, preserving non-editable fields" +msgstr "" + +#: core/docs/drf/viewsets.py:505 core/docs/drf/viewsets.py:506 +msgid "" +"update some fields of an existing product, preserving non-editable fields" +msgstr "" + +#: core/docs/drf/viewsets.py:521 core/docs/drf/viewsets.py:522 +msgid "delete a product" +msgstr "" + +#: core/docs/drf/viewsets.py:537 core/docs/drf/viewsets.py:538 +msgid "lists all permitted feedbacks for a product" +msgstr "" + +#: core/docs/drf/viewsets.py:554 +msgid "returns a snapshot of the product's SEO meta data" +msgstr "" + +#: core/docs/drf/viewsets.py:572 +msgid "list all addresses" +msgstr "" + +#: core/docs/drf/viewsets.py:579 +msgid "retrieve a single address" +msgstr "" + +#: core/docs/drf/viewsets.py:586 +msgid "create a new address" +msgstr "" + +#: core/docs/drf/viewsets.py:594 +msgid "delete an address" +msgstr "" + +#: core/docs/drf/viewsets.py:601 +msgid "update an entire address" +msgstr "" + +#: core/docs/drf/viewsets.py:609 +msgid "partially update an address" +msgstr "" + +#: core/docs/drf/viewsets.py:617 +msgid "autocomplete address suggestions" +msgstr "" + +#: core/docs/drf/viewsets.py:622 +msgid "raw data query string, please append with data from geo-IP endpoint" +msgstr "" + +#: core/docs/drf/viewsets.py:628 +msgid "limit the results amount, 1 < limit < 10, default: 5" +msgstr "" + +#: core/docs/drf/viewsets.py:641 +msgid "list all feedbacks (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:645 +msgid "retrieve a single feedback (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:649 +msgid "create a feedback" +msgstr "" + +#: core/docs/drf/viewsets.py:653 +msgid "delete a feedback" +msgstr "" + +#: core/docs/drf/viewsets.py:657 +msgid "rewrite an existing feedback saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:661 +msgid "rewrite some fields of an existing feedback saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:668 +msgid "list all order–product relations (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:675 +msgid "retrieve a single order–product relation (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:682 +msgid "create a new order–product relation" +msgstr "" + +#: core/docs/drf/viewsets.py:689 +msgid "replace an existing order–product relation" +msgstr "" + +#: core/docs/drf/viewsets.py:696 +msgid "partially update an existing order–product relation" +msgstr "" + +#: core/docs/drf/viewsets.py:703 +msgid "delete an order–product relation" +msgstr "" + +#: core/docs/drf/viewsets.py:710 +msgid "add or remove feedback on an order–product relation" +msgstr "" + +#: core/elasticsearch/__init__.py:105 +msgid "no search term provided." +msgstr "" + +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 +msgid "UUID" +msgstr "" + +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 +msgid "Name" +msgstr "" + +#: core/filters.py:66 core/filters.py:562 +msgid "Categories" +msgstr "" + +#: core/filters.py:68 +msgid "Categories Slugs" +msgstr "" + +#: core/filters.py:69 core/filters.py:437 +msgid "Tags" +msgstr "" + +#: core/filters.py:70 +msgid "Min Price" +msgstr "" + +#: core/filters.py:71 +msgid "Max Price" +msgstr "" + +#: core/filters.py:72 +msgid "Is Active" +msgstr "" + +#: core/filters.py:73 +msgid "Brand" +msgstr "" + +#: core/filters.py:74 +msgid "Attributes" +msgstr "" + +#: core/filters.py:75 +msgid "Quantity" +msgstr "" + +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 +msgid "Slug" +msgstr "" + +#: core/filters.py:77 +msgid "Is Digital" +msgstr "" + +#: core/filters.py:78 +msgid "Include sub-categories" +msgstr "" + +#: core/filters.py:81 +msgid "Include personal ordered" +msgstr "" + +#: core/filters.py:83 core/models.py:538 +msgid "SKU" +msgstr "" + +#: core/filters.py:166 +msgid "there must be a category_uuid to use include_subcategories flag" +msgstr "" + +#: core/filters.py:356 +msgid "Search (ID, product name or part number)" +msgstr "" + +#: core/filters.py:359 +msgid "Bought after (inclusive)" +msgstr "" + +#: core/filters.py:360 +msgid "Bought before (inclusive)" +msgstr "" + +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 +msgid "User email" +msgstr "" + +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 +msgid "User UUID" +msgstr "" + +#: core/filters.py:365 +msgid "Status" +msgstr "" + +#: core/filters.py:369 +msgid "Human Readable ID" +msgstr "" + +#: core/filters.py:430 +msgid "Parent" +msgstr "" + +#: core/filters.py:434 +msgid "Whole category(has at least 1 product or not)" +msgstr "" + +#: core/filters.py:438 +msgid "Level" +msgstr "" + +#: core/filters.py:598 +msgid "Product UUID" +msgstr "" + +#: core/graphene/mutations.py:39 +msgid "key to look for in or set into the cache" +msgstr "" + +#: core/graphene/mutations.py:40 +msgid "data to store in cache" +msgstr "" + +#: core/graphene/mutations.py:43 +msgid "timeout in seconds to set the data for into the cache" +msgstr "" + +#: core/graphene/mutations.py:46 +msgid "cached data" +msgstr "" + +#: core/graphene/mutations.py:60 +msgid "camelized JSON data from the requested URL" +msgstr "" + +#: core/graphene/mutations.py:65 core/views.py:360 +msgid "only URLs starting with http(s):// are allowed" +msgstr "" + +#: core/graphene/mutations.py:80 +msgid "add a product to the order" +msgstr "" + +#: core/graphene/mutations.py:101 core/graphene/mutations.py:127 +#: core/graphene/mutations.py:232 core/graphene/mutations.py:279 +#, python-brace-format +msgid "order {order_uuid} not found" +msgstr "" + +#: core/graphene/mutations.py:106 core/graphene/mutations.py:153 +msgid "remove a product from the order" +msgstr "" + +#: core/graphene/mutations.py:132 +msgid "remove all products from the order" +msgstr "" + +#: core/graphene/mutations.py:175 +msgid "buy an order" +msgstr "" + +#: core/graphene/mutations.py:204 core/graphene/mutations.py:257 +msgid "please provide either order_uuid or order_hr_id - mutually exclusive" +msgstr "" + +#: core/graphene/mutations.py:229 core/graphene/mutations.py:486 +#: core/graphene/mutations.py:527 core/viewsets.py:821 +msgid "wrong type came from order.buy() method: {type(instance)!s}" +msgstr "" + +#: core/graphene/mutations.py:237 +msgid "perform an action on a list of products in the order" +msgstr "" + +#: core/graphene/mutations.py:242 +msgid "remove/add" +msgstr "" + +#: core/graphene/mutations.py:274 core/graphene/mutations.py:314 +msgid "action must be either add or remove" +msgstr "" + +#: core/graphene/mutations.py:284 +msgid "perform an action on a list of products in the wishlist" +msgstr "" + +#: core/graphene/mutations.py:302 +msgid "please provide wishlist_uuid value" +msgstr "" + +#: core/graphene/mutations.py:319 core/graphene/mutations.py:392 +#: core/graphene/mutations.py:419 core/graphene/mutations.py:446 +#: core/graphene/mutations.py:489 +#, python-brace-format +msgid "wishlist {wishlist_uuid} not found" +msgstr "" + +#: core/graphene/mutations.py:370 +msgid "add a product to the wishlist" +msgstr "" + +#: core/graphene/mutations.py:397 +msgid "remove a product from the wishlist" +msgstr "" + +#: core/graphene/mutations.py:424 +msgid "remove all products from the wishlist" +msgstr "" + +#: core/graphene/mutations.py:451 +msgid "buy all products from the wishlist" +msgstr "" + +#: core/graphene/mutations.py:494 +msgid "buy a product" +msgstr "" + +#: core/graphene/mutations.py:500 +msgid "" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" +msgstr "" + +#: core/graphene/mutations.py:532 +msgid "add or delete a feedback for orderproduct" +msgstr "" + +#: core/graphene/mutations.py:555 +msgid "action must be either `add` or `remove`" +msgstr "" + +#: core/graphene/mutations.py:558 +#, python-brace-format +msgid "order product {order_product_uuid} not found" +msgstr "" + +#: core/graphene/mutations.py:621 +msgid "original address string provided by the user" +msgstr "" + +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 +#: core/viewsets.py:824 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "" + +#: core/graphene/mutations.py:668 +msgid "limit must be between 1 and 10" +msgstr "" + +#: core/graphene/mutations.py:713 +msgid "elasticsearch - works like a charm" +msgstr "" + +#: core/graphene/object_types.py:82 core/graphene/object_types.py:397 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 +msgid "attributes" +msgstr "" + +#: core/graphene/object_types.py:95 +msgid "grouped attributes" +msgstr "" + +#: core/graphene/object_types.py:102 +msgid "groups of attributes" +msgstr "" + +#: core/graphene/object_types.py:116 core/graphene/object_types.py:193 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 +msgid "categories" +msgstr "" + +#: core/graphene/object_types.py:124 core/models.py:395 +msgid "brands" +msgstr "" + +#: core/graphene/object_types.py:195 +msgid "category image url" +msgstr "" + +#: core/graphene/object_types.py:196 core/graphene/object_types.py:344 +#: core/models.py:249 +msgid "markup percentage" +msgstr "" + +#: core/graphene/object_types.py:199 +msgid "which attributes and values can be used for filtering this category." +msgstr "" + +#: core/graphene/object_types.py:203 +msgid "minimum and maximum prices for products in this category, if available." +msgstr "" + +#: core/graphene/object_types.py:205 +msgid "tags for this category" +msgstr "" + +#: core/graphene/object_types.py:206 +msgid "products in this category" +msgstr "" + +#: core/graphene/object_types.py:351 core/models.py:155 +msgid "vendors" +msgstr "" + +#: core/graphene/object_types.py:355 +msgid "Latitude (Y coordinate)" +msgstr "" + +#: core/graphene/object_types.py:356 +msgid "Longitude (X coordinate)" +msgstr "" + +#: core/graphene/object_types.py:385 +msgid "comment" +msgstr "" + +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 +msgid "rating value from 1 to 10, inclusive, or 0 if not set." +msgstr "" + +#: core/graphene/object_types.py:393 +msgid "represents feedback from a user." +msgstr "" + +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 +msgid "notifications" +msgstr "" + +#: core/graphene/object_types.py:399 +msgid "download url for this order product if applicable" +msgstr "" + +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "" + +#: core/graphene/object_types.py:434 +msgid "a list of order products in this order" +msgstr "" + +#: core/graphene/object_types.py:436 core/models.py:1198 +msgid "billing address" +msgstr "" + +#: core/graphene/object_types.py:439 +msgid "" +"shipping address for this order, leave blank if same as billing address or " +"if not applicable" +msgstr "" + +#: core/graphene/object_types.py:441 +msgid "total price of this order" +msgstr "" + +#: core/graphene/object_types.py:442 +msgid "total quantity of products in order" +msgstr "" + +#: core/graphene/object_types.py:443 +msgid "are all products in the order digital" +msgstr "" + +#: core/graphene/object_types.py:446 +msgid "transactions for this order" +msgstr "" + +#: core/graphene/object_types.py:465 core/models.py:1262 +msgid "orders" +msgstr "" + +#: core/graphene/object_types.py:486 +msgid "image url" +msgstr "" + +#: core/graphene/object_types.py:493 +msgid "product's images" +msgstr "" + +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 +msgid "category" +msgstr "" + +#: core/graphene/object_types.py:502 core/models.py:1939 +msgid "feedbacks" +msgstr "" + +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 +msgid "brand" +msgstr "" + +#: core/graphene/object_types.py:504 core/models.py:101 +msgid "attribute groups" +msgstr "" + +#: core/graphene/object_types.py:505 +#: core/templates/digital_order_created_email.html:111 +#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/shipped_order_created_email.html:109 +#: core/templates/shipped_order_delivered_email.html:109 +msgid "price" +msgstr "" + +#: core/graphene/object_types.py:506 +#: core/templates/digital_order_created_email.html:110 +#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/shipped_order_created_email.html:108 +#: core/templates/shipped_order_delivered_email.html:108 +msgid "quantity" +msgstr "" + +#: core/graphene/object_types.py:507 +msgid "number of feedbacks" +msgstr "" + +#: core/graphene/object_types.py:508 +msgid "only available for personal orders" +msgstr "" + +#: core/graphene/object_types.py:534 core/models.py:548 +msgid "products" +msgstr "" + +#: core/graphene/object_types.py:634 +msgid "promocodes" +msgstr "" + +#: core/graphene/object_types.py:644 +msgid "products on sale" +msgstr "" + +#: core/graphene/object_types.py:651 core/models.py:843 +msgid "promotions" +msgstr "" + +#: core/graphene/object_types.py:655 core/models.py:154 +msgid "vendor" +msgstr "" + +#: core/graphene/object_types.py:656 core/models.py:547 +#: core/templates/digital_order_created_email.html:109 +#: core/templates/digital_order_delivered_email.html:107 +#: core/templates/shipped_order_created_email.html:107 +#: core/templates/shipped_order_delivered_email.html:107 +msgid "product" +msgstr "" + +#: core/graphene/object_types.py:667 core/models.py:868 +msgid "wishlisted products" +msgstr "" + +#: core/graphene/object_types.py:673 core/models.py:885 +msgid "wishlists" +msgstr "" + +#: core/graphene/object_types.py:677 +msgid "tagged products" +msgstr "" + +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 +msgid "product tags" +msgstr "" + +#: core/graphene/object_types.py:688 +msgid "tagged categories" +msgstr "" + +#: core/graphene/object_types.py:695 +msgid "categories tags" +msgstr "" + +#: core/graphene/object_types.py:699 +msgid "project name" +msgstr "" + +#: core/graphene/object_types.py:700 +msgid "company email" +msgstr "" + +#: core/graphene/object_types.py:701 +msgid "company name" +msgstr "" + +#: core/graphene/object_types.py:702 +msgid "company address" +msgstr "" + +#: core/graphene/object_types.py:703 +msgid "company phone number" +msgstr "" + +#: core/graphene/object_types.py:704 +msgid "email from, sometimes it must be used instead of host user value" +msgstr "" + +#: core/graphene/object_types.py:705 +msgid "email host user" +msgstr "" + +#: core/graphene/object_types.py:706 +msgid "maximum amount for payment" +msgstr "" + +#: core/graphene/object_types.py:707 +msgid "minimum amount for payment" +msgstr "" + +#: core/graphene/object_types.py:708 +msgid "analytics data" +msgstr "" + +#: core/graphene/object_types.py:709 +msgid "advertisement data" +msgstr "" + +#: core/graphene/object_types.py:712 +msgid "company configuration" +msgstr "" + +#: core/graphene/object_types.py:716 +msgid "language code" +msgstr "" + +#: core/graphene/object_types.py:717 +msgid "language name" +msgstr "" + +#: core/graphene/object_types.py:718 +msgid "language flag, if exists :)" +msgstr "" + +#: core/graphene/object_types.py:721 +msgid "supported languages" +msgstr "" + +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 +msgid "products search results" +msgstr "" + +#: core/graphene/object_types.py:755 +msgid "posts search results" +msgstr "" + +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" + +#: core/models.py:86 +msgid "parent of this group" +msgstr "" + +#: core/models.py:87 +msgid "parent attribute group" +msgstr "" + +#: core/models.py:91 core/models.py:92 +msgid "attribute group's name" +msgstr "" + +#: core/models.py:100 core/models.py:628 +msgid "attribute group" +msgstr "" + +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" + +#: core/models.py:119 +msgid "stores credentials and endpoints required for vendor communication" +msgstr "" + +#: core/models.py:120 +msgid "authentication info" +msgstr "" + +#: core/models.py:125 +msgid "define the markup for products retrieved from this vendor" +msgstr "" + +#: core/models.py:126 +msgid "vendor markup percentage" +msgstr "" + +#: core/models.py:130 +msgid "name of this vendor" +msgstr "" + +#: core/models.py:131 +msgid "vendor name" +msgstr "" + +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" + +#: core/models.py:175 core/models.py:206 +msgid "internal tag identifier for the product tag" +msgstr "" + +#: core/models.py:176 core/models.py:207 +msgid "tag name" +msgstr "" + +#: core/models.py:180 core/models.py:211 +msgid "user-friendly name for the product tag" +msgstr "" + +#: core/models.py:181 core/models.py:212 +msgid "tag display name" +msgstr "" + +#: core/models.py:189 +msgid "product tag" +msgstr "" + +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" + +#: core/models.py:220 +msgid "category tag" +msgstr "" + +#: core/models.py:221 core/models.py:293 +msgid "category tags" +msgstr "" + +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" + +#: core/models.py:240 +msgid "upload an image representing this category" +msgstr "" + +#: core/models.py:243 +msgid "category image" +msgstr "" + +#: core/models.py:248 +msgid "define a markup percentage for products in this category" +msgstr "" + +#: core/models.py:257 +msgid "parent of this category to form a hierarchical structure" +msgstr "" + +#: core/models.py:258 +msgid "parent category" +msgstr "" + +#: core/models.py:263 +msgid "category name" +msgstr "" + +#: core/models.py:264 +msgid "provide a name for this category" +msgstr "" + +#: core/models.py:271 +msgid "add a detailed description for this category" +msgstr "" + +#: core/models.py:272 +msgid "category description" +msgstr "" + +#: core/models.py:292 +msgid "tags that help describe or group this category" +msgstr "" + +#: core/models.py:299 core/models.py:387 +msgid "priority" +msgstr "" + +#: core/models.py:340 +msgid "name of this brand" +msgstr "" + +#: core/models.py:341 +msgid "brand name" +msgstr "" + +#: core/models.py:348 +msgid "upload a logo representing this brand" +msgstr "" + +#: core/models.py:350 +msgid "brand small image" +msgstr "" + +#: core/models.py:356 +msgid "upload a big logo representing this brand" +msgstr "" + +#: core/models.py:358 +msgid "brand big image" +msgstr "" + +#: core/models.py:363 +msgid "add a detailed description of the brand" +msgstr "" + +#: core/models.py:364 +msgid "brand description" +msgstr "" + +#: core/models.py:369 +msgid "optional categories that this brand is associated with" +msgstr "" + +#: core/models.py:370 +msgid "associated categories" +msgstr "" + +#: core/models.py:400 +msgid "" +"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 "" + +#: core/models.py:412 +msgid "the vendor supplying this product stock" +msgstr "" + +#: core/models.py:413 +msgid "associated vendor" +msgstr "" + +#: core/models.py:417 +msgid "final price to the customer after markups" +msgstr "" + +#: core/models.py:418 +msgid "selling price" +msgstr "" + +#: core/models.py:423 +msgid "the product associated with this stock entry" +msgstr "" + +#: core/models.py:424 core/models.py:708 core/models.py:765 core/models.py:1709 +msgid "associated product" +msgstr "" + +#: core/models.py:431 +msgid "the price paid to the vendor for this product" +msgstr "" + +#: core/models.py:432 +msgid "vendor purchase price" +msgstr "" + +#: core/models.py:436 +msgid "available quantity of the product in stock" +msgstr "" + +#: core/models.py:437 +msgid "quantity in stock" +msgstr "" + +#: core/models.py:441 +msgid "vendor-assigned SKU for identifying the product" +msgstr "" + +#: core/models.py:442 +msgid "vendor sku" +msgstr "" + +#: core/models.py:448 +msgid "digital file associated with this stock if applicable" +msgstr "" + +#: core/models.py:449 +msgid "digital file" +msgstr "" + +#: core/models.py:458 +msgid "stock entries" +msgstr "" + +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" + +#: core/models.py:476 +msgid "category this product belongs to" +msgstr "" + +#: core/models.py:485 +msgid "optionally associate this product with a brand" +msgstr "" + +#: core/models.py:491 +msgid "tags that help describe or group this product" +msgstr "" + +#: core/models.py:496 +msgid "indicates whether this product is digitally delivered" +msgstr "" + +#: core/models.py:497 +msgid "is product digital" +msgstr "" + +#: core/models.py:503 +msgid "provide a clear identifying name for the product" +msgstr "" + +#: core/models.py:504 +msgid "product name" +msgstr "" + +#: core/models.py:509 core/models.py:831 +msgid "add a detailed description of the product" +msgstr "" + +#: core/models.py:510 +msgid "product description" +msgstr "" + +#: core/models.py:517 +msgid "part number for this product" +msgstr "" + +#: core/models.py:518 +msgid "part number" +msgstr "" + +#: core/models.py:537 +msgid "stock keeping unit for this product" +msgstr "" + +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" + +#: core/models.py:619 +msgid "category of this attribute" +msgstr "" + +#: core/models.py:627 +msgid "group of this attribute" +msgstr "" + +#: core/models.py:633 +msgid "string" +msgstr "" + +#: core/models.py:634 +msgid "integer" +msgstr "" + +#: core/models.py:635 +msgid "float" +msgstr "" + +#: core/models.py:636 +msgid "boolean" +msgstr "" + +#: core/models.py:637 +msgid "array" +msgstr "" + +#: core/models.py:638 +msgid "object" +msgstr "" + +#: core/models.py:640 +msgid "type of the attribute's value" +msgstr "" + +#: core/models.py:641 +msgid "value type" +msgstr "" + +#: core/models.py:646 +msgid "name of this attribute" +msgstr "" + +#: core/models.py:647 +msgid "attribute's name" +msgstr "" + +#: core/models.py:653 +msgid "is filterable" +msgstr "" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "" + +#: core/models.py:665 core/models.py:700 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "" + +#: core/models.py:699 +msgid "attribute of this value" +msgstr "" + +#: core/models.py:707 +msgid "the specific product associated with this attribute's value" +msgstr "" + +#: core/models.py:713 +msgid "the specific value for this attribute" +msgstr "" + +#: core/models.py:747 +msgid "provide alternative text for the image for accessibility" +msgstr "" + +#: core/models.py:748 +msgid "image alt text" +msgstr "" + +#: core/models.py:751 +msgid "upload the image file for this product" +msgstr "" + +#: core/models.py:752 core/models.py:777 +msgid "product image" +msgstr "" + +#: core/models.py:758 +msgid "determines the order in which images are displayed" +msgstr "" + +#: core/models.py:759 +msgid "display priority" +msgstr "" + +#: core/models.py:764 +msgid "the product that this image represents" +msgstr "" + +#: core/models.py:778 +msgid "product images" +msgstr "" + +#: core/models.py:819 +msgid "percentage discount for the selected products" +msgstr "" + +#: core/models.py:820 +msgid "discount percentage" +msgstr "" + +#: core/models.py:825 +msgid "provide a unique name for this promotion" +msgstr "" + +#: core/models.py:826 +msgid "promotion name" +msgstr "" + +#: core/models.py:832 +msgid "promotion description" +msgstr "" + +#: core/models.py:837 +msgid "select which products are included in this promotion" +msgstr "" + +#: core/models.py:838 +msgid "included products" +msgstr "" + +#: core/models.py:842 +msgid "promotion" +msgstr "" + +#: core/models.py:867 +msgid "products that the user has marked as wanted" +msgstr "" + +#: core/models.py:875 +msgid "user who owns this wishlist" +msgstr "" + +#: core/models.py:876 +msgid "wishlist owner" +msgstr "" + +#: core/models.py:884 +msgid "wishlist" +msgstr "" + +#: core/models.py:951 +msgid "documentary" +msgstr "" + +#: core/models.py:952 +msgid "documentaries" +msgstr "" + +#: core/models.py:962 +msgid "unresolved" +msgstr "" + +#: core/models.py:1008 +msgid "address line for the customer" +msgstr "" + +#: core/models.py:1009 +msgid "address line" +msgstr "" + +#: core/models.py:1011 +msgid "street" +msgstr "" + +#: core/models.py:1012 +msgid "district" +msgstr "" + +#: core/models.py:1013 +msgid "city" +msgstr "" + +#: core/models.py:1014 +msgid "region" +msgstr "" + +#: core/models.py:1015 +msgid "postal code" +msgstr "" + +#: core/models.py:1016 +msgid "country" +msgstr "" + +#: core/models.py:1023 +msgid "geolocation point: (longitude, latitude)" +msgstr "" + +#: core/models.py:1026 +msgid "full JSON response from geocoder for this address" +msgstr "" + +#: core/models.py:1031 +msgid "stored JSON response from the geocoding service" +msgstr "" + +#: core/models.py:1039 +msgid "address" +msgstr "" + +#: core/models.py:1040 +msgid "addresses" +msgstr "" + +#: core/models.py:1085 +msgid "unique code used by a user to redeem a discount" +msgstr "" + +#: core/models.py:1086 +msgid "promo code identifier" +msgstr "" + +#: core/models.py:1093 +msgid "fixed discount amount applied if percent is not used" +msgstr "" + +#: core/models.py:1094 +msgid "fixed discount amount" +msgstr "" + +#: core/models.py:1100 +msgid "percentage discount applied if fixed amount is not used" +msgstr "" + +#: core/models.py:1101 +msgid "percentage discount" +msgstr "" + +#: core/models.py:1106 +msgid "timestamp when the promocode expires" +msgstr "" + +#: core/models.py:1107 +msgid "end validity time" +msgstr "" + +#: core/models.py:1112 +msgid "timestamp from which this promocode is valid" +msgstr "" + +#: core/models.py:1113 +msgid "start validity time" +msgstr "" + +#: core/models.py:1118 +msgid "timestamp when the promocode was used, blank if not used yet" +msgstr "" + +#: core/models.py:1119 +msgid "usage timestamp" +msgstr "" + +#: core/models.py:1124 +msgid "user assigned to this promocode if applicable" +msgstr "" + +#: core/models.py:1125 +msgid "assigned user" +msgstr "" + +#: core/models.py:1132 +msgid "promo code" +msgstr "" + +#: core/models.py:1133 +msgid "promo codes" +msgstr "" + +#: core/models.py:1140 +msgid "" +"only one type of discount should be defined (amount or percent), but not " +"both or neither." +msgstr "" + +#: core/models.py:1155 +msgid "promocode already used" +msgstr "" + +#: core/models.py:1171 +#, python-brace-format +msgid "invalid discount type for promocode {self.uuid}" +msgstr "" + +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" + +#: core/models.py:1197 +msgid "the billing address used for this order" +msgstr "" + +#: core/models.py:1205 +msgid "optional promo code applied to this order" +msgstr "" + +#: core/models.py:1206 +msgid "applied promo code" +msgstr "" + +#: core/models.py:1214 +msgid "the shipping address used for this order" +msgstr "" + +#: core/models.py:1215 +msgid "shipping address" +msgstr "" + +#: core/models.py:1221 +msgid "current status of the order in its lifecycle" +msgstr "" + +#: core/models.py:1222 +msgid "order status" +msgstr "" + +#: core/models.py:1227 core/models.py:1686 +msgid "json structure of notifications to display to users" +msgstr "" + +#: core/models.py:1233 +msgid "json representation of order attributes for this order" +msgstr "" + +#: core/models.py:1239 +msgid "the user who placed the order" +msgstr "" + +#: core/models.py:1240 +msgid "user" +msgstr "" + +#: core/models.py:1246 +msgid "the timestamp when the order was finalized" +msgstr "" + +#: core/models.py:1247 +msgid "buy time" +msgstr "" + +#: core/models.py:1254 +msgid "a human-readable identifier for the order" +msgstr "" + +#: core/models.py:1255 +msgid "human readable id" +msgstr "" + +#: core/models.py:1261 +msgid "order" +msgstr "" + +#: core/models.py:1282 +msgid "a user must have only one pending order at a time" +msgstr "" + +#: core/models.py:1316 +msgid "you cannot add products to an order that is not a pending one" +msgstr "" + +#: core/models.py:1321 +msgid "you cannot add inactive products to order" +msgstr "" + +#: core/models.py:1338 +msgid "you cannot add more products than available in stock" +msgstr "" + +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 +msgid "you cannot remove products from an order that is not a pending one" +msgstr "" + +#: core/models.py:1381 +#, python-brace-format +msgid "{name} does not exist with query <{query}>" +msgstr "" + +#: core/models.py:1413 +msgid "promocode does not exist" +msgstr "" + +#: core/models.py:1419 +msgid "you can only buy physical products with shipping address specified" +msgstr "" + +#: core/models.py:1438 +msgid "address does not exist" +msgstr "" + +#: core/models.py:1459 core/models.py:1528 +msgid "you can not buy at this moment, please try again in a few minutes" +msgstr "" + +#: core/models.py:1462 core/models.py:1524 +msgid "invalid force value" +msgstr "" + +#: core/models.py:1468 core/models.py:1531 +msgid "you cannot purchase an empty order!" +msgstr "" + +#: core/models.py:1487 +msgid "you cannot buy an order without a user" +msgstr "" + +#: core/models.py:1501 +msgid "a user without a balance cannot buy with balance" +msgstr "" + +#: core/models.py:1506 +msgid "insufficient funds to complete the order" +msgstr "" + +#: core/models.py:1540 +msgid "" +"you cannot buy without registration, please provide the following " +"information: customer name, customer email, customer phone number" +msgstr "" + +#: core/models.py:1549 +#, python-brace-format +msgid "" +"invalid payment method: {payment_method} from {available_payment_methods}" +msgstr "" + +#: core/models.py:1674 +msgid "the price paid by the customer for this product at purchase time" +msgstr "" + +#: core/models.py:1675 +msgid "purchase price at order time" +msgstr "" + +#: core/models.py:1680 +msgid "internal comments for admins about this ordered product" +msgstr "" + +#: core/models.py:1681 +msgid "internal comments" +msgstr "" + +#: core/models.py:1687 +msgid "user notifications" +msgstr "" + +#: core/models.py:1692 +msgid "json representation of this item's attributes" +msgstr "" + +#: core/models.py:1693 +msgid "ordered product attributes" +msgstr "" + +#: core/models.py:1698 +msgid "reference to the parent order that contains this product" +msgstr "" + +#: core/models.py:1699 +msgid "parent order" +msgstr "" + +#: core/models.py:1708 +msgid "the specific product associated with this order line" +msgstr "" + +#: core/models.py:1715 +msgid "quantity of this specific product in the order" +msgstr "" + +#: core/models.py:1716 +msgid "product quantity" +msgstr "" + +#: core/models.py:1723 +msgid "current status of this product in the order" +msgstr "" + +#: core/models.py:1724 +msgid "product line status" +msgstr "" + +#: core/models.py:1784 +msgid "order product must have an order" +msgstr "" + +#: core/models.py:1786 +#, python-brace-format +msgid "wrong action specified for feedback: {action}" +msgstr "" + +#: core/models.py:1800 +msgid "you cannot feedback an order which is not received" +msgstr "" + +#: core/models.py:1806 +msgid "name" +msgstr "" + +#: core/models.py:1807 +msgid "URL of the integration" +msgstr "" + +#: core/models.py:1808 +msgid "authentication credentials" +msgstr "" + +#: core/models.py:1822 +msgid "you can only have one default CRM provider" +msgstr "" + +#: core/models.py:1826 +msgid "CRM" +msgstr "" + +#: core/models.py:1827 +msgid "CRMs" +msgstr "" + +#: core/models.py:1839 +msgid "order CRM link" +msgstr "" + +#: core/models.py:1840 +msgid "orders CRM links" +msgstr "" + +#: core/models.py:1874 +msgid "download" +msgstr "" + +#: core/models.py:1875 +msgid "downloads" +msgstr "" + +#: core/models.py:1883 +msgid "you can not download a digital asset for a non-finished order" +msgstr "" + +#: core/models.py:1913 +msgid "user-provided comments about their experience with the product" +msgstr "" + +#: core/models.py:1914 +msgid "feedback comments" +msgstr "" + +#: core/models.py:1921 +msgid "references the specific product in an order that this feedback is about" +msgstr "" + +#: core/models.py:1922 +msgid "related order product" +msgstr "" + +#: core/models.py:1927 +msgid "user-assigned rating for the product" +msgstr "" + +#: core/models.py:1928 +msgid "product rating" +msgstr "" + +#: core/serializers/utility.py:87 +msgid "" +"you must provide a comment, rating, and order product uuid to add feedback." +msgstr "" + +#: core/signals.py:65 +msgid "error during promocode creation: {e!s}" +msgstr "" + +#: core/sitemaps.py:17 +msgid "Home" +msgstr "" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "" + +#: core/templates/digital_order_created_email.html:7 +#: core/templates/digital_order_created_email.html:100 +#: core/templates/digital_order_delivered_email.html:6 +#: core/templates/shipped_order_created_email.html:7 +#: core/templates/shipped_order_created_email.html:99 +#: core/templates/shipped_order_delivered_email.html:7 +#: core/templates/shipped_order_delivered_email.html:99 +msgid "order confirmation" +msgstr "" + +#: core/templates/digital_order_created_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 +#: core/templates/promocode_granted_email.html:94 +#: core/templates/shipped_order_created_email.html:94 +#: core/templates/shipped_order_delivered_email.html:94 +msgid "logo" +msgstr "" + +#: core/templates/digital_order_created_email.html:101 +#: core/templates/shipped_order_created_email.html:100 +#: core/templates/shipped_order_delivered_email.html:100 +#, python-format +msgid "hello %(order.user.first_name)s," +msgstr "" + +#: core/templates/digital_order_created_email.html:102 +#, 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" +" order:" +msgstr "" + +#: core/templates/digital_order_created_email.html:112 +#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/shipped_order_created_email.html:110 +#: core/templates/shipped_order_delivered_email.html:110 +msgid "total" +msgstr "" + +#: core/templates/digital_order_created_email.html:125 +#: core/templates/digital_order_delivered_email.html:157 +#: core/templates/shipped_order_created_email.html:127 +#: core/templates/shipped_order_delivered_email.html:127 +msgid "total price" +msgstr "" + +#: core/templates/digital_order_created_email.html:131 +#: core/templates/shipped_order_created_email.html:140 +#: core/templates/shipped_order_delivered_email.html:140 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(config.EMAIL_HOST_USER)s." +msgstr "" + +#: core/templates/digital_order_created_email.html:133 +#, python-format +msgid "best regards,
the %(config.PROJECT_NAME)s team" +msgstr "" + +#: core/templates/digital_order_created_email.html:139 +#: core/templates/digital_order_delivered_email.html:171 +#: core/templates/promocode_granted_email.html:114 +msgid "all rights reserved" +msgstr "" + +#: core/templates/digital_order_delivered_email.html:99 +msgid "order delivered" +msgstr "" + +#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "" + +#: core/templates/digital_order_delivered_email.html:101 +#, python-format +msgid "" +"we have successfully processed your order №%(order_uuid)s! below are the\n" +" details of your order:" +msgstr "" + +#: core/templates/digital_order_delivered_email.html:128 +msgid "" +"additional\n" +" information" +msgstr "" + +#: core/templates/digital_order_delivered_email.html:137 +#: core/templates/json_table_widget.html:6 +msgid "value" +msgstr "" + +#: core/templates/digital_order_delivered_email.html:163 +#: core/templates/promocode_granted_email.html:106 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" + +#: core/templates/digital_order_delivered_email.html:165 +#: core/templates/promocode_granted_email.html:108 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "" + +#: core/templates/json_table_widget.html:5 +msgid "key" +msgstr "" + +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" + +#: core/templates/shipped_order_created_email.html:101 +#: core/templates/shipped_order_delivered_email.html:101 +msgid "" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" +" the details of your order:" +msgstr "" + +#: core/templates/shipped_order_created_email.html:123 +#: core/templates/shipped_order_delivered_email.html:123 +msgid "shipping price" +msgstr "" + +#: core/templates/shipped_order_created_email.html:133 +#: core/templates/shipped_order_delivered_email.html:133 +msgid "your order will be delivered to the following address:" +msgstr "" + +#: core/templates/shipped_order_created_email.html:142 +#: core/templates/shipped_order_delivered_email.html:142 +#, python-format +msgid "best regards,
The %(config.PROJECT_NAME)s team" +msgstr "" + +#: core/templates/shipped_order_created_email.html:147 +#: core/templates/shipped_order_delivered_email.html:147 +msgid "" +"all rights\n" +" reserved" +msgstr "" + +#: core/utils/caching.py:41 +msgid "both data and timeout are required" +msgstr "" + +#: core/utils/caching.py:43 +msgid "invalid timeout value, it must be between 0 and 216000 seconds" +msgstr "" + +#: core/utils/emailing.py:25 +#, python-brace-format +msgid "{config.PROJECT_NAME} | contact us initiated" +msgstr "" + +#: core/utils/emailing.py:64 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order confirmation" +msgstr "" + +#: core/utils/emailing.py:99 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order delivered" +msgstr "" + +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "" + +#: core/utils/messages.py:3 +msgid "you do not have permission to perform this action." +msgstr "" + +#: core/utils/nominatim.py:8 +msgid "NOMINATIM_URL must be configured." +msgstr "" + +#: core/validators.py:16 +#, python-brace-format +msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" +msgstr "" + +#: core/validators.py:22 +msgid "invalid phone number format" +msgstr "" + +#: core/views.py:481 +msgid "you can only download the digital asset once" +msgstr "" + +#: core/views.py:539 +msgid "favicon not found" +msgstr "" + +#: core/viewsets.py:1319 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "" diff --git a/core/locale/fr_FR/LC_MESSAGES/django.mo b/core/locale/fr_FR/LC_MESSAGES/django.mo index 3fa1f643f634a45f36a9118fb0237e17e9f3a4eb..bcaeb0405222268f68c0b72cb2bdf4cad87ee3e1 100644 GIT binary patch delta 20591 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%0A-4tv^-VOHCm=4O8VD|3$W zBe=hLYiUp$zIdBlHT7x1w3{Y7xu`fAWj3?ou|3BS&3a0x3Puo}Z0B;e22IDJWzHeHqDiNqmUjp3#x-7ML4B*qy@`ozX6hpG<~uxpj%1Q7SK1-uLaqt*3bFrf z7AdCti+d1dOuSTmzMeE%RL+(*vmzEtIGzolzBc@gu^BBd5KEa|bfKAP3O49&u*~HS zD6}4|!v0>}uCZ(%B2{75&;M9+7kP&-F%1TL0!$uLur@1^zYRbI>VK}ef>kxQ7!#K@ z6&&JO#1CXLSxi&S1YPO~4DW<%iN7YorMf4pbFOMtQPz0u#7~L`X^)3ZS)r?9G@qgm zER8vLuHTU8*A`d6BO9m8c)NXv3OBAby*$3I_YtGJHmy>7Y??Uy@Ju${*lWecR=qVN z2)jBy$5Npq+*-nKn$z)`E2cF5du7iy?WRQ{*_az|?0)uJt@_N(ucSC)HsvVFh22`GQZ ze-e8Me;T7~j-Y;px>+z1K0csk`#}Ipq%%%sQv+?M!f}81;rRR1H1C=&Mw=Qqprbi@ z#*-;)gn}y758q=6rk<0`<~11D%^1rZ-Pz=z=q!UEG(=0}4$aQ(%*wzK)OFJvygREy zeAXXp!Is}Iru}qHQv*kN*Q0y5ULsjtDm`Lt9p@F@tY-5TXUS=4WbHv*_SxJjvD3#6 zH<(Q9D|Gz!AK~rbgs+;)iJxhY487E->|wvD!K`G3{*T3V7Ly(5dtQ|-bua%4G~2>( ztaZ!-7wfAnzin0K71qX%Qr@3&nl|9jEh{%G7URRP#!t=c$Tv6(k8AF`c{TX%o8>@g zKMeR2H|B6~@jK;jyfo7@^iSrHMk`nktF%F6+Saq75K47h;JD3x`$qQch{l-&()11qDs(hN|-)&kir}Mu$ z_%YLbOdxJCvY;Bd&HvU{9N!;JAkD>K&u==(^l$z}!H<1JWJQB=m!-?^mA)@qHqy3r$j#VGVLu zZ`P98DC$s{dym=ae=y-uzi(RhIU!cY_~=6}!DPvp$Pz7)-8_ApVtFszZY^c2r7rw` zR8tU)oAt`<=$PLQbDv3F(7T{>R{0F{75m$x)3VGQHbnL3T<&o1t*v(1j z%>x>0RUzJHzNnDbna}R2?aXB=nPpd-F-@X)iCI=8#>!)A;1cr^=Qqey|SuTX<9;3eN{dF!5toRk&$m!ZZ^JYoaJD)gODt0KRYQ z0e!V$o+tcJ&DK`R(5Bm;d2D3)fTIJh-Qf7Hpy?ibrLi9g{jWJhF};@moTFy#p{AwH z*|lh$P_$=bl{RM$mTKl&!FIoe{hM!ibMN~RDqhm;2*HH#-0;5u=|mam$3L$UHjR%IMi#Hx`fmcfjS)e-_SYtz#N)=z z@gKH0a+ZSiz)qZ8zkT&-$!h6Pe&_gnWDl7BuEn=wegkID>*z1e%BD{iipBC%HLCf= zAnkU_WE7e>P{|Do_E&PsC36-9rquFS!3TbSYp89Yb`E@ul^xmf=(Ck{%Yi&NY@p}= z+%lO}${x;rMd<5$t?M_#HZ`{;^c^jy5dC48&6po#!&&yq>;0hDr*Kjh>a(nI$g11A f)?fPM(T#up?N1$x74`MGN?)sDjgPGzzu*4=wU}*k delta 11647 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 diff --git a/core/locale/fr_FR/LC_MESSAGES/django.po b/core/locale/fr_FR/LC_MESSAGES/django.po index 4c3cab9f..2c1d6b11 100644 --- a/core/locale/fr_FR/LC_MESSAGES/django.po +++ b/core/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -89,12 +89,12 @@ msgstr "Désactiver la %(verbose_name_plural)s sélectionnée" msgid "selected items have been deactivated." msgstr "Les articles sélectionnés ont été désactivés !" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Valeur de l'attribut" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Valeurs des attributs" @@ -102,23 +102,23 @@ msgstr "Valeurs des attributs" msgid "image" msgstr "Image" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Images" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Stock" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Stocks" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Commander un produit" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Commander des produits" @@ -336,7 +336,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "Méta snapshot SEO" @@ -798,119 +798,119 @@ msgstr "" msgid "no search term provided." msgstr "Aucun terme de recherche n'est fourni." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Nom" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Catégories" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Catégories Limaces" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Tags" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Prix minimum" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Prix maximum" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Est actif" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Marque" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Attributs" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Quantité" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Limace" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "Is Digital" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Inclure des sous-catégories" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Inclure les produits commandés par les particuliers" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" "Il doit y avoir un category_uuid pour utiliser le drapeau " "include_subcategories" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Recherche (ID, nom du produit ou numéro de pièce)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Acheté après (inclus)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Acheté avant (inclus)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "Courriel de l'utilisateur" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "UUID de l'utilisateur" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Statut" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "ID lisible par l'homme" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Parent" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Catégorie entière (avec au moins 1 produit ou non)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Niveau" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "UUID du produit" @@ -1047,8 +1047,8 @@ 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" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1063,8 +1063,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - fonctionne comme un charme" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Attributs" @@ -1077,11 +1077,11 @@ msgid "groups of attributes" msgstr "Groupes d'attributs" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Catégories" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Marques" @@ -1090,7 +1090,7 @@ msgid "category image url" msgstr "Catégories" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Markup Percentage" @@ -1115,7 +1115,7 @@ msgstr "Tags pour cette catégorie" msgid "products in this category" msgstr "Produits dans cette catégorie" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Vendeurs" @@ -1131,7 +1131,7 @@ msgstr "Longitude (coordonnée X)" msgid "comment" msgstr "Comment" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Valeur d'évaluation de 1 à 10 inclus, ou 0 si elle n'est pas définie." @@ -1139,8 +1139,8 @@ msgstr "Valeur d'évaluation de 1 à 10 inclus, ou 0 si elle n'est pas définie. msgid "represents feedback from a user." msgstr "Représente le retour d'information d'un utilisateur." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Notifications" @@ -1148,15 +1148,19 @@ 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" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Retour d'information" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "Une liste des produits commandés dans cette commande" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Adresse de facturation" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1164,51 +1168,51 @@ 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" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Prix total de la commande" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Quantité totale de produits dans la commande" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Tous les produits de la commande sont-ils numériques ?" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Transactions pour cette commande" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Commandes" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "Image URL" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Images du produit" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Catégorie" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Retour d'information" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Marque" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Groupes d'attributs" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1216,7 +1220,7 @@ msgstr "Groupes d'attributs" msgid "price" msgstr "Prix" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1224,35 +1228,35 @@ msgstr "Prix" msgid "quantity" msgstr "Quantité" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Nombre de retours d'information" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Produits disponibles uniquement pour les commandes personnelles" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Produits" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Produits en vente" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Vendeur" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1260,649 +1264,797 @@ msgstr "Vendeur" msgid "product" msgstr "Produit" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Produits en liste de souhaits" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Liste de souhaits" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Produits marqués" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Étiquettes du produit" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Catégories marquées" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Tags des catégories" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Nom du projet" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "Courriel de l'entreprise" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Nom de l'entreprise" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Adresse de l'entreprise" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Numéro de téléphone de l'entreprise" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', parfois il doit être utilisé à la place de la valeur de " "l'utilisateur de l'hôte" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "Utilisateur de l'hôte de messagerie" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Montant maximum du paiement" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Montant minimum pour le paiement" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Données analytiques" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Code langue" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Nom de la langue" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Drapeau linguistique, s'il existe :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Obtenir la liste des langues prises en charge" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Résultats de la recherche de produits" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Résultats de la recherche de produits" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"Représente un groupe d'attributs, qui peut être hiérarchique. Cette classe " +"est utilisée pour gérer et organiser les groupes d'attributs. Un groupe " +"d'attributs peut avoir un groupe parent, formant ainsi une structure " +"hiérarchique. Cela peut être utile pour catégoriser et gérer les attributs " +"plus efficacement dans un système complexe." + +#: core/models.py:86 msgid "parent of this group" msgstr "Parent de ce groupe" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Groupe d'attributs parent" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Nom du groupe d'attributs" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Groupe d'attributs" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +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 " +"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 " +"permet de l'utiliser dans des systèmes qui interagissent avec des vendeurs " +"tiers." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stocke les informations d'identification et les points d'extrémité " "nécessaires à la communication avec l'API du fournisseur." -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Informations sur l'authentification" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "" "Définir la majoration pour les produits récupérés auprès de ce fournisseur" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Pourcentage de marge du vendeur" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Nom de ce vendeur" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Nom du vendeur" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Représente une étiquette de produit utilisée pour classer ou identifier des " +"produits. La classe ProductTag est conçue pour identifier et classer les " +"produits de manière unique en combinant un identifiant interne et un nom " +"d'affichage convivial. Elle prend en charge les opérations exportées par le " +"biais de mixins et permet de personnaliser les métadonnées à des fins " +"administratives." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Identifiant interne de l'étiquette du produit" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Nom du jour" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "Nom convivial pour l'étiquette du produit" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Nom d'affichage de l'étiquette" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Étiquette du produit" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"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." + +#: core/models.py:220 msgid "category tag" msgstr "étiquette de catégorie" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "balises de catégorie" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Représente une entité catégorie permettant d'organiser et de regrouper des " +"éléments connexes dans une structure hiérarchique. Les catégories peuvent " +"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 " +"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 " +"balises ou une priorité." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Télécharger une image représentant cette catégorie" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Image de catégorie" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "" "Définir un pourcentage de majoration pour les produits de cette catégorie" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Parent de cette catégorie pour former une structure hiérarchique" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Catégorie de parents" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Nom de la catégorie" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Donnez un nom à cette catégorie" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Ajouter une description détaillée pour cette catégorie" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Description de la catégorie" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "les étiquettes qui aident à décrire ou à regrouper cette catégorie" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Priorité" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Nom de cette marque" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Nom de marque" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Télécharger un logo représentant cette marque" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Petite image de marque" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Télécharger un grand logo représentant cette marque" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Une grande image de marque" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Ajouter une description détaillée de la marque" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Description de la marque" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Catégories facultatives auxquelles cette marque est associée" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Catégories" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" +"Représente le stock d'un produit géré dans le système. Cette classe fournit " +"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." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "Le vendeur qui fournit ce stock de produits" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Vendeur associé" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Prix final pour le client après majoration" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Prix de vente" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "Le produit associé à cette entrée de stock" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Produit associé" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "Le prix payé au vendeur pour ce produit" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Prix d'achat du vendeur" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Quantité disponible du produit en stock" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Quantité en stock" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU attribué par le fournisseur pour identifier le produit" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "UGS du vendeur" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "Fichier numérique associé à ce stock, le cas échéant" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Fichier numérique" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Entrées de stock" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"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 é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 " +"des modèles connexes (tels que Category, Brand et ProductTag) et gère la " +"mise en cache des propriétés fréquemment consultées afin d'améliorer les " +"performances. Elle est utilisée pour définir et manipuler les données " +"produit et les informations associées dans une application." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Catégorie à laquelle appartient ce produit" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Possibilité d'associer ce produit à une marque" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Étiquettes permettant de décrire ou de regrouper ce produit" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Indique si ce produit est livré numériquement" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "Le produit est-il numérique ?" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Fournir un nom d'identification clair pour le produit" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Nom du produit" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Ajouter une description détaillée du produit" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Description du produit" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Numéro de pièce pour ce produit" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Numéro de pièce" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Unité de gestion des stocks pour ce produit" -#: core/models.py:784 +#: core/models.py:607 +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 " +"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 " +"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." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Catégorie de cet attribut" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Groupe de cet attribut" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "Chaîne" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Entier" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Flotteur" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Booléen" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Tableau" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Objet" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Type de la valeur de l'attribut" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Type de valeur" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Nom de cet attribut" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Nom de l'attribut" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "est filtrable" + +#: core/models.py:654 +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." + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribut" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Attribut de cette valeur" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "Le produit spécifique associé à la valeur de cet attribut" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "La valeur spécifique de cet attribut" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "Fournir un texte alternatif pour l'image afin d'en faciliter l'accès" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Texte alt de l'image" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Télécharger le fichier image pour ce produit" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Image du produit" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Détermine l'ordre d'affichage des images" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Priorité à l'affichage" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "Le produit que cette image représente" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Images du produit" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Pourcentage de réduction pour les produits sélectionnés" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Pourcentage de réduction" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Donnez un nom unique à cette promotion" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Nom de la promotion" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Sélectionnez les produits inclus dans cette promotion" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Produits inclus" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Promotion" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Produits que l'utilisateur a marqués comme souhaités" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "Utilisateur qui possède cette liste de souhaits" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Propriétaire de la liste de souhaits" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Liste de souhaits" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Documentaire" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Documentaires" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Non résolu" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Ligne d'adresse du client" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Ligne d'adresse" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Rue" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "District" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "Ville" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Région" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Code postal" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "Pays" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Point de géolocalisation (longitude, latitude)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Réponse JSON complète du géocodeur pour cette adresse" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Réponse JSON stockée du service de géocodage" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Adresse" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Adresses" -#: core/models.py:1240 +#: core/models.py:1085 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" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Identifiant du code promotionnel" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "" "Montant fixe de la remise appliqué si le pourcentage n'est pas utilisé" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Montant de l'escompte fixe" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "" "Pourcentage de réduction appliqué si le montant fixe n'est pas utilisé" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Pourcentage de réduction" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Date d'expiration du code promotionnel" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "Heure de fin de validité" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Date à partir de laquelle ce code promotionnel est valable" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Heure de début de validité" -#: core/models.py:1273 +#: core/models.py:1118 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é." -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Horodatage de l'utilisation" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "Utilisateur assigné à ce code promo, le cas échéant" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Utilisateur assigné" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Code promo" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Codes promotionnels" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1910,154 +2062,172 @@ msgstr "" "Un seul type de remise doit être défini (montant ou pourcentage), mais pas " "les deux ni aucun des deux." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "Le code promotionnel a déjà été utilisé" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Type de réduction non valide pour le code promo {self.uuid} !" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"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 " +"produits dans le cycle de vie de la commande." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "L'adresse de facturation utilisée pour cette commande" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Code promo optionnel appliqué à cette commande" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Code promo appliqué" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "L'adresse de livraison utilisée pour cette commande" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Adresse de livraison" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Statut actuel de la commande dans son cycle de vie" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Statut de la commande" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 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." -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "Représentation JSON des attributs de cette commande" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "L'utilisateur qui a passé la commande" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "Utilisateur" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "L'heure à laquelle la commande a été finalisée." -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Temps d'achat" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "Un identifiant lisible par l'homme pour la commande" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "ID lisible par l'homme" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Commande" -#: core/models.py:1447 +#: core/models.py:1282 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 !" -#: core/models.py:1481 +#: core/models.py:1316 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." -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "Vous ne pouvez pas ajouter des produits inactifs à la commande" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "" "Vous ne pouvez pas ajouter plus de produits que ceux disponibles en stock" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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." -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} n'existe pas avec la requête <{query}> !" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Le code promotionnel n'existe pas" -#: core/models.py:1584 +#: core/models.py:1419 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 !" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "L'adresse n'existe pas" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Valeur de force non valide" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "Vous ne pouvez pas acheter une commande vide !" -#: core/models.py:1652 +#: core/models.py:1487 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." -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "Un utilisateur sans solde ne peut pas acheter avec un solde !" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Insuffisance de fonds pour compléter la commande" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2066,7 +2236,7 @@ msgstr "" "informations suivantes : nom du client, courriel du client, numéro de " "téléphone du client" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2074,155 +2244,151 @@ msgstr "" "Méthode de paiement non valide : {payment_method} de " "{available_payment_methods} !" -#: core/models.py:1839 +#: core/models.py:1674 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" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Prix d'achat au moment de la commande" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "" "Commentaires internes pour les administrateurs sur ce produit commandé" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Commentaires internes" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "Notifications aux utilisateurs" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "Représentation JSON des attributs de cet élément" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Attributs du produit ordonnés" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Référence à l'ordre parent qui contient ce produit" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Ordonnance parentale" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "Le produit spécifique associé à cette ligne de commande" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Quantité de ce produit spécifique dans la commande" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Quantité de produits" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Statut actuel de ce produit dans la commande" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Statut de la ligne de produits" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "Le produit doit être associé à une commande !" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Mauvaise action spécifiée pour le retour d'information : {action} !" -#: core/models.py:1959 +#: core/models.py:1800 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." -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Nom" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "URL de l'intégration" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Références d'authentification" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "Vous ne pouvez avoir qu'un seul fournisseur de CRM par défaut" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRM" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "Lien CRM de la commande" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "Liens CRM des commandes" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Télécharger" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Téléchargements" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "" "Vous ne pouvez pas télécharger un bien numérique pour une commande non " "terminée." -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "Commentaires des utilisateurs sur leur expérience du produit" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Commentaires" -#: core/models.py:2079 +#: core/models.py:1921 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." -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Produit de commande apparenté" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "Note attribuée par l'utilisateur au produit" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Evaluation du produit" -#: core/models.py:2096 -msgid "feedback" -msgstr "Retour d'information" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2234,6 +2400,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Erreur lors de la création du promocode : {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Accueil" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Nous contacter" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "À propos de nous" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Informations sur le paiement" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Livraison" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/he_IL/LC_MESSAGES/django.mo b/core/locale/he_IL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f2eecf1f83bae9813c34cc6b13003e40ff0aedd6 GIT binary patch literal 65152 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 literal 0 HcmV?d00001 diff --git a/core/locale/he_IL/LC_MESSAGES/django.po b/core/locale/he_IL/LC_MESSAGES/django.po new file mode 100644 index 00000000..de310590 --- /dev/null +++ b/core/locale/he_IL/LC_MESSAGES/django.po @@ -0,0 +1,2498 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: he-il\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: core/abstract.py:11 +msgid "unique id" +msgstr "מזהה ייחודי" + +#: core/abstract.py:12 +msgid "unique id is used to surely identify any database object" +msgstr "מזהה ייחודי משמש לזיהוי ודאי של כל אובייקט במסד הנתונים." + +#: core/abstract.py:19 +msgid "is active" +msgstr "פעיל" + +#: core/abstract.py:20 +msgid "" +"if set to false, this object can't be seen by users without needed " +"permission" +msgstr "אם מוגדר כ-false, אובייקט זה לא יהיה גלוי למשתמשים ללא ההרשאה הנדרשת." + +#: core/abstract.py:22 core/choices.py:18 +msgid "created" +msgstr "נוצר" + +#: core/abstract.py:22 +msgid "when the object first appeared on the database" +msgstr "כאשר האובייקט הופיע לראשונה במסד הנתונים" + +#: core/abstract.py:23 +msgid "modified" +msgstr "משונה" + +#: core/abstract.py:23 +msgid "when the object was last modified" +msgstr "מתי האובייקט נערך לאחרונה" + +#: core/admin.py:63 +msgid "translations" +msgstr "תרגומים" + +#: core/admin.py:67 +msgid "general" +msgstr "כללי" + +#: core/admin.py:69 +msgid "relations" +msgstr "יחסים" + +#: core/admin.py:87 +msgid "metadata" +msgstr "מטא-נתונים" + +#: core/admin.py:94 +msgid "timestamps" +msgstr "חותמות זמן" + +#: core/admin.py:109 +#, python-format +msgid "activate selected %(verbose_name_plural)s" +msgstr "הפעל את %(verbose_name_plural)s שנבחר" + +#: core/admin.py:114 +msgid "selected items have been activated." +msgstr "הפריטים שנבחרו הופעלו!" + +#: core/admin.py:120 +#, python-format +msgid "deactivate selected %(verbose_name_plural)s" +msgstr "השבת את %(verbose_name_plural)s שנבחר" + +#: core/admin.py:125 +msgid "selected items have been deactivated." +msgstr "פריטים נבחרים הושבתו!" + +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 +msgid "attribute value" +msgstr "ערך התכונה" + +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 +msgid "attribute values" +msgstr "ערכי תכונות" + +#: core/admin.py:146 +msgid "image" +msgstr "תמונה" + +#: core/admin.py:147 core/graphene/object_types.py:501 +msgid "images" +msgstr "תמונות" + +#: core/admin.py:155 core/models.py:457 +msgid "stock" +msgstr "מלאי" + +#: core/admin.py:156 core/graphene/object_types.py:663 +msgid "stocks" +msgstr "מניות" + +#: core/admin.py:166 core/models.py:1735 +msgid "order product" +msgstr "הזמן מוצר" + +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 +msgid "order products" +msgstr "הזמנת מוצרים" + +#: core/admin.py:180 core/admin.py:181 +msgid "children" +msgstr "ילדים" + +#: core/admin.py:566 +msgid "Config" +msgstr "תצורה" + +#: core/apps.py:8 +msgid "core" +msgstr "ליבה" + +#: core/choices.py:4 core/choices.py:20 +msgid "finished" +msgstr "סיימתי" + +#: core/choices.py:5 core/choices.py:19 +msgid "delivering" +msgstr "משלוח" + +#: core/choices.py:6 +msgid "delivered" +msgstr "נמסר" + +#: core/choices.py:7 +msgid "canceled" +msgstr "בוטל" + +#: core/choices.py:8 core/choices.py:16 core/choices.py:24 +msgid "failed" +msgstr "נכשל" + +#: core/choices.py:9 core/choices.py:15 +msgid "pending" +msgstr "בהמתנה" + +#: core/choices.py:10 +msgid "accepted" +msgstr "התקבל" + +#: core/choices.py:11 +msgid "money returned" +msgstr "החזר כספי" + +#: core/choices.py:17 +msgid "payment" +msgstr "תשלום" + +#: core/choices.py:21 +msgid "momental" +msgstr "Momental" + +#: core/choices.py:24 +msgid "successful" +msgstr "מוצלח" + +#: core/docs/drf/views.py:17 core/graphene/mutations.py:36 +msgid "cache I/O" +msgstr "קלט/פלט מטמון" + +#: core/docs/drf/views.py:19 +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 "" +"החל רק מפתח לקריאת נתונים מותרים מהמטמון. החל מפתח, נתונים וזמן המתנה עם " +"אימות כדי לכתוב נתונים למטמון." + +#: core/docs/drf/views.py:32 +msgid "get a list of supported languages" +msgstr "קבל רשימה של השפות הנתמכות" + +#: core/docs/drf/views.py:41 +msgid "get application's exposable parameters" +msgstr "קבל את הפרמטרים החשופים של היישום" + +#: core/docs/drf/views.py:48 +msgid "send a message to the support team" +msgstr "שלח הודעה לצוות התמיכה" + +#: core/docs/drf/views.py:59 core/graphene/mutations.py:55 +msgid "request a CORSed URL" +msgstr "בקש כתובת URL של CORS. מותר להשתמש רק ב-https." + +#: core/docs/drf/views.py:85 +msgid "global search endpoint to query across project's tables" +msgstr "נקודת קצה לחיפוש גלובלי לשאילתות בטבלאות הפרויקט" + +#: core/docs/drf/views.py:91 +msgid "purchase an order as a business" +msgstr "רכשו הזמנה כעסק" + +#: core/docs/drf/views.py:98 +msgid "" +"purchase an order as a business, using the provided `products` with " +"`product_uuid` and `attributes`." +msgstr "" +"רכשו הזמנה כעסק, באמצעות `products` המסופק עם `product_uuid` ו-`attributes`." + +#: core/docs/drf/viewsets.py:44 +msgid "list all attribute groups (simple view)" +msgstr "הצג את כל קבוצות התכונות (תצוגה פשוטה)" + +#: core/docs/drf/viewsets.py:48 +msgid "retrieve a single attribute group (detailed view)" +msgstr "איתור קבוצת תכונות אחת (תצוגה מפורטת)" + +#: core/docs/drf/viewsets.py:52 +msgid "create an attribute group" +msgstr "צור קבוצת תכונות" + +#: core/docs/drf/viewsets.py:56 +msgid "delete an attribute group" +msgstr "מחיקת קבוצת תכונות" + +#: core/docs/drf/viewsets.py:60 +msgid "rewrite an existing attribute group saving non-editables" +msgstr "שכתוב קבוצת תכונות קיימת תוך שמירת תכונות שאינן ניתנות לעריכה" + +#: core/docs/drf/viewsets.py:64 +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" +msgstr "" +"שכתוב שדות מסוימים בקבוצת תכונות קיימת תוך שמירת תכונות שאינן ניתנות לעריכה" + +#: core/docs/drf/viewsets.py:71 +msgid "list all attributes (simple view)" +msgstr "הצג את כל התכונות (תצוגה פשוטה)" + +#: core/docs/drf/viewsets.py:75 +msgid "retrieve a single attribute (detailed view)" +msgstr "איתור תכונה בודדת (תצוגה מפורטת)" + +#: core/docs/drf/viewsets.py:79 +msgid "create an attribute" +msgstr "צור תכונה" + +#: core/docs/drf/viewsets.py:83 +msgid "delete an attribute" +msgstr "מחיקת תכונה" + +#: core/docs/drf/viewsets.py:87 +msgid "rewrite an existing attribute saving non-editables" +msgstr "שכתוב תכונה קיימת תוך שמירת תכונות שאינן ניתנות לעריכה" + +#: core/docs/drf/viewsets.py:91 +msgid "rewrite some fields of an existing attribute saving non-editables" +msgstr "שכתוב שדות מסוימים של תכונה קיימת תוך שמירת שדות שאינם ניתנים לעריכה" + +#: core/docs/drf/viewsets.py:98 +msgid "list all attribute values (simple view)" +msgstr "רשימת כל ערכי התכונות (תצוגה פשוטה)" + +#: core/docs/drf/viewsets.py:102 +msgid "retrieve a single attribute value (detailed view)" +msgstr "איתור ערך תכונה בודד (תצוגה מפורטת)" + +#: core/docs/drf/viewsets.py:106 +msgid "create an attribute value" +msgstr "צור ערך תכונה" + +#: core/docs/drf/viewsets.py:110 +msgid "delete an attribute value" +msgstr "מחיקת ערך תכונה" + +#: core/docs/drf/viewsets.py:114 +msgid "rewrite an existing attribute value saving non-editables" +msgstr "שכתוב ערך תכונה קיים תוך שמירת תכונות שאינן ניתנות לעריכה" + +#: core/docs/drf/viewsets.py:118 +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" +msgstr "" +"שכתוב שדות מסוימים של ערך תכונה קיים תוך שמירת שדות שאינם ניתנים לעריכה" + +#: core/docs/drf/viewsets.py:125 core/docs/drf/viewsets.py:126 +msgid "list all categories (simple view)" +msgstr "הצג את כל הקטגוריות (תצוגה פשוטה)" + +#: core/docs/drf/viewsets.py:130 core/docs/drf/viewsets.py:131 +msgid "retrieve a single category (detailed view)" +msgstr "איתור קטגוריה אחת (תצוגה מפורטת)" + +#: core/docs/drf/viewsets.py:135 core/docs/drf/viewsets.py:136 +msgid "create a category" +msgstr "צור קטגוריה" + +#: core/docs/drf/viewsets.py:140 core/docs/drf/viewsets.py:141 +msgid "delete a category" +msgstr "מחק קטגוריה" + +#: core/docs/drf/viewsets.py:145 core/docs/drf/viewsets.py:146 +msgid "rewrite an existing category saving non-editables" +msgstr "שכתוב קטגוריה קיימת תוך שמירת פריטים שאינם ניתנים לעריכה" + +#: core/docs/drf/viewsets.py:150 core/docs/drf/viewsets.py:151 +msgid "rewrite some fields of an existing category saving non-editables" +msgstr "שכתוב שדות מסוימים בקטגוריה קיימת תוך שמירת שדות שאינם ניתנים לעריכה" + +#: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 +#: core/graphene/object_types.py:117 core/graphene/object_types.py:207 +#: core/graphene/object_types.py:509 +msgid "SEO Meta snapshot" +msgstr "תמונת מצב SEO Meta" + +#: core/docs/drf/viewsets.py:156 +msgid "returns a snapshot of the category's SEO meta data" +msgstr "מחזיר תמונת מצב של מטא-נתוני SEO של הקטגוריה" + +#: core/docs/drf/viewsets.py:161 +msgid "Category UUID or slug" +msgstr "קטגוריה UUID או slug" + +#: core/docs/drf/viewsets.py:174 +msgid "list all orders (simple view)" +msgstr "הצג את כל הקטגוריות (תצוגה פשוטה)" + +#: core/docs/drf/viewsets.py:175 +msgid "for non-staff users, only their own orders are returned." +msgstr "למשתמשים שאינם אנשי צוות, מוצגות רק ההזמנות שלהם." + +#: core/docs/drf/viewsets.py:181 +msgid "" +"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" + +#: core/docs/drf/viewsets.py:188 +msgid "Filter orders with buy_time >= this ISO 8601 datetime" +msgstr "סנן הזמנות עם buy_time >= תאריך ושעה זה ב-ISO 8601" + +#: core/docs/drf/viewsets.py:193 +msgid "Filter orders with buy_time <= this ISO 8601 datetime" +msgstr "סנן הזמנות עם buy_time <= תאריך ושעה זה ב-ISO 8601" + +#: core/docs/drf/viewsets.py:198 +msgid "Filter by exact order UUID" +msgstr "סינון לפי UUID של הזמנה מדויק" + +#: core/docs/drf/viewsets.py:203 +msgid "Filter by exact human-readable order ID" +msgstr "סינון לפי מספר הזמנה מדויק הניתן לקריאה על ידי בני אדם" + +#: core/docs/drf/viewsets.py:208 +msgid "Filter by user's email (case-insensitive exact match)" +msgstr "" +"סינון לפי כתובת הדוא\"ל של המשתמש (התאמה מדויקת ללא הבחנה בין אותיות רישיות " +"לאותיות קטנות)" + +#: core/docs/drf/viewsets.py:213 +msgid "Filter by user's UUID" +msgstr "סינון לפי UUID של המשתמש" + +#: core/docs/drf/viewsets.py:218 +msgid "Filter by order status (case-insensitive substring match)" +msgstr "" +"סינון לפי סטטוס הזמנה (התאמת תת-מחרוזת ללא הבחנה בין אותיות גדולות וקטנות)" + +#: core/docs/drf/viewsets.py:224 +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')." +msgstr "" +"מיין לפי אחד מהפרמטרים הבאים: uuid, human_readable_id, user_email, user, " +"status, created, modified, buy_time, random. הוסף קידומת '-' עבור מיון יורד " +"(לדוגמה, '-buy_time')." + +#: core/docs/drf/viewsets.py:233 +msgid "retrieve a single order (detailed view)" +msgstr "איתור קטגוריה אחת (תצוגה מפורטת)" + +#: core/docs/drf/viewsets.py:237 +msgid "create an order" +msgstr "צור תכונה" + +#: core/docs/drf/viewsets.py:238 +msgid "doesn't work for non-staff users." +msgstr "לא עובד עבור משתמשים שאינם עובדים." + +#: core/docs/drf/viewsets.py:242 +msgid "delete an order" +msgstr "מחיקת תכונה" + +#: core/docs/drf/viewsets.py:246 +msgid "rewrite an existing order saving non-editables" +msgstr "שכתוב קטגוריה קיימת תוך שמירת פריטים שאינם ניתנים לעריכה" + +#: core/docs/drf/viewsets.py:250 +msgid "rewrite some fields of an existing order saving non-editables" +msgstr "שכתוב שדות מסוימים בקטגוריה קיימת תוך שמירת שדות שאינם ניתנים לעריכה" + +#: core/docs/drf/viewsets.py:254 +msgid "purchase an order" +msgstr "מחיר הרכישה בעת ההזמנה" + +#: core/docs/drf/viewsets.py:256 +msgid "" +"finalizes the order purchase. if `force_balance` is used, the purchase is " +"completed using the user's balance; if `force_payment` is used, a " +"transaction is initiated." +msgstr "" +"מסיים את רכישת ההזמנה. אם נעשה שימוש ב-`force_balance`, הרכישה תושלם באמצעות" +" היתרה של המשתמש; אם נעשה שימוש ב-`force_payment`, תתבצע עסקה." + +#: core/docs/drf/viewsets.py:268 core/graphene/mutations.py:324 +msgid "purchase an order without account creation" +msgstr "לרכוש הזמנה ללא יצירת חשבון" + +#: core/docs/drf/viewsets.py:269 +msgid "finalizes the order purchase for a non-registered user." +msgstr "מסיים את רכישת ההזמנה עבור משתמש לא רשום." + +#: core/docs/drf/viewsets.py:277 +msgid "add product to order" +msgstr "הוסף מוצר להזמנה" + +#: core/docs/drf/viewsets.py:278 +msgid "" +"adds a product to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "מוסיף מוצר להזמנה באמצעות `product_uuid` ו-`attributes` שסופקו." + +#: core/docs/drf/viewsets.py:283 +msgid "add a list of products to order, quantities will not count" +msgstr "הוסף רשימת מוצרים להזמנה, הכמויות לא ייספרו" + +#: core/docs/drf/viewsets.py:284 +msgid "" +"adds a list of products to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"מוסיף רשימת מוצרים להזמנה באמצעות `product_uuid` ו-`attributes` שסופקו." + +#: core/docs/drf/viewsets.py:289 +msgid "remove product from order" +msgstr "הסר מוצר מההזמנה" + +#: core/docs/drf/viewsets.py:290 +msgid "" +"removes a product from an order using the provided `product_uuid` and " +"`attributes`." +msgstr "מסיר מוצר מהזמנה באמצעות `product_uuid` ו-`attributes` שסופקו." + +#: core/docs/drf/viewsets.py:295 +msgid "remove product from order, quantities will not count" +msgstr "הסר מוצר מההזמנה, הכמויות לא ייספרו" + +#: core/docs/drf/viewsets.py:296 +msgid "" +"removes a list of products from an order using the provided `product_uuid` " +"and `attributes`" +msgstr "" +"מסיר רשימת מוצרים מהזמנה באמצעות `product_uuid` ו-`attributes` שסופקו." + +#: core/docs/drf/viewsets.py:304 +msgid "list all wishlists (simple view)" +msgstr "הצג את כל התכונות (תצוגה פשוטה)" + +#: core/docs/drf/viewsets.py:305 +msgid "for non-staff users, only their own wishlists are returned." +msgstr "למשתמשים שאינם אנשי צוות, מוצגות רק רשימות המשאלות שלהם." + +#: core/docs/drf/viewsets.py:309 +msgid "retrieve a single wishlist (detailed view)" +msgstr "איתור תכונה בודדת (תצוגה מפורטת)" + +#: core/docs/drf/viewsets.py:313 +msgid "create an wishlist" +msgstr "צור תכונה" + +#: core/docs/drf/viewsets.py:314 +msgid "Doesn't work for non-staff users." +msgstr "לא עובד עבור משתמשים שאינם עובדים." + +#: core/docs/drf/viewsets.py:318 +msgid "delete an wishlist" +msgstr "מחיקת תכונה" + +#: core/docs/drf/viewsets.py:322 +msgid "rewrite an existing wishlist saving non-editables" +msgstr "שכתוב תכונה קיימת תוך שמירת תכונות שאינן ניתנות לעריכה" + +#: core/docs/drf/viewsets.py:326 +msgid "rewrite some fields of an existing wishlist saving non-editables" +msgstr "שכתוב שדות מסוימים של תכונה קיימת תוך שמירת שדות שאינם ניתנים לעריכה" + +#: core/docs/drf/viewsets.py:330 +msgid "add product to wishlist" +msgstr "הוסף מוצר להזמנה" + +#: core/docs/drf/viewsets.py:331 +msgid "adds a product to an wishlist using the provided `product_uuid`" +msgstr "מוסיף מוצר לרשימת המשאלות באמצעות `product_uuid` שסופק." + +#: core/docs/drf/viewsets.py:336 +msgid "remove product from wishlist" +msgstr "הסר מוצר מרשימת המשאלות" + +#: core/docs/drf/viewsets.py:337 +msgid "removes a product from an wishlist using the provided `product_uuid`" +msgstr "מסיר מוצר מרשימת המשאלות באמצעות `product_uuid` שסופק." + +#: core/docs/drf/viewsets.py:342 +msgid "add many products to wishlist" +msgstr "הוסף מוצרים רבים לרשימת המשאלות" + +#: core/docs/drf/viewsets.py:343 +msgid "adds many products to an wishlist using the provided `product_uuids`" +msgstr "מוסיף מוצרים רבים לרשימת המשאלות באמצעות `product_uuids` שסופק." + +#: core/docs/drf/viewsets.py:348 +msgid "remove many products from wishlist" +msgstr "הסר מוצר מההזמנה" + +#: core/docs/drf/viewsets.py:349 +msgid "" +"removes many products from an wishlist using the provided `product_uuids`" +msgstr "מסיר מוצרים רבים מרשימת המשאלות באמצעות `product_uuids` שסופק." + +#: core/docs/drf/viewsets.py:356 +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" +"• **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" +"`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`" + +#: core/docs/drf/viewsets.py:372 core/docs/drf/viewsets.py:373 +msgid "list all products (simple view)" +msgstr "הצג את כל המוצרים (תצוגה פשוטה)" + +#: core/docs/drf/viewsets.py:378 +msgid "(exact) Product UUID" +msgstr "(מדויק) UUID של המוצר" + +#: core/docs/drf/viewsets.py:384 +msgid "(icontains) Product name" +msgstr "(icontains) שם המוצר" + +#: core/docs/drf/viewsets.py:390 +msgid "(list) Category names, case-insensitive" +msgstr "(רשימה) שמות קטגוריות, ללא הבחנה בין אותיות גדולות וקטנות" + +#: core/docs/drf/viewsets.py:396 +msgid "(exact) Category UUID" +msgstr "(מדויק) UUID של קטגוריה" + +#: core/docs/drf/viewsets.py:402 +msgid "(list) Tag names, case-insensitive" +msgstr "(רשימה) שמות תגיות, ללא הבחנה בין אותיות גדולות וקטנות" + +#: core/docs/drf/viewsets.py:408 +msgid "(gte) Minimum stock price" +msgstr "(gte) מחיר מניה מינימלי" + +#: core/docs/drf/viewsets.py:414 +msgid "(lte) Maximum stock price" +msgstr "(lte) מחיר מניה מקסימלי" + +#: core/docs/drf/viewsets.py:420 +msgid "(exact) Only active products" +msgstr "(מדויק) רק מוצרים פעילים" + +#: core/docs/drf/viewsets.py:426 +msgid "(iexact) Brand name" +msgstr "(iexact) שם המותג" + +#: core/docs/drf/viewsets.py:438 +msgid "(gt) Minimum stock quantity" +msgstr "(gt) כמות מלאי מינימלית" + +#: core/docs/drf/viewsets.py:444 +msgid "(exact) Digital vs. physical" +msgstr "(מדויק) דיגיטלי לעומת פיזי" + +#: core/docs/drf/viewsets.py:451 +msgid "" +"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" + +#: core/docs/drf/viewsets.py:465 core/docs/drf/viewsets.py:466 +msgid "retrieve a single product (detailed view)" +msgstr "איתור מוצר בודד (תצוגה מפורטת)" + +#: core/docs/drf/viewsets.py:471 core/docs/drf/viewsets.py:495 +#: core/docs/drf/viewsets.py:511 core/docs/drf/viewsets.py:527 +#: core/docs/drf/viewsets.py:543 core/docs/drf/viewsets.py:559 +msgid "Product UUID or slug" +msgstr "UUID או Slug של המוצר" + +#: core/docs/drf/viewsets.py:481 core/docs/drf/viewsets.py:482 +msgid "create a product" +msgstr "צור מוצר" + +#: core/docs/drf/viewsets.py:489 core/docs/drf/viewsets.py:490 +msgid "rewrite an existing product, preserving non-editable fields" +msgstr "שכתוב מוצר קיים, תוך שמירה על שדות שאינם ניתנים לעריכה" + +#: core/docs/drf/viewsets.py:505 core/docs/drf/viewsets.py:506 +msgid "" +"update some fields of an existing product, preserving non-editable fields" +msgstr "עדכן שדות מסוימים של מוצר קיים, תוך שמירה על שדות שאינם ניתנים לעריכה" + +#: core/docs/drf/viewsets.py:521 core/docs/drf/viewsets.py:522 +msgid "delete a product" +msgstr "מחק מוצר" + +#: core/docs/drf/viewsets.py:537 core/docs/drf/viewsets.py:538 +msgid "lists all permitted feedbacks for a product" +msgstr "מפרט את כל המשובים המותרים עבור מוצר" + +#: core/docs/drf/viewsets.py:554 +msgid "returns a snapshot of the product's SEO meta data" +msgstr "מחזיר תמונת מצב של מטא-נתוני SEO של המוצר" + +#: core/docs/drf/viewsets.py:572 +msgid "list all addresses" +msgstr "רשימת כל הכתובות" + +#: core/docs/drf/viewsets.py:579 +msgid "retrieve a single address" +msgstr "איתור כתובת אחת" + +#: core/docs/drf/viewsets.py:586 +msgid "create a new address" +msgstr "צור כתובת חדשה" + +#: core/docs/drf/viewsets.py:594 +msgid "delete an address" +msgstr "מחק כתובת" + +#: core/docs/drf/viewsets.py:601 +msgid "update an entire address" +msgstr "עדכון כתובת שלמה" + +#: core/docs/drf/viewsets.py:609 +msgid "partially update an address" +msgstr "עדכון חלקי של כתובת" + +#: core/docs/drf/viewsets.py:617 +msgid "autocomplete address suggestions" +msgstr "השלמת כתובת אוטומטית" + +#: core/docs/drf/viewsets.py:622 +msgid "raw data query string, please append with data from geo-IP endpoint" +msgstr "מחרוזת שאילתת נתונים גולמיים, אנא הוסף נתונים מנקודת הקצה של geo-IP" + +#: core/docs/drf/viewsets.py:628 +msgid "limit the results amount, 1 < limit < 10, default: 5" +msgstr "מגביל את כמות התוצאות, 1 < limit < 10, ברירת מחדל: 5" + +#: core/docs/drf/viewsets.py:641 +msgid "list all feedbacks (simple view)" +msgstr "הצג את כל המשובים (תצוגה פשוטה)" + +#: core/docs/drf/viewsets.py:645 +msgid "retrieve a single feedback (detailed view)" +msgstr "איתור משוב בודד (תצוגה מפורטת)" + +#: core/docs/drf/viewsets.py:649 +msgid "create a feedback" +msgstr "ליצור משוב" + +#: core/docs/drf/viewsets.py:653 +msgid "delete a feedback" +msgstr "מחק משוב" + +#: core/docs/drf/viewsets.py:657 +msgid "rewrite an existing feedback saving non-editables" +msgstr "לשכתב משוב קיים תוך שמירת פריטים שאינם ניתנים לעריכה" + +#: core/docs/drf/viewsets.py:661 +msgid "rewrite some fields of an existing feedback saving non-editables" +msgstr "לשכתב כמה שדות של משוב קיים תוך שמירת שדות שאינם ניתנים לעריכה" + +#: core/docs/drf/viewsets.py:668 +msgid "list all order–product relations (simple view)" +msgstr "רשימת כל קשרי ההזמנות-מוצרים (תצוגה פשוטה)" + +#: core/docs/drf/viewsets.py:675 +msgid "retrieve a single order–product relation (detailed view)" +msgstr "איתור קשר יחיד בין הזמנה למוצר (תצוגה מפורטת)" + +#: core/docs/drf/viewsets.py:682 +msgid "create a new order–product relation" +msgstr "יצירת קשר חדש בין הזמנה למוצר" + +#: core/docs/drf/viewsets.py:689 +msgid "replace an existing order–product relation" +msgstr "החלפת קשר בין הזמנה למוצר קיים" + +#: core/docs/drf/viewsets.py:696 +msgid "partially update an existing order–product relation" +msgstr "עדכון חלקי של קשר בין הזמנה למוצר קיים" + +#: core/docs/drf/viewsets.py:703 +msgid "delete an order–product relation" +msgstr "מחיקת קשר בין הזמנה למוצר" + +#: core/docs/drf/viewsets.py:710 +msgid "add or remove feedback on an order–product relation" +msgstr "הוספה או הסרה של משוב על קשר בין הזמנה למוצר" + +#: core/elasticsearch/__init__.py:105 +msgid "no search term provided." +msgstr "לא צויין מונח חיפוש." + +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 +msgid "UUID" +msgstr "UUID" + +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 +msgid "Name" +msgstr "שם" + +#: core/filters.py:66 core/filters.py:562 +msgid "Categories" +msgstr "קטגוריות" + +#: core/filters.py:68 +msgid "Categories Slugs" +msgstr "קטגוריות שבלולים" + +#: core/filters.py:69 core/filters.py:437 +msgid "Tags" +msgstr "תגיות" + +#: core/filters.py:70 +msgid "Min Price" +msgstr "מחיר מינימום" + +#: core/filters.py:71 +msgid "Max Price" +msgstr "מחיר מקסימלי" + +#: core/filters.py:72 +msgid "Is Active" +msgstr "פעיל" + +#: core/filters.py:73 +msgid "Brand" +msgstr "מותג" + +#: core/filters.py:74 +msgid "Attributes" +msgstr "תכונות" + +#: core/filters.py:75 +msgid "Quantity" +msgstr "כמות" + +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 +msgid "Slug" +msgstr "שבלול" + +#: core/filters.py:77 +msgid "Is Digital" +msgstr "האם דיגיטלי" + +#: core/filters.py:78 +msgid "Include sub-categories" +msgstr "כלול תת-קטגוריות" + +#: core/filters.py:81 +msgid "Include personal ordered" +msgstr "כלול מוצרים שהוזמנו באופן אישי" + +#: core/filters.py:83 core/models.py:538 +msgid "SKU" +msgstr "מספר קטלוגי" + +#: core/filters.py:166 +msgid "there must be a category_uuid to use include_subcategories flag" +msgstr "חייב להיות category_uuid כדי להשתמש בדגל include_subcategories" + +#: core/filters.py:356 +msgid "Search (ID, product name or part number)" +msgstr "חיפוש (מזהה, שם מוצר או מספר חלק)" + +#: core/filters.py:359 +msgid "Bought after (inclusive)" +msgstr "נקנה לאחר (כולל)" + +#: core/filters.py:360 +msgid "Bought before (inclusive)" +msgstr "נקנה לפני כן (כולל)" + +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 +msgid "User email" +msgstr "דוא\"ל המשתמש" + +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 +msgid "User UUID" +msgstr "UUID של המשתמש" + +#: core/filters.py:365 +msgid "Status" +msgstr "סטטוס" + +#: core/filters.py:369 +msgid "Human Readable ID" +msgstr "מזהה קריא על ידי בני אדם" + +#: core/filters.py:430 +msgid "Parent" +msgstr "הורה" + +#: core/filters.py:434 +msgid "Whole category(has at least 1 product or not)" +msgstr "קטגוריה שלמה (יש לפחות מוצר אחד או לא)" + +#: core/filters.py:438 +msgid "Level" +msgstr "רמה" + +#: core/filters.py:598 +msgid "Product UUID" +msgstr "UUID של המוצר" + +#: core/graphene/mutations.py:39 +msgid "key to look for in or set into the cache" +msgstr "מפתח לחיפוש או להגדרה במטמון" + +#: core/graphene/mutations.py:40 +msgid "data to store in cache" +msgstr "נתונים לאחסון במטמון" + +#: core/graphene/mutations.py:43 +msgid "timeout in seconds to set the data for into the cache" +msgstr "פסק זמן בשניות להגדרת הנתונים במטמון" + +#: core/graphene/mutations.py:46 +msgid "cached data" +msgstr "נתונים במטמון" + +#: core/graphene/mutations.py:60 +msgid "camelized JSON data from the requested URL" +msgstr "נתוני JSON שעברו קמלאיזציה מה-URL המבוקש" + +#: core/graphene/mutations.py:65 core/views.py:360 +msgid "only URLs starting with http(s):// are allowed" +msgstr "רק כתובות URL המתחילות ב-http(s):// מותרות" + +#: core/graphene/mutations.py:80 +msgid "add a product to the order" +msgstr "הוסף מוצר להזמנה" + +#: core/graphene/mutations.py:101 core/graphene/mutations.py:127 +#: core/graphene/mutations.py:232 core/graphene/mutations.py:279 +#, python-brace-format +msgid "order {order_uuid} not found" +msgstr "ההזמנה {order_uuid} לא נמצאה!" + +#: core/graphene/mutations.py:106 core/graphene/mutations.py:153 +msgid "remove a product from the order" +msgstr "הסר מוצר מההזמנה" + +#: core/graphene/mutations.py:132 +msgid "remove all products from the order" +msgstr "הסר את כל המוצרים מההזמנה" + +#: core/graphene/mutations.py:175 +msgid "buy an order" +msgstr "קנה הזמנה" + +#: core/graphene/mutations.py:204 core/graphene/mutations.py:257 +msgid "please provide either order_uuid or order_hr_id - mutually exclusive" +msgstr "אנא ספק את order_uuid או order_hr_id - אחד מהם בלבד!" + +#: core/graphene/mutations.py:229 core/graphene/mutations.py:486 +#: core/graphene/mutations.py:527 core/viewsets.py:821 +msgid "wrong type came from order.buy() method: {type(instance)!s}" +msgstr "סוג שגוי הגיע משיטת order.buy(): {type(instance)!s}" + +#: core/graphene/mutations.py:237 +msgid "perform an action on a list of products in the order" +msgstr "בצע פעולה ברשימת המוצרים בהזמנה" + +#: core/graphene/mutations.py:242 +msgid "remove/add" +msgstr "הסר/הוסף" + +#: core/graphene/mutations.py:274 core/graphene/mutations.py:314 +msgid "action must be either add or remove" +msgstr "הפעולה חייבת להיות \"הוספה\" או \"הסרה\"!" + +#: core/graphene/mutations.py:284 +msgid "perform an action on a list of products in the wishlist" +msgstr "בצע פעולה ברשימת המוצרים ברשימת המשאלות" + +#: core/graphene/mutations.py:302 +msgid "please provide wishlist_uuid value" +msgstr "אנא ספק את הערך `wishlist_uuid`." + +#: core/graphene/mutations.py:319 core/graphene/mutations.py:392 +#: core/graphene/mutations.py:419 core/graphene/mutations.py:446 +#: core/graphene/mutations.py:489 +#, python-brace-format +msgid "wishlist {wishlist_uuid} not found" +msgstr "רשימת המשאלות {wishlist_uuid} לא נמצאה!" + +#: core/graphene/mutations.py:370 +msgid "add a product to the wishlist" +msgstr "הוסף מוצר להזמנה" + +#: core/graphene/mutations.py:397 +msgid "remove a product from the wishlist" +msgstr "הסר מוצר מההזמנה" + +#: core/graphene/mutations.py:424 +msgid "remove all products from the wishlist" +msgstr "הסר מוצר מההזמנה" + +#: core/graphene/mutations.py:451 +msgid "buy all products from the wishlist" +msgstr "הסר מוצר מההזמנה" + +#: core/graphene/mutations.py:494 +msgid "buy a product" +msgstr "קנה הזמנה" + +#: core/graphene/mutations.py:500 +msgid "" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" +msgstr "אנא שלחו את התכונות כמחרוזת מעוצבת כך: attr1=value1,attr2=value2" + +#: core/graphene/mutations.py:532 +msgid "add or delete a feedback for orderproduct" +msgstr "הוספה או מחיקה של משוב עבור המוצר שהוזמן" + +#: core/graphene/mutations.py:555 +msgid "action must be either `add` or `remove`" +msgstr "הפעולה חייבת להיות `add` או `remove`!" + +#: core/graphene/mutations.py:558 +#, python-brace-format +msgid "order product {order_product_uuid} not found" +msgstr "המוצר {order_product_uuid} לא נמצא!" + +#: core/graphene/mutations.py:621 +msgid "original address string provided by the user" +msgstr "מחרוזת הכתובת המקורית שסופקה על ידי המשתמש" + +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 +#: core/viewsets.py:824 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} אינו קיים: {uuid}!" + +#: core/graphene/mutations.py:668 +msgid "limit must be between 1 and 10" +msgstr "הגבול חייב להיות בין 1 ל-10" + +#: core/graphene/mutations.py:713 +msgid "elasticsearch - works like a charm" +msgstr "ElasticSearch - עובד כמו קסם" + +#: core/graphene/object_types.py:82 core/graphene/object_types.py:397 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 +msgid "attributes" +msgstr "תכונות" + +#: core/graphene/object_types.py:95 +msgid "grouped attributes" +msgstr "תכונות מקובצות" + +#: core/graphene/object_types.py:102 +msgid "groups of attributes" +msgstr "קבוצות תכונות" + +#: core/graphene/object_types.py:116 core/graphene/object_types.py:193 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 +msgid "categories" +msgstr "קטגוריות" + +#: core/graphene/object_types.py:124 core/models.py:395 +msgid "brands" +msgstr "מותגים" + +#: core/graphene/object_types.py:195 +msgid "category image url" +msgstr "קטגוריות" + +#: core/graphene/object_types.py:196 core/graphene/object_types.py:344 +#: core/models.py:249 +msgid "markup percentage" +msgstr "אחוז הסימון" + +#: core/graphene/object_types.py:199 +msgid "which attributes and values can be used for filtering this category." +msgstr "אילו תכונות וערכים ניתן להשתמש בהם לסינון קטגוריה זו." + +#: core/graphene/object_types.py:203 +msgid "" +"minimum and maximum prices for products in this category, if available." +msgstr "מחירים מינימליים ומקסימליים עבור מוצרים בקטגוריה זו, אם זמינים." + +#: core/graphene/object_types.py:205 +msgid "tags for this category" +msgstr "תגיות עבור קטגוריה זו" + +#: core/graphene/object_types.py:206 +msgid "products in this category" +msgstr "מוצרים בקטגוריה זו" + +#: core/graphene/object_types.py:351 core/models.py:155 +msgid "vendors" +msgstr "ספקים" + +#: core/graphene/object_types.py:355 +msgid "Latitude (Y coordinate)" +msgstr "קו רוחב (קואורדינטת Y)" + +#: core/graphene/object_types.py:356 +msgid "Longitude (X coordinate)" +msgstr "אורך (קואורדינטת X)" + +#: core/graphene/object_types.py:385 +msgid "comment" +msgstr "איך" + +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 +msgid "rating value from 1 to 10, inclusive, or 0 if not set." +msgstr "ערך דירוג בין 1 ל-10, כולל, או 0 אם לא הוגדר." + +#: core/graphene/object_types.py:393 +msgid "represents feedback from a user." +msgstr "מייצג משוב ממשתמש." + +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 +msgid "notifications" +msgstr "הודעות" + +#: core/graphene/object_types.py:399 +msgid "download url for this order product if applicable" +msgstr "כתובת URL להורדת המוצר שהוזמן, אם רלוונטי" + +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "משוב" + +#: core/graphene/object_types.py:434 +msgid "a list of order products in this order" +msgstr "רשימת המוצרים בהזמנה זו" + +#: core/graphene/object_types.py:436 core/models.py:1198 +msgid "billing address" +msgstr "כתובת לחיוב" + +#: core/graphene/object_types.py:439 +msgid "" +"shipping address for this order, leave blank if same as billing address or " +"if not applicable" +msgstr "" +"כתובת משלוח עבור הזמנה זו, השאר ריק אם זהה לכתובת החיוב או אם לא רלוונטי" + +#: core/graphene/object_types.py:441 +msgid "total price of this order" +msgstr "המחיר הכולל של הזמנה זו" + +#: core/graphene/object_types.py:442 +msgid "total quantity of products in order" +msgstr "כמות המוצרים הכוללת בהזמנה" + +#: core/graphene/object_types.py:443 +msgid "are all products in the order digital" +msgstr "האם כל המוצרים בהזמנה הם דיגיטליים?" + +#: core/graphene/object_types.py:446 +msgid "transactions for this order" +msgstr "עסקאות עבור הזמנה זו" + +#: core/graphene/object_types.py:465 core/models.py:1262 +msgid "orders" +msgstr "הזמנות" + +#: core/graphene/object_types.py:486 +msgid "image url" +msgstr "כתובת URL של התמונה" + +#: core/graphene/object_types.py:493 +msgid "product's images" +msgstr "תמונות המוצר" + +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 +msgid "category" +msgstr "קטגוריה" + +#: core/graphene/object_types.py:502 core/models.py:1939 +msgid "feedbacks" +msgstr "משובים" + +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 +msgid "brand" +msgstr "מותג" + +#: core/graphene/object_types.py:504 core/models.py:101 +msgid "attribute groups" +msgstr "קבוצות תכונות" + +#: core/graphene/object_types.py:505 +#: core/templates/digital_order_created_email.html:111 +#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/shipped_order_created_email.html:109 +#: core/templates/shipped_order_delivered_email.html:109 +msgid "price" +msgstr "מחיר" + +#: core/graphene/object_types.py:506 +#: core/templates/digital_order_created_email.html:110 +#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/shipped_order_created_email.html:108 +#: core/templates/shipped_order_delivered_email.html:108 +msgid "quantity" +msgstr "כמות" + +#: core/graphene/object_types.py:507 +msgid "number of feedbacks" +msgstr "מספר המשובים" + +#: core/graphene/object_types.py:508 +msgid "only available for personal orders" +msgstr "מוצרים זמינים רק להזמנות אישיות" + +#: core/graphene/object_types.py:534 core/models.py:548 +msgid "products" +msgstr "מוצרים" + +#: core/graphene/object_types.py:634 +msgid "promocodes" +msgstr "קודי קידום מכירות" + +#: core/graphene/object_types.py:644 +msgid "products on sale" +msgstr "מוצרים במבצע" + +#: core/graphene/object_types.py:651 core/models.py:843 +msgid "promotions" +msgstr "מבצעים" + +#: core/graphene/object_types.py:655 core/models.py:154 +msgid "vendor" +msgstr "ספק" + +#: core/graphene/object_types.py:656 core/models.py:547 +#: core/templates/digital_order_created_email.html:109 +#: core/templates/digital_order_delivered_email.html:107 +#: core/templates/shipped_order_created_email.html:107 +#: core/templates/shipped_order_delivered_email.html:107 +msgid "product" +msgstr "מוצר" + +#: core/graphene/object_types.py:667 core/models.py:868 +msgid "wishlisted products" +msgstr "מוצרים ברשימת המשאלות" + +#: core/graphene/object_types.py:673 core/models.py:885 +msgid "wishlists" +msgstr "רשימות משאלות" + +#: core/graphene/object_types.py:677 +msgid "tagged products" +msgstr "מוצרים מתויגים" + +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 +msgid "product tags" +msgstr "תגיות מוצר" + +#: core/graphene/object_types.py:688 +msgid "tagged categories" +msgstr "קטגוריות מתויגות" + +#: core/graphene/object_types.py:695 +msgid "categories tags" +msgstr "תגיות קטגוריות" + +#: core/graphene/object_types.py:699 +msgid "project name" +msgstr "שם הפרויקט" + +#: core/graphene/object_types.py:700 +msgid "company email" +msgstr "דוא\"ל החברה" + +#: core/graphene/object_types.py:701 +msgid "company name" +msgstr "שם החברה" + +#: core/graphene/object_types.py:702 +msgid "company address" +msgstr "כתובת החברה" + +#: core/graphene/object_types.py:703 +msgid "company phone number" +msgstr "מספר הטלפון של החברה" + +#: core/graphene/object_types.py:704 +msgid "email from, sometimes it must be used instead of host user value" +msgstr "'email from', לעיתים יש להשתמש בו במקום בערך המשתמש המארח" + +#: core/graphene/object_types.py:705 +msgid "email host user" +msgstr "משתמש מארח דוא\"ל" + +#: core/graphene/object_types.py:706 +msgid "maximum amount for payment" +msgstr "סכום מקסימלי לתשלום" + +#: core/graphene/object_types.py:707 +msgid "minimum amount for payment" +msgstr "סכום מינימום לתשלום" + +#: core/graphene/object_types.py:708 +msgid "analytics data" +msgstr "נתוני ניתוח" + +#: core/graphene/object_types.py:709 +msgid "advertisement data" +msgstr "נתוני פרסום" + +#: core/graphene/object_types.py:712 +msgid "company configuration" +msgstr "תצורה" + +#: core/graphene/object_types.py:716 +msgid "language code" +msgstr "קוד שפה" + +#: core/graphene/object_types.py:717 +msgid "language name" +msgstr "שם השפה" + +#: core/graphene/object_types.py:718 +msgid "language flag, if exists :)" +msgstr "דגל השפה, אם קיים :)" + +#: core/graphene/object_types.py:721 +msgid "supported languages" +msgstr "קבל רשימה של השפות הנתמכות" + +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 +msgid "products search results" +msgstr "תוצאות חיפוש מוצרים" + +#: core/graphene/object_types.py:755 +msgid "posts search results" +msgstr "תוצאות חיפוש מוצרים" + +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"מייצג קבוצת תכונות, שיכולה להיות היררכית. מחלקה זו משמשת לניהול וארגון " +"קבוצות תכונות. לקבוצת תכונות יכולה להיות קבוצת אב, היוצרת מבנה היררכי. זה " +"יכול להיות שימושי לסיווג וניהול תכונות בצורה יעילה יותר במערכת מורכבת." + +#: core/models.py:86 +msgid "parent of this group" +msgstr "הורה של קבוצה זו" + +#: core/models.py:87 +msgid "parent attribute group" +msgstr "קבוצת תכונות הורה" + +#: core/models.py:91 core/models.py:92 +msgid "attribute group's name" +msgstr "שם קבוצת התכונות" + +#: core/models.py:100 core/models.py:628 +msgid "attribute group" +msgstr "קבוצת תכונות" + +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"מייצג ישות ספק המסוגלת לאחסן מידע אודות ספקים חיצוניים ודרישות האינטראקציה " +"שלהם. מחלקת הספק משמשת להגדרת וניהול מידע הקשור לספק חיצוני. היא מאחסנת את " +"שם הספק, פרטי האימות הנדרשים לתקשורת ואת אחוז התוספת המחיר המוחל על מוצרים " +"הנרכשים מהספק. מודל זה גם מתחזק מטא-נתונים ואילוצים נוספים, מה שהופך אותו " +"מתאים לשימוש במערכות המקיימות אינטראקציה עם ספקים צד שלישי." + +#: core/models.py:119 +msgid "stores credentials and endpoints required for vendor communication" +msgstr "מאחסן את פרטי ההזדהות ונקודות הקצה הנדרשים לתקשורת API של הספק" + +#: core/models.py:120 +msgid "authentication info" +msgstr "מידע אימות" + +#: core/models.py:125 +msgid "define the markup for products retrieved from this vendor" +msgstr "הגדר את הסימון עבור מוצרים שנרכשו מספק זה" + +#: core/models.py:126 +msgid "vendor markup percentage" +msgstr "אחוז תוספת הספק" + +#: core/models.py:130 +msgid "name of this vendor" +msgstr "שם הספק הזה" + +#: core/models.py:131 +msgid "vendor name" +msgstr "שם הספק" + +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"מייצג תגית מוצר המשמשת לסיווג או זיהוי מוצרים. מחלקת ProductTag נועדה לזהות " +"ולסווג מוצרים באופן ייחודי באמצעות שילוב של מזהה תגית פנימי ושם תצוגה " +"ידידותי למשתמש. היא תומכת בפעולות המיוצאות באמצעות mixins ומספקת התאמה אישית" +" של מטא-נתונים למטרות ניהוליות." + +#: core/models.py:175 core/models.py:206 +msgid "internal tag identifier for the product tag" +msgstr "מזהה תווית פנימי עבור תווית המוצר" + +#: core/models.py:176 core/models.py:207 +msgid "tag name" +msgstr "שם היום" + +#: core/models.py:180 core/models.py:211 +msgid "user-friendly name for the product tag" +msgstr "שם ידידותי למשתמש עבור תווית המוצר" + +#: core/models.py:181 core/models.py:212 +msgid "tag display name" +msgstr "שם תצוגה של התג" + +#: core/models.py:189 +msgid "product tag" +msgstr "תגית מוצר" + +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"מייצג תווית קטגוריה המשמשת למוצרים. מחלקה זו מדגמת תווית קטגוריה שניתן " +"להשתמש בה כדי לקשר ולסווג מוצרים. היא כוללת תכונות עבור מזהה תווית פנימי ושם" +" תצוגה ידידותי למשתמש." + +#: core/models.py:220 +msgid "category tag" +msgstr "תגית קטגוריה" + +#: core/models.py:221 core/models.py:293 +msgid "category tags" +msgstr "תגיות קטגוריה" + +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"מייצג ישות קטגוריה לארגון וקיבוץ פריטים קשורים במבנה היררכי. לקטגוריות " +"עשויות להיות יחסי היררכיה עם קטגוריות אחרות, התומכות ביחסי הורה-ילד. המחלקת " +"כוללת שדות למטא-נתונים וייצוג חזותי, המשמשים כבסיס לתכונות הקשורות " +"לקטגוריות. מחלקה זו משמשת בדרך כלל להגדרת וניהול קטגוריות מוצרים או קבוצות " +"דומות אחרות בתוך יישום, ומאפשרת למשתמשים או למנהלים לציין את השם, התיאור " +"וההיררכיה של הקטגוריות, וכן להקצות תכונות כגון תמונות, תגיות או עדיפות." + +#: core/models.py:240 +msgid "upload an image representing this category" +msgstr "העלה תמונה המייצגת קטגוריה זו" + +#: core/models.py:243 +msgid "category image" +msgstr "תמונה בקטגוריה" + +#: core/models.py:248 +msgid "define a markup percentage for products in this category" +msgstr "הגדר אחוז תוספת מחיר עבור מוצרים בקטגוריה זו" + +#: core/models.py:257 +msgid "parent of this category to form a hierarchical structure" +msgstr "הורה של קטגוריה זו כדי ליצור מבנה היררכי" + +#: core/models.py:258 +msgid "parent category" +msgstr "קטגוריה ראשית" + +#: core/models.py:263 +msgid "category name" +msgstr "שם הקטגוריה" + +#: core/models.py:264 +msgid "provide a name for this category" +msgstr "ציין שם לקטגוריה זו" + +#: core/models.py:271 +msgid "add a detailed description for this category" +msgstr "הוסף תיאור מפורט לקטגוריה זו" + +#: core/models.py:272 +msgid "category description" +msgstr "תיאור הקטגוריה" + +#: core/models.py:292 +msgid "tags that help describe or group this category" +msgstr "תגיות המסייעות לתאר או לקבץ קטגוריה זו" + +#: core/models.py:299 core/models.py:387 +msgid "priority" +msgstr "עדיפות" + +#: core/models.py:340 +msgid "name of this brand" +msgstr "שם המותג" + +#: core/models.py:341 +msgid "brand name" +msgstr "שם המותג" + +#: core/models.py:348 +msgid "upload a logo representing this brand" +msgstr "העלה לוגו המייצג את המותג הזה" + +#: core/models.py:350 +msgid "brand small image" +msgstr "תמונה קטנה של המותג" + +#: core/models.py:356 +msgid "upload a big logo representing this brand" +msgstr "העלה לוגו גדול המייצג את המותג הזה" + +#: core/models.py:358 +msgid "brand big image" +msgstr "תמונה גדולה של המותג" + +#: core/models.py:363 +msgid "add a detailed description of the brand" +msgstr "הוסף תיאור מפורט של המותג" + +#: core/models.py:364 +msgid "brand description" +msgstr "תיאור המותג" + +#: core/models.py:369 +msgid "optional categories that this brand is associated with" +msgstr "קטגוריות אופציונליות שהמותג הזה קשור אליהן" + +#: core/models.py:370 +msgid "associated categories" +msgstr "קטגוריות" + +#: core/models.py:400 +msgid "" +"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 ונכסים דיגיטליים. היא מהווה חלק ממערכת ניהול המלאי ומאפשרת " +"מעקב והערכה של מוצרים הזמינים מספקים שונים." + +#: core/models.py:412 +msgid "the vendor supplying this product stock" +msgstr "הספק המספק את מלאי המוצר הזה" + +#: core/models.py:413 +msgid "associated vendor" +msgstr "ספק נלווה" + +#: core/models.py:417 +msgid "final price to the customer after markups" +msgstr "המחיר הסופי ללקוח לאחר תוספות" + +#: core/models.py:418 +msgid "selling price" +msgstr "מחיר המכירה" + +#: core/models.py:423 +msgid "the product associated with this stock entry" +msgstr "המוצר הקשור לרישום המלאי הזה" + +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 +msgid "associated product" +msgstr "מוצר נלווה" + +#: core/models.py:431 +msgid "the price paid to the vendor for this product" +msgstr "המחיר ששולם למוכר עבור מוצר זה" + +#: core/models.py:432 +msgid "vendor purchase price" +msgstr "מחיר הרכישה של הספק" + +#: core/models.py:436 +msgid "available quantity of the product in stock" +msgstr "כמות המוצר הזמינה במלאי" + +#: core/models.py:437 +msgid "quantity in stock" +msgstr "כמות במלאי" + +#: core/models.py:441 +msgid "vendor-assigned SKU for identifying the product" +msgstr "SKU שהוקצה על ידי הספק לזיהוי המוצר" + +#: core/models.py:442 +msgid "vendor sku" +msgstr "מק\"ט הספק" + +#: core/models.py:448 +msgid "digital file associated with this stock if applicable" +msgstr "קובץ דיגיטלי הקשור למלאי זה, אם רלוונטי" + +#: core/models.py:449 +msgid "digital file" +msgstr "קובץ דיגיטלי" + +#: core/models.py:458 +msgid "stock entries" +msgstr "רישומים במלאי" + +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"מייצג מוצר עם תכונות כגון קטגוריה, מותג, תגיות, סטטוס דיגיטלי, שם, תיאור, " +"מספר חלק ו-slug. מספק תכונות שירות נלוות לאחזור דירוגים, ספירת משובים, מחיר," +" כמות והזמנות סה\"כ. מיועד לשימוש במערכת המטפלת במסחר אלקטרוני או בניהול " +"מלאי. מחלקה זו מתקשרת עם מודלים נלווים (כגון קטגוריה, מותג ותגית מוצר) " +"ומנהלת את המטמון עבור תכונות הנגישות בתדירות גבוהה כדי לשפר את הביצועים. הוא" +" משמש להגדרה ולעיבוד נתוני מוצר והמידע הקשור אליו בתוך יישום." + +#: core/models.py:476 +msgid "category this product belongs to" +msgstr "הקטגוריה אליה שייך מוצר זה" + +#: core/models.py:485 +msgid "optionally associate this product with a brand" +msgstr "באופן אופציונלי, ניתן לשייך מוצר זה למותג" + +#: core/models.py:491 +msgid "tags that help describe or group this product" +msgstr "תגיות המסייעות לתאר או לקבץ מוצר זה" + +#: core/models.py:496 +msgid "indicates whether this product is digitally delivered" +msgstr "מציין אם מוצר זה נמסר באופן דיגיטלי" + +#: core/models.py:497 +msgid "is product digital" +msgstr "האם המוצר הוא דיגיטלי?" + +#: core/models.py:503 +msgid "provide a clear identifying name for the product" +msgstr "ספק שם מזהה ברור למוצר" + +#: core/models.py:504 +msgid "product name" +msgstr "שם המוצר" + +#: core/models.py:509 core/models.py:831 +msgid "add a detailed description of the product" +msgstr "הוסף תיאור מפורט של המוצר" + +#: core/models.py:510 +msgid "product description" +msgstr "תיאור המוצר" + +#: core/models.py:517 +msgid "part number for this product" +msgstr "מספר חלק עבור מוצר זה" + +#: core/models.py:518 +msgid "part number" +msgstr "מספר חלק" + +#: core/models.py:537 +msgid "stock keeping unit for this product" +msgstr "יחידת אחסון מלאי עבור מוצר זה" + +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" +"מייצג תכונה במערכת. מחלקה זו משמשת להגדרת תכונות ולניהולן. תכונות הן נתונים " +"הניתנים להתאמה אישית, שניתן לקשר לישויות אחרות. לתכונות יש קטגוריות, קבוצות," +" סוגי ערכים ושמות משויכים. המודל תומך בסוגים רבים של ערכים, כולל מחרוזת, " +"מספר שלם, מספר צף, בוליאני, מערך ואובייקט. הדבר מאפשר בניית נתונים דינמית " +"וגמישה." + +#: core/models.py:619 +msgid "category of this attribute" +msgstr "קטגוריה של תכונה זו" + +#: core/models.py:627 +msgid "group of this attribute" +msgstr "קבוצה של תכונה זו" + +#: core/models.py:633 +msgid "string" +msgstr "מחרוזת" + +#: core/models.py:634 +msgid "integer" +msgstr "יושרה" + +#: core/models.py:635 +msgid "float" +msgstr "צף" + +#: core/models.py:636 +msgid "boolean" +msgstr "בוליאני" + +#: core/models.py:637 +msgid "array" +msgstr "מערך" + +#: core/models.py:638 +msgid "object" +msgstr "אובייקט" + +#: core/models.py:640 +msgid "type of the attribute's value" +msgstr "סוג ערך התכונה" + +#: core/models.py:641 +msgid "value type" +msgstr "סוג ערך" + +#: core/models.py:646 +msgid "name of this attribute" +msgstr "שם התכונה הזו" + +#: core/models.py:647 +msgid "attribute's name" +msgstr "שם התכונה" + +#: core/models.py:653 +msgid "is filterable" +msgstr "ניתן לסינון" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "מציין אם ניתן להשתמש בתכונה זו לצורך סינון או לא" + +#: core/models.py:665 core/models.py:700 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "תכונה" + +#: core/models.py:699 +msgid "attribute of this value" +msgstr "תכונה של ערך זה" + +#: core/models.py:707 +msgid "the specific product associated with this attribute's value" +msgstr "המוצר הספציפי הקשור לערך של תכונה זו" + +#: core/models.py:713 +msgid "the specific value for this attribute" +msgstr "הערך הספציפי עבור תכונה זו" + +#: core/models.py:747 +msgid "provide alternative text for the image for accessibility" +msgstr "ספק טקסט חלופי לתמונה לצורך נגישות" + +#: core/models.py:748 +msgid "image alt text" +msgstr "טקסט חלופי לתמונה" + +#: core/models.py:751 +msgid "upload the image file for this product" +msgstr "העלה את קובץ התמונה עבור מוצר זה" + +#: core/models.py:752 core/models.py:777 +msgid "product image" +msgstr "תמונת מוצר" + +#: core/models.py:758 +msgid "determines the order in which images are displayed" +msgstr "קובע את סדר הצגת התמונות" + +#: core/models.py:759 +msgid "display priority" +msgstr "עדיפות תצוגה" + +#: core/models.py:764 +msgid "the product that this image represents" +msgstr "המוצר שהדימוי הזה מייצג" + +#: core/models.py:778 +msgid "product images" +msgstr "תמונות מוצרים" + +#: core/models.py:819 +msgid "percentage discount for the selected products" +msgstr "אחוז ההנחה עבור המוצרים שנבחרו" + +#: core/models.py:820 +msgid "discount percentage" +msgstr "אחוז ההנחה" + +#: core/models.py:825 +msgid "provide a unique name for this promotion" +msgstr "ציין שם ייחודי לקידום מכירות זה" + +#: core/models.py:826 +msgid "promotion name" +msgstr "שם המבצע" + +#: core/models.py:832 +msgid "promotion description" +msgstr "תיאור המבצע" + +#: core/models.py:837 +msgid "select which products are included in this promotion" +msgstr "בחר אילו מוצרים כלולים במבצע זה" + +#: core/models.py:838 +msgid "included products" +msgstr "מוצרים כלולים" + +#: core/models.py:842 +msgid "promotion" +msgstr "קידום" + +#: core/models.py:867 +msgid "products that the user has marked as wanted" +msgstr "מוצרים שהמשתמש סימן כנחשקים" + +#: core/models.py:875 +msgid "user who owns this wishlist" +msgstr "המשתמש שבבעלותו רשימת המשאלות הזו" + +#: core/models.py:876 +msgid "wishlist owner" +msgstr "בעל רשימת המשאלות" + +#: core/models.py:884 +msgid "wishlist" +msgstr "רשימת משאלות" + +#: core/models.py:951 +msgid "documentary" +msgstr "סרט תיעודי" + +#: core/models.py:952 +msgid "documentaries" +msgstr "סרטים תיעודיים" + +#: core/models.py:962 +msgid "unresolved" +msgstr "לא פתור" + +#: core/models.py:1008 +msgid "address line for the customer" +msgstr "שורת כתובת עבור הלקוח" + +#: core/models.py:1009 +msgid "address line" +msgstr "שורת כתובת" + +#: core/models.py:1011 +msgid "street" +msgstr "רחוב" + +#: core/models.py:1012 +msgid "district" +msgstr "מחוז" + +#: core/models.py:1013 +msgid "city" +msgstr "עיר" + +#: core/models.py:1014 +msgid "region" +msgstr "אזור" + +#: core/models.py:1015 +msgid "postal code" +msgstr "מיקוד" + +#: core/models.py:1016 +msgid "country" +msgstr "מדינה" + +#: core/models.py:1023 +msgid "geolocation point: (longitude, latitude)" +msgstr "נקודת מיקום גיאוגרפי (אורך, רוחב)" + +#: core/models.py:1026 +msgid "full JSON response from geocoder for this address" +msgstr "תגובה JSON מלאה מ-geocoder עבור כתובת זו" + +#: core/models.py:1031 +msgid "stored JSON response from the geocoding service" +msgstr "תגובת JSON שמורה משירות הגיאו-קידוד" + +#: core/models.py:1039 +msgid "address" +msgstr "כתובת" + +#: core/models.py:1040 +msgid "addresses" +msgstr "כתובות" + +#: core/models.py:1085 +msgid "unique code used by a user to redeem a discount" +msgstr "קוד ייחודי המשמש את המשתמש למימוש הנחה" + +#: core/models.py:1086 +msgid "promo code identifier" +msgstr "מזהה קוד קידום מכירות" + +#: core/models.py:1093 +msgid "fixed discount amount applied if percent is not used" +msgstr "סכום הנחה קבוע המוחל אם לא נעשה שימוש באחוזים" + +#: core/models.py:1094 +msgid "fixed discount amount" +msgstr "סכום הנחה קבוע" + +#: core/models.py:1100 +msgid "percentage discount applied if fixed amount is not used" +msgstr "אחוז ההנחה שיחול אם לא ייעשה שימוש בסכום הקבוע" + +#: core/models.py:1101 +msgid "percentage discount" +msgstr "אחוז ההנחה" + +#: core/models.py:1106 +msgid "timestamp when the promocode expires" +msgstr "חותמת זמן לתוקף הקוד המקדם מכירות" + +#: core/models.py:1107 +msgid "end validity time" +msgstr "תוקף הסוף" + +#: core/models.py:1112 +msgid "timestamp from which this promocode is valid" +msgstr "תאריך התחילה של תוקף קוד המבצע" + +#: core/models.py:1113 +msgid "start validity time" +msgstr "תחילת תוקף" + +#: core/models.py:1118 +msgid "timestamp when the promocode was used, blank if not used yet" +msgstr "חותמת זמן שבה נעשה שימוש בקוד המבצע, ריק אם טרם נעשה בו שימוש" + +#: core/models.py:1119 +msgid "usage timestamp" +msgstr "חותמת זמן שימוש" + +#: core/models.py:1124 +msgid "user assigned to this promocode if applicable" +msgstr "משתמש שהוקצה לקוד קידום מכירות זה, אם רלוונטי" + +#: core/models.py:1125 +msgid "assigned user" +msgstr "משתמש שהוקצה" + +#: core/models.py:1132 +msgid "promo code" +msgstr "קוד קידום מכירות" + +#: core/models.py:1133 +msgid "promo codes" +msgstr "קודי קידום מכירות" + +#: core/models.py:1140 +msgid "" +"only one type of discount should be defined (amount or percent), but not " +"both or neither." +msgstr "" +"יש להגדיר סוג הנחה אחד בלבד (סכום או אחוז), אך לא את שניהם או אף אחד מהם." + +#: core/models.py:1155 +msgid "promocode already used" +msgstr "קוד המבצע כבר נוצל" + +#: core/models.py:1171 +#, python-brace-format +msgid "invalid discount type for promocode {self.uuid}" +msgstr "סוג הנחה לא חוקי עבור קוד קידום מכירות {self.uuid}!" + +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"מייצג הזמנה שבוצעה על ידי משתמש. מחלקה זו מדמה הזמנה בתוך היישום, כולל " +"תכונותיה השונות כגון פרטי חיוב ומשלוח, סטטוס, משתמש קשור, התראות ופעולות " +"נלוות. להזמנות יכולות להיות מוצרים נלווים, ניתן להחיל עליהן מבצעים, להגדיר " +"כתובות ולעדכן פרטי משלוח או חיוב. כמו כן, הפונקציונליות תומכת בניהול המוצרים" +" במחזור החיים של ההזמנה." + +#: core/models.py:1197 +msgid "the billing address used for this order" +msgstr "כתובת החיוב המשמשת להזמנה זו" + +#: core/models.py:1205 +msgid "optional promo code applied to this order" +msgstr "קוד קידום מכירות אופציונלי שהוחל על הזמנה זו" + +#: core/models.py:1206 +msgid "applied promo code" +msgstr "קוד קידום מכירות שהוחל" + +#: core/models.py:1214 +msgid "the shipping address used for this order" +msgstr "כתובת המשלוח המשמשת להזמנה זו" + +#: core/models.py:1215 +msgid "shipping address" +msgstr "כתובת למשלוח" + +#: core/models.py:1221 +msgid "current status of the order in its lifecycle" +msgstr "הסטטוס הנוכחי של ההזמנה במחזור החיים שלה" + +#: core/models.py:1222 +msgid "order status" +msgstr "סטטוס ההזמנה" + +#: core/models.py:1227 core/models.py:1686 +msgid "json structure of notifications to display to users" +msgstr "" +"מבנה JSON של הודעות שיוצגו למשתמשים, בממשק המשתמש המנהלי נעשה שימוש בתצוגת " +"טבלה." + +#: core/models.py:1233 +msgid "json representation of order attributes for this order" +msgstr "ייצוג JSON של תכונות ההזמנה עבור הזמנה זו" + +#: core/models.py:1239 +msgid "the user who placed the order" +msgstr "המשתמש שהזמין את ההזמנה" + +#: core/models.py:1240 +msgid "user" +msgstr "משתמש" + +#: core/models.py:1246 +msgid "the timestamp when the order was finalized" +msgstr "החותמת הזמן שבה הושלמה ההזמנה" + +#: core/models.py:1247 +msgid "buy time" +msgstr "לקנות זמן" + +#: core/models.py:1254 +msgid "a human-readable identifier for the order" +msgstr "מזהה קריא לאדם עבור ההזמנה" + +#: core/models.py:1255 +msgid "human readable id" +msgstr "מזהה קריא על ידי בני אדם" + +#: core/models.py:1261 +msgid "order" +msgstr "הזמנה" + +#: core/models.py:1282 +msgid "a user must have only one pending order at a time" +msgstr "למשתמש יכול להיות רק הזמנה אחת בהמתנה בכל פעם!" + +#: core/models.py:1316 +msgid "you cannot add products to an order that is not a pending one" +msgstr "לא ניתן להוסיף מוצרים להזמנה שאינה בהמתנה." + +#: core/models.py:1321 +msgid "you cannot add inactive products to order" +msgstr "לא ניתן להוסיף מוצרים לא פעילים להזמנה" + +#: core/models.py:1338 +msgid "you cannot add more products than available in stock" +msgstr "לא ניתן להוסיף מוצרים מעבר למלאי הזמין" + +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 +msgid "you cannot remove products from an order that is not a pending one" +msgstr "לא ניתן להסיר מוצרים מהזמנה שאינה בהמתנה." + +#: core/models.py:1381 +#, python-brace-format +msgid "{name} does not exist with query <{query}>" +msgstr "{name} אינו קיים בשאילתה <{query}>!" + +#: core/models.py:1413 +msgid "promocode does not exist" +msgstr "קוד קידום מכירות אינו קיים" + +#: core/models.py:1419 +msgid "you can only buy physical products with shipping address specified" +msgstr "ניתן לרכוש מוצרים פיזיים רק עם ציון כתובת משלוח!" + +#: core/models.py:1438 +msgid "address does not exist" +msgstr "הכתובת אינה קיימת" + +#: core/models.py:1459 core/models.py:1528 +msgid "you can not buy at this moment, please try again in a few minutes" +msgstr "לא ניתן לבצע רכישה כרגע, אנא נסה שוב בעוד מספר דקות." + +#: core/models.py:1462 core/models.py:1524 +msgid "invalid force value" +msgstr "ערך כוח לא חוקי" + +#: core/models.py:1468 core/models.py:1531 +msgid "you cannot purchase an empty order!" +msgstr "אי אפשר לרכוש הזמנה ריקה!" + +#: core/models.py:1487 +msgid "you cannot buy an order without a user" +msgstr "אי אפשר לקנות הזמנה בלי משתמש!" + +#: core/models.py:1501 +msgid "a user without a balance cannot buy with balance" +msgstr "משתמש ללא יתרה לא יכול לקנות עם יתרה!" + +#: core/models.py:1506 +msgid "insufficient funds to complete the order" +msgstr "אין מספיק כסף כדי להשלים את ההזמנה" + +#: core/models.py:1540 +msgid "" +"you cannot buy without registration, please provide the following " +"information: customer name, customer email, customer phone number" +msgstr "" +"אינך יכול לרכוש ללא רישום, אנא ספק את הפרטים הבאים: שם הלקוח, דוא\"ל הלקוח, " +"מספר הטלפון של הלקוח" + +#: core/models.py:1549 +#, python-brace-format +msgid "" +"invalid payment method: {payment_method} from {available_payment_methods}" +msgstr "אמצעי תשלום לא חוקי: {payment_method} מ-{available_payment_methods}!" + +#: core/models.py:1674 +msgid "the price paid by the customer for this product at purchase time" +msgstr "המחיר ששילם הלקוח עבור מוצר זה בעת הרכישה" + +#: core/models.py:1675 +msgid "purchase price at order time" +msgstr "מחיר הרכישה בעת ההזמנה" + +#: core/models.py:1680 +msgid "internal comments for admins about this ordered product" +msgstr "הערות פנימיות למנהלים אודות מוצר זה שהוזמן" + +#: core/models.py:1681 +msgid "internal comments" +msgstr "הערות פנימיות" + +#: core/models.py:1687 +msgid "user notifications" +msgstr "הודעות למשתמשים" + +#: core/models.py:1692 +msgid "json representation of this item's attributes" +msgstr "ייצוג JSON של תכונות פריט זה" + +#: core/models.py:1693 +msgid "ordered product attributes" +msgstr "תכונות המוצר שהוזמן" + +#: core/models.py:1698 +msgid "reference to the parent order that contains this product" +msgstr "הפניה להזמנה הראשית המכילה מוצר זה" + +#: core/models.py:1699 +msgid "parent order" +msgstr "הזמנת הורים" + +#: core/models.py:1708 +msgid "the specific product associated with this order line" +msgstr "המוצר הספציפי הקשור לשורת הזמנה זו" + +#: core/models.py:1715 +msgid "quantity of this specific product in the order" +msgstr "כמות המוצר הספציפי הזה בהזמנה" + +#: core/models.py:1716 +msgid "product quantity" +msgstr "כמות המוצר" + +#: core/models.py:1723 +msgid "current status of this product in the order" +msgstr "הסטטוס הנוכחי של מוצר זה בהזמנה" + +#: core/models.py:1724 +msgid "product line status" +msgstr "סטטוס קו המוצרים" + +#: core/models.py:1784 +msgid "order product must have an order" +msgstr "המוצר בהזמנה חייב להיות קשור להזמנה!" + +#: core/models.py:1786 +#, python-brace-format +msgid "wrong action specified for feedback: {action}" +msgstr "פעולה שגויה שצוינה עבור משוב: {action}!" + +#: core/models.py:1800 +msgid "you cannot feedback an order which is not received" +msgstr "אינך יכול להחזיר הזמנה שלא התקבלה" + +#: core/models.py:1806 +msgid "name" +msgstr "שם" + +#: core/models.py:1807 +msgid "URL of the integration" +msgstr "כתובת ה-URL של האינטגרציה" + +#: core/models.py:1808 +msgid "authentication credentials" +msgstr "אישורי אימות" + +#: core/models.py:1822 +msgid "you can only have one default CRM provider" +msgstr "ניתן להגדיר ספק CRM ברירת מחדל אחד בלבד" + +#: core/models.py:1826 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1827 +msgid "CRMs" +msgstr "CRM" + +#: core/models.py:1839 +msgid "order CRM link" +msgstr "קישור CRM של ההזמנה" + +#: core/models.py:1840 +msgid "orders CRM links" +msgstr "קישורי CRM של הזמנות" + +#: core/models.py:1874 +msgid "download" +msgstr "הורדה" + +#: core/models.py:1875 +msgid "downloads" +msgstr "הורדות" + +#: core/models.py:1883 +msgid "you can not download a digital asset for a non-finished order" +msgstr "לא ניתן להוריד נכס דיגיטלי עבור הזמנה שלא הושלמה." + +#: core/models.py:1913 +msgid "user-provided comments about their experience with the product" +msgstr "הערות שסיפקו המשתמשים על חווייתם עם המוצר" + +#: core/models.py:1914 +msgid "feedback comments" +msgstr "הערות משוב" + +#: core/models.py:1921 +msgid "" +"references the specific product in an order that this feedback is about" +msgstr "מתייחס למוצר הספציפי בהזמנה שעליה מתייחס משוב זה." + +#: core/models.py:1922 +msgid "related order product" +msgstr "מוצר בהזמנה קשורה" + +#: core/models.py:1927 +msgid "user-assigned rating for the product" +msgstr "דירוג שהוקצה על ידי המשתמש למוצר" + +#: core/models.py:1928 +msgid "product rating" +msgstr "דירוג מוצר" + +#: core/serializers/utility.py:87 +msgid "" +"you must provide a comment, rating, and order product uuid to add feedback." +msgstr "עליך לספק תגובה, דירוג ומספר זיהוי מוצר (uuid) כדי להוסיף משוב." + +#: core/signals.py:65 +msgid "error during promocode creation: {e!s}" +msgstr "שגיאה במהלך יצירת קוד קידום מכירות: {e!s}" + +#: core/sitemaps.py:17 +msgid "Home" +msgstr "בית" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "צור קשר" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "אודות" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "פרטי תשלום" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "משלוח" + +#: core/templates/digital_order_created_email.html:7 +#: core/templates/digital_order_created_email.html:100 +#: core/templates/digital_order_delivered_email.html:6 +#: core/templates/shipped_order_created_email.html:7 +#: core/templates/shipped_order_created_email.html:99 +#: core/templates/shipped_order_delivered_email.html:7 +#: core/templates/shipped_order_delivered_email.html:99 +msgid "order confirmation" +msgstr "אישור הזמנה" + +#: core/templates/digital_order_created_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 +#: core/templates/promocode_granted_email.html:94 +#: core/templates/shipped_order_created_email.html:94 +#: core/templates/shipped_order_delivered_email.html:94 +msgid "logo" +msgstr "לוגו" + +#: core/templates/digital_order_created_email.html:101 +#: core/templates/shipped_order_created_email.html:100 +#: core/templates/shipped_order_delivered_email.html:100 +#, python-format +msgid "hello %(order.user.first_name)s," +msgstr "שלום %(order.user.first_name)s," + +#: core/templates/digital_order_created_email.html:102 +#, 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" +" order:" +msgstr "" +"תודה על הזמנתך #%(order.pk)s! אנו שמחים להודיע לך שהזמנתך נכנסה לעיבוד. להלן" +" פרטי הזמנתך:" + +#: core/templates/digital_order_created_email.html:112 +#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/shipped_order_created_email.html:110 +#: core/templates/shipped_order_delivered_email.html:110 +msgid "total" +msgstr "סה\"כ" + +#: core/templates/digital_order_created_email.html:125 +#: core/templates/digital_order_delivered_email.html:157 +#: core/templates/shipped_order_created_email.html:127 +#: core/templates/shipped_order_delivered_email.html:127 +msgid "total price" +msgstr "מחיר כולל" + +#: core/templates/digital_order_created_email.html:131 +#: core/templates/shipped_order_created_email.html:140 +#: core/templates/shipped_order_delivered_email.html:140 +#, python-format +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." + +#: core/templates/digital_order_created_email.html:133 +#, python-format +msgid "best regards,
the %(config.PROJECT_NAME)s team" +msgstr "בברכה,
צוות %(config.PROJECT_NAME)s" + +#: core/templates/digital_order_created_email.html:139 +#: core/templates/digital_order_delivered_email.html:171 +#: core/templates/promocode_granted_email.html:114 +msgid "all rights reserved" +msgstr "כל הזכויות שמורות" + +#: core/templates/digital_order_delivered_email.html:99 +msgid "order delivered" +msgstr "ההזמנה נמסרה" + +#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "שלום %(user_first_name)s," + +#: core/templates/digital_order_delivered_email.html:101 +#, python-format +msgid "" +"we have successfully processed your order №%(order_uuid)s! below are the\n" +" details of your order:" +msgstr "הזמנתך №%(order_uuid)s טופלה בהצלחה! להלן פרטי הזמנתך:" + +#: core/templates/digital_order_delivered_email.html:128 +msgid "" +"additional\n" +" information" +msgstr "מידע נוסף" + +#: core/templates/digital_order_delivered_email.html:137 +#: core/templates/json_table_widget.html:6 +msgid "value" +msgstr "ערך" + +#: core/templates/digital_order_delivered_email.html:163 +#: core/templates/promocode_granted_email.html:106 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "אם יש לך שאלות, אל תהסס לפנות לתמיכה שלנו ב-%(contact_email)s." + +#: core/templates/digital_order_delivered_email.html:165 +#: core/templates/promocode_granted_email.html:108 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "בברכה,
צוות %(project_name)s" + +#: core/templates/json_table_widget.html:5 +msgid "key" +msgstr "מפתח" + +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "קוד קידום מכירות מוענק" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "תודה על שהייתכם איתנו! הענקנו לכם קוד קידום מכירות עבור" + +#: core/templates/shipped_order_created_email.html:101 +#: core/templates/shipped_order_delivered_email.html:101 +msgid "" +"thank you for your order! we are pleased to confirm your purchase. below are\n" +" the details of your order:" +msgstr "תודה על הזמנתך! אנו שמחים לאשר את רכישתך. להלן פרטי הזמנתך:" + +#: core/templates/shipped_order_created_email.html:123 +#: core/templates/shipped_order_delivered_email.html:123 +msgid "shipping price" +msgstr "מחיר משלוח" + +#: core/templates/shipped_order_created_email.html:133 +#: core/templates/shipped_order_delivered_email.html:133 +msgid "your order will be delivered to the following address:" +msgstr "ההזמנה שלך תסופק לכתובת הבאה:" + +#: core/templates/shipped_order_created_email.html:142 +#: core/templates/shipped_order_delivered_email.html:142 +#, python-format +msgid "best regards,
The %(config.PROJECT_NAME)s team" +msgstr "בברכה,
צוות %(config.PROJECT_NAME)s" + +#: core/templates/shipped_order_created_email.html:147 +#: core/templates/shipped_order_delivered_email.html:147 +msgid "" +"all rights\n" +" reserved" +msgstr "כל הזכויות שמורות" + +#: core/utils/caching.py:41 +msgid "both data and timeout are required" +msgstr "נדרשים הן הנתונים והן זמן ההמתנה" + +#: core/utils/caching.py:43 +msgid "invalid timeout value, it must be between 0 and 216000 seconds" +msgstr "ערך זמן המתנה לא חוקי, הוא חייב להיות בין 0 ל-216000 שניות" + +#: core/utils/emailing.py:25 +#, python-brace-format +msgid "{config.PROJECT_NAME} | contact us initiated" +msgstr "{config.PROJECT_NAME} | צור קשר יוזם" + +#: core/utils/emailing.py:64 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order confirmation" +msgstr "{config.PROJECT_NAME} | אישור הזמנה" + +#: core/utils/emailing.py:99 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order delivered" +msgstr "{config.PROJECT_NAME} | הזמנה נמסרה" + +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | קוד קידום מכירות מוענק" + +#: core/utils/messages.py:3 +msgid "you do not have permission to perform this action." +msgstr "אין לך הרשאה לבצע פעולה זו." + +#: core/utils/nominatim.py:8 +msgid "NOMINATIM_URL must be configured." +msgstr "יש להגדיר את הפרמטר NOMINATIM_URL!" + +#: core/validators.py:16 +#, 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} פיקסלים!" + +#: core/validators.py:22 +msgid "invalid phone number format" +msgstr "פורמט מספר טלפון לא חוקי" + +#: core/views.py:481 +msgid "you can only download the digital asset once" +msgstr "ניתן להוריד את הנכס הדיגיטלי פעם אחת בלבד" + +#: core/views.py:539 +msgid "favicon not found" +msgstr "לא נמצא סמל מועדף" + +#: core/viewsets.py:1319 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "שגיאת קידוד גיאוגרפי: {e}" diff --git a/core/locale/hi_IN/LC_MESSAGES/django.po b/core/locale/hi_IN/LC_MESSAGES/django.po index 8805d53c..a03396bf 100644 --- a/core/locale/hi_IN/LC_MESSAGES/django.po +++ b/core/locale/hi_IN/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -87,12 +87,12 @@ msgstr "" msgid "selected items have been deactivated." msgstr "" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "" @@ -100,23 +100,23 @@ msgstr "" msgid "image" msgstr "" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "" @@ -314,7 +314,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "" @@ -722,117 +722,117 @@ msgstr "" msgid "no search term provided." msgstr "" -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "" @@ -961,8 +961,8 @@ msgstr "" msgid "original address string provided by the user" msgstr "" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -977,8 +977,8 @@ msgid "elasticsearch - works like a charm" msgstr "" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "" @@ -991,11 +991,11 @@ msgid "groups of attributes" msgstr "" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "" @@ -1004,7 +1004,7 @@ msgid "category image url" msgstr "" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "" @@ -1024,7 +1024,7 @@ msgstr "" msgid "products in this category" msgstr "" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "" @@ -1040,7 +1040,7 @@ msgstr "" msgid "comment" msgstr "" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" @@ -1048,8 +1048,8 @@ msgstr "" msgid "represents feedback from a user." msgstr "" -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "" @@ -1057,65 +1057,69 @@ msgstr "" msgid "download url for this order product if applicable" msgstr "" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1123,7 +1127,7 @@ msgstr "" msgid "price" msgstr "" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1131,35 +1135,35 @@ msgstr "" msgid "quantity" msgstr "" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1167,929 +1171,1023 @@ msgstr "" msgid "product" msgstr "" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" + +#: core/models.py:86 msgid "parent of this group" msgstr "" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" + +#: core/models.py:220 msgid "category tag" msgstr "" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "" -#: core/models.py:545 core/models.py:863 core/models.py:920 core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 core/models.py:1709 msgid "associated product" msgstr "" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" + +#: core/models.py:476 msgid "category this product belongs to" msgstr "" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "" -#: core/models.py:784 +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" + +#: core/models.py:619 msgid "category of this attribute" msgstr "" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "" + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "" -#: core/models.py:1273 +#: core/models.py:1118 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 msgid "json structure of notifications to display to users" msgstr "" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "" -#: core/models.py:1481 +#: core/models.py:1316 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: core/models.py:1839 +#: core/models.py:1674 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "" -#: core/models.py:2079 +#: core/models.py:1921 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "" -#: core/models.py:2096 -msgid "feedback" -msgstr "" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2099,6 +2197,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/hr_HR/LC_MESSAGES/django.mo b/core/locale/hr_HR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c5906d1cd061dff54de8b533942893de34efc9e GIT binary patch literal 337 zcmYL@Jx{|h5Qd9j%E-dP;DHUUz!pqFHI3Uw*h!U-O0b#M1fyU_j*H-j@b~yFTo(FD zk8Zg4bkFbc(a#8TfSe*{$RTop42h8wT;AXuI{#UD_pUbq(k-mD?~SvRtk~?4EjU^8 zqD=EFDs<<30NFQY3lF=dhsseBt#T;zrx|V_Q9)Dk#909{hlG)3PGx%joM$`|st-_k zW&2hI=P8-jLXeC}P9|KkR7_ct6ud0&v1*&0YBW?@eNZA;wx|b_i4fD)jGb@x9W;=s z, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: core/abstract.py:11 +msgid "unique id" +msgstr "" + +#: core/abstract.py:12 +msgid "unique id is used to surely identify any database object" +msgstr "" + +#: core/abstract.py:19 +msgid "is active" +msgstr "" + +#: core/abstract.py:20 +msgid "" +"if set to false, this object can't be seen by users without needed permission" +msgstr "" + +#: core/abstract.py:22 core/choices.py:18 +msgid "created" +msgstr "" + +#: core/abstract.py:22 +msgid "when the object first appeared on the database" +msgstr "" + +#: core/abstract.py:23 +msgid "modified" +msgstr "" + +#: core/abstract.py:23 +msgid "when the object was last modified" +msgstr "" + +#: core/admin.py:63 +msgid "translations" +msgstr "" + +#: core/admin.py:67 +msgid "general" +msgstr "" + +#: core/admin.py:69 +msgid "relations" +msgstr "" + +#: core/admin.py:87 +msgid "metadata" +msgstr "" + +#: core/admin.py:94 +msgid "timestamps" +msgstr "" + +#: core/admin.py:109 +#, python-format +msgid "activate selected %(verbose_name_plural)s" +msgstr "" + +#: core/admin.py:114 +msgid "selected items have been activated." +msgstr "" + +#: core/admin.py:120 +#, python-format +msgid "deactivate selected %(verbose_name_plural)s" +msgstr "" + +#: core/admin.py:125 +msgid "selected items have been deactivated." +msgstr "" + +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 +msgid "attribute value" +msgstr "" + +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 +msgid "attribute values" +msgstr "" + +#: core/admin.py:146 +msgid "image" +msgstr "" + +#: core/admin.py:147 core/graphene/object_types.py:501 +msgid "images" +msgstr "" + +#: core/admin.py:155 core/models.py:457 +msgid "stock" +msgstr "" + +#: core/admin.py:156 core/graphene/object_types.py:663 +msgid "stocks" +msgstr "" + +#: core/admin.py:166 core/models.py:1735 +msgid "order product" +msgstr "" + +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 +msgid "order products" +msgstr "" + +#: core/admin.py:180 core/admin.py:181 +msgid "children" +msgstr "" + +#: core/admin.py:566 +msgid "Config" +msgstr "" + +#: core/apps.py:8 +msgid "core" +msgstr "" + +#: core/choices.py:4 core/choices.py:20 +msgid "finished" +msgstr "" + +#: core/choices.py:5 core/choices.py:19 +msgid "delivering" +msgstr "" + +#: core/choices.py:6 +msgid "delivered" +msgstr "" + +#: core/choices.py:7 +msgid "canceled" +msgstr "" + +#: core/choices.py:8 core/choices.py:16 core/choices.py:24 +msgid "failed" +msgstr "" + +#: core/choices.py:9 core/choices.py:15 +msgid "pending" +msgstr "" + +#: core/choices.py:10 +msgid "accepted" +msgstr "" + +#: core/choices.py:11 +msgid "money returned" +msgstr "" + +#: core/choices.py:17 +msgid "payment" +msgstr "" + +#: core/choices.py:21 +msgid "momental" +msgstr "" + +#: core/choices.py:24 +msgid "successful" +msgstr "" + +#: core/docs/drf/views.py:17 core/graphene/mutations.py:36 +msgid "cache I/O" +msgstr "" + +#: core/docs/drf/views.py:19 +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 "" + +#: core/docs/drf/views.py:32 +msgid "get a list of supported languages" +msgstr "" + +#: core/docs/drf/views.py:41 +msgid "get application's exposable parameters" +msgstr "" + +#: core/docs/drf/views.py:48 +msgid "send a message to the support team" +msgstr "" + +#: core/docs/drf/views.py:59 core/graphene/mutations.py:55 +msgid "request a CORSed URL" +msgstr "" + +#: core/docs/drf/views.py:85 +msgid "global search endpoint to query across project's tables" +msgstr "" + +#: core/docs/drf/views.py:91 +msgid "purchase an order as a business" +msgstr "" + +#: core/docs/drf/views.py:98 +msgid "" +"purchase an order as a business, using the provided `products` with " +"`product_uuid` and `attributes`." +msgstr "" + +#: core/docs/drf/viewsets.py:44 +msgid "list all attribute groups (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:48 +msgid "retrieve a single attribute group (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:52 +msgid "create an attribute group" +msgstr "" + +#: core/docs/drf/viewsets.py:56 +msgid "delete an attribute group" +msgstr "" + +#: core/docs/drf/viewsets.py:60 +msgid "rewrite an existing attribute group saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:64 +msgid "rewrite some fields of an existing attribute group saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:71 +msgid "list all attributes (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:75 +msgid "retrieve a single attribute (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:79 +msgid "create an attribute" +msgstr "" + +#: core/docs/drf/viewsets.py:83 +msgid "delete an attribute" +msgstr "" + +#: core/docs/drf/viewsets.py:87 +msgid "rewrite an existing attribute saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:91 +msgid "rewrite some fields of an existing attribute saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:98 +msgid "list all attribute values (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:102 +msgid "retrieve a single attribute value (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:106 +msgid "create an attribute value" +msgstr "" + +#: core/docs/drf/viewsets.py:110 +msgid "delete an attribute value" +msgstr "" + +#: core/docs/drf/viewsets.py:114 +msgid "rewrite an existing attribute value saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:118 +msgid "rewrite some fields of an existing attribute value saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:125 core/docs/drf/viewsets.py:126 +msgid "list all categories (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:130 core/docs/drf/viewsets.py:131 +msgid "retrieve a single category (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:135 core/docs/drf/viewsets.py:136 +msgid "create a category" +msgstr "" + +#: core/docs/drf/viewsets.py:140 core/docs/drf/viewsets.py:141 +msgid "delete a category" +msgstr "" + +#: core/docs/drf/viewsets.py:145 core/docs/drf/viewsets.py:146 +msgid "rewrite an existing category saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:150 core/docs/drf/viewsets.py:151 +msgid "rewrite some fields of an existing category saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 +#: core/graphene/object_types.py:117 core/graphene/object_types.py:207 +#: core/graphene/object_types.py:509 +msgid "SEO Meta snapshot" +msgstr "" + +#: core/docs/drf/viewsets.py:156 +msgid "returns a snapshot of the category's SEO meta data" +msgstr "" + +#: core/docs/drf/viewsets.py:161 +msgid "Category UUID or slug" +msgstr "" + +#: core/docs/drf/viewsets.py:174 +msgid "list all orders (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:175 +msgid "for non-staff users, only their own orders are returned." +msgstr "" + +#: core/docs/drf/viewsets.py:181 +msgid "" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" +msgstr "" + +#: core/docs/drf/viewsets.py:188 +msgid "Filter orders with buy_time >= this ISO 8601 datetime" +msgstr "" + +#: core/docs/drf/viewsets.py:193 +msgid "Filter orders with buy_time <= this ISO 8601 datetime" +msgstr "" + +#: core/docs/drf/viewsets.py:198 +msgid "Filter by exact order UUID" +msgstr "" + +#: core/docs/drf/viewsets.py:203 +msgid "Filter by exact human-readable order ID" +msgstr "" + +#: core/docs/drf/viewsets.py:208 +msgid "Filter by user's email (case-insensitive exact match)" +msgstr "" + +#: core/docs/drf/viewsets.py:213 +msgid "Filter by user's UUID" +msgstr "" + +#: core/docs/drf/viewsets.py:218 +msgid "Filter by order status (case-insensitive substring match)" +msgstr "" + +#: core/docs/drf/viewsets.py:224 +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')." +msgstr "" + +#: core/docs/drf/viewsets.py:233 +msgid "retrieve a single order (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:237 +msgid "create an order" +msgstr "" + +#: core/docs/drf/viewsets.py:238 +msgid "doesn't work for non-staff users." +msgstr "" + +#: core/docs/drf/viewsets.py:242 +msgid "delete an order" +msgstr "" + +#: core/docs/drf/viewsets.py:246 +msgid "rewrite an existing order saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:250 +msgid "rewrite some fields of an existing order saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:254 +msgid "purchase an order" +msgstr "" + +#: core/docs/drf/viewsets.py:256 +msgid "" +"finalizes the order purchase. if `force_balance` is used, the purchase is " +"completed using the user's balance; if `force_payment` is used, a " +"transaction is initiated." +msgstr "" + +#: core/docs/drf/viewsets.py:268 core/graphene/mutations.py:324 +msgid "purchase an order without account creation" +msgstr "" + +#: core/docs/drf/viewsets.py:269 +msgid "finalizes the order purchase for a non-registered user." +msgstr "" + +#: core/docs/drf/viewsets.py:277 +msgid "add product to order" +msgstr "" + +#: core/docs/drf/viewsets.py:278 +msgid "" +"adds a product to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" + +#: core/docs/drf/viewsets.py:283 +msgid "add a list of products to order, quantities will not count" +msgstr "" + +#: core/docs/drf/viewsets.py:284 +msgid "" +"adds a list of products to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" + +#: core/docs/drf/viewsets.py:289 +msgid "remove product from order" +msgstr "" + +#: core/docs/drf/viewsets.py:290 +msgid "" +"removes a product from an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" + +#: core/docs/drf/viewsets.py:295 +msgid "remove product from order, quantities will not count" +msgstr "" + +#: core/docs/drf/viewsets.py:296 +msgid "" +"removes a list of products from an order using the provided `product_uuid` " +"and `attributes`" +msgstr "" + +#: core/docs/drf/viewsets.py:304 +msgid "list all wishlists (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:305 +msgid "for non-staff users, only their own wishlists are returned." +msgstr "" + +#: core/docs/drf/viewsets.py:309 +msgid "retrieve a single wishlist (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:313 +msgid "create an wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:314 +msgid "Doesn't work for non-staff users." +msgstr "" + +#: core/docs/drf/viewsets.py:318 +msgid "delete an wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:322 +msgid "rewrite an existing wishlist saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:326 +msgid "rewrite some fields of an existing wishlist saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:330 +msgid "add product to wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:331 +msgid "adds a product to an wishlist using the provided `product_uuid`" +msgstr "" + +#: core/docs/drf/viewsets.py:336 +msgid "remove product from wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:337 +msgid "removes a product from an wishlist using the provided `product_uuid`" +msgstr "" + +#: core/docs/drf/viewsets.py:342 +msgid "add many products to wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:343 +msgid "adds many products to an wishlist using the provided `product_uuids`" +msgstr "" + +#: core/docs/drf/viewsets.py:348 +msgid "remove many products from wishlist" +msgstr "" + +#: core/docs/drf/viewsets.py:349 +msgid "" +"removes many products from an wishlist using the provided `product_uuids`" +msgstr "" + +#: core/docs/drf/viewsets.py:356 +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" +"• **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" +"`b64-description=icontains-aGVhdC1jb2xk`" +msgstr "" + +#: core/docs/drf/viewsets.py:372 core/docs/drf/viewsets.py:373 +msgid "list all products (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:378 +msgid "(exact) Product UUID" +msgstr "" + +#: core/docs/drf/viewsets.py:384 +msgid "(icontains) Product name" +msgstr "" + +#: core/docs/drf/viewsets.py:390 +msgid "(list) Category names, case-insensitive" +msgstr "" + +#: core/docs/drf/viewsets.py:396 +msgid "(exact) Category UUID" +msgstr "" + +#: core/docs/drf/viewsets.py:402 +msgid "(list) Tag names, case-insensitive" +msgstr "" + +#: core/docs/drf/viewsets.py:408 +msgid "(gte) Minimum stock price" +msgstr "" + +#: core/docs/drf/viewsets.py:414 +msgid "(lte) Maximum stock price" +msgstr "" + +#: core/docs/drf/viewsets.py:420 +msgid "(exact) Only active products" +msgstr "" + +#: core/docs/drf/viewsets.py:426 +msgid "(iexact) Brand name" +msgstr "" + +#: core/docs/drf/viewsets.py:438 +msgid "(gt) Minimum stock quantity" +msgstr "" + +#: core/docs/drf/viewsets.py:444 +msgid "(exact) Digital vs. physical" +msgstr "" + +#: core/docs/drf/viewsets.py:451 +msgid "" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" +"**Allowed:** uuid, rating, name, slug, created, modified, price, random" +msgstr "" + +#: core/docs/drf/viewsets.py:465 core/docs/drf/viewsets.py:466 +msgid "retrieve a single product (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:471 core/docs/drf/viewsets.py:495 +#: core/docs/drf/viewsets.py:511 core/docs/drf/viewsets.py:527 +#: core/docs/drf/viewsets.py:543 core/docs/drf/viewsets.py:559 +msgid "Product UUID or slug" +msgstr "" + +#: core/docs/drf/viewsets.py:481 core/docs/drf/viewsets.py:482 +msgid "create a product" +msgstr "" + +#: core/docs/drf/viewsets.py:489 core/docs/drf/viewsets.py:490 +msgid "rewrite an existing product, preserving non-editable fields" +msgstr "" + +#: core/docs/drf/viewsets.py:505 core/docs/drf/viewsets.py:506 +msgid "" +"update some fields of an existing product, preserving non-editable fields" +msgstr "" + +#: core/docs/drf/viewsets.py:521 core/docs/drf/viewsets.py:522 +msgid "delete a product" +msgstr "" + +#: core/docs/drf/viewsets.py:537 core/docs/drf/viewsets.py:538 +msgid "lists all permitted feedbacks for a product" +msgstr "" + +#: core/docs/drf/viewsets.py:554 +msgid "returns a snapshot of the product's SEO meta data" +msgstr "" + +#: core/docs/drf/viewsets.py:572 +msgid "list all addresses" +msgstr "" + +#: core/docs/drf/viewsets.py:579 +msgid "retrieve a single address" +msgstr "" + +#: core/docs/drf/viewsets.py:586 +msgid "create a new address" +msgstr "" + +#: core/docs/drf/viewsets.py:594 +msgid "delete an address" +msgstr "" + +#: core/docs/drf/viewsets.py:601 +msgid "update an entire address" +msgstr "" + +#: core/docs/drf/viewsets.py:609 +msgid "partially update an address" +msgstr "" + +#: core/docs/drf/viewsets.py:617 +msgid "autocomplete address suggestions" +msgstr "" + +#: core/docs/drf/viewsets.py:622 +msgid "raw data query string, please append with data from geo-IP endpoint" +msgstr "" + +#: core/docs/drf/viewsets.py:628 +msgid "limit the results amount, 1 < limit < 10, default: 5" +msgstr "" + +#: core/docs/drf/viewsets.py:641 +msgid "list all feedbacks (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:645 +msgid "retrieve a single feedback (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:649 +msgid "create a feedback" +msgstr "" + +#: core/docs/drf/viewsets.py:653 +msgid "delete a feedback" +msgstr "" + +#: core/docs/drf/viewsets.py:657 +msgid "rewrite an existing feedback saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:661 +msgid "rewrite some fields of an existing feedback saving non-editables" +msgstr "" + +#: core/docs/drf/viewsets.py:668 +msgid "list all order–product relations (simple view)" +msgstr "" + +#: core/docs/drf/viewsets.py:675 +msgid "retrieve a single order–product relation (detailed view)" +msgstr "" + +#: core/docs/drf/viewsets.py:682 +msgid "create a new order–product relation" +msgstr "" + +#: core/docs/drf/viewsets.py:689 +msgid "replace an existing order–product relation" +msgstr "" + +#: core/docs/drf/viewsets.py:696 +msgid "partially update an existing order–product relation" +msgstr "" + +#: core/docs/drf/viewsets.py:703 +msgid "delete an order–product relation" +msgstr "" + +#: core/docs/drf/viewsets.py:710 +msgid "add or remove feedback on an order–product relation" +msgstr "" + +#: core/elasticsearch/__init__.py:105 +msgid "no search term provided." +msgstr "" + +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 +msgid "UUID" +msgstr "" + +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 +msgid "Name" +msgstr "" + +#: core/filters.py:66 core/filters.py:562 +msgid "Categories" +msgstr "" + +#: core/filters.py:68 +msgid "Categories Slugs" +msgstr "" + +#: core/filters.py:69 core/filters.py:437 +msgid "Tags" +msgstr "" + +#: core/filters.py:70 +msgid "Min Price" +msgstr "" + +#: core/filters.py:71 +msgid "Max Price" +msgstr "" + +#: core/filters.py:72 +msgid "Is Active" +msgstr "" + +#: core/filters.py:73 +msgid "Brand" +msgstr "" + +#: core/filters.py:74 +msgid "Attributes" +msgstr "" + +#: core/filters.py:75 +msgid "Quantity" +msgstr "" + +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 +msgid "Slug" +msgstr "" + +#: core/filters.py:77 +msgid "Is Digital" +msgstr "" + +#: core/filters.py:78 +msgid "Include sub-categories" +msgstr "" + +#: core/filters.py:81 +msgid "Include personal ordered" +msgstr "" + +#: core/filters.py:83 core/models.py:538 +msgid "SKU" +msgstr "" + +#: core/filters.py:166 +msgid "there must be a category_uuid to use include_subcategories flag" +msgstr "" + +#: core/filters.py:356 +msgid "Search (ID, product name or part number)" +msgstr "" + +#: core/filters.py:359 +msgid "Bought after (inclusive)" +msgstr "" + +#: core/filters.py:360 +msgid "Bought before (inclusive)" +msgstr "" + +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 +msgid "User email" +msgstr "" + +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 +msgid "User UUID" +msgstr "" + +#: core/filters.py:365 +msgid "Status" +msgstr "" + +#: core/filters.py:369 +msgid "Human Readable ID" +msgstr "" + +#: core/filters.py:430 +msgid "Parent" +msgstr "" + +#: core/filters.py:434 +msgid "Whole category(has at least 1 product or not)" +msgstr "" + +#: core/filters.py:438 +msgid "Level" +msgstr "" + +#: core/filters.py:598 +msgid "Product UUID" +msgstr "" + +#: core/graphene/mutations.py:39 +msgid "key to look for in or set into the cache" +msgstr "" + +#: core/graphene/mutations.py:40 +msgid "data to store in cache" +msgstr "" + +#: core/graphene/mutations.py:43 +msgid "timeout in seconds to set the data for into the cache" +msgstr "" + +#: core/graphene/mutations.py:46 +msgid "cached data" +msgstr "" + +#: core/graphene/mutations.py:60 +msgid "camelized JSON data from the requested URL" +msgstr "" + +#: core/graphene/mutations.py:65 core/views.py:360 +msgid "only URLs starting with http(s):// are allowed" +msgstr "" + +#: core/graphene/mutations.py:80 +msgid "add a product to the order" +msgstr "" + +#: core/graphene/mutations.py:101 core/graphene/mutations.py:127 +#: core/graphene/mutations.py:232 core/graphene/mutations.py:279 +#, python-brace-format +msgid "order {order_uuid} not found" +msgstr "" + +#: core/graphene/mutations.py:106 core/graphene/mutations.py:153 +msgid "remove a product from the order" +msgstr "" + +#: core/graphene/mutations.py:132 +msgid "remove all products from the order" +msgstr "" + +#: core/graphene/mutations.py:175 +msgid "buy an order" +msgstr "" + +#: core/graphene/mutations.py:204 core/graphene/mutations.py:257 +msgid "please provide either order_uuid or order_hr_id - mutually exclusive" +msgstr "" + +#: core/graphene/mutations.py:229 core/graphene/mutations.py:486 +#: core/graphene/mutations.py:527 core/viewsets.py:821 +msgid "wrong type came from order.buy() method: {type(instance)!s}" +msgstr "" + +#: core/graphene/mutations.py:237 +msgid "perform an action on a list of products in the order" +msgstr "" + +#: core/graphene/mutations.py:242 +msgid "remove/add" +msgstr "" + +#: core/graphene/mutations.py:274 core/graphene/mutations.py:314 +msgid "action must be either add or remove" +msgstr "" + +#: core/graphene/mutations.py:284 +msgid "perform an action on a list of products in the wishlist" +msgstr "" + +#: core/graphene/mutations.py:302 +msgid "please provide wishlist_uuid value" +msgstr "" + +#: core/graphene/mutations.py:319 core/graphene/mutations.py:392 +#: core/graphene/mutations.py:419 core/graphene/mutations.py:446 +#: core/graphene/mutations.py:489 +#, python-brace-format +msgid "wishlist {wishlist_uuid} not found" +msgstr "" + +#: core/graphene/mutations.py:370 +msgid "add a product to the wishlist" +msgstr "" + +#: core/graphene/mutations.py:397 +msgid "remove a product from the wishlist" +msgstr "" + +#: core/graphene/mutations.py:424 +msgid "remove all products from the wishlist" +msgstr "" + +#: core/graphene/mutations.py:451 +msgid "buy all products from the wishlist" +msgstr "" + +#: core/graphene/mutations.py:494 +msgid "buy a product" +msgstr "" + +#: core/graphene/mutations.py:500 +msgid "" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" +msgstr "" + +#: core/graphene/mutations.py:532 +msgid "add or delete a feedback for orderproduct" +msgstr "" + +#: core/graphene/mutations.py:555 +msgid "action must be either `add` or `remove`" +msgstr "" + +#: core/graphene/mutations.py:558 +#, python-brace-format +msgid "order product {order_product_uuid} not found" +msgstr "" + +#: core/graphene/mutations.py:621 +msgid "original address string provided by the user" +msgstr "" + +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 +#: core/viewsets.py:824 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "" + +#: core/graphene/mutations.py:668 +msgid "limit must be between 1 and 10" +msgstr "" + +#: core/graphene/mutations.py:713 +msgid "elasticsearch - works like a charm" +msgstr "" + +#: core/graphene/object_types.py:82 core/graphene/object_types.py:397 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 +msgid "attributes" +msgstr "" + +#: core/graphene/object_types.py:95 +msgid "grouped attributes" +msgstr "" + +#: core/graphene/object_types.py:102 +msgid "groups of attributes" +msgstr "" + +#: core/graphene/object_types.py:116 core/graphene/object_types.py:193 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 +msgid "categories" +msgstr "" + +#: core/graphene/object_types.py:124 core/models.py:395 +msgid "brands" +msgstr "" + +#: core/graphene/object_types.py:195 +msgid "category image url" +msgstr "" + +#: core/graphene/object_types.py:196 core/graphene/object_types.py:344 +#: core/models.py:249 +msgid "markup percentage" +msgstr "" + +#: core/graphene/object_types.py:199 +msgid "which attributes and values can be used for filtering this category." +msgstr "" + +#: core/graphene/object_types.py:203 +msgid "minimum and maximum prices for products in this category, if available." +msgstr "" + +#: core/graphene/object_types.py:205 +msgid "tags for this category" +msgstr "" + +#: core/graphene/object_types.py:206 +msgid "products in this category" +msgstr "" + +#: core/graphene/object_types.py:351 core/models.py:155 +msgid "vendors" +msgstr "" + +#: core/graphene/object_types.py:355 +msgid "Latitude (Y coordinate)" +msgstr "" + +#: core/graphene/object_types.py:356 +msgid "Longitude (X coordinate)" +msgstr "" + +#: core/graphene/object_types.py:385 +msgid "comment" +msgstr "" + +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 +msgid "rating value from 1 to 10, inclusive, or 0 if not set." +msgstr "" + +#: core/graphene/object_types.py:393 +msgid "represents feedback from a user." +msgstr "" + +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 +msgid "notifications" +msgstr "" + +#: core/graphene/object_types.py:399 +msgid "download url for this order product if applicable" +msgstr "" + +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "" + +#: core/graphene/object_types.py:434 +msgid "a list of order products in this order" +msgstr "" + +#: core/graphene/object_types.py:436 core/models.py:1198 +msgid "billing address" +msgstr "" + +#: core/graphene/object_types.py:439 +msgid "" +"shipping address for this order, leave blank if same as billing address or " +"if not applicable" +msgstr "" + +#: core/graphene/object_types.py:441 +msgid "total price of this order" +msgstr "" + +#: core/graphene/object_types.py:442 +msgid "total quantity of products in order" +msgstr "" + +#: core/graphene/object_types.py:443 +msgid "are all products in the order digital" +msgstr "" + +#: core/graphene/object_types.py:446 +msgid "transactions for this order" +msgstr "" + +#: core/graphene/object_types.py:465 core/models.py:1262 +msgid "orders" +msgstr "" + +#: core/graphene/object_types.py:486 +msgid "image url" +msgstr "" + +#: core/graphene/object_types.py:493 +msgid "product's images" +msgstr "" + +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 +msgid "category" +msgstr "" + +#: core/graphene/object_types.py:502 core/models.py:1939 +msgid "feedbacks" +msgstr "" + +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 +msgid "brand" +msgstr "" + +#: core/graphene/object_types.py:504 core/models.py:101 +msgid "attribute groups" +msgstr "" + +#: core/graphene/object_types.py:505 +#: core/templates/digital_order_created_email.html:111 +#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/shipped_order_created_email.html:109 +#: core/templates/shipped_order_delivered_email.html:109 +msgid "price" +msgstr "" + +#: core/graphene/object_types.py:506 +#: core/templates/digital_order_created_email.html:110 +#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/shipped_order_created_email.html:108 +#: core/templates/shipped_order_delivered_email.html:108 +msgid "quantity" +msgstr "" + +#: core/graphene/object_types.py:507 +msgid "number of feedbacks" +msgstr "" + +#: core/graphene/object_types.py:508 +msgid "only available for personal orders" +msgstr "" + +#: core/graphene/object_types.py:534 core/models.py:548 +msgid "products" +msgstr "" + +#: core/graphene/object_types.py:634 +msgid "promocodes" +msgstr "" + +#: core/graphene/object_types.py:644 +msgid "products on sale" +msgstr "" + +#: core/graphene/object_types.py:651 core/models.py:843 +msgid "promotions" +msgstr "" + +#: core/graphene/object_types.py:655 core/models.py:154 +msgid "vendor" +msgstr "" + +#: core/graphene/object_types.py:656 core/models.py:547 +#: core/templates/digital_order_created_email.html:109 +#: core/templates/digital_order_delivered_email.html:107 +#: core/templates/shipped_order_created_email.html:107 +#: core/templates/shipped_order_delivered_email.html:107 +msgid "product" +msgstr "" + +#: core/graphene/object_types.py:667 core/models.py:868 +msgid "wishlisted products" +msgstr "" + +#: core/graphene/object_types.py:673 core/models.py:885 +msgid "wishlists" +msgstr "" + +#: core/graphene/object_types.py:677 +msgid "tagged products" +msgstr "" + +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 +msgid "product tags" +msgstr "" + +#: core/graphene/object_types.py:688 +msgid "tagged categories" +msgstr "" + +#: core/graphene/object_types.py:695 +msgid "categories tags" +msgstr "" + +#: core/graphene/object_types.py:699 +msgid "project name" +msgstr "" + +#: core/graphene/object_types.py:700 +msgid "company email" +msgstr "" + +#: core/graphene/object_types.py:701 +msgid "company name" +msgstr "" + +#: core/graphene/object_types.py:702 +msgid "company address" +msgstr "" + +#: core/graphene/object_types.py:703 +msgid "company phone number" +msgstr "" + +#: core/graphene/object_types.py:704 +msgid "email from, sometimes it must be used instead of host user value" +msgstr "" + +#: core/graphene/object_types.py:705 +msgid "email host user" +msgstr "" + +#: core/graphene/object_types.py:706 +msgid "maximum amount for payment" +msgstr "" + +#: core/graphene/object_types.py:707 +msgid "minimum amount for payment" +msgstr "" + +#: core/graphene/object_types.py:708 +msgid "analytics data" +msgstr "" + +#: core/graphene/object_types.py:709 +msgid "advertisement data" +msgstr "" + +#: core/graphene/object_types.py:712 +msgid "company configuration" +msgstr "" + +#: core/graphene/object_types.py:716 +msgid "language code" +msgstr "" + +#: core/graphene/object_types.py:717 +msgid "language name" +msgstr "" + +#: core/graphene/object_types.py:718 +msgid "language flag, if exists :)" +msgstr "" + +#: core/graphene/object_types.py:721 +msgid "supported languages" +msgstr "" + +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 +msgid "products search results" +msgstr "" + +#: core/graphene/object_types.py:755 +msgid "posts search results" +msgstr "" + +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" + +#: core/models.py:86 +msgid "parent of this group" +msgstr "" + +#: core/models.py:87 +msgid "parent attribute group" +msgstr "" + +#: core/models.py:91 core/models.py:92 +msgid "attribute group's name" +msgstr "" + +#: core/models.py:100 core/models.py:628 +msgid "attribute group" +msgstr "" + +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" + +#: core/models.py:119 +msgid "stores credentials and endpoints required for vendor communication" +msgstr "" + +#: core/models.py:120 +msgid "authentication info" +msgstr "" + +#: core/models.py:125 +msgid "define the markup for products retrieved from this vendor" +msgstr "" + +#: core/models.py:126 +msgid "vendor markup percentage" +msgstr "" + +#: core/models.py:130 +msgid "name of this vendor" +msgstr "" + +#: core/models.py:131 +msgid "vendor name" +msgstr "" + +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" + +#: core/models.py:175 core/models.py:206 +msgid "internal tag identifier for the product tag" +msgstr "" + +#: core/models.py:176 core/models.py:207 +msgid "tag name" +msgstr "" + +#: core/models.py:180 core/models.py:211 +msgid "user-friendly name for the product tag" +msgstr "" + +#: core/models.py:181 core/models.py:212 +msgid "tag display name" +msgstr "" + +#: core/models.py:189 +msgid "product tag" +msgstr "" + +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" + +#: core/models.py:220 +msgid "category tag" +msgstr "" + +#: core/models.py:221 core/models.py:293 +msgid "category tags" +msgstr "" + +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" + +#: core/models.py:240 +msgid "upload an image representing this category" +msgstr "" + +#: core/models.py:243 +msgid "category image" +msgstr "" + +#: core/models.py:248 +msgid "define a markup percentage for products in this category" +msgstr "" + +#: core/models.py:257 +msgid "parent of this category to form a hierarchical structure" +msgstr "" + +#: core/models.py:258 +msgid "parent category" +msgstr "" + +#: core/models.py:263 +msgid "category name" +msgstr "" + +#: core/models.py:264 +msgid "provide a name for this category" +msgstr "" + +#: core/models.py:271 +msgid "add a detailed description for this category" +msgstr "" + +#: core/models.py:272 +msgid "category description" +msgstr "" + +#: core/models.py:292 +msgid "tags that help describe or group this category" +msgstr "" + +#: core/models.py:299 core/models.py:387 +msgid "priority" +msgstr "" + +#: core/models.py:340 +msgid "name of this brand" +msgstr "" + +#: core/models.py:341 +msgid "brand name" +msgstr "" + +#: core/models.py:348 +msgid "upload a logo representing this brand" +msgstr "" + +#: core/models.py:350 +msgid "brand small image" +msgstr "" + +#: core/models.py:356 +msgid "upload a big logo representing this brand" +msgstr "" + +#: core/models.py:358 +msgid "brand big image" +msgstr "" + +#: core/models.py:363 +msgid "add a detailed description of the brand" +msgstr "" + +#: core/models.py:364 +msgid "brand description" +msgstr "" + +#: core/models.py:369 +msgid "optional categories that this brand is associated with" +msgstr "" + +#: core/models.py:370 +msgid "associated categories" +msgstr "" + +#: core/models.py:400 +msgid "" +"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 "" + +#: core/models.py:412 +msgid "the vendor supplying this product stock" +msgstr "" + +#: core/models.py:413 +msgid "associated vendor" +msgstr "" + +#: core/models.py:417 +msgid "final price to the customer after markups" +msgstr "" + +#: core/models.py:418 +msgid "selling price" +msgstr "" + +#: core/models.py:423 +msgid "the product associated with this stock entry" +msgstr "" + +#: core/models.py:424 core/models.py:708 core/models.py:765 core/models.py:1709 +msgid "associated product" +msgstr "" + +#: core/models.py:431 +msgid "the price paid to the vendor for this product" +msgstr "" + +#: core/models.py:432 +msgid "vendor purchase price" +msgstr "" + +#: core/models.py:436 +msgid "available quantity of the product in stock" +msgstr "" + +#: core/models.py:437 +msgid "quantity in stock" +msgstr "" + +#: core/models.py:441 +msgid "vendor-assigned SKU for identifying the product" +msgstr "" + +#: core/models.py:442 +msgid "vendor sku" +msgstr "" + +#: core/models.py:448 +msgid "digital file associated with this stock if applicable" +msgstr "" + +#: core/models.py:449 +msgid "digital file" +msgstr "" + +#: core/models.py:458 +msgid "stock entries" +msgstr "" + +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" + +#: core/models.py:476 +msgid "category this product belongs to" +msgstr "" + +#: core/models.py:485 +msgid "optionally associate this product with a brand" +msgstr "" + +#: core/models.py:491 +msgid "tags that help describe or group this product" +msgstr "" + +#: core/models.py:496 +msgid "indicates whether this product is digitally delivered" +msgstr "" + +#: core/models.py:497 +msgid "is product digital" +msgstr "" + +#: core/models.py:503 +msgid "provide a clear identifying name for the product" +msgstr "" + +#: core/models.py:504 +msgid "product name" +msgstr "" + +#: core/models.py:509 core/models.py:831 +msgid "add a detailed description of the product" +msgstr "" + +#: core/models.py:510 +msgid "product description" +msgstr "" + +#: core/models.py:517 +msgid "part number for this product" +msgstr "" + +#: core/models.py:518 +msgid "part number" +msgstr "" + +#: core/models.py:537 +msgid "stock keeping unit for this product" +msgstr "" + +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" + +#: core/models.py:619 +msgid "category of this attribute" +msgstr "" + +#: core/models.py:627 +msgid "group of this attribute" +msgstr "" + +#: core/models.py:633 +msgid "string" +msgstr "" + +#: core/models.py:634 +msgid "integer" +msgstr "" + +#: core/models.py:635 +msgid "float" +msgstr "" + +#: core/models.py:636 +msgid "boolean" +msgstr "" + +#: core/models.py:637 +msgid "array" +msgstr "" + +#: core/models.py:638 +msgid "object" +msgstr "" + +#: core/models.py:640 +msgid "type of the attribute's value" +msgstr "" + +#: core/models.py:641 +msgid "value type" +msgstr "" + +#: core/models.py:646 +msgid "name of this attribute" +msgstr "" + +#: core/models.py:647 +msgid "attribute's name" +msgstr "" + +#: core/models.py:653 +msgid "is filterable" +msgstr "" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "" + +#: core/models.py:665 core/models.py:700 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "" + +#: core/models.py:699 +msgid "attribute of this value" +msgstr "" + +#: core/models.py:707 +msgid "the specific product associated with this attribute's value" +msgstr "" + +#: core/models.py:713 +msgid "the specific value for this attribute" +msgstr "" + +#: core/models.py:747 +msgid "provide alternative text for the image for accessibility" +msgstr "" + +#: core/models.py:748 +msgid "image alt text" +msgstr "" + +#: core/models.py:751 +msgid "upload the image file for this product" +msgstr "" + +#: core/models.py:752 core/models.py:777 +msgid "product image" +msgstr "" + +#: core/models.py:758 +msgid "determines the order in which images are displayed" +msgstr "" + +#: core/models.py:759 +msgid "display priority" +msgstr "" + +#: core/models.py:764 +msgid "the product that this image represents" +msgstr "" + +#: core/models.py:778 +msgid "product images" +msgstr "" + +#: core/models.py:819 +msgid "percentage discount for the selected products" +msgstr "" + +#: core/models.py:820 +msgid "discount percentage" +msgstr "" + +#: core/models.py:825 +msgid "provide a unique name for this promotion" +msgstr "" + +#: core/models.py:826 +msgid "promotion name" +msgstr "" + +#: core/models.py:832 +msgid "promotion description" +msgstr "" + +#: core/models.py:837 +msgid "select which products are included in this promotion" +msgstr "" + +#: core/models.py:838 +msgid "included products" +msgstr "" + +#: core/models.py:842 +msgid "promotion" +msgstr "" + +#: core/models.py:867 +msgid "products that the user has marked as wanted" +msgstr "" + +#: core/models.py:875 +msgid "user who owns this wishlist" +msgstr "" + +#: core/models.py:876 +msgid "wishlist owner" +msgstr "" + +#: core/models.py:884 +msgid "wishlist" +msgstr "" + +#: core/models.py:951 +msgid "documentary" +msgstr "" + +#: core/models.py:952 +msgid "documentaries" +msgstr "" + +#: core/models.py:962 +msgid "unresolved" +msgstr "" + +#: core/models.py:1008 +msgid "address line for the customer" +msgstr "" + +#: core/models.py:1009 +msgid "address line" +msgstr "" + +#: core/models.py:1011 +msgid "street" +msgstr "" + +#: core/models.py:1012 +msgid "district" +msgstr "" + +#: core/models.py:1013 +msgid "city" +msgstr "" + +#: core/models.py:1014 +msgid "region" +msgstr "" + +#: core/models.py:1015 +msgid "postal code" +msgstr "" + +#: core/models.py:1016 +msgid "country" +msgstr "" + +#: core/models.py:1023 +msgid "geolocation point: (longitude, latitude)" +msgstr "" + +#: core/models.py:1026 +msgid "full JSON response from geocoder for this address" +msgstr "" + +#: core/models.py:1031 +msgid "stored JSON response from the geocoding service" +msgstr "" + +#: core/models.py:1039 +msgid "address" +msgstr "" + +#: core/models.py:1040 +msgid "addresses" +msgstr "" + +#: core/models.py:1085 +msgid "unique code used by a user to redeem a discount" +msgstr "" + +#: core/models.py:1086 +msgid "promo code identifier" +msgstr "" + +#: core/models.py:1093 +msgid "fixed discount amount applied if percent is not used" +msgstr "" + +#: core/models.py:1094 +msgid "fixed discount amount" +msgstr "" + +#: core/models.py:1100 +msgid "percentage discount applied if fixed amount is not used" +msgstr "" + +#: core/models.py:1101 +msgid "percentage discount" +msgstr "" + +#: core/models.py:1106 +msgid "timestamp when the promocode expires" +msgstr "" + +#: core/models.py:1107 +msgid "end validity time" +msgstr "" + +#: core/models.py:1112 +msgid "timestamp from which this promocode is valid" +msgstr "" + +#: core/models.py:1113 +msgid "start validity time" +msgstr "" + +#: core/models.py:1118 +msgid "timestamp when the promocode was used, blank if not used yet" +msgstr "" + +#: core/models.py:1119 +msgid "usage timestamp" +msgstr "" + +#: core/models.py:1124 +msgid "user assigned to this promocode if applicable" +msgstr "" + +#: core/models.py:1125 +msgid "assigned user" +msgstr "" + +#: core/models.py:1132 +msgid "promo code" +msgstr "" + +#: core/models.py:1133 +msgid "promo codes" +msgstr "" + +#: core/models.py:1140 +msgid "" +"only one type of discount should be defined (amount or percent), but not " +"both or neither." +msgstr "" + +#: core/models.py:1155 +msgid "promocode already used" +msgstr "" + +#: core/models.py:1171 +#, python-brace-format +msgid "invalid discount type for promocode {self.uuid}" +msgstr "" + +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" + +#: core/models.py:1197 +msgid "the billing address used for this order" +msgstr "" + +#: core/models.py:1205 +msgid "optional promo code applied to this order" +msgstr "" + +#: core/models.py:1206 +msgid "applied promo code" +msgstr "" + +#: core/models.py:1214 +msgid "the shipping address used for this order" +msgstr "" + +#: core/models.py:1215 +msgid "shipping address" +msgstr "" + +#: core/models.py:1221 +msgid "current status of the order in its lifecycle" +msgstr "" + +#: core/models.py:1222 +msgid "order status" +msgstr "" + +#: core/models.py:1227 core/models.py:1686 +msgid "json structure of notifications to display to users" +msgstr "" + +#: core/models.py:1233 +msgid "json representation of order attributes for this order" +msgstr "" + +#: core/models.py:1239 +msgid "the user who placed the order" +msgstr "" + +#: core/models.py:1240 +msgid "user" +msgstr "" + +#: core/models.py:1246 +msgid "the timestamp when the order was finalized" +msgstr "" + +#: core/models.py:1247 +msgid "buy time" +msgstr "" + +#: core/models.py:1254 +msgid "a human-readable identifier for the order" +msgstr "" + +#: core/models.py:1255 +msgid "human readable id" +msgstr "" + +#: core/models.py:1261 +msgid "order" +msgstr "" + +#: core/models.py:1282 +msgid "a user must have only one pending order at a time" +msgstr "" + +#: core/models.py:1316 +msgid "you cannot add products to an order that is not a pending one" +msgstr "" + +#: core/models.py:1321 +msgid "you cannot add inactive products to order" +msgstr "" + +#: core/models.py:1338 +msgid "you cannot add more products than available in stock" +msgstr "" + +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 +msgid "you cannot remove products from an order that is not a pending one" +msgstr "" + +#: core/models.py:1381 +#, python-brace-format +msgid "{name} does not exist with query <{query}>" +msgstr "" + +#: core/models.py:1413 +msgid "promocode does not exist" +msgstr "" + +#: core/models.py:1419 +msgid "you can only buy physical products with shipping address specified" +msgstr "" + +#: core/models.py:1438 +msgid "address does not exist" +msgstr "" + +#: core/models.py:1459 core/models.py:1528 +msgid "you can not buy at this moment, please try again in a few minutes" +msgstr "" + +#: core/models.py:1462 core/models.py:1524 +msgid "invalid force value" +msgstr "" + +#: core/models.py:1468 core/models.py:1531 +msgid "you cannot purchase an empty order!" +msgstr "" + +#: core/models.py:1487 +msgid "you cannot buy an order without a user" +msgstr "" + +#: core/models.py:1501 +msgid "a user without a balance cannot buy with balance" +msgstr "" + +#: core/models.py:1506 +msgid "insufficient funds to complete the order" +msgstr "" + +#: core/models.py:1540 +msgid "" +"you cannot buy without registration, please provide the following " +"information: customer name, customer email, customer phone number" +msgstr "" + +#: core/models.py:1549 +#, python-brace-format +msgid "" +"invalid payment method: {payment_method} from {available_payment_methods}" +msgstr "" + +#: core/models.py:1674 +msgid "the price paid by the customer for this product at purchase time" +msgstr "" + +#: core/models.py:1675 +msgid "purchase price at order time" +msgstr "" + +#: core/models.py:1680 +msgid "internal comments for admins about this ordered product" +msgstr "" + +#: core/models.py:1681 +msgid "internal comments" +msgstr "" + +#: core/models.py:1687 +msgid "user notifications" +msgstr "" + +#: core/models.py:1692 +msgid "json representation of this item's attributes" +msgstr "" + +#: core/models.py:1693 +msgid "ordered product attributes" +msgstr "" + +#: core/models.py:1698 +msgid "reference to the parent order that contains this product" +msgstr "" + +#: core/models.py:1699 +msgid "parent order" +msgstr "" + +#: core/models.py:1708 +msgid "the specific product associated with this order line" +msgstr "" + +#: core/models.py:1715 +msgid "quantity of this specific product in the order" +msgstr "" + +#: core/models.py:1716 +msgid "product quantity" +msgstr "" + +#: core/models.py:1723 +msgid "current status of this product in the order" +msgstr "" + +#: core/models.py:1724 +msgid "product line status" +msgstr "" + +#: core/models.py:1784 +msgid "order product must have an order" +msgstr "" + +#: core/models.py:1786 +#, python-brace-format +msgid "wrong action specified for feedback: {action}" +msgstr "" + +#: core/models.py:1800 +msgid "you cannot feedback an order which is not received" +msgstr "" + +#: core/models.py:1806 +msgid "name" +msgstr "" + +#: core/models.py:1807 +msgid "URL of the integration" +msgstr "" + +#: core/models.py:1808 +msgid "authentication credentials" +msgstr "" + +#: core/models.py:1822 +msgid "you can only have one default CRM provider" +msgstr "" + +#: core/models.py:1826 +msgid "CRM" +msgstr "" + +#: core/models.py:1827 +msgid "CRMs" +msgstr "" + +#: core/models.py:1839 +msgid "order CRM link" +msgstr "" + +#: core/models.py:1840 +msgid "orders CRM links" +msgstr "" + +#: core/models.py:1874 +msgid "download" +msgstr "" + +#: core/models.py:1875 +msgid "downloads" +msgstr "" + +#: core/models.py:1883 +msgid "you can not download a digital asset for a non-finished order" +msgstr "" + +#: core/models.py:1913 +msgid "user-provided comments about their experience with the product" +msgstr "" + +#: core/models.py:1914 +msgid "feedback comments" +msgstr "" + +#: core/models.py:1921 +msgid "references the specific product in an order that this feedback is about" +msgstr "" + +#: core/models.py:1922 +msgid "related order product" +msgstr "" + +#: core/models.py:1927 +msgid "user-assigned rating for the product" +msgstr "" + +#: core/models.py:1928 +msgid "product rating" +msgstr "" + +#: core/serializers/utility.py:87 +msgid "" +"you must provide a comment, rating, and order product uuid to add feedback." +msgstr "" + +#: core/signals.py:65 +msgid "error during promocode creation: {e!s}" +msgstr "" + +#: core/sitemaps.py:17 +msgid "Home" +msgstr "" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "" + +#: core/templates/digital_order_created_email.html:7 +#: core/templates/digital_order_created_email.html:100 +#: core/templates/digital_order_delivered_email.html:6 +#: core/templates/shipped_order_created_email.html:7 +#: core/templates/shipped_order_created_email.html:99 +#: core/templates/shipped_order_delivered_email.html:7 +#: core/templates/shipped_order_delivered_email.html:99 +msgid "order confirmation" +msgstr "" + +#: core/templates/digital_order_created_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 +#: core/templates/promocode_granted_email.html:94 +#: core/templates/shipped_order_created_email.html:94 +#: core/templates/shipped_order_delivered_email.html:94 +msgid "logo" +msgstr "" + +#: core/templates/digital_order_created_email.html:101 +#: core/templates/shipped_order_created_email.html:100 +#: core/templates/shipped_order_delivered_email.html:100 +#, python-format +msgid "hello %(order.user.first_name)s," +msgstr "" + +#: core/templates/digital_order_created_email.html:102 +#, 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" +" order:" +msgstr "" + +#: core/templates/digital_order_created_email.html:112 +#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/shipped_order_created_email.html:110 +#: core/templates/shipped_order_delivered_email.html:110 +msgid "total" +msgstr "" + +#: core/templates/digital_order_created_email.html:125 +#: core/templates/digital_order_delivered_email.html:157 +#: core/templates/shipped_order_created_email.html:127 +#: core/templates/shipped_order_delivered_email.html:127 +msgid "total price" +msgstr "" + +#: core/templates/digital_order_created_email.html:131 +#: core/templates/shipped_order_created_email.html:140 +#: core/templates/shipped_order_delivered_email.html:140 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(config.EMAIL_HOST_USER)s." +msgstr "" + +#: core/templates/digital_order_created_email.html:133 +#, python-format +msgid "best regards,
the %(config.PROJECT_NAME)s team" +msgstr "" + +#: core/templates/digital_order_created_email.html:139 +#: core/templates/digital_order_delivered_email.html:171 +#: core/templates/promocode_granted_email.html:114 +msgid "all rights reserved" +msgstr "" + +#: core/templates/digital_order_delivered_email.html:99 +msgid "order delivered" +msgstr "" + +#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "" + +#: core/templates/digital_order_delivered_email.html:101 +#, python-format +msgid "" +"we have successfully processed your order №%(order_uuid)s! below are the\n" +" details of your order:" +msgstr "" + +#: core/templates/digital_order_delivered_email.html:128 +msgid "" +"additional\n" +" information" +msgstr "" + +#: core/templates/digital_order_delivered_email.html:137 +#: core/templates/json_table_widget.html:6 +msgid "value" +msgstr "" + +#: core/templates/digital_order_delivered_email.html:163 +#: core/templates/promocode_granted_email.html:106 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" + +#: core/templates/digital_order_delivered_email.html:165 +#: core/templates/promocode_granted_email.html:108 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "" + +#: core/templates/json_table_widget.html:5 +msgid "key" +msgstr "" + +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" + +#: core/templates/shipped_order_created_email.html:101 +#: core/templates/shipped_order_delivered_email.html:101 +msgid "" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" +" the details of your order:" +msgstr "" + +#: core/templates/shipped_order_created_email.html:123 +#: core/templates/shipped_order_delivered_email.html:123 +msgid "shipping price" +msgstr "" + +#: core/templates/shipped_order_created_email.html:133 +#: core/templates/shipped_order_delivered_email.html:133 +msgid "your order will be delivered to the following address:" +msgstr "" + +#: core/templates/shipped_order_created_email.html:142 +#: core/templates/shipped_order_delivered_email.html:142 +#, python-format +msgid "best regards,
The %(config.PROJECT_NAME)s team" +msgstr "" + +#: core/templates/shipped_order_created_email.html:147 +#: core/templates/shipped_order_delivered_email.html:147 +msgid "" +"all rights\n" +" reserved" +msgstr "" + +#: core/utils/caching.py:41 +msgid "both data and timeout are required" +msgstr "" + +#: core/utils/caching.py:43 +msgid "invalid timeout value, it must be between 0 and 216000 seconds" +msgstr "" + +#: core/utils/emailing.py:25 +#, python-brace-format +msgid "{config.PROJECT_NAME} | contact us initiated" +msgstr "" + +#: core/utils/emailing.py:64 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order confirmation" +msgstr "" + +#: core/utils/emailing.py:99 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order delivered" +msgstr "" + +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "" + +#: core/utils/messages.py:3 +msgid "you do not have permission to perform this action." +msgstr "" + +#: core/utils/nominatim.py:8 +msgid "NOMINATIM_URL must be configured." +msgstr "" + +#: core/validators.py:16 +#, python-brace-format +msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" +msgstr "" + +#: core/validators.py:22 +msgid "invalid phone number format" +msgstr "" + +#: core/views.py:481 +msgid "you can only download the digital asset once" +msgstr "" + +#: core/views.py:539 +msgid "favicon not found" +msgstr "" + +#: core/viewsets.py:1319 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "" diff --git a/core/locale/id_ID/LC_MESSAGES/django.mo b/core/locale/id_ID/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d8847803e9119e2d2ac2e44bc9c3d14b68ce29b6 GIT binary patch literal 58724 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
dxd;dt9$*6;$kUyv9PGjdQW59%S4J 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 M5cX^CS&Os(525j^&;S4c literal 0 HcmV?d00001 diff --git a/core/locale/id_ID/LC_MESSAGES/django.po b/core/locale/id_ID/LC_MESSAGES/django.po new file mode 100644 index 00000000..276a0ddc --- /dev/null +++ b/core/locale/id_ID/LC_MESSAGES/django.po @@ -0,0 +1,2623 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: id-id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: core/abstract.py:11 +msgid "unique id" +msgstr "ID unik" + +#: core/abstract.py:12 +msgid "unique id is used to surely identify any database object" +msgstr "" +"ID unik digunakan untuk mengidentifikasi objek basis data secara pasti" + +#: core/abstract.py:19 +msgid "is active" +msgstr "Aktif" + +#: core/abstract.py:20 +msgid "" +"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" + +#: core/abstract.py:22 core/choices.py:18 +msgid "created" +msgstr "Dibuat" + +#: core/abstract.py:22 +msgid "when the object first appeared on the database" +msgstr "Saat objek pertama kali muncul di database" + +#: core/abstract.py:23 +msgid "modified" +msgstr "Dimodifikasi" + +#: core/abstract.py:23 +msgid "when the object was last modified" +msgstr "Kapan objek terakhir kali diedit" + +#: core/admin.py:63 +msgid "translations" +msgstr "Terjemahan" + +#: core/admin.py:67 +msgid "general" +msgstr "Umum" + +#: core/admin.py:69 +msgid "relations" +msgstr "Hubungan" + +#: core/admin.py:87 +msgid "metadata" +msgstr "Metadata" + +#: core/admin.py:94 +msgid "timestamps" +msgstr "Stempel waktu" + +#: core/admin.py:109 +#, python-format +msgid "activate selected %(verbose_name_plural)s" +msgstr "Aktifkan %(verbose_name_plural)s yang dipilih" + +#: core/admin.py:114 +msgid "selected items have been activated." +msgstr "Item yang dipilih telah diaktifkan!" + +#: core/admin.py:120 +#, python-format +msgid "deactivate selected %(verbose_name_plural)s" +msgstr "Menonaktifkan %(verbose_name_plural)s yang dipilih" + +#: core/admin.py:125 +msgid "selected items have been deactivated." +msgstr "Item yang dipilih telah dinonaktifkan!" + +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 +msgid "attribute value" +msgstr "Nilai Atribut" + +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 +msgid "attribute values" +msgstr "Nilai Atribut" + +#: core/admin.py:146 +msgid "image" +msgstr "Gambar" + +#: core/admin.py:147 core/graphene/object_types.py:501 +msgid "images" +msgstr "Gambar" + +#: core/admin.py:155 core/models.py:457 +msgid "stock" +msgstr "Stok" + +#: core/admin.py:156 core/graphene/object_types.py:663 +msgid "stocks" +msgstr "Saham" + +#: core/admin.py:166 core/models.py:1735 +msgid "order product" +msgstr "Pesan Produk" + +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 +msgid "order products" +msgstr "Pesan Produk" + +#: core/admin.py:180 core/admin.py:181 +msgid "children" +msgstr "Anak-anak" + +#: core/admin.py:566 +msgid "Config" +msgstr "Konfigurasi" + +#: core/apps.py:8 +msgid "core" +msgstr "Inti" + +#: core/choices.py:4 core/choices.py:20 +msgid "finished" +msgstr "Selesai." + +#: core/choices.py:5 core/choices.py:19 +msgid "delivering" +msgstr "Menyampaikan" + +#: core/choices.py:6 +msgid "delivered" +msgstr "Disampaikan." + +#: core/choices.py:7 +msgid "canceled" +msgstr "Dibatalkan" + +#: core/choices.py:8 core/choices.py:16 core/choices.py:24 +msgid "failed" +msgstr "Gagal" + +#: core/choices.py:9 core/choices.py:15 +msgid "pending" +msgstr "Pending" + +#: core/choices.py:10 +msgid "accepted" +msgstr "Diterima" + +#: core/choices.py:11 +msgid "money returned" +msgstr "Uang Dikembalikan" + +#: core/choices.py:17 +msgid "payment" +msgstr "Pembayaran" + +#: core/choices.py:21 +msgid "momental" +msgstr "Momental" + +#: core/choices.py:24 +msgid "successful" +msgstr "Berhasil" + +#: core/docs/drf/views.py:17 core/graphene/mutations.py:36 +msgid "cache I/O" +msgstr "I/O Cache" + +#: core/docs/drf/views.py:19 +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 "" +"Terapkan hanya kunci untuk membaca data yang diizinkan dari cache.\n" +"Menerapkan kunci, data, dan batas waktu dengan autentikasi untuk menulis data ke cache." + +#: core/docs/drf/views.py:32 +msgid "get a list of supported languages" +msgstr "Dapatkan daftar bahasa yang didukung" + +#: core/docs/drf/views.py:41 +msgid "get application's exposable parameters" +msgstr "Dapatkan parameter aplikasi yang dapat diekspos" + +#: core/docs/drf/views.py:48 +msgid "send a message to the support team" +msgstr "Kirim pesan ke tim dukungan" + +#: core/docs/drf/views.py:59 core/graphene/mutations.py:55 +msgid "request a CORSed URL" +msgstr "Meminta URL CORSed. Hanya https yang diizinkan." + +#: core/docs/drf/views.py:85 +msgid "global search endpoint to query across project's tables" +msgstr "" +"Titik akhir pencarian global untuk melakukan kueri di seluruh tabel proyek" + +#: core/docs/drf/views.py:91 +msgid "purchase an order as a business" +msgstr "Beli pesanan sebagai Bisnis" + +#: core/docs/drf/views.py:98 +msgid "" +"purchase an order as a business, using the provided `products` with " +"`product_uuid` and `attributes`." +msgstr "" +"Beli pesanan sebagai bisnis, menggunakan `produk` yang disediakan dengan " +"`product_uuid` dan `atribut`." + +#: core/docs/drf/viewsets.py:44 +msgid "list all attribute groups (simple view)" +msgstr "Buat daftar semua grup atribut (tampilan sederhana)" + +#: core/docs/drf/viewsets.py:48 +msgid "retrieve a single attribute group (detailed view)" +msgstr "Mengambil grup atribut tunggal (tampilan detail)" + +#: core/docs/drf/viewsets.py:52 +msgid "create an attribute group" +msgstr "Membuat grup atribut" + +#: core/docs/drf/viewsets.py:56 +msgid "delete an attribute group" +msgstr "Menghapus grup atribut" + +#: core/docs/drf/viewsets.py:60 +msgid "rewrite an existing attribute group saving non-editables" +msgstr "" +"Menulis ulang grup atribut yang sudah ada dan menyimpan grup yang tidak " +"dapat diedit" + +#: core/docs/drf/viewsets.py:64 +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" + +#: core/docs/drf/viewsets.py:71 +msgid "list all attributes (simple view)" +msgstr "Daftar semua atribut (tampilan sederhana)" + +#: core/docs/drf/viewsets.py:75 +msgid "retrieve a single attribute (detailed view)" +msgstr "Mengambil atribut tunggal (tampilan detail)" + +#: core/docs/drf/viewsets.py:79 +msgid "create an attribute" +msgstr "Membuat atribut" + +#: core/docs/drf/viewsets.py:83 +msgid "delete an attribute" +msgstr "Menghapus atribut" + +#: core/docs/drf/viewsets.py:87 +msgid "rewrite an existing attribute saving non-editables" +msgstr "" +"Menulis ulang atribut yang sudah ada dengan menyimpan atribut yang tidak " +"dapat diedit" + +#: core/docs/drf/viewsets.py:91 +msgid "rewrite some fields of an existing attribute saving non-editables" +msgstr "" +"Menulis ulang beberapa bidang dari atribut yang sudah ada sehingga tidak " +"dapat diedit" + +#: core/docs/drf/viewsets.py:98 +msgid "list all attribute values (simple view)" +msgstr "Daftar semua nilai atribut (tampilan sederhana)" + +#: core/docs/drf/viewsets.py:102 +msgid "retrieve a single attribute value (detailed view)" +msgstr "Mengambil nilai atribut tunggal (tampilan detail)" + +#: core/docs/drf/viewsets.py:106 +msgid "create an attribute value" +msgstr "Membuat nilai atribut" + +#: core/docs/drf/viewsets.py:110 +msgid "delete an attribute value" +msgstr "Menghapus nilai atribut" + +#: core/docs/drf/viewsets.py:114 +msgid "rewrite an existing attribute value saving non-editables" +msgstr "" +"Menulis ulang nilai atribut yang sudah ada dan menyimpan nilai yang tidak " +"dapat diedit" + +#: core/docs/drf/viewsets.py:118 +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" + +#: core/docs/drf/viewsets.py:125 core/docs/drf/viewsets.py:126 +msgid "list all categories (simple view)" +msgstr "Daftar semua kategori (tampilan sederhana)" + +#: core/docs/drf/viewsets.py:130 core/docs/drf/viewsets.py:131 +msgid "retrieve a single category (detailed view)" +msgstr "Mengambil satu kategori (tampilan detail)" + +#: core/docs/drf/viewsets.py:135 core/docs/drf/viewsets.py:136 +msgid "create a category" +msgstr "Membuat kategori" + +#: core/docs/drf/viewsets.py:140 core/docs/drf/viewsets.py:141 +msgid "delete a category" +msgstr "Menghapus kategori" + +#: core/docs/drf/viewsets.py:145 core/docs/drf/viewsets.py:146 +msgid "rewrite an existing category saving non-editables" +msgstr "" +"Menulis ulang kategori yang sudah ada dan menyimpan kategori yang tidak " +"dapat diedit" + +#: core/docs/drf/viewsets.py:150 core/docs/drf/viewsets.py:151 +msgid "rewrite some fields of an existing category saving non-editables" +msgstr "" +"Menulis ulang beberapa bidang dari kategori yang sudah ada sehingga tidak " +"dapat diedit" + +#: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 +#: core/graphene/object_types.py:117 core/graphene/object_types.py:207 +#: core/graphene/object_types.py:509 +msgid "SEO Meta snapshot" +msgstr "Cuplikan Meta SEO" + +#: core/docs/drf/viewsets.py:156 +msgid "returns a snapshot of the category's SEO meta data" +msgstr "Mengembalikan cuplikan data meta SEO kategori" + +#: core/docs/drf/viewsets.py:161 +msgid "Category UUID or slug" +msgstr "Kategori UUID atau siput" + +#: core/docs/drf/viewsets.py:174 +msgid "list all orders (simple view)" +msgstr "Daftar semua kategori (tampilan sederhana)" + +#: core/docs/drf/viewsets.py:175 +msgid "for non-staff users, only their own orders are returned." +msgstr "" +"Untuk pengguna non-staf, hanya pesanan mereka sendiri yang dikembalikan." + +#: core/docs/drf/viewsets.py:181 +msgid "" +"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" + +#: core/docs/drf/viewsets.py:188 +msgid "Filter orders with buy_time >= this ISO 8601 datetime" +msgstr "Filter pesanan dengan waktu_beli >= waktu_data ISO 8601 ini" + +#: core/docs/drf/viewsets.py:193 +msgid "Filter orders with buy_time <= this ISO 8601 datetime" +msgstr "Filter pesanan dengan waktu_beli <= waktu_data ISO 8601 ini" + +#: core/docs/drf/viewsets.py:198 +msgid "Filter by exact order UUID" +msgstr "Filter berdasarkan urutan yang tepat UUID" + +#: core/docs/drf/viewsets.py:203 +msgid "Filter by exact human-readable order ID" +msgstr "Filter berdasarkan ID pesanan yang dapat dibaca manusia" + +#: core/docs/drf/viewsets.py:208 +msgid "Filter by user's email (case-insensitive exact match)" +msgstr "" +"Filter berdasarkan email pengguna (pencocokan persis tanpa huruf besar-" +"kecil)" + +#: core/docs/drf/viewsets.py:213 +msgid "Filter by user's UUID" +msgstr "Memfilter berdasarkan UUID pengguna" + +#: core/docs/drf/viewsets.py:218 +msgid "Filter by order status (case-insensitive substring match)" +msgstr "" +"Filter berdasarkan status pesanan (pencocokan substring yang tidak peka " +"huruf besar-kecil)" + +#: core/docs/drf/viewsets.py:224 +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')." +msgstr "" +"Urutkan berdasarkan salah satu dari: uuid, human_readable_id, user_email, " +"user, status, created, modified, buy_time, random. Awalan dengan '-' untuk " +"menurun (contoh: '-buy_time')." + +#: core/docs/drf/viewsets.py:233 +msgid "retrieve a single order (detailed view)" +msgstr "Mengambil satu kategori (tampilan detail)" + +#: core/docs/drf/viewsets.py:237 +msgid "create an order" +msgstr "Membuat atribut" + +#: core/docs/drf/viewsets.py:238 +msgid "doesn't work for non-staff users." +msgstr "Tidak dapat digunakan oleh pengguna non-staf." + +#: core/docs/drf/viewsets.py:242 +msgid "delete an order" +msgstr "Menghapus atribut" + +#: core/docs/drf/viewsets.py:246 +msgid "rewrite an existing order saving non-editables" +msgstr "" +"Menulis ulang kategori yang sudah ada dan menyimpan kategori yang tidak " +"dapat diedit" + +#: core/docs/drf/viewsets.py:250 +msgid "rewrite some fields of an existing order saving non-editables" +msgstr "" +"Menulis ulang beberapa bidang dari kategori yang sudah ada sehingga tidak " +"dapat diedit" + +#: core/docs/drf/viewsets.py:254 +msgid "purchase an order" +msgstr "Harga pembelian pada saat pemesanan" + +#: core/docs/drf/viewsets.py:256 +msgid "" +"finalizes the order purchase. if `force_balance` is used, the purchase is " +"completed using the user's balance; if `force_payment` is used, a " +"transaction is initiated." +msgstr "" +"Menyelesaikan pembelian pesanan. Jika `force_balance` digunakan, pembelian " +"diselesaikan menggunakan saldo pengguna; Jika `force_payment` digunakan, " +"transaksi dimulai." + +#: core/docs/drf/viewsets.py:268 core/graphene/mutations.py:324 +msgid "purchase an order without account creation" +msgstr "membeli pesanan tanpa pembuatan akun" + +#: core/docs/drf/viewsets.py:269 +msgid "finalizes the order purchase for a non-registered user." +msgstr "menyelesaikan pembelian pesanan untuk pengguna yang tidak terdaftar." + +#: core/docs/drf/viewsets.py:277 +msgid "add product to order" +msgstr "Menambahkan produk ke pesanan" + +#: core/docs/drf/viewsets.py:278 +msgid "" +"adds a product to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Menambahkan produk ke pesanan menggunakan `product_uuid` dan `atribut` yang " +"disediakan." + +#: core/docs/drf/viewsets.py:283 +msgid "add a list of products to order, quantities will not count" +msgstr "Tambahkan daftar produk yang akan dipesan, jumlah tidak akan dihitung" + +#: core/docs/drf/viewsets.py:284 +msgid "" +"adds a list of products to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Menambahkan daftar produk ke pesanan menggunakan `product_uuid` dan " +"`atribut` yang disediakan." + +#: core/docs/drf/viewsets.py:289 +msgid "remove product from order" +msgstr "Menghapus produk dari pesanan" + +#: core/docs/drf/viewsets.py:290 +msgid "" +"removes a product from an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Menghapus produk dari pesanan menggunakan `product_uuid` dan `atribut` yang " +"disediakan." + +#: core/docs/drf/viewsets.py:295 +msgid "remove product from order, quantities will not count" +msgstr "Menghapus produk dari pesanan, jumlah tidak akan dihitung" + +#: core/docs/drf/viewsets.py:296 +msgid "" +"removes a list of products from an order using the provided `product_uuid` " +"and `attributes`" +msgstr "" +"Menghapus daftar produk dari pesanan menggunakan `product_uuid` dan " +"`atribut` yang disediakan." + +#: core/docs/drf/viewsets.py:304 +msgid "list all wishlists (simple view)" +msgstr "Daftar semua atribut (tampilan sederhana)" + +#: core/docs/drf/viewsets.py:305 +msgid "for non-staff users, only their own wishlists are returned." +msgstr "" +"Untuk pengguna non-staf, hanya daftar keinginan mereka sendiri yang " +"dikembalikan." + +#: core/docs/drf/viewsets.py:309 +msgid "retrieve a single wishlist (detailed view)" +msgstr "Mengambil atribut tunggal (tampilan detail)" + +#: core/docs/drf/viewsets.py:313 +msgid "create an wishlist" +msgstr "Membuat atribut" + +#: core/docs/drf/viewsets.py:314 +msgid "Doesn't work for non-staff users." +msgstr "Tidak dapat digunakan oleh pengguna non-staf." + +#: core/docs/drf/viewsets.py:318 +msgid "delete an wishlist" +msgstr "Menghapus atribut" + +#: core/docs/drf/viewsets.py:322 +msgid "rewrite an existing wishlist saving non-editables" +msgstr "" +"Menulis ulang atribut yang sudah ada dengan menyimpan atribut yang tidak " +"dapat diedit" + +#: core/docs/drf/viewsets.py:326 +msgid "rewrite some fields of an existing wishlist saving non-editables" +msgstr "" +"Menulis ulang beberapa bidang dari atribut yang sudah ada sehingga tidak " +"dapat diedit" + +#: core/docs/drf/viewsets.py:330 +msgid "add product to wishlist" +msgstr "Menambahkan produk ke pesanan" + +#: core/docs/drf/viewsets.py:331 +msgid "adds a product to an wishlist using the provided `product_uuid`" +msgstr "" +"Menambahkan produk ke daftar keinginan menggunakan `product_uuid` yang " +"disediakan" + +#: core/docs/drf/viewsets.py:336 +msgid "remove product from wishlist" +msgstr "Menghapus produk dari daftar keinginan" + +#: core/docs/drf/viewsets.py:337 +msgid "removes a product from an wishlist using the provided `product_uuid`" +msgstr "" +"Menghapus produk dari daftar keinginan menggunakan `product_uuid` yang " +"disediakan" + +#: core/docs/drf/viewsets.py:342 +msgid "add many products to wishlist" +msgstr "Tambahkan banyak produk ke daftar keinginan" + +#: core/docs/drf/viewsets.py:343 +msgid "adds many products to an wishlist using the provided `product_uuids`" +msgstr "" +"Menambahkan banyak produk ke daftar keinginan menggunakan `product_uuids` " +"yang disediakan" + +#: core/docs/drf/viewsets.py:348 +msgid "remove many products from wishlist" +msgstr "Menghapus produk dari pesanan" + +#: core/docs/drf/viewsets.py:349 +msgid "" +"removes many products from an wishlist using the provided `product_uuids`" +msgstr "" +"Menghapus banyak produk dari daftar keinginan menggunakan `product_uuids` " +"yang disediakan" + +#: core/docs/drf/viewsets.py:356 +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" +"• **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" +"`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" +"Contoh: \n" +"`warna=merah-pasti`, `ukuran=gt-10`, `fitur=dalam-[\"wifi\", \"bluetooth\"]`,\n" +"`b64-description = berisi-aGVhdC1jb2xk`" + +#: core/docs/drf/viewsets.py:372 core/docs/drf/viewsets.py:373 +msgid "list all products (simple view)" +msgstr "Daftar semua produk (tampilan sederhana)" + +#: core/docs/drf/viewsets.py:378 +msgid "(exact) Product UUID" +msgstr "UUID Produk (persis)" + +#: core/docs/drf/viewsets.py:384 +msgid "(icontains) Product name" +msgstr "(berisi) Nama produk" + +#: core/docs/drf/viewsets.py:390 +msgid "(list) Category names, case-insensitive" +msgstr "(daftar) Nama kategori, tidak peka huruf besar-kecil" + +#: core/docs/drf/viewsets.py:396 +msgid "(exact) Category UUID" +msgstr "(persis) Kategori UUID" + +#: core/docs/drf/viewsets.py:402 +msgid "(list) Tag names, case-insensitive" +msgstr "(daftar) Nama tag, tidak peka huruf besar-kecil" + +#: core/docs/drf/viewsets.py:408 +msgid "(gte) Minimum stock price" +msgstr "(gte) Harga saham minimum" + +#: core/docs/drf/viewsets.py:414 +msgid "(lte) Maximum stock price" +msgstr "(lte) Harga saham maksimum" + +#: core/docs/drf/viewsets.py:420 +msgid "(exact) Only active products" +msgstr "(persis) Hanya produk yang aktif" + +#: core/docs/drf/viewsets.py:426 +msgid "(iexact) Brand name" +msgstr "(iexact) Nama merek" + +#: core/docs/drf/viewsets.py:438 +msgid "(gt) Minimum stock quantity" +msgstr "(gt) Jumlah stok minimum" + +#: core/docs/drf/viewsets.py:444 +msgid "(exact) Digital vs. physical" +msgstr "(persis) Digital vs. fisik" + +#: core/docs/drf/viewsets.py:451 +msgid "" +"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" + +#: core/docs/drf/viewsets.py:465 core/docs/drf/viewsets.py:466 +msgid "retrieve a single product (detailed view)" +msgstr "Mengambil satu produk (tampilan detail)" + +#: core/docs/drf/viewsets.py:471 core/docs/drf/viewsets.py:495 +#: core/docs/drf/viewsets.py:511 core/docs/drf/viewsets.py:527 +#: core/docs/drf/viewsets.py:543 core/docs/drf/viewsets.py:559 +msgid "Product UUID or slug" +msgstr "UUID Produk atau Siput" + +#: core/docs/drf/viewsets.py:481 core/docs/drf/viewsets.py:482 +msgid "create a product" +msgstr "Membuat produk" + +#: core/docs/drf/viewsets.py:489 core/docs/drf/viewsets.py:490 +msgid "rewrite an existing product, preserving non-editable fields" +msgstr "" +"Menulis ulang produk yang sudah ada, mempertahankan bidang yang tidak dapat " +"diedit" + +#: core/docs/drf/viewsets.py:505 core/docs/drf/viewsets.py:506 +msgid "" +"update some fields of an existing product, preserving non-editable fields" +msgstr "" +"Memperbarui beberapa bidang dari produk yang sudah ada, mempertahankan " +"bidang yang tidak dapat diedit" + +#: core/docs/drf/viewsets.py:521 core/docs/drf/viewsets.py:522 +msgid "delete a product" +msgstr "Menghapus produk" + +#: core/docs/drf/viewsets.py:537 core/docs/drf/viewsets.py:538 +msgid "lists all permitted feedbacks for a product" +msgstr "mencantumkan semua umpan balik yang diizinkan untuk suatu produk" + +#: core/docs/drf/viewsets.py:554 +msgid "returns a snapshot of the product's SEO meta data" +msgstr "Mengembalikan cuplikan data meta SEO produk" + +#: core/docs/drf/viewsets.py:572 +msgid "list all addresses" +msgstr "Daftar semua alamat" + +#: core/docs/drf/viewsets.py:579 +msgid "retrieve a single address" +msgstr "Mengambil satu alamat" + +#: core/docs/drf/viewsets.py:586 +msgid "create a new address" +msgstr "Membuat alamat baru" + +#: core/docs/drf/viewsets.py:594 +msgid "delete an address" +msgstr "Menghapus alamat" + +#: core/docs/drf/viewsets.py:601 +msgid "update an entire address" +msgstr "Memperbarui seluruh alamat" + +#: core/docs/drf/viewsets.py:609 +msgid "partially update an address" +msgstr "Memperbarui sebagian alamat" + +#: core/docs/drf/viewsets.py:617 +msgid "autocomplete address suggestions" +msgstr "Masukan alamat pelengkapan otomatis" + +#: core/docs/drf/viewsets.py:622 +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" + +#: core/docs/drf/viewsets.py:628 +msgid "limit the results amount, 1 < limit < 10, default: 5" +msgstr "membatasi jumlah hasil, 1 " +msgstr "{name} tidak ada dengan kueri <{query}>!" + +#: core/models.py:1413 +msgid "promocode does not exist" +msgstr "Kode promosi tidak ada" + +#: core/models.py:1419 +msgid "you can only buy physical products with shipping address specified" +msgstr "" +"Anda hanya dapat membeli produk fisik dengan alamat pengiriman yang " +"ditentukan!" + +#: core/models.py:1438 +msgid "address does not exist" +msgstr "Alamat tidak ada" + +#: core/models.py:1459 core/models.py:1528 +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." + +#: core/models.py:1462 core/models.py:1524 +msgid "invalid force value" +msgstr "Nilai gaya tidak valid" + +#: core/models.py:1468 core/models.py:1531 +msgid "you cannot purchase an empty order!" +msgstr "Anda tidak dapat membeli pesanan kosong!" + +#: core/models.py:1487 +msgid "you cannot buy an order without a user" +msgstr "Anda tidak dapat membeli pesanan tanpa pengguna!" + +#: core/models.py:1501 +msgid "a user without a balance cannot buy with balance" +msgstr "Pengguna tanpa saldo tidak dapat membeli dengan saldo!" + +#: core/models.py:1506 +msgid "insufficient funds to complete the order" +msgstr "Dana tidak mencukupi untuk menyelesaikan pesanan" + +#: core/models.py:1540 +msgid "" +"you cannot buy without registration, please provide the following " +"information: customer name, customer email, customer phone number" +msgstr "" +"Anda tidak dapat membeli tanpa registrasi, berikan informasi berikut: nama " +"pelanggan, email pelanggan, nomor telepon pelanggan" + +#: core/models.py:1549 +#, python-brace-format +msgid "" +"invalid payment method: {payment_method} from {available_payment_methods}" +msgstr "" +"Metode pembayaran tidak valid: {payment_method} dari " +"{available_payment_methods}!" + +#: core/models.py:1674 +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" + +#: core/models.py:1675 +msgid "purchase price at order time" +msgstr "Harga pembelian pada saat pemesanan" + +#: core/models.py:1680 +msgid "internal comments for admins about this ordered product" +msgstr "Komentar internal untuk admin tentang produk yang dipesan ini" + +#: core/models.py:1681 +msgid "internal comments" +msgstr "Komentar internal" + +#: core/models.py:1687 +msgid "user notifications" +msgstr "Pemberitahuan pengguna" + +#: core/models.py:1692 +msgid "json representation of this item's attributes" +msgstr "Representasi JSON dari atribut item ini" + +#: core/models.py:1693 +msgid "ordered product attributes" +msgstr "Atribut produk yang dipesan" + +#: core/models.py:1698 +msgid "reference to the parent order that contains this product" +msgstr "Referensi ke pesanan induk yang berisi produk ini" + +#: core/models.py:1699 +msgid "parent order" +msgstr "Urutan induk" + +#: core/models.py:1708 +msgid "the specific product associated with this order line" +msgstr "Produk spesifik yang terkait dengan baris pesanan ini" + +#: core/models.py:1715 +msgid "quantity of this specific product in the order" +msgstr "Jumlah produk spesifik ini dalam pesanan" + +#: core/models.py:1716 +msgid "product quantity" +msgstr "Kuantitas produk" + +#: core/models.py:1723 +msgid "current status of this product in the order" +msgstr "Status saat ini dari produk ini dalam pesanan" + +#: core/models.py:1724 +msgid "product line status" +msgstr "Status lini produk" + +#: core/models.py:1784 +msgid "order product must have an order" +msgstr "Pesananproduk harus memiliki pesanan terkait!" + +#: core/models.py:1786 +#, python-brace-format +msgid "wrong action specified for feedback: {action}" +msgstr "Tindakan yang salah ditentukan untuk umpan balik: {action}!" + +#: core/models.py:1800 +msgid "you cannot feedback an order which is not received" +msgstr "" +"Anda tidak dapat memberikan umpan balik atas pesanan yang tidak diterima" + +#: core/models.py:1806 +msgid "name" +msgstr "Nama" + +#: core/models.py:1807 +msgid "URL of the integration" +msgstr "URL integrasi" + +#: core/models.py:1808 +msgid "authentication credentials" +msgstr "Kredensial otentikasi" + +#: core/models.py:1822 +msgid "you can only have one default CRM provider" +msgstr "Anda hanya dapat memiliki satu penyedia CRM default" + +#: core/models.py:1826 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1827 +msgid "CRMs" +msgstr "CRM" + +#: core/models.py:1839 +msgid "order CRM link" +msgstr "Tautan CRM pesanan" + +#: core/models.py:1840 +msgid "orders CRM links" +msgstr "Tautan CRM Pesanan" + +#: core/models.py:1874 +msgid "download" +msgstr "Unduh" + +#: core/models.py:1875 +msgid "downloads" +msgstr "Unduhan" + +#: core/models.py:1883 +msgid "you can not download a digital asset for a non-finished order" +msgstr "" +"Anda tidak dapat mengunduh aset digital untuk pesanan yang belum selesai" + +#: core/models.py:1913 +msgid "user-provided comments about their experience with the product" +msgstr "" +"Komentar yang diberikan pengguna tentang pengalaman mereka dengan produk" + +#: core/models.py:1914 +msgid "feedback comments" +msgstr "Komentar umpan balik" + +#: core/models.py:1921 +msgid "" +"references the specific product in an order that this feedback is about" +msgstr "Merujuk ke produk tertentu sesuai dengan urutan umpan balik ini" + +#: core/models.py:1922 +msgid "related order product" +msgstr "Produk pesanan terkait" + +#: core/models.py:1927 +msgid "user-assigned rating for the product" +msgstr "Peringkat yang ditetapkan pengguna untuk produk" + +#: core/models.py:1928 +msgid "product rating" +msgstr "Peringkat produk" + +#: core/serializers/utility.py:87 +msgid "" +"you must provide a comment, rating, and order product uuid to add feedback." +msgstr "" +"Anda harus memberikan komentar, penilaian, dan memesan produk uuid untuk " +"menambahkan umpan balik." + +#: core/signals.py:65 +msgid "error during promocode creation: {e!s}" +msgstr "Kesalahan selama pembuatan promocode: {e!s}" + +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Beranda" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Hubungi Kami" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Tentang Kami" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Informasi Pembayaran" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Pengiriman" + +#: core/templates/digital_order_created_email.html:7 +#: core/templates/digital_order_created_email.html:100 +#: core/templates/digital_order_delivered_email.html:6 +#: core/templates/shipped_order_created_email.html:7 +#: core/templates/shipped_order_created_email.html:99 +#: core/templates/shipped_order_delivered_email.html:7 +#: core/templates/shipped_order_delivered_email.html:99 +msgid "order confirmation" +msgstr "Konfirmasi Pesanan" + +#: core/templates/digital_order_created_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 +#: core/templates/promocode_granted_email.html:94 +#: core/templates/shipped_order_created_email.html:94 +#: core/templates/shipped_order_delivered_email.html:94 +msgid "logo" +msgstr "Logo" + +#: core/templates/digital_order_created_email.html:101 +#: core/templates/shipped_order_created_email.html:100 +#: core/templates/shipped_order_delivered_email.html:100 +#, python-format +msgid "hello %(order.user.first_name)s," +msgstr "Halo %(order.user.first_name)s," + +#: core/templates/digital_order_created_email.html:102 +#, 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" +" order:" +msgstr "" +"Terima kasih atas pesanan Anda #%(order.pk)s! Dengan senang hati kami " +"informasikan bahwa kami telah mengerjakan pesanan Anda. Di bawah ini adalah " +"rincian pesanan Anda:" + +#: core/templates/digital_order_created_email.html:112 +#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/shipped_order_created_email.html:110 +#: core/templates/shipped_order_delivered_email.html:110 +msgid "total" +msgstr "Total" + +#: core/templates/digital_order_created_email.html:125 +#: core/templates/digital_order_delivered_email.html:157 +#: core/templates/shipped_order_created_email.html:127 +#: core/templates/shipped_order_delivered_email.html:127 +msgid "total price" +msgstr "Total Harga" + +#: core/templates/digital_order_created_email.html:131 +#: core/templates/shipped_order_created_email.html:140 +#: core/templates/shipped_order_delivered_email.html:140 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(config.EMAIL_HOST_USER)s." +msgstr "" +"Jika Anda memiliki pertanyaan, jangan ragu untuk menghubungi dukungan kami " +"di %(config.EMAIL_HOST_USER)s." + +#: core/templates/digital_order_created_email.html:133 +#, python-format +msgid "best regards,
the %(config.PROJECT_NAME)s team" +msgstr "Salam hormat, tim %(config.PROJECT_NAME)s" + +#: core/templates/digital_order_created_email.html:139 +#: core/templates/digital_order_delivered_email.html:171 +#: core/templates/promocode_granted_email.html:114 +msgid "all rights reserved" +msgstr "Semua hak cipta dilindungi undang-undang" + +#: core/templates/digital_order_delivered_email.html:99 +msgid "order delivered" +msgstr "Pesanan Dikirim" + +#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Halo %(user_first_name)s," + +#: core/templates/digital_order_delivered_email.html:101 +#, python-format +msgid "" +"we have successfully processed your order №%(order_uuid)s! below are the\n" +" details of your order:" +msgstr "" +"Kami telah berhasil memproses pesanan Anda №%(order_uuid)s! Di bawah ini " +"adalah rincian pesanan Anda:" + +#: core/templates/digital_order_delivered_email.html:128 +msgid "" +"additional\n" +" information" +msgstr "" +"tambahan\n" +" informasi" + +#: core/templates/digital_order_delivered_email.html:137 +#: core/templates/json_table_widget.html:6 +msgid "value" +msgstr "Nilai" + +#: core/templates/digital_order_delivered_email.html:163 +#: core/templates/promocode_granted_email.html:106 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" +"Jika Anda memiliki pertanyaan, jangan ragu untuk menghubungi dukungan kami " +"di %(contact_email)s." + +#: core/templates/digital_order_delivered_email.html:165 +#: core/templates/promocode_granted_email.html:108 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Salam hormat, tim %(project_name)s" + +#: core/templates/json_table_widget.html:5 +msgid "key" +msgstr "Kunci" + +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Kode promosi diberikan" + +#: core/templates/promocode_granted_email.html:101 +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" +" untuk" + +#: core/templates/shipped_order_created_email.html:101 +#: core/templates/shipped_order_delivered_email.html:101 +msgid "" +"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 " +"pembelian Anda. Di bawah ini adalah rincian pesanan Anda:" + +#: core/templates/shipped_order_created_email.html:123 +#: core/templates/shipped_order_delivered_email.html:123 +msgid "shipping price" +msgstr "Harga pengiriman" + +#: core/templates/shipped_order_created_email.html:133 +#: core/templates/shipped_order_delivered_email.html:133 +msgid "your order will be delivered to the following address:" +msgstr "Pesanan Anda akan dikirimkan ke alamat berikut:" + +#: core/templates/shipped_order_created_email.html:142 +#: core/templates/shipped_order_delivered_email.html:142 +#, python-format +msgid "best regards,
The %(config.PROJECT_NAME)s team" +msgstr "Salam hormat, Tim %(config.PROJECT_NAME)s" + +#: core/templates/shipped_order_created_email.html:147 +#: core/templates/shipped_order_delivered_email.html:147 +msgid "" +"all rights\n" +" reserved" +msgstr "" +"Semua hak cipta\n" +" dilindungi undang-undang" + +#: core/utils/caching.py:41 +msgid "both data and timeout are required" +msgstr "Data dan batas waktu diperlukan" + +#: core/utils/caching.py:43 +msgid "invalid timeout value, it must be between 0 and 216000 seconds" +msgstr "Nilai batas waktu tidak valid, harus antara 0 dan 216000 detik" + +#: core/utils/emailing.py:25 +#, python-brace-format +msgid "{config.PROJECT_NAME} | contact us initiated" +msgstr "{config.PROJECT_NAME} | hubungi kami dimulai" + +#: core/utils/emailing.py:64 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order confirmation" +msgstr "{config.PROJECT_NAME} | Konfirmasi Pesanan" + +#: core/utils/emailing.py:99 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order delivered" +msgstr "{config.PROJECT_NAME} | Pesanan Dikirim" + +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | kode promo diberikan" + +#: core/utils/messages.py:3 +msgid "you do not have permission to perform this action." +msgstr "Anda tidak memiliki izin untuk melakukan tindakan ini." + +#: core/utils/nominatim.py:8 +msgid "NOMINATIM_URL must be configured." +msgstr "Parameter NOMINATIM_URL harus dikonfigurasi!" + +#: core/validators.py:16 +#, python-brace-format +msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" +msgstr "" +"Dimensi gambar tidak boleh melebihi w{max_width} x h{max_height} piksel!" + +#: core/validators.py:22 +msgid "invalid phone number format" +msgstr "Format nomor telepon tidak valid" + +#: core/views.py:481 +msgid "you can only download the digital asset once" +msgstr "Anda hanya dapat mengunduh aset digital sekali saja" + +#: core/views.py:539 +msgid "favicon not found" +msgstr "favicon tidak ditemukan" + +#: core/viewsets.py:1319 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Kesalahan pengodean geografis: {e}" diff --git a/core/locale/it_IT/LC_MESSAGES/django.mo b/core/locale/it_IT/LC_MESSAGES/django.mo index 190357b7c2aedb56d02f87619aafcd1d63b6f566..0af9877affb1a5f63b09b9cd4a37905e7753b54d 100644 GIT binary patch delta 20111 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 R`kKMV43=>H&uh|S{|^nBRuljL delta 11651 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 diff --git a/core/locale/it_IT/LC_MESSAGES/django.po b/core/locale/it_IT/LC_MESSAGES/django.po index 6c99f522..df6c22c6 100644 --- a/core/locale/it_IT/LC_MESSAGES/django.po +++ b/core/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -89,12 +89,12 @@ msgstr "Disattivare il %(verbose_name_plural)s selezionato" msgid "selected items have been deactivated." msgstr "Gli articoli selezionati sono stati disattivati!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Valore dell'attributo" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Valori degli attributi" @@ -102,23 +102,23 @@ msgstr "Valori degli attributi" msgid "image" msgstr "Immagine" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Immagini" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Stock" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Le scorte" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Ordina il prodotto" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Ordinare i prodotti" @@ -336,7 +336,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "Meta-immagine SEO" @@ -797,118 +797,118 @@ msgstr "aggiungere o rimuovere un feedback su una relazione ordine-prodotto" msgid "no search term provided." msgstr "Non è stato fornito alcun termine di ricerca." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Nome" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Categorie" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Categorie Lumache" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Tag" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Prezzo minimo" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Max Price" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "È attivo" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Marchio" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Attributi" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Quantità" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Lumaca" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "È digitale" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Includere le sottocategorie" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Includere prodotti ordinati personalmente" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" "Deve esserci una categoria_uuid per utilizzare il flag include_subcategories" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Ricerca (ID, nome del prodotto o numero di parte)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Acquistato dopo (incluso)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Acquistato prima (compreso)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "Email dell'utente" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "UUID utente" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Stato" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "ID leggibile dall'uomo" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Genitore" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Intera categoria (con o senza almeno 1 prodotto)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Livello" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "UUID del prodotto" @@ -1041,8 +1041,8 @@ 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" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1057,8 +1057,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch: funziona a meraviglia" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Attributi" @@ -1071,11 +1071,11 @@ msgid "groups of attributes" msgstr "Gruppi di attributi" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Categorie" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Marche" @@ -1084,7 +1084,7 @@ msgid "category image url" msgstr "Categorie" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Percentuale di markup" @@ -1108,7 +1108,7 @@ msgstr "Tag per questa categoria" msgid "products in this category" msgstr "Prodotti in questa categoria" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Venditori" @@ -1124,7 +1124,7 @@ msgstr "Longitudine (coordinata X)" msgid "comment" msgstr "Come" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Valore di valutazione da 1 a 10, incluso, o 0 se non impostato." @@ -1132,8 +1132,8 @@ msgstr "Valore di valutazione da 1 a 10, incluso, o 0 se non impostato." msgid "represents feedback from a user." msgstr "Rappresenta il feedback di un utente." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Notifiche" @@ -1141,15 +1141,19 @@ msgstr "Notifiche" msgid "download url for this order product if applicable" msgstr "URL di download per il prodotto dell'ordine, se applicabile" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Feedback" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "Un elenco di prodotti ordinati in questo ordine" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Indirizzo di fatturazione" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1157,51 +1161,51 @@ msgstr "" "Indirizzo di spedizione per questo ordine, lasciare in bianco se è uguale " "all'indirizzo di fatturazione o se non è applicabile" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Prezzo totale dell'ordine" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Quantità totale di prodotti in ordine" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Tutti i prodotti sono presenti nell'ordine digitale" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Transazioni per questo ordine" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Ordini" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "URL immagine" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Immagini del prodotto" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Categoria" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Feedback" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Marchio" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Gruppi di attributi" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1209,7 +1213,7 @@ msgstr "Gruppi di attributi" msgid "price" msgstr "Prezzo" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1217,35 +1221,35 @@ msgstr "Prezzo" msgid "quantity" msgstr "Quantità" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Numero di feedback" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Prodotti disponibili solo per ordini personali" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Prodotti" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Codici promozionali" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Prodotti in vendita" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Promozioni" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Venditore" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1253,646 +1257,791 @@ msgstr "Venditore" msgid "product" msgstr "Prodotto" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Prodotti desiderati" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Liste dei desideri" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Prodotti contrassegnati" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Tag del prodotto" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Contrassegnato dalle categorie" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Tag delle categorie" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Nome del progetto" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "Email aziendale" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Nome della società" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Indirizzo dell'azienda" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Numero di telefono dell'azienda" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', a volte deve essere usato al posto del valore dell'utente host" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "Utente host dell'e-mail" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Importo massimo per il pagamento" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Importo minimo per il pagamento" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Dati analitici" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Dati pubblicitari" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Configurazione" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Codice lingua" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Nome della lingua" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Bandiera della lingua, se esiste :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Ottenere un elenco delle lingue supportate" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Risultati della ricerca dei prodotti" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Risultati della ricerca dei prodotti" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"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. " +"Questo può essere utile per categorizzare e gestire meglio gli attributi in " +"un sistema complesso." + +#: core/models.py:86 msgid "parent of this group" msgstr "Genitore di questo gruppo" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Gruppo di attributi padre" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Nome del gruppo di attributi" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Gruppo di attributi" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"Rappresenta un'entità fornitore in grado di memorizzare informazioni sui " +"fornitori esterni e sui loro requisiti di interazione. La classe Vendor " +"viene utilizzata per definire e gestire le informazioni relative a un " +"fornitore esterno. Memorizza il nome del venditore, i dettagli di " +"autenticazione richiesti per la comunicazione e la percentuale di markup " +"applicata ai prodotti recuperati dal venditore. Questo modello mantiene " +"anche metadati e vincoli aggiuntivi, rendendolo adatto all'uso in sistemi " +"che interagiscono con venditori terzi." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Memorizza le credenziali e gli endpoint necessari per la comunicazione API " "del fornitore." -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Informazioni sull'autenticazione" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "Definire il markup per i prodotti recuperati da questo fornitore" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Percentuale di ricarico del fornitore" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Nome del fornitore" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Nome del fornitore" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Rappresenta un tag di prodotto utilizzato per classificare o identificare i " +"prodotti. La classe ProductTag è progettata per identificare e classificare " +"in modo univoco i prodotti attraverso una combinazione di un identificatore " +"di tag interno e di un nome di visualizzazione facile da usare. Supporta le " +"operazioni esportate attraverso i mixin e fornisce la personalizzazione dei " +"metadati per scopi amministrativi." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Identificatore interno dell'etichetta del prodotto" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Nome del tag" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "Nome intuitivo per l'etichetta del prodotto" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Nome del tag" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Etichetta del prodotto" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"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." + +#: core/models.py:220 msgid "category tag" msgstr "tag categoria" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "tag di categoria" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +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 " +"specificare il nome, la descrizione e la gerarchia delle categorie, nonché " +"di assegnare attributi come immagini, tag o priorità." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Caricare un'immagine che rappresenti questa categoria" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Categoria immagine" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "" "Definire una percentuale di ricarico per i prodotti di questa categoria" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Genitore di questa categoria per formare una struttura gerarchica" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Categoria di genitori" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Nome della categoria" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Indicare un nome per questa categoria" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Aggiungere una descrizione dettagliata per questa categoria" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Descrizione della categoria" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "tag che aiutano a descrivere o raggruppare questa categoria" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Priorità" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Nome del marchio" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Nome del marchio" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Caricare un logo che rappresenti questo marchio" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Immagine piccola del marchio" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Caricare un grande logo che rappresenti questo marchio" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Grande immagine del marchio" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Aggiungere una descrizione dettagliata del marchio" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Descrizione del marchio" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Categorie opzionali a cui questo marchio è associato" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Categorie" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" +"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." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "Il venditore che fornisce questo stock di prodotti" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Venditore associato" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Prezzo finale al cliente dopo i ricarichi" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Prezzo di vendita" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "Il prodotto associato a questa voce di magazzino" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Prodotto associato" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "Il prezzo pagato al venditore per questo prodotto" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Prezzo di acquisto del fornitore" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Quantità disponibile del prodotto in magazzino" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Quantità in magazzino" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU assegnato dal fornitore per identificare il prodotto" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "SKU del venditore" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "File digitale associato a questo stock, se applicabile" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "File digitale" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Voci di magazzino" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"Rappresenta un prodotto con attributi quali categoria, marca, tag, stato " +"digitale, nome, descrizione, numero di parte e slug. Fornisce proprietà di " +"utilità correlate per recuperare valutazioni, conteggio dei feedback, " +"prezzo, quantità e ordini totali. Progettata per essere utilizzata in un " +"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 " +"un'applicazione." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Categoria a cui appartiene questo prodotto" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Associare facoltativamente questo prodotto a un marchio" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Tag che aiutano a descrivere o raggruppare questo prodotto" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Indica se il prodotto è consegnato in formato digitale" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "Il prodotto è digitale" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Fornire un nome identificativo chiaro per il prodotto" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Nome del prodotto" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Aggiungere una descrizione dettagliata del prodotto" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Descrizione del prodotto" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Numero di parte per questo prodotto" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Numero di parte" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Unità di mantenimento delle scorte per questo prodotto" -#: core/models.py:784 +#: core/models.py:607 +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 " +"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." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Categoria di questo attributo" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Gruppo di questo attributo" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "Stringa" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Intero" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Galleggiante" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Booleano" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Array" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Oggetto" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Tipo di valore dell'attributo" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Tipo di valore" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Nome dell'attributo" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Nome dell'attributo" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "è filtrabile" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "" +"Quali attributi e valori possono essere utilizzati per filtrare questa " +"categoria." + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attributo" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Attributo di questo valore" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "Il prodotto specifico associato al valore di questo attributo" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "Il valore specifico per questo attributo" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "" "Fornire un testo alternativo per l'immagine ai fini dell'accessibilità." -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Testo alt dell'immagine" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Caricare il file immagine per questo prodotto" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Immagine del prodotto" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Determina l'ordine di visualizzazione delle immagini" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Priorità del display" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "Il prodotto che questa immagine rappresenta" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Immagini del prodotto" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Percentuale di sconto per i prodotti selezionati" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Percentuale di sconto" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Fornite un nome unico per questa promozione" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Nome della promozione" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Descrizione della promozione" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Selezionare i prodotti inclusi in questa promozione" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Prodotti inclusi" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Promozione" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Prodotti che l'utente ha contrassegnato come desiderati" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "Utente che possiede questa wishlist" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Proprietario della lista dei desideri" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Lista dei desideri" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Documentario" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Documentari" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Non risolto" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Indirizzo del cliente" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Linea di indirizzo" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Via" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "Distretto" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "Città" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Regione" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Codice postale" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "Paese" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Punto di geolocalizzazione(Longitudine, Latitudine)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Risposta JSON completa di geocoder per questo indirizzo" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Risposta JSON memorizzata dal servizio di geocodifica" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Indirizzo" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Indirizzi" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "Codice univoco utilizzato da un utente per riscattare uno sconto" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Identificatore del codice promozionale" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "" "Importo fisso dello sconto applicato se non si utilizza la percentuale" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Importo fisso dello sconto" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "Sconto percentuale applicato se l'importo fisso non viene utilizzato" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Sconto percentuale" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Data di scadenza del codice promozionale" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "Tempo di validità finale" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Data a partire dalla quale il codice promozionale è valido" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Ora di inizio validità" -#: core/models.py:1273 +#: core/models.py:1118 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" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Timestamp d'uso" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "Utente assegnato a questo codice promozionale, se applicabile" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Utente assegnato" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Codice promozionale" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Codici promozionali" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1900,148 +2049,166 @@ msgstr "" "È necessario definire un solo tipo di sconto (importo o percentuale), ma non" " entrambi o nessuno." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "Il codice promozionale è già stato utilizzato" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Tipo di sconto non valido per il codice promozionale {self.uuid}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"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 " +"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." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "L'indirizzo di fatturazione utilizzato per questo ordine" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Codice promozionale opzionale applicato a questo ordine" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Codice promozionale applicato" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "L'indirizzo di spedizione utilizzato per questo ordine" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Indirizzo di spedizione" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Stato attuale dell'ordine nel suo ciclo di vita" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Stato dell'ordine" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 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." -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "Rappresentazione JSON degli attributi dell'ordine per questo ordine" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "L'utente che ha effettuato l'ordine" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "Utente" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "Il timestamp del momento in cui l'ordine è stato finalizzato" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Acquista tempo" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "Un identificatore leggibile dall'uomo per l'ordine" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "ID leggibile dall'uomo" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Ordine" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "Un utente può avere un solo ordine pendente alla volta!" -#: core/models.py:1481 +#: core/models.py:1316 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." -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "Non è possibile aggiungere all'ordine prodotti inattivi" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "" "Non è possibile aggiungere più prodotti di quelli disponibili in magazzino" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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." -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} non esiste con la query <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Il codice promozionale non esiste" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "" "È possibile acquistare solo prodotti fisici con indirizzo di spedizione " "specificato!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "L'indirizzo non esiste" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Valore di forza non valido" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "Non è possibile acquistare un ordine vuoto!" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "Non è possibile acquistare un ordine senza un utente!" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "Un utente senza saldo non può acquistare con il saldo!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Fondi insufficienti per completare l'ordine" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2050,7 +2217,7 @@ msgstr "" "seguenti informazioni: nome del cliente, e-mail del cliente, numero di " "telefono del cliente" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2058,150 +2225,146 @@ msgstr "" "Metodo di pagamento non valido: {payment_method} da " "{available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 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." -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Prezzo di acquisto al momento dell'ordine" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "Commenti interni per gli amministratori su questo prodotto ordinato" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Commenti interni" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "Notifiche degli utenti" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "Rappresentazione JSON degli attributi di questo elemento" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Attributi del prodotto ordinati" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Riferimento all'ordine padre che contiene questo prodotto" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Ordine dei genitori" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "Il prodotto specifico associato a questa riga d'ordine" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Quantità di questo prodotto specifico nell'ordine" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Quantità di prodotto" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Stato attuale di questo prodotto nell'ordine" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Stato della linea di prodotti" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "L'ordine-prodotto deve avere un ordine associato!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Azione errata specificata per il feedback: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "non è possibile dare un riscontro a un ordine non ricevuto" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Nome" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "URL dell'integrazione" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Credenziali di autenticazione" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "È possibile avere un solo provider CRM predefinito" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRM" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "Link al CRM dell'ordine" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "Link al CRM degli ordini" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Scaricare" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Scaricamento" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "Non è possibile scaricare un bene digitale per un ordine non finito." -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "Commenti degli utenti sulla loro esperienza con il prodotto" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Commenti di feedback" -#: core/models.py:2079 +#: core/models.py:1921 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." -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Prodotto correlato all'ordine" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "Valutazione del prodotto assegnata dall'utente" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Valutazione del prodotto" -#: core/models.py:2096 -msgid "feedback" -msgstr "Feedback" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2213,6 +2376,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Errore durante la creazione del codice promozionale: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Casa" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Contatto" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Chi siamo" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Informazioni sul pagamento" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Consegna" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/ja_JP/LC_MESSAGES/django.mo b/core/locale/ja_JP/LC_MESSAGES/django.mo index 6f6a171134ef6a5378bd1a135c56523517d04728..64cf8bba99df27930c50539e9e1aaf3b6768e410 100644 GIT binary patch delta 20336 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 E56ykxDgXcg delta 11647 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -85,12 +85,12 @@ msgstr "選択された%(verbose_name_plural)sを非アクティブにする" msgid "selected items have been deactivated." msgstr "選択されたアイテムは無効化されました!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "属性値" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "属性値" @@ -98,23 +98,23 @@ msgstr "属性値" msgid "image" msgstr "画像" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "画像" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "在庫" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "株式" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "商品のご注文" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "商品のご注文" @@ -316,7 +316,7 @@ msgstr "編集不可を保存している既存のカテゴリのいくつかの #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "SEOメタ・スナップショット" @@ -736,117 +736,117 @@ msgstr "注文と商品の関係に関するフィードバックを追加また msgid "no search term provided." msgstr "検索語はありません。" -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "ユーユーアイディー" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "名称" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "カテゴリー" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "カテゴリー ナメクジ" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "タグ" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "最低価格" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "最高価格" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "アクティブ" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "ブランド" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "属性" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "数量" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "スラッグ" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "デジタル" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "サブカテゴリーを含む" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "個人注文商品を含む" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "include_subcategoriesフラグを使うには、category_uuidがなければならない。" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "検索(ID、製品名または部品番号)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "購入時期" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "以前に購入したもの(含む)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "ユーザーEメール" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "ユーザーUUID" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "ステータス" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "人間が読めるID" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "親" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "カテゴリー全体(少なくとも1つの製品があるかどうか)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "レベル" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "製品UUID" @@ -975,8 +975,8 @@ msgstr "Orderproduct {order_product_uuid} が見つかりません!" msgid "original address string provided by the user" msgstr "ユーザーが提供したオリジナルのアドレス文字列" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -991,8 +991,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - 魅力のように動作" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "属性" @@ -1005,11 +1005,11 @@ msgid "groups of attributes" msgstr "属性のグループ" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "カテゴリー" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "ブランド" @@ -1018,7 +1018,7 @@ msgid "category image url" msgstr "カテゴリー" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "マークアップ率" @@ -1039,7 +1039,7 @@ msgstr "このカテゴリのタグ" msgid "products in this category" msgstr "このカテゴリの製品" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "ベンダー" @@ -1055,7 +1055,7 @@ msgstr "経度(X座標)" msgid "comment" msgstr "どのように" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "1から10までの評価値(設定されていない場合は0)。" @@ -1063,8 +1063,8 @@ msgstr "1から10までの評価値(設定されていない場合は0)。" msgid "represents feedback from a user." msgstr "ユーザーからのフィードバックを表す。" -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "お知らせ" @@ -1072,65 +1072,69 @@ msgstr "お知らせ" msgid "download url for this order product if applicable" msgstr "該当する場合は、この注文商品のダウンロードURLを入力してください。" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "フィードバック" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "注文商品のリスト" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "請求先住所" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "請求先住所と同じ場合、または該当しない場合は空白にしてください。" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "この注文の合計金額" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "注文商品の総数量" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "ご注文の商品はすべてデジタルですか?" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "この注文の取引" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "受注状況" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "画像URL" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "製品画像" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "カテゴリー" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "フィードバック" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "ブランド" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "属性グループ" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1138,7 +1142,7 @@ msgstr "属性グループ" msgid "price" msgstr "価格" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1146,35 +1150,35 @@ msgstr "価格" msgid "quantity" msgstr "数量" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "フィードバック数" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "個人注文のみの商品" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "製品紹介" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "プロモコード" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "販売商品" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "プロモーション" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "ベンダー" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1182,931 +1186,1039 @@ msgstr "ベンダー" msgid "product" msgstr "製品" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "ウィッシュリスト掲載商品" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "ウィッシュリスト" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "タグ別アーカイブ" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "商品タグ" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "タグ別アーカイブ" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "カテゴリー' タグ" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "プロジェクト名" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "会社Eメール" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "会社名" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "会社住所" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "会社電話番号" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "'email from' は、ホストユーザの値の代わりに使用されることがあります。" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "メールホストユーザー" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "支払限度額" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "最低支払額" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "分析データ" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "広告データ" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "構成" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "言語コード" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "言語名" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "言語フラグがある場合 :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "サポートされている言語のリストを取得する" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "製品検索結果" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "製品検索結果" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"属性グループを表し、階層化することができます。このクラスは、属性グループの管理と整理に使用します。属性グループは親グループを持つことができ、階層構造を形成します。これは、複雑なシステムで属性をより効果的に分類・管理するのに便利です。" + +#: core/models.py:86 msgid "parent of this group" msgstr "このグループの親" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "親属性グループ" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "属性グループ名" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "属性グループ" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"外部ベンダーとその相互作用要件に関する情報を格納できるベンダー・エンティティを表します。Vendor " +"クラスは、外部ベンダーに関連する情報を定義・管理するために使用します。これは、ベンダーの名前、通信に必要な認証の詳細、ベンダーから取得した商品に適用されるパーセンテージのマークアップを格納します。このモデルは、追加のメタデータと制約も保持するため、サードパーティ・ベンダーとやり取りするシステムでの使用に適しています。" + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "ベンダーのAPI通信に必要な認証情報とエンドポイントを保存する。" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "認証情報" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "このベンダーから取得した商品のマークアップを定義する。" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "ベンダーのマークアップ率" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "このベンダーの名前" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "ベンダー名" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"製品を分類または識別するために使用される製品タグを表します。ProductTag " +"クラスは、内部タグ識別子とユーザーフレンドリーな表示名の組み合わせによって、製品を一意に識別および分類するように設計されています。ミキシンを通じてエクスポートされる操作をサポートし、管理目的のためにメタデータのカスタマイズを提供します。" + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "商品タグの内部タグ識別子" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "タグ名" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "商品タグのユーザーフレンドリーな名前" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "タグ表示名" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "商品タグ" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"商品に使用されるカテゴリータグを表します。このクラスは、商品の関連付けと分類に使用できるカテゴリタグをモデル化します。内部タグ識別子とユーザーフレンドリーな表示名の属性が含まれます。" + +#: core/models.py:220 msgid "category tag" msgstr "カテゴリタグ" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "カテゴリータグ" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"関連するアイテムを階層構造で整理し、グループ化するためのカテゴリ・エンティティを表します。カテゴリは、親子関係をサポートする他のカテゴリとの階層関係を持つことができます。このクラスには、カテゴリ関連機能の基盤となるメタデータおよび視覚表現のためのフィールドが含まれます。このクラスは通常、アプリケーション内で商品カテゴリやその他の類似のグループ化を定義および管理するために使用され、ユーザや管理者がカテゴリの名前、説明、階層を指定したり、画像、タグ、優先度などの属性を割り当てることができます。" + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "このカテゴリーを表す画像をアップロードする" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "カテゴリーイメージ" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "このカテゴリの商品のマークアップ率を定義する" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "階層構造を形成するこのカテゴリの親" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "親カテゴリー" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "カテゴリー名" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "このカテゴリの名前を入力してください。" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "このカテゴリの詳細説明を追加する" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "カテゴリー説明" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "このカテゴリーを説明またはグループ化するのに役立つタグ" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "優先順位" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "ブランド名" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "ブランド名" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "このブランドを代表するロゴをアップロードする" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "小さなブランドイメージ" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "このブランドを象徴する大きなロゴをアップロードする" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "大きなブランドイメージ" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "ブランドの詳細な説明を加える" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "ブランド説明" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "このブランドが関連するオプション・カテゴリー" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "カテゴリー" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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、デジタル資産などの在庫関連プロパティを提供します。これは在庫管理システムの一部で、さまざまなベンダーから入手可能な製品の追跡と評価を可能にします。" + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "この製品の在庫を供給しているベンダー" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "関連ベンダー" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "マークアップ後の顧客への最終価格" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "販売価格" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "このストックエントリーに関連する製品" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "関連製品" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "この製品に対してベンダーに支払われた価格" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "ベンダーの購入価格" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "在庫数" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "在庫数" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "製品を識別するためにベンダーが割り当てたSKU" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "ベンダーのSKU" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "この銘柄に関連するデジタルファイル(該当する場合" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "デジタルファイル" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "ストックエントリー" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"カテゴリ、ブランド、タグ、デジタルステータス、名前、説明、品番、スラッグなどの属性を持つ製品を表します。評価、フィードバック数、価格、数量、注文総数を取得するための関連ユーティリティ・プロパティを提供します。電子商取引や在庫管理を扱うシステムで使用するように設計されています。このクラスは、関連するモデル" +" (Category、Brand、ProductTag など) " +"と相互作用し、パフォーマンスを向上させるために、頻繁にアクセスされるプロパティのキャッシュを管理します。アプリケーション内で商品データとその関連情報を定義し、操作するために使用されます。" + +#: core/models.py:476 msgid "category this product belongs to" msgstr "この製品が属するカテゴリ" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "オプションでこの製品をブランドと関連付ける" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "この商品の説明やグループ分けに役立つタグ" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "この製品がデジタル配信されるかどうかを示す" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "製品はデジタルか" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "製品の明確な識別名を提供する" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "商品名" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "商品の詳細説明を追加する" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "商品説明" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "この製品の品番" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "品番" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "この製品の在庫管理単位" -#: core/models.py:784 +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" +"システム内の属性を表します。このクラスは、属性を定義および管理するために使用されます。属性は、他のエンティティに関連付けることができる、カスタマイズ可能なデータの部分です。属性には、関連するカテゴリ、グループ、値型、および名前があります。このモデルは、string、integer、float、boolean、array、object" +" などの複数の型の値をサポートしています。これにより、動的で柔軟なデータ構造化が可能になります。" + +#: core/models.py:619 msgid "category of this attribute" msgstr "この属性のカテゴリー" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "この属性のグループ" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "ストリング" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "整数" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "フロート" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "ブーリアン" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "配列" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "対象" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "属性値のタイプ" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "値の種類" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "この属性の名前" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "属性名" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "フィルタリング可能" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "この属性がフィルタリングに使用できるかどうかを指定する。" + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "属性" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "この値の属性" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "この属性の値に関連する特定の製品" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "この属性の具体的な値" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "アクセシビリティのために、画像に代替テキストを提供する。" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "画像のaltテキスト" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "この商品の画像ファイルをアップロードする" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "商品画像" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "画像の表示順を決める" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "表示優先度" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "この画像が表す製品" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "商品画像" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "選択した商品の割引率" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "割引率" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "このプロモーションのユニークな名前を入力してください。" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "プロモーション名" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "プロモーション内容" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "キャンペーン対象商品をお選びください。" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "含まれる製品" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "プロモーション" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "ユーザーが欲しいとマークした商品" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "このウィッシュリストを所有しているユーザー" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "ウィッシュリストのオーナー" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "ウィッシュリスト" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "ドキュメンタリー" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "ドキュメンタリー" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "未解決" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "お客様の住所" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "住所" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "ストリート" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "地区" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "都市" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "地域" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "郵便番号" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "国名" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "ジオロケーションポイント(経度、緯度)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "この住所に対するジオコーダーからの完全なJSON応答" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "ジオコーディング・サービスからの保存されたJSONレスポンス" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "住所" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "住所" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "ユーザーが割引を利用する際に使用する固有のコード" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "プロモコード識別子" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "パーセントを使用しない場合に適用される固定割引額" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "固定割引額" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "定額を使用しない場合に適用される割引率" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "割引率" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "プロモコードの有効期限が切れるタイムスタンプ" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "終了有効時間" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "このプロモコードが有効なタイムスタンプ" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "開始有効時間" -#: core/models.py:1273 +#: core/models.py:1118 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "プロモコードが使用されたタイムスタンプ、未使用の場合は空白" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "使用タイムスタンプ" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "該当する場合、このプロモコードに割り当てられたユーザー" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "担当ユーザー" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "プロモコード" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "プロモコード" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "割引の種類は1つだけ(金額またはパーセント)定義されるべきで、両方またはどちらも定義してはならない。" -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "プロモコードはすでに使用されています" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "プロモコード {self.uuid} の割引タイプが無効です!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"ユーザーによる注文を表します。このクラスは、請求や配送情報、ステータス、関連するユーザ、通知、関連する操作などのさまざまな属性を含む、アプリケーション内の注文をモデル化します。注文は関連する商品を持つことができ、プロモーションを適用し、住所を設定し、配送または請求の詳細を更新することができます。同様に、注文のライフサイクルにおける商品の管理もサポートします。" + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "この注文に使用される請求先住所" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "この注文に適用されるプロモコード" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "プロモーションコード適用" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "この注文に使用された配送先住所" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "配送先住所" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "ライフサイクルにおける現在の注文状況" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "注文状況" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 msgid "json structure of notifications to display to users" msgstr "ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "この注文の注文属性のJSON表現" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "注文を行ったユーザー" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "ユーザー" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "注文が確定したタイムスタンプ" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "時間を買う" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "オーダーの人間が読み取り可能な識別子。" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "人間が読めるID" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "オーダー" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "ユーザーは一度に1つの未決注文しか持つことができません!" -#: core/models.py:1481 +#: core/models.py:1316 msgid "you cannot add products to an order that is not a pending one" msgstr "保留中の注文以外の注文に商品を追加することはできません。" -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "アクティブでない商品を注文に追加することはできません。" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "在庫以上の商品を追加することはできません。" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 msgid "you cannot remove products from an order that is not a pending one" msgstr "保留中の注文以外の注文から商品を削除することはできません。" -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name}はクエリ<{query}と一緒に存在しません!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "プロモコードが存在しない" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "配送先住所が指定された現物商品のみ購入可能!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "アドレスが存在しない" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "現在ご購入いただけません。数分後にもう一度お試しください。" -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "無効なフォース値" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "空注文はできません!" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "ユーザーがいない注文は購入できない!" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "残高のないユーザーは、残高で購入することはできない!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "注文を完了するための資金不足" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "ご登録がない場合はご購入いただけませんので、以下の情報をお知らせください:お客様のお名前、お客様のEメール、お客様の電話番号" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "支払方法が無効です:{available_payment_methods}からの{payment_method}が無効です!" -#: core/models.py:1839 +#: core/models.py:1674 msgid "the price paid by the customer for this product at purchase time" msgstr "この商品の購入時に顧客が支払った価格" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "注文時の購入価格" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "この注文商品に関する管理者への内部コメント" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "社内コメント" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "ユーザー通知" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "このアイテムの属性のJSON表現" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "製品属性の順序" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "この商品を含む親注文への参照" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "親注文" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "この注文ラインに関連する特定の製品" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "注文に含まれる特定の商品の数量" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "製品数量" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "この商品の現在のご注文状況" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "製品ラインの状況" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "Orderproductには関連する注文がなければならない!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "フィードバックに指定されたアクションが間違っています:{action}です!" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "受信していない注文をフィードバックすることはできません。" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "名称" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "統合のURL" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "認証情報" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "デフォルトのCRMプロバイダーは1つだけです。" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRM" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "注文のCRMリンク" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "オーダーのCRMリンク" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "ダウンロード" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "ダウンロード" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "未完成の注文のデジタル資産をダウンロードすることはできません。" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "ユーザーから寄せられた製品使用体験に関するコメント" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "フィードバック・コメント" -#: core/models.py:2079 +#: core/models.py:1921 msgid "" "references the specific product in an order that this feedback is about" msgstr "このフィードバックが対象としている注文の特定の製品を参照する。" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "関連注文商品" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "ユーザーによる製品の評価" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "製品評価" -#: core/models.py:2096 -msgid "feedback" -msgstr "フィードバック" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2116,6 +2228,26 @@ msgstr "フィードバックを追加するには、コメント、評価、お msgid "error during promocode creation: {e!s}" msgstr "プロモコード作成中にエラーが発生しました:{e!s}です。" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "ホーム" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "お問い合わせ" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "会社概要" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "お支払いについて" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "配送" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/kk_KZ/LC_MESSAGES/django.po b/core/locale/kk_KZ/LC_MESSAGES/django.po index 8805d53c..a03396bf 100644 --- a/core/locale/kk_KZ/LC_MESSAGES/django.po +++ b/core/locale/kk_KZ/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -87,12 +87,12 @@ msgstr "" msgid "selected items have been deactivated." msgstr "" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "" @@ -100,23 +100,23 @@ msgstr "" msgid "image" msgstr "" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "" @@ -314,7 +314,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "" @@ -722,117 +722,117 @@ msgstr "" msgid "no search term provided." msgstr "" -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "" @@ -961,8 +961,8 @@ msgstr "" msgid "original address string provided by the user" msgstr "" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -977,8 +977,8 @@ msgid "elasticsearch - works like a charm" msgstr "" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "" @@ -991,11 +991,11 @@ msgid "groups of attributes" msgstr "" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "" @@ -1004,7 +1004,7 @@ msgid "category image url" msgstr "" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "" @@ -1024,7 +1024,7 @@ msgstr "" msgid "products in this category" msgstr "" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "" @@ -1040,7 +1040,7 @@ msgstr "" msgid "comment" msgstr "" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" @@ -1048,8 +1048,8 @@ msgstr "" msgid "represents feedback from a user." msgstr "" -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "" @@ -1057,65 +1057,69 @@ msgstr "" msgid "download url for this order product if applicable" msgstr "" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1123,7 +1127,7 @@ msgstr "" msgid "price" msgstr "" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1131,35 +1135,35 @@ msgstr "" msgid "quantity" msgstr "" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1167,929 +1171,1023 @@ msgstr "" msgid "product" msgstr "" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" + +#: core/models.py:86 msgid "parent of this group" msgstr "" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" + +#: core/models.py:220 msgid "category tag" msgstr "" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "" -#: core/models.py:545 core/models.py:863 core/models.py:920 core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 core/models.py:1709 msgid "associated product" msgstr "" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" + +#: core/models.py:476 msgid "category this product belongs to" msgstr "" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "" -#: core/models.py:784 +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" + +#: core/models.py:619 msgid "category of this attribute" msgstr "" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "" + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "" -#: core/models.py:1273 +#: core/models.py:1118 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 msgid "json structure of notifications to display to users" msgstr "" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "" -#: core/models.py:1481 +#: core/models.py:1316 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: core/models.py:1839 +#: core/models.py:1674 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "" -#: core/models.py:2079 +#: core/models.py:1921 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "" -#: core/models.py:2096 -msgid "feedback" -msgstr "" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2099,6 +2197,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/ko_KR/LC_MESSAGES/django.mo b/core/locale/ko_KR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f67c6c5a7b0114e206f8638d8dca1dcce688281a GIT binary patch literal 60496 zcmdVD37B0~mG^xRM2R8@h>D;mLCj#PG6;%ckSRcf044!jkxnXAH%XBiV%;i2L^MEx zfdm0bAb}(n5=eqUiVz@3z;>Rso#%P%+*{h(+S;w%e!u@(d!KXety@K~`~9Bxy-!a5 zXYaG;z4lsbuf5KxA0BqVx`f}jXC=we;M-o9BtPSR;~2#f-<%{b0>^`T{)T{W1CJoQ z415{*Uht*h{oqT$Pk@JmKLE#qzXMg|ODB1{lfmZ_z62Zv&IOh4^6>mR@Y#enf%}8^ zfCqqE!FPc>K;?V&j{rL-piX0o|7Y+n@V`LyYr|`OeEY%Y6W#@?Js$Lr9AA)U!e+C{2o_n^Zn+vLcZJ@@X3v2?Hf#bog;H$u|fJ{O1 zXOJmNCYKVIoIPSfpj%_3#j>B3myYL81Rdr@>f8H zGd)svjrUJMmG@ilAn;%kzZrZncmdcAz5#p+WC)Z0 z1`h+zJP(=$F9Eeat_5EJ-VW;dz2H^gZtytp`174k-U=Q}cpms7unScB6`<(u4p8mb z4juwN463~!2M-0m3#wn0@O=N79)EbiSAwH>egdfRIt^6&E(KGt8=L^%0!{^=05wm) z3GpeNR=wwe8m~*iF<>kBZ1DQj){yBSozwV;hdzz=~+_fMea z{Ttw+;9o$^!}H(dd@~I=4OG2zK=q>yRJlvRiQv1zSA#o1(ZRPv__yGRgkLtx`P>}v zg@oT5upd;tJ45*6pz8kyDE|I00r#Kn^&bOjo|?eJz>7f5Pb;W-=mcRU$(7(#@Ci`k z@*7a=?l0is;FLLD?{x6Fgf9VY96`-*|FN7ZiRo+Lz@!;pd*MWZo?**GK@$_E)<%>`=I*s?0@ifjRjvv_yX|7;Ps%!b2E4Z_z;+ap8`dv zzXH{-XT2p!W`ak6SAg@uPVhUR+H=lZo!)1Hu+-#jp!#u%bANnwPOybd{=`icXbGF1z%415m4j*bx`FV^p7qFjt+PhsB!KH_+Bt2 zJOCa8eg&Ki{uX=%n9lX*r-ABc3#fH_6R2@|A9xhF1r*(UB!oW$oq z_{}Mx$~hlA5_}V=_AUZ7epi7n0dEG?-)*4c9|bi}p97o0uYjWSqy^aq91Ch3uLj41 zyFjJ;A*lI3c)r(vIH>x@fZ`h`fU0LYn1ZuG@r_4g@9%0gC?iYje7LUBEYh8i#X0 z(ch(@=;bz0^ZwBg|L@>ggquq~K4tJtgl`8`->*Tn;}77o!Gjj~{2T&`&R+tmo)px$ z91m(7&Is{u0@eN!sDAf^=huNM|9#>4=J5Q3py*={_)_qbA^u08*7v`HuLhsH(91m@ z6u&$j6kjP-vXzA`*%5>08SvhFyQ;Zu}Tk41AhUI z2h(m(_eO9k;XY91Yy&mE-wpAHFY)l%pq{@w;6q?D;h%vgfrq`_pI-oK{FZ~KgP#fE zQ9Ul-W(B+rJcZ|958=bgK2Ed2V~Jk{YCLy<2ZLV)HQql44+Zz{MJ9kpfG+^w4jv9J z2enStg35O%sPeXfn$ItQlfbWmXMp?ndHmS{XM&oaIiSj$3#z^{C^}jJz7V_#JOq3{ zC^~--)OdUfYy$rXehxhLiX^!X{0*pi=vnIHa3`pA-vcLt2VLp%^tIqP!k2*>*XzOK z!H3EpvGx4_&jh6 z_)>5H)OdXk6o2~-_ePJQ3^$Rqi(MCE&xL==cku=o<9Yu z9bW|1zh8nc0)G!G-E-gN{Wu(a4&gIF9wq02n#a$AqrpFeT9-$?+vk5SD0*82iXNAO zqLVv8jmL*TwSPBw68K9{>tM`sr}s8cboT*J^YaT(<8jzEK2E2An(u|+Dd0v>{rxT| zI@<4AU#}}c&C_mB<$XWIzk)>P5uOE#zikFp&o@BT^Q;w4FHNB4Jl%Uih3^7S z1wR0u4E_XEzL(!ff2inm@XdtZa+B+44}r4@|1+q0c;$N?=YyjO_k(KR$H13^p8`dv zzW|Q{_q*Bqc{F$s;R&Gl$nl`sGd+aQ2Q?m-1zZej{VoHQ?m_Uo;G-dY>n)ysJt(@q z57c2_=uJb&sA`U@_&lQAa#sg3YN@b=AI z;N|@;Z}$6u_wz_lbaE7^{!9l|--Q7$0U@#EGH?|56Yv1A3cdjR9jN(F?s2*}0u)`& z1YZxn1AHU63p^YA8>o8D-s1Ci5%?OyH-oPRKMqa>e;dMM?sdL-0eC*~OF_};Cjx#S z9835Qpw`9F_xXIz29@sCfZM^-34atk5Zr&O^PN$k=4ldm1b7Ol=d-{P_!jUV!HgD7B~w0mwouU&13sVdlJNZM5WY2pH-ks=d}oONY>59RsQK6%!hZ{R_=kL*j|El! z3{c}VJK$Tvg9*2Ua5t#_T@m8n1FD_t!t?C`2SBysvGDv$pz8lA_zLh(pvrmigO1}s zjo<4*&EuOwd~3j7Q0-d@HiI{VW5B0C@$;X6$AfR?-)?^PYv;BfufIDA>0M39q$A+PS=BP0&fCU|Bpb`a|A>#{(Bs#`sRab z#}ZKaR)B|qs{`Hzif?}q)co!R#V`I8!c!i0`E)9{kofta`u#aj?fW&T{0Hpv^3Md1 zBm72C?Og(@UGE6t)u8Bi9Vq$rdGImtfJZ$49`Fdl9|z9_zYRVcJo-@|-!b4U!X4o2 zz>k3H*Pp-%;D3Xo!SNJ&8h9S~HgFB7a{mQ99QQy;0Hmq_s5{p{|Y<-{3EFK z{^}>3PtO5gNcjDr_})XH+I8q2@7E+y`ImsI=Uw1Y;LYF^@P1I^@qKVH_?#zQ&XhsX z@lsIv?*rBET_OA(a3bMffv15-JmuqdF{tt`2giczz+=HD!SUcvz*m9K`-q39f@;Ux zK&5+cz@6Y52!9jQI2`#;J|D+`nx844=<{q);Y+}az{Q~GX%DD;p90nIFM<8jDGz1>(+ppr%!__=f6PJ zcfiNJyq5+X8}J11B%YrMo(jG@#6K1A3*aQ;zYD$?9Q6q=cMPa<$Ag-uQ$x5D6y076 zP6uxf@!tp4pWg-i8~8H92Y=H0KOR*2vp}``MsO5(E2#0?2)-7402KZG9Mt?A{3-AE zOz^FQSApvP&%lepmwwvo?FQA}tHA@o_krRg8$$R#Q0;pFRDDkb`~s+aKM2o%A29ih zr+-1fqXSL=mH$Lg^~?Y@zZZcjXK}#gpyq8IsPX!A!0&;_5dLilAN*Oje~bp3h@S-> z2`&ef?+#G?_+SX{4)}!-|6@?|HwbE;j`^JPv-1P41Yb`4Q=sbo0oVop1snrj{&|0X z6R7^|05whzgL?i^a1Qu$@G|iAU+{H#2Y5E&Pk_qzyf1qH4+9k*3u;`N1I_?N*KHwu zeZac|?g7u``M1Dh!SqYsjE zuMgDo4d7Vt6X1BT3cd%2;8GPkeeOy|=nS>t&-v}P? zHQ!HM2%bjxo)G>y_-4WFnH9reSbC%RCos14Zb;qKMiVKego7z{Vv4+8Pqr)_#KZQ4^ARH z8GIW!FT_6y9z^&PA^as!^ZE_&2=Gs!>V5uqy&Xq^qJxtHUIJc7`0d~f@S|Wq_`L5y z^WYBfII!vaKAy8dt@q8K;=c~Q68uka9QcYK_`ID9P9)p|z8-u(sQLR2csTf9U^Do_ zA9B77o(7%+ZUCo&KLPdp=pWHn@I3Gka0jSy+5?UPKMuYG{1W(b@K>P5^S~c_x-p=} zVLbQ-@KjLa^)7HOxC&HzehnT4{uR{xzW683|KAC!9S?%XgFgh-&%=M}eBoqJ<;@09 z1up{+1vi4C?*~Ao|2C*{_WPOh)ybgxu@F>0y1?gy%fMs6>p`_^3#fMO4&kqXClUS? zsPxDFoG}I`gRcYc0afq!K=I=Pf8pcyHt=Y|9iZ~x0E(}DGCco2csk)KcnR42OP8-J z!Fhzg32J^`_bXpV?+*A+pyqeKUpsxA1ip#z^`PRv4c-7A_AkE9HiF{`?*-?8N9^_a zZU^TR-U6NoKBwa2b{cpb;r0-|8Jt3RH>h-bLDAWjDuj3Gp69QQVeTIe_os1xHTSo1y?}eI7yagP|3|KOa=pc)?EfA75Bo{332`6g z`RBR+9oPBXk9ijK3hLJb{v-G#*TvlL0Y#_!{fhASxCXc`Bwn_PSApH&TH+r9OI-1{f%|1#uOtGJOBRG@ z)49K%>t6_e4Sa5hPblj^!sl__!=>MExrk0a#iccJKG!d~^!peWBxiH_UCMZ?BKc`e z>-R!s48Nm!em~b`gja{STL^!b`?qsV=KkfRZvo}AqTfn~m&|CHN4uIEv{_)Gk42sfii1IxGH=1|VP0lyRC1wSP2rVzi3 z@EY!Sf*ZNkaq0I)t~0n~4|*whEOq_?{3YSvg}m<~dLh+I_%N63Yw}f!ziQ$BdECE@Hr*5+ZXx{6aQ~x#mlAhs$g_yJ zFLVE_(8rk}&1=B*T>FK1MZbo0pVbY&Z*WOJcnfj6!FxdQ;q{8D7>p|`x3*m2oub|wWU?mI_%Co-6n! z?vEkOi$mOe;##@?DEKJ2o9kHa58ztO{UM-!h@xZ#;qewiXXpNUu0Ij}82AUSQCwf) zdUr_kTkgNi{oBBEz!t8x-0Qb6pzeR7|Mn~j632*0G z9`d}DGWAOdH-kR_f5f$w>#tnP^^o6nTnCW$IU)U<702@mIGVWqxjs*L2H}6@I)dw3 z!XM$fgzIjuL>IpobA5%Y#C1d{@6X&H#q<9F^}CeoO%&}2h$8wTnB_SZv<1qP2h1{f8n};@K{j4zk&bAb+8AMt3&*|!HLAZkLzx(mk@3O{~P=Q z*Fjt#A$$#ZC)a;+&Ez_ZYYXwu+Y}joM}h}4hu;g~m83b8>)FJOA#M}b>j=*Z&(Goh6fXT<%k>D?@43E8+_$)1 z!2QkOd$^w9{`FklT>nh?Fv`^LPOfiqeS$dsp6_6LlY6;8JfwSs=UpMq3yJ?P?jHr8 z&2=bO_8V8avZb|me0pX}Z)st7&$9I5i)Wmb#Mrai7q<7dbfj05o6{wWmX+IETRO6b z7j|_lOUc}RMJZj<)7{qB+FQ;ZUgQy>xP{a(v%Ramv#&EP_jb1~PT$_w($(AEyDS;E zu(wqIa7j;lYbhDm-rC*O+tS`u9-qeIx>`E*AT;`no|dk*)Z;qZ%f)UevOFdA0NywE$Hqk)jm+e+ouQdb-OYfjTq6DFMA(b2uM)HZFx zgtV_uouX78PP7S{XjL+ibep;+rk&kw?Nr2_&52TXwRLyWsICR=Y8xceYLj$Use_5= zS(cpDT`G5t?M;_<_bj#+bai(%m3vzjEJ*vxrJizga&~)%rf>eT)F{hGx+#vd4`Rx? zs8463>olG}>h3COs5&+6Es;>HGn1}p>F8szw6s$xegEn552O<&%w9&5ubePpS~^e3 z=W6m!=`8gw>TYYY440my_^Baosz*+}?5E4`o0k zZC{XfceeL3isPxu*U-F)={)PQZt}DQ;@YzZ<*vSt4&5nbiDIG0;<5 zSh~_OWOp6C3Nz}0g%*GjSemZ9SC`m$^)6ciJ!pX5IQzm2()O~3wbZ#pw6}nv>`lj& zyVGUeeJuAbMwg``k}OYZYlkI`r-I&|zS6u&^A@ypluJ&8^Siq{N-bTi|Mo8EA1aub zF6iiP=`Ej>cK0qS^(<{Km(pIRy0oPX+tP~6XYCAD?Q4%$qm~qDeEw^Xhs;?57tcDs zsob)ll+L$=O{K2Z?lwwXRDxocrZ%xEZTgihol81O*-~!e`Ur(ugN_$t+rDK+|7RF2*Gas_*?WWyhE>ogW^VAHjv!3=Pz3tsy zr({#x)N;-xi`veda{2tJS1z7cAZRCL=C`-6oQ|vKn+2ZK+0xs(XnY~3*3j5;{VE8t zrOuZ2jt1rVI;$q?w)DsRi&$wbGs?;T(Q@5R$#AM?lZ*AnY1O4M|T%;(CR9+We?!g zO|3cqoKa3sH+h(F7i4F0KHRKVrHp$^+S*MC?Oo&;pPXO1qSTR`-`$0Xwa5QZ^LS>< zm2gkVK?G;GyWql^GcGuN&WxFJp{}&E56YikB9}NHG||?aTp;;)p@f2%nQ@{8(*j#< zAU-rnb8U(y8Y_g`8UZxqw{c1$%dO?^W1Gg-arbmwshI^cwkc*D%iCrbwe*y_dVyt~ zU^=4`Y|2ZqqvA)aNr1B*7wQOQcg0Mfp< z#X53Dd%2I6_QcNHuuV*t(t$;&3OzIvM%BVJ^mUPmI&4Pb_`p$o2qFtn<*ckwJMscP z%TS=zK^JWrM?^_G(oBj3Yoldhrsx%Vs@d`0m)kqrJ6d{D8*uvVL!+VQ-;yOA6s|_0 zm`LJlU_^gq70}YwiF(K!wDfipBNbvvskMCpv&s0lI#b|huG_>pfzTHe8pK0tE_HO+ zXq3zC3#mTJVTp#trL?`1&M-;6EerXd2B1uI_dq?(Nn_d~p^u7YCDXTx1BhZ$>ZqYd z<>_72(o5UAv{2)yGTGg&?NFl)tPQ_#&EHc>qaksh@% z`5Mxu1wHM^Una7xy}YCY8rBHbbpRC0$I4K85dm~Y^MZN zozn|5;E^^awz68n^6+@1FbqMoG5q>;s?El9L0?Ca&fDK%xg*J1AU22vEv>AyU_r_F zG$SPPZ0(i^zA`N@E5jY?#wkpTjkfh#(-0?3r4tOZuuQ>x8nv`9@_o=8rYc)!5Hd9B zE3B`p{q21vwZkWp9ThE)#b<>siuWE}>`FtgSe(wmHa& zkQQmn178Y!ePTLaI(}TNZDCIuB~=6FpxsUC+Z*Q;+O|ksg{DVF*w@?MA&Egt=zOmj zKAfkggsO*d4*L)(hNV*5{1$ett#H;}BEr@qZeqQX-fnG`T^(so&x(^Qa)EA)&;o@y zS6D=+Q2f$T6I0q*>S?uYLwna1tZ41TeQ8Nd)-FCRf3`S5@Wj3Z_A@Sy-kI6x*)G|e z$Oveg4mFOq$@D5T)W{}iS8ZL;Q-UJ9dZEdd*49#4qM&ww+B*qr(_iY*Vr}VaMQDm= zl`|GsD>&Mh^hxqWYL*J;60KbVJaR*1bFK}T7C1z7)KL&4)kcfO0hz_tmL=L3Yf(Uu zwtp@b*kYUa(v^XEdS0h#WK27YI1H>7md2pHr=-D$eQ6!KW3NG4d}9V&^LVT+A? zC_zO%i&1|}{yNKH^2}C~5jsWnbaxh-5a`WF3SrIW3N7AEF-Yn*EGec9XB@y-7U~e< zn`Eqy&X&a@r*^Ry3`m-l!ZL6+t3D$e}8`JyBv)uIqDkgG8+SAC2G;U9>)T-LaF%gH-1G}8`E z`Z7{(5kT{jHllIV+y|2L@y{4^C!6|qGrnrd4{8`@i~H46}n?HUmqho~b{Q|(Gb64{;uU85BuW9#9H zNGRMFO;nI#VhvxI!W!)`?~T~Q6)k9HY)SK3%LK&y_Kps9TEiw)TvmeO>dSXCg-K)G z_F!7-meSNO6-gL$cTybmZwXQK!eV2X+uB&%h(6Tw zULW~dtA?9FnuaI+R<^A zwRY61eYRfA04voYW5_NC#DIreQR4U}_G4R}ovJ(=ICY;XK+Wx4S}JwL#cQKu+{SxP zdN{3{fD3$*hq=n0Nx*EwLgi6DoAw^W?~*O<))b0uvJXS=#8RTf#VZ&d>LJGOKZ@AwVhG@njj-* zQbsFt;50Qv55JGew7%UmV%_i7A%*N9OOW51LC;Q`T2iwjIis?nk#WBTdtHY#8m(p8 zm}0!}aSQQ@lp>iPxiK9)nqf+?Gpe4)nxCiHn}_;K^>vQvP)LZLtxNt6A+aGIp~*ve=lQ9gVoQhFf+8mZ&NuJ0hlS zoMPB$B9VPi^q6JQRm##RkS!e7Xi7ctY01iBJ!VTObjx-Z}F_biV zKf7^F%oKL*+Dgr%JP(N{`ZK9RVr^n)&hcwE5?VZ%x`Iwe$jeEj1*_E=Rn+JcL6VXR z1u{XNx(P$QLM%_!(f|Q zl*}g&B(t!krwz^YXNB8ofI#D$CfkFJYuE~~4@76n&`(atB_mODj= zh2-T#aya8K9xBpmwu6mJ+>->pZUGbbM(gPezAI&S2v9BTR;upcyr9ib7;UqYm1y=5 z41;Yt(<3R$K?e)GKV0U8SXYTkJHJjEWpqUT4KerV}Fyrh}~f zLR?@w4N?b&l0UJ!3uR<9=SiTAz8;~8Io zT7+!|L7#_~asPC_Hf`NYyKuCi)!{}gFW#5M)2D9(aFRM$YK*Vkm3aG z*gw(Ba4+n8#0|p{a8T<4jmO zIQ_$11=aa7MD&_^gPQ=ycQk1qGDdzeBrhISu5GYASc3J8jhpO73(Y?TzM;aMcLesg zu++uDPe($Ej&3+96qYXO#(q969Ve-7ZX^@a4xY%NWIPFF&xm{VU_4|nux~8vLlY}| ziu`1rY0}YO*{oO?$DzOR}4u_QWhc?afsiIB5ORMS%lPV{$4>potVS~dNjB0k$LlI?_|AcZ%d#7jDTvj z`GJXgp#`^si!I|Ji0!s4>m>$k73oK8+DCP90!V{x7sl2HZxu?DNzHBiC`^om>-u(F z2t(^B*?MKgn?quEA4WQN38CM^?jL0t$TauqGf$s!{@imfoIPjm#j~f+8qZnC|LJPg zR`&?9+Du_LnZwqQvEu|Q@n9Pa5T{yMy)kC?;n<>8Rl2g3kxG|d)!B08+@o6OT?kL>F$2%u7Na zk0<&?TV`yz)O8Hc5+*q#)3J`#L#iN2uEHF+pjlRztF!dRi-SrU%LtrQXYzQBB6mW> zT#vZgS<6+~E_80~b7WLjQbBE3WAM$&o<*aAiATW-GALUBBzap7{@?ASgA=PqY)un*S>a>kJJMxV%Gve^{L-wTeEXHG12 zJj$};VkkF14HAQhnh&?e2NJ9+y7a80yW72p(Y|5PVkwY|TQgl7kNg#Jh)E|4E$C>$ zshI_A2E1}QZG8UBwoV=RPYoT@DK@54CMW(_A{U8a4!$n>CSq7W88)xXC#O>;V+L{$ z;A!azWJ0OYW;!U*F#S9#YSF&+!R-?dE*&sl(Oz0g6Er6r%gTSOjT=+x zJGkkB)Y;FOnv)o9>c7mumMtcGmPNa{rzU0C0Curs^@A?$ZM5vou-u%~th~gn1u8Ea z%EaY!V(J+77dc{cEGFgBHZ+TRdzXwWkDoSalIdnlh~6dejhtcIp+BpV%sQ0dP^6US+xCt0{JJaJ3DWZ+&XYW-=_Vn@d6<6kx)y zK4UI&i;Ue031yYj*i%KIC1?|sS!Vt18v5er8>o9?t77#DYOnN$jKqUkC`89a6q7~W zHpZKFiPU8E7riGT+TdMWpV3s|EK;MOK=fWK-seIu&WIAWL-8o9<~X2ZtY|A~^vvXr zTNvO<>%r=Fo}Wz{0>!@A_> ztU9KHbP;C^dQ6AtEhu!)FjM612{O;!2#g-maFXi;Ec%1M`Nx>eUDU&CS7{SAgkJN| zkizRPeAO2c3pdIS>RPA=$8~qp%7{$N!1^Kk3arf)FPWUp-$Ci7oMOUv%0vaGdSGh8 zW=&3qrfBG1jwbfXSWpoXlL-3Xyqmc(->--;xa=K~EY8&N+7R;*mbINQhIJa_OhCjy zJm1K2_}g4rP^xcC%Y9ZdI$GEVgs0gPSpl58#Z?vyfFE*d(t<7-^9=2N@O2CP*B3dv zHo5lqEM|b^cw!zBDnr{>bH7j^p2_961(m*#z#1A9_LdIqINgEXlbA)Q?(Eh|v=P3~?~Xs8ldPVqCA32s05;Rk05^9wPlEVaZ;HaQi9428!9RY5HX z3EWTFs;pr|-jqC{-lLOqGM*>eEM_a*H;twjnNw*yzE3)L$gD^4z<6kkrUwpH;W)1>l4FAPjgGcLld*6lnA@3*nbl}}9A<^*9F`e|=Cgg144 zorVtN83S{(S2}7t7^j_#jGQS*QTLOj&i2}rvry|H^Uy0Q8Xjx(@4ht9N*uuK2+vwd zN;%{-dLEf|mZag)Vr?l6lhhYf>x5wKsZUbV*qSPaJ{ifqCiJc*Q(aw?&<;WuwWNj! zQ)^!~BO|P%Vb)Ed?3!l$4~m3>ZPwJ@`Z8nhMq2US(yWjM^FibGxggv^uujOyRf@^e z>r80q;FPGiLQ_c)R{(!(<)ip%23rv z8UKzfP7?c^F^<8$w=N@)eXhglWS^6VF-9D^i&p)hv6;~q4H^zzMg=3*rh~^&ifG~Q zp0s@`=YQUkeVEb_TC#65JVF8cHsK=_un+S;Lhg~L)ID><+qQvnShySrW(OB>pTg6i z7iaFg{@Sq_Oy=u^Df(-0ia2bV+^fS=vG>yJg?cC4wva6_l5$zEv;@5@o-dhGSoWep z6dv^vxgKxB#>rtx4&(DNSTB|iS(eEU-8;Ue5X#YJIB1xKqxr1x&^{UI>Q2jD?RDn^ zOf2R);GxB(lD)gZCL`_`(EY*~Czhrx&{2zh0;2ZFR9hN9Hq`)O#NnKsA@Uci(9@&q z9?P#S(`xHpq;f;04zTn0sVIU&yj}qXC%jpw*Wq~Glv{hZo90C8emT*RPdqoU9kC+f z%|eofubR*sD^?nR#^h7Cona43TMUr8}J{d7*%?^aK6YXAjlcW|y^`x#`-D&syax zQ0sA7O=2TEOW|AhT$QzC*?Ny$VYt2y+0`~|MW(@^@0bwsO6oU^4f8tFmtm?llMAzK zM6xO@m3ag8^63@%X%%dU7=v_3sTZzr2eqU!3zMpwC17v2X#(=O3u=0HUMiFsuoO{gd08Ye+ZU3;!*QCh)x za>*3MBt>1%3UA5^4^}p38sf8VE>{8hM>Pt@(kw}e2=}tckuMobsico{ zU_l5xI4dG?#^-EHl$wOo)4*beo*;(@reuWsOjfua7Gleb`$A!PS9$x;#y`@hQ$V3L z*#GzzOA;k`uKqyObTWJzpdiwJy5jbrIv8V<@=zn%M-;7fVn2%2j2i_%E&tw^?3U;Y z9LzZDj>{^kPcEh;S5dzE5l*??jW%2SXz(b7Hs(4aAI>+|XeJVKbCOX{yb)zVsaf!< zcxNL~JotaTdTy;~8iukHnqS%^^!(w2q1){k_7aV)^|9-jpJ@?o)r z%$HZ}(Z3nVn!+_kE6LqXqyJ`*oiVo^?5hFs`;u|dX^rxR$q+>&8_2$Q*kN&4xIHncMh5MMj=TF(-Y}TE3zyJ|n9@Ej6L^OB48xoIAV_%Y z&FlK&^Yr$O2rF25?Ry$la+f9YWpd;4nqK87pTlji;)!=El8D4#A(l9AJ&Yd1F@-x|{8Es9M;Jeeta6#LSr0eCCBS zPbHgsP&dut^}A{58M9{0nKAp^bovG7oG*O3Y}3-k-A#*oM$Mctb9&ydDRk#drV^5B znghR{W+$kV*mbmbon$XHz)(-Qc+S~PC+6wYbWZ1*rt9;Pi12CYiSyfgM_pvEi#MH( z3k6@6?DDtA%co2|iA{`NBtKRE{%dMV7~HV2y5ga<+P`t|eXA;4*VH`p z*if)O3S50;WA*wqX?61s>P)Mv)>qztL--_ce00yAy#vcBW!;MErd`!1*QbLw?-*RS zjl5PxN^Ir66*bjVcCV>y-dMS9WA?Ce|Mtq=o9g=KIVY+!G@`O&cXjhE>E1_nR32TC zR`0mJx{1cejDy#0-22$>P~ON{&Yv^gI;JtIdg}-8TvNSvM@lVw2R0_v>u+L+64kVI zOFDShigBS!iF(+-!rHKPOBS1TCw?$OrQ-wCJV3yRa z>K(h%y*rmzue)JfgU>+PLXWOm<(jVur zvU*iz^_FJH;nvEnx7aYR+g!cl7JYA6V^eu_L-mdwY2{kTWKVTqTXogO>c%}P47#_f zw#Op$HR8cLR#orZUb$sk{ypN#Z4d3;eZ$0T^0USgb=@YW5?r;O(k7;m>fW8(p%2LK zrY)Lc&9vrV(|RUk@9u%5GB8kCy(6h^y{3BCElfD`wW6|mO-jqD*yie%y*t;~sBFHq za`T3KTB|oc5}KNjy0UqVW#9B)-l!%%lUy0tUfH>B!h~^*d1dn>X>~Q^uzR5L z@NUvoH!UxIzxe<54;)*EYz(2_{(Ix6jWwN>ZF{QyEaKH0D>tvG+_Jv1eIPKQNtLzh zY^M967h555&PfP!gX$h#UcGZS)Y!j{M;3;D#CD86p|bg}hIz&$R zJhIima?qS=HlgQDyQ@#Gt*qT%LrK;3t4O17CBw>~%u}3{n<|fQ+dHs=IDJ8S@R}VE zM)u9*d7_dV@2&Y@a%K10%01f#SM8|YxJBPg9<{F@Ob#oGs*wnlhgamQYTVz&l&hQe zR3Bdt_smv5b2M~0W{+(FvTimR2g{b*K2`2@1vxNY@5E=HSQh1FUs$eO+h5%ZdtALy zV;Xp+bCRsWJU5?Oe&)F$wCegTKEWw>m3!A`tX!{6UY!hXST!P(n{ifxEQLxU4-4vm zi_%2ohV&~6rJy)avTG|}j{~?P9o4GZ| zd!e&JbaeysZ2F2?*Qlk?_27CGX;#KY zW4|nD1Tf7GtAkRix1*D6UX?2wwav0NLDbaRe@)~L>-q=RuF-B_&vNRmu3RsDiw;y* zXtHgVi^CUZn10Y$+R_hIOB(o;xs*fLna-q{q}w*F*29|yQeOlv9vR=rJf*UDTJ$J& zs#vLMF}Bdiv0_W*{*^X3K8=xvv`Cp1EmET)dc*Q1YGN9;08wMTbD+AS-;~J}MhycS zq=dL`uMR+TmDP_M=>^ry#B{#wn*;ruJhUE!DJ(WR)Y_O%i_~J%Vk2#%cgFxrE%br? z4E&Wq?dTPoCKbF$XWmz<_5N*@n|7l$7RXe(^rKKr*b}YZgdo)3NqdECE+}v#YfnT1 zlZNo1LQxWoPCbT$YQhWSW!t*EmLywW$gQ}dte38d=A^=`*Dc^715=+RBPin&rlk)V zpMtLAt<0#CX+|kVyyR_YwD1FmD3I3R`gJhs!ob%qGMk@=AE|D>+lFTKM!3M>%8hXy zStm5Rm4|o1lhVOEx9xoxZ85IGY@V%CLzWDS>`t_){y3I--H{MgbflHN4-MD`z$UlB z*cdT|rCp$w`l-NxBS-5w_(Eii&AQo`gtU_OiGs8%yc+^HF)(=jBgoXiXf!|!06azH zzjFBK%eGf(<-y0rfzd&=lD&9QJp+F&k^nh+$4Xmg zfrCp;51dCk)54t8vExGLjLldf{Tuf_Ob?=JofMZMf;(C>A`2oaGsI*nKn-Iv)nB5u zvUAnodhH0}7CdD$Ym6`>CZk;BLB>0VET_SnZ>aX)LhWn!AS)^ZSa-C$AfxSd31GFM zj$I6=tBFK;MNEZR9SUTp*$-k&bF_N5IQwc?de$PEQZpXn8r3JZRJQGAPNL`tCL>?S zVpLVzpae>V*VL{Z4k8uUJ$1N4G_ZC z7_xE9gf8m~LJ#dDV5vH4M$qNb1izC z3PqnQN`yjdmRC35TTeR0%0|}XYT8x9eHt{}WH=+;zfIO92BOiBWK&@*tig~B?Q>X{ z@Q~{2esvR#i>@1khrQe<7G$I7RkExK9Sod5t|7Hcx|E6$i;%!*Z>+9+QapC=L%Xa*#0R!tR?vgXrD-E^nY!B6 zig_33IMViTixKrNbOkcbDLKhkuh@LX7ltsVAQTKnaS~LaOzvs!>e;ZE8S6?z zlrIr=e!#SsybU!gl9I^kZ{7tq(Z-ar~A(L#VO=~k+T^j62#2BIoym^D^bGsx; zX=?QjL~wD)d?$w5$9Phvk7*>rBpY=-t!`a0c>4`TlqNJpWKTcC)twKBYlzFJTi4$m zmMXoEn_-)88|Any;Nd!UC)k3?7MY&OaB=CquDL@y)!Sir%uYseZcKoTjrESmU-LdR zP?%jTLhD9*c>`@VOR%DgY-CQgaq@*tlkeGs;Z6z)^NK+C-p1XB4?_*>U{Y5G;=K`@ z=+N=cm_R0^wFjaeUx)c#&BRNTIwr5pf`;t0%~5g7T3D;T+w(OMcQQe#pjURnV;hQk z6>-QaE^KmY}e zf-QEoatW#5R3M%#>@bIYA6!d0etB-1j1chlup=iIfvW(#Cl+tsCDI9k1n0QdB z*DPnLYQ@6!D_hruhBmM#ZeA+|Q=;RJ>ucnl1^lTSc745MG{>=L+y#wJw0Jf>i7_#W zJD%m~SU2a7je7W45%xm^W7BG8Rb*Q0?VDl4v^*W-*~i4}V?6tq26<3!uiKT(Lt0-b`;yRR#s)J`lASw;g>Gw`og%Yh zTPCSs;$GJdXchR$Z8rK?hpaHw>h*_%l;Ptyu7D?0Fv78`xN)~Nck6pqNu&HBve2o) ze0vx4!f-Zw?E@4Ls%;8o!GzTGY(cWhv&~^`ZX=K38$Dbnt&kD9!Ehf@cSTw?B0mE# z^ysn}z-1e5IMkB0*y`ExC$M5vrPK?Ek+C@2n@YQw7kqsD4O0^?^K!RBJ9>7e6xE0N zo`w@_)Sh@kmMcpCYqbQo{BntT3v$GT6s53X50B!@oco_!8-pVPycil1>;!M<-Y6`vEr)hIX49(|9PWYlFl zW;^&ztGiY~Q0lPg0B`4*4$0BKl7E+(kJA!i?8eLel_U(6HcD4lKvPz(G21#-9QP8YDzN@l*qsfF_ z)%#ZIiM@Q7ja5>8Y#U<3^rM3EQL`S>s51|nAPh`VEiDXSF}k+kNZeBL!iE(Mapzhl zwl-md7G$kb=CIPO7}Jw#ntD4+NN0%&yFYjyd_ZnEN%UxQD$=$eKc^VU47$o)h+rMY z5RM-k*1BaHeu7k2OzZCcEd0$w{3wB!il49k;hf9Ta`u$oh1yBXvejB3dRAQ zkSE?(EM~D}AGx6sez4OZUM8AQmJRyQB!$A`v3%l0gg_Ce;9T|^Snah8xT^%vnhs?* z?+7*wV{>s@>YjxSL?C8Y4wnZjX@M}GR(Hl!n5oa&eKN{4EG?3otpO*FT+M52Y;>z} z#urplk>%4&+ZozXfXR+wi#1^utk8LR1&V~(nmU@(M2HA;8$(8zF>#pY_{?W6%yC_$ zCO9a(o-BrJuIkCEQA#8w{#nKqOpQxy&sA8a1*ajKz@Tx#lQSPaQ&HI+<250(d^nNL z2PE=Hap$;^bQ^*1FUe%C793+|nR4NdTM7mP)}GAt!Bi9c!i)$QyVaY_GJ+Av4dM+l z_v>8OP0ldS{4_i?D52Hxg@ldo;5D~Ywy&2D%zZ<{|3gPe?W^zHCG**B8%OF9JRxIs zcv$gw&1!Pi1g87f<-^}*YhsP#2((TIOz&qh%qcS&%Sbtwv*TEu3YtqM@yzdfJKDL? zBHgPK?cjadz?%sUaiVdO@l%c%oLmgrz~F#VmK(RtlWc^X=1OS zzXsja*pcni-Q&tcJEutOvTx51KjnU<7lg1P53bpk$c2exg(opUP{F`c2BOn~rJy0LA<#|Ms^A3ETVG#W?NZ%o6SIrCzBU%k{3je@L22AIR37Q0FmUdQa!=??r zq_eHZpc2?3*|37n7wG+IQ&7V?DrUfCEtzLM3p3-p^qTsDNrgd(X|zLf^NCHH)lV1b z7*2?xYWV$= z?ybjJLxSyq84Am|QDz3&HZN!M5@;{0b6EdlMmKT;#(FjN$Kgh{vHe&-xM6*C@gNs2%R}r|N`wZTM|07Lud!FfJ)lIinRzJdGkzbNH51fYXaz?SD`Zyx= zX2kAphHV@jLy?)N2OzdRJMf5vcl&NRKl#R7%i6@^5VOB3udLi%eN@KIsPbcU-aCLt z=yEY}qO1M8X{~E7vhG*=H_0eNR$j2sqTanW^dLyb>PPfCMP`WeJq8O%tc?}2*Muj_ zPWIERKlGT9%G5s>X^DfBEOb_X8a6@Mc5B_L%1Ze-VH-p79qAkUxa!s=HE+b)ukAbU zv&IZ@N5@msKDbXu!f6Ke+NL-=31th9=4sg**(;?^z^8WF8FfVm>q8jO-bb%tiJ1D@ z4}V}#@L+Q{<|?z=k9g>3uJg^;kZ(v7Yqpoud&y*F7boRc+KpY43i4E^ zbS_g1ALzHG?aW$I8BZ^x!u6H=pI{t{?nR@M>SmAT7=5$2#ru-r80)*MVRIszYrouo zbzmMNeA*x4D^@7C`weS@V-SkUIwq~q9@iaG-}|d&6Vu7>@(=nGXR?pek~#xF^1sHX zI`a}2Bg7<dDU`67hopBnO~l_CTS+YUCnS+ z*?6oS2y4zPy*99SS3{h{xFLHT)%k@y*fR>VjEk^>`Izku`fNe>SeN zT5nqgL5e@U+iQKsL|dVZk<*P_R&i$-QlbeDzL%YeiSMk|!Q6&m4IkGyS#bj#n>S2K zqtUtz;mD0OuK6^j`ZzW&$Cr^w)LwH#&Gv#Kz)ckrO+59qrccW$Z7xnO{PA1hy z{GA5(&kx$BA0QXZ3jVfc;8h`!F{{EfXie2M6uIv?bpju2GVPvOhzgX`IAn%!*Ab3R z9arfM6iiO8aiVUy7EG09*A;`!be}?G!KRp}tT9NajsD2>Dwd%wYBTkUT}LsABYytQ zo$-u(LnAdLam6Ib{|?$OyEWTVt2_xwdGlr4%2lwxmv=N?pvw9vb0k`-CY=e7G*#Vo+g z`@ZOXRp7bKEEA*=?_kLI0y_&UmsP9v9e4V1eWQij_{)yNq`8}?jZokR(dK50BcIt! zF0izmam0j9PT{;cN)O7;-Pqk~xW+s?;cDiXmoX}BqKl3N8G}!=B2C}1;=~j!yW5m) z@ccVx(RIzE{4XiwP9tW}F!r18N}G)6aT#WT>co?=h#pQXlG;|yMd|i$1fXTkgT?t< zq_rg?T!OqNEp+{gP^eZ5l?=G7T0ZkgnKL45M76RMxISao+0G#&4rM=m&IrCSjbb> zh9nz{mHQGZEJ9nGmJIVfm8_0cV`S{L(_Ml!RzOjVIH}HAxbd zOuqc#%f(CX60~#h}{C`OLosFgfF@%$dK0pXvOm znF-}VudQrOKcu+t0 z{zoUQJLUnCFP&7I+H%9at1LTuE7!GW7xSF-dZe2$Jd&@qT!WUBTVra|*j@oXv|L{% z8aXNEqLI@T)RU1@W@9pPvf^IkX;KQ>&C>6gHg*fTq6_F)EI5iq9|SMb6{D)h(aTnFyj->_-W8_~8~ zXjo{jv5!#bK9?5PPiRZnCB)X6_}|xtMH{sEZ-d?z$?=&sFQZVKxY`C~jI!Zq{hw%* zevK96+C{ri zL^hI-#_Iso_B8Q(R2aT#ioX9qF5~Uedy9@H^@jrNn`<9h zw`DS>8l*=?HX128%0-hC^ZbzQ+ikM^P(2L?fv!jg^(t{IPVL85VkD$wmIM1}i`hFU zPUkF;TR~QZ=*geXKpFlsc^D@q5^p^=gURrp;F`@hg&^8|zKswSGTHS)mU*1?yrwR+^T?+RSXwxPhaCDM6#^M;96kyn@siPLRc- zu8H)MKH~$q1 zuILLmzQkW+dWfx)o2eUSW8$5>-G@cKXv^`$R;-o~Bg?)`)@?cZ`Nu4!xolcvJ>>QD zNGw=T0{3OWgTEnV`^!MQ^>^J4#7#(JawHz)c#YQizz0Q2KICCF7RNscf6}V%kC9}q z3AVbeY-RRWoZ{E<&BSKx0}rgalQG(#yFvuE*Pp-I6qttFsUnBi`;fj6W0PmBejI)% zoD4!jxo9<$taGE~dM_#tg*C&ZhK+{V6O%k!W`yN*a81QMXNQbto;)}FTGwq_Ylj}= z7_5IQeup7N18bX0xq^_ZpFXx|W|ZP{I=*rWv}F>h@F4IuSa{%-2rPYuCpRMI3p=_( zndfQ3`xi2cxeo4BM_$Hi{kq(Opz-swB;P^a1*4Ja!nkQR|Ew!`0ePb*O9<%`jUGSa zESpXD|H$^Im7V=eBa=n-(YsIF4aZ~WZf?R4^eJf(hc&XggobdwA}$!Mn!NED-t)E< zjKFPhq?Zqty*Dp`9d-=GrVXK9$cUf9-DLV3YcQ2oj4C{Rh3!e0g`HpV7)$U4Z(N*eTr?+w(g6xW3MhrTXo z<)ayy^t_L^l_U;oO>M>r_-rloD0MjIU~cOi`?5!p7qXW7$Erd?I-$>Y+p39Wpr#bQ zOQ(@4oR@jm(MJdGVD5t~D>NXb0Wivx66JBo`oO&yh#zi&;PY=G)dXNMwV&y!eHz+P z%pPPui(|P?4vUY}A--r4dl`uR8tV!!;ZI&@J5r|NEi)n($u!%5Tvv8~(zWZCV z^++51sh4M}b@-YWhZ)KcH1xb~p${fR@y#SS`!3|$x=KpI)*IsSq1mLwmbEEp@J5rU zily#f!5+d^GGkVFz0<|MeKH1_91ormVYQ@MA2wn$($(2xUE;Lv55pLp59(bu*@XQMA6^f~A(^YH z3kT6irO`_xL;u7KlOvx79W>ebT{ghQS4Z$6cn`;;yfbr`e@+0!M|MH`{&m#a<1u@D z#UkVOw$s!`DXvwSrA*f3Z!+Wbdo6D;VgaS-_^MFDw$$!+MVii3oTNBEqg^%!s0;Od zDts_?bdou`GWK4(5WLIyJm4KR^n_xBqH?Dfa}CH<*YL&rsDYbu=bT+U zY=jaE?A}gVEoUeWMB;^G+B`r*ahlE%KUkw@Ub2=px;(-7rB;QPMJ%W?QWwd3!Em?+XaTib^H zGdrQZzFB{|RI&Qui>p(ufevz<&P8Q(_`^FRCPGHopWzvu F{C}2pfbjqT literal 0 HcmV?d00001 diff --git a/core/locale/ko_KR/LC_MESSAGES/django.po b/core/locale/ko_KR/LC_MESSAGES/django.po new file mode 100644 index 00000000..f079c79f --- /dev/null +++ b/core/locale/ko_KR/LC_MESSAGES/django.po @@ -0,0 +1,2479 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: ko-kr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: core/abstract.py:11 +msgid "unique id" +msgstr "고유 ID" + +#: core/abstract.py:12 +msgid "unique id is used to surely identify any database object" +msgstr "고유 ID는 모든 데이터베이스 개체를 확실하게 식별하는 데 사용됩니다." + +#: core/abstract.py:19 +msgid "is active" +msgstr "활성 상태" + +#: core/abstract.py:20 +msgid "" +"if set to false, this object can't be seen by users without needed " +"permission" +msgstr "false로 설정하면 필요한 권한이 없는 사용자는 이 개체를 볼 수 없습니다." + +#: core/abstract.py:22 core/choices.py:18 +msgid "created" +msgstr "생성됨" + +#: core/abstract.py:22 +msgid "when the object first appeared on the database" +msgstr "개체가 데이터베이스에 처음 나타난 시점" + +#: core/abstract.py:23 +msgid "modified" +msgstr "수정됨" + +#: core/abstract.py:23 +msgid "when the object was last modified" +msgstr "개체가 마지막으로 편집된 시기" + +#: core/admin.py:63 +msgid "translations" +msgstr "번역" + +#: core/admin.py:67 +msgid "general" +msgstr "일반" + +#: core/admin.py:69 +msgid "relations" +msgstr "관계" + +#: core/admin.py:87 +msgid "metadata" +msgstr "메타데이터" + +#: core/admin.py:94 +msgid "timestamps" +msgstr "타임스탬프" + +#: core/admin.py:109 +#, python-format +msgid "activate selected %(verbose_name_plural)s" +msgstr "선택한 %(verbose_name_plural)s 활성화" + +#: core/admin.py:114 +msgid "selected items have been activated." +msgstr "선택한 아이템이 활성화되었습니다!" + +#: core/admin.py:120 +#, python-format +msgid "deactivate selected %(verbose_name_plural)s" +msgstr "선택한 %(verbose_name_plural)s 비활성화하기" + +#: core/admin.py:125 +msgid "selected items have been deactivated." +msgstr "선택한 아이템이 비활성화되었습니다!" + +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 +msgid "attribute value" +msgstr "속성 값" + +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 +msgid "attribute values" +msgstr "속성 값" + +#: core/admin.py:146 +msgid "image" +msgstr "이미지" + +#: core/admin.py:147 core/graphene/object_types.py:501 +msgid "images" +msgstr "이미지" + +#: core/admin.py:155 core/models.py:457 +msgid "stock" +msgstr "재고" + +#: core/admin.py:156 core/graphene/object_types.py:663 +msgid "stocks" +msgstr "주식" + +#: core/admin.py:166 core/models.py:1735 +msgid "order product" +msgstr "제품 주문" + +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 +msgid "order products" +msgstr "제품 주문" + +#: core/admin.py:180 core/admin.py:181 +msgid "children" +msgstr "어린이" + +#: core/admin.py:566 +msgid "Config" +msgstr "구성" + +#: core/apps.py:8 +msgid "core" +msgstr "핵심" + +#: core/choices.py:4 core/choices.py:20 +msgid "finished" +msgstr "완료" + +#: core/choices.py:5 core/choices.py:19 +msgid "delivering" +msgstr "제공" + +#: core/choices.py:6 +msgid "delivered" +msgstr "배달됨" + +#: core/choices.py:7 +msgid "canceled" +msgstr "취소됨" + +#: core/choices.py:8 core/choices.py:16 core/choices.py:24 +msgid "failed" +msgstr "실패" + +#: core/choices.py:9 core/choices.py:15 +msgid "pending" +msgstr "보류 중" + +#: core/choices.py:10 +msgid "accepted" +msgstr "수락됨" + +#: core/choices.py:11 +msgid "money returned" +msgstr "반환된 금액" + +#: core/choices.py:17 +msgid "payment" +msgstr "결제" + +#: core/choices.py:21 +msgid "momental" +msgstr "순간" + +#: core/choices.py:24 +msgid "successful" +msgstr "성공" + +#: core/docs/drf/views.py:17 core/graphene/mutations.py:36 +msgid "cache I/O" +msgstr "캐시 I/O" + +#: core/docs/drf/views.py:19 +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 "" +"캐시에서 허용된 데이터를 읽으려면 키만 적용합니다.\n" +"캐시에 데이터를 쓰기 위해 키, 데이터 및 타임아웃을 인증과 함께 적용합니다." + +#: core/docs/drf/views.py:32 +msgid "get a list of supported languages" +msgstr "지원되는 언어 목록 보기" + +#: core/docs/drf/views.py:41 +msgid "get application's exposable parameters" +msgstr "애플리케이션의 노출 가능한 매개변수 가져오기" + +#: core/docs/drf/views.py:48 +msgid "send a message to the support team" +msgstr "지원팀에 메시지 보내기" + +#: core/docs/drf/views.py:59 core/graphene/mutations.py:55 +msgid "request a CORSed URL" +msgstr "CORSed URL을 요청합니다. https만 허용됩니다." + +#: core/docs/drf/views.py:85 +msgid "global search endpoint to query across project's tables" +msgstr "프로젝트의 테이블 전체에서 쿼리할 수 있는 글로벌 검색 엔드포인트" + +#: core/docs/drf/views.py:91 +msgid "purchase an order as a business" +msgstr "비즈니스로 주문 구매" + +#: core/docs/drf/views.py:98 +msgid "" +"purchase an order as a business, using the provided `products` with " +"`product_uuid` and `attributes`." +msgstr "제공된 '제품'과 '제품_uuid' 및 '속성'을 사용하여 비즈니스로서 주문을 구매합니다." + +#: core/docs/drf/viewsets.py:44 +msgid "list all attribute groups (simple view)" +msgstr "모든 속성 그룹 나열(단순 보기)" + +#: core/docs/drf/viewsets.py:48 +msgid "retrieve a single attribute group (detailed view)" +msgstr "단일 속성 그룹 검색(상세 보기)" + +#: core/docs/drf/viewsets.py:52 +msgid "create an attribute group" +msgstr "속성 그룹 만들기" + +#: core/docs/drf/viewsets.py:56 +msgid "delete an attribute group" +msgstr "속성 그룹 삭제" + +#: core/docs/drf/viewsets.py:60 +msgid "rewrite an existing attribute group saving non-editables" +msgstr "편집할 수 없는 항목을 저장하는 기존 속성 그룹 다시 작성하기" + +#: core/docs/drf/viewsets.py:64 +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" +msgstr "기존 속성 그룹의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." + +#: core/docs/drf/viewsets.py:71 +msgid "list all attributes (simple view)" +msgstr "모든 속성 나열(단순 보기)" + +#: core/docs/drf/viewsets.py:75 +msgid "retrieve a single attribute (detailed view)" +msgstr "단일 속성 검색(상세 보기)" + +#: core/docs/drf/viewsets.py:79 +msgid "create an attribute" +msgstr "속성 만들기" + +#: core/docs/drf/viewsets.py:83 +msgid "delete an attribute" +msgstr "속성 삭제" + +#: core/docs/drf/viewsets.py:87 +msgid "rewrite an existing attribute saving non-editables" +msgstr "편집할 수 없는 속성을 저장하는 기존 속성 다시 작성하기" + +#: core/docs/drf/viewsets.py:91 +msgid "rewrite some fields of an existing attribute saving non-editables" +msgstr "편집할 수 없는 기존 속성의 일부 필드를 다시 작성합니다." + +#: core/docs/drf/viewsets.py:98 +msgid "list all attribute values (simple view)" +msgstr "모든 속성 값 나열(단순 보기)" + +#: core/docs/drf/viewsets.py:102 +msgid "retrieve a single attribute value (detailed view)" +msgstr "단일 속성 값 검색(상세 보기)" + +#: core/docs/drf/viewsets.py:106 +msgid "create an attribute value" +msgstr "속성 값 생성" + +#: core/docs/drf/viewsets.py:110 +msgid "delete an attribute value" +msgstr "속성 값 삭제" + +#: core/docs/drf/viewsets.py:114 +msgid "rewrite an existing attribute value saving non-editables" +msgstr "편집할 수 없는 기존 속성 값을 저장하여 다시 작성하기" + +#: core/docs/drf/viewsets.py:118 +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" +msgstr "기존 속성 값의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." + +#: core/docs/drf/viewsets.py:125 core/docs/drf/viewsets.py:126 +msgid "list all categories (simple view)" +msgstr "모든 카테고리 나열(간편 보기)" + +#: core/docs/drf/viewsets.py:130 core/docs/drf/viewsets.py:131 +msgid "retrieve a single category (detailed view)" +msgstr "단일 카테고리 검색(상세 보기)" + +#: core/docs/drf/viewsets.py:135 core/docs/drf/viewsets.py:136 +msgid "create a category" +msgstr "카테고리 만들기" + +#: core/docs/drf/viewsets.py:140 core/docs/drf/viewsets.py:141 +msgid "delete a category" +msgstr "카테고리 삭제" + +#: core/docs/drf/viewsets.py:145 core/docs/drf/viewsets.py:146 +msgid "rewrite an existing category saving non-editables" +msgstr "편집할 수 없는 항목을 저장하는 기존 카테고리 다시 작성하기" + +#: core/docs/drf/viewsets.py:150 core/docs/drf/viewsets.py:151 +msgid "rewrite some fields of an existing category saving non-editables" +msgstr "편집할 수 없는 항목을 저장하는 기존 카테고리의 일부 필드 다시 작성하기" + +#: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 +#: core/graphene/object_types.py:117 core/graphene/object_types.py:207 +#: core/graphene/object_types.py:509 +msgid "SEO Meta snapshot" +msgstr "SEO 메타 스냅샷" + +#: core/docs/drf/viewsets.py:156 +msgid "returns a snapshot of the category's SEO meta data" +msgstr "카테고리의 SEO 메타 데이터 스냅샷을 반환합니다." + +#: core/docs/drf/viewsets.py:161 +msgid "Category UUID or slug" +msgstr "카테고리 UUID 또는 슬러그" + +#: core/docs/drf/viewsets.py:174 +msgid "list all orders (simple view)" +msgstr "모든 카테고리 나열(간편 보기)" + +#: core/docs/drf/viewsets.py:175 +msgid "for non-staff users, only their own orders are returned." +msgstr "직원이 아닌 사용자의 경우 자신의 주문만 반환됩니다." + +#: core/docs/drf/viewsets.py:181 +msgid "" +"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)" + +#: core/docs/drf/viewsets.py:188 +msgid "Filter orders with buy_time >= this ISO 8601 datetime" +msgstr "buy_time >= 이 ISO 8601 날짜 시간으로 주문 필터링" + +#: core/docs/drf/viewsets.py:193 +msgid "Filter orders with buy_time <= this ISO 8601 datetime" +msgstr "buy_time <= 이 ISO 8601 날짜 시간으로 주문 필터링" + +#: core/docs/drf/viewsets.py:198 +msgid "Filter by exact order UUID" +msgstr "정확한 주문 UUID로 필터링" + +#: core/docs/drf/viewsets.py:203 +msgid "Filter by exact human-readable order ID" +msgstr "사람이 읽을 수 있는 정확한 주문 ID로 필터링" + +#: core/docs/drf/viewsets.py:208 +msgid "Filter by user's email (case-insensitive exact match)" +msgstr "사용자 이메일로 필터링(대소문자를 구분하지 않는 일치 검색)" + +#: core/docs/drf/viewsets.py:213 +msgid "Filter by user's UUID" +msgstr "사용자의 UUID로 필터링" + +#: core/docs/drf/viewsets.py:218 +msgid "Filter by order status (case-insensitive substring match)" +msgstr "주문 상태별 필터링(대소문자를 구분하지 않는 하위 문자열 일치)" + +#: core/docs/drf/viewsets.py:224 +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')." +msgstr "" +"uuid, human_readable_id, user_email, 사용자, 상태, 생성됨, 수정됨, 구매 시간, 무작위 중 하나로 " +"정렬합니다. 접두사 앞에 '-'를 붙여 내림차순으로 정렬합니다(예: '-buy_time')." + +#: core/docs/drf/viewsets.py:233 +msgid "retrieve a single order (detailed view)" +msgstr "단일 카테고리 검색(상세 보기)" + +#: core/docs/drf/viewsets.py:237 +msgid "create an order" +msgstr "속성 만들기" + +#: core/docs/drf/viewsets.py:238 +msgid "doesn't work for non-staff users." +msgstr "직원이 아닌 사용자에게는 작동하지 않습니다." + +#: core/docs/drf/viewsets.py:242 +msgid "delete an order" +msgstr "속성 삭제" + +#: core/docs/drf/viewsets.py:246 +msgid "rewrite an existing order saving non-editables" +msgstr "편집할 수 없는 항목을 저장하는 기존 카테고리 다시 작성하기" + +#: core/docs/drf/viewsets.py:250 +msgid "rewrite some fields of an existing order saving non-editables" +msgstr "편집할 수 없는 항목을 저장하는 기존 카테고리의 일부 필드 다시 작성하기" + +#: core/docs/drf/viewsets.py:254 +msgid "purchase an order" +msgstr "주문 시점의 구매 가격" + +#: core/docs/drf/viewsets.py:256 +msgid "" +"finalizes the order purchase. if `force_balance` is used, the purchase is " +"completed using the user's balance; if `force_payment` is used, a " +"transaction is initiated." +msgstr "" +"주문 구매를 완료합니다. 강제 잔액`을 사용하면 사용자의 잔액을 사용하여 구매가 완료되고, `강제 결제`를 사용하면 거래가 시작됩니다." + +#: core/docs/drf/viewsets.py:268 core/graphene/mutations.py:324 +msgid "purchase an order without account creation" +msgstr "계정 생성 없이 주문 구매" + +#: core/docs/drf/viewsets.py:269 +msgid "finalizes the order purchase for a non-registered user." +msgstr "미등록 사용자의 주문 구매를 완료합니다." + +#: core/docs/drf/viewsets.py:277 +msgid "add product to order" +msgstr "주문에 제품 추가" + +#: core/docs/drf/viewsets.py:278 +msgid "" +"adds a product to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에 제품을 추가합니다." + +#: core/docs/drf/viewsets.py:283 +msgid "add a list of products to order, quantities will not count" +msgstr "주문할 제품 목록을 추가하면 수량은 계산되지 않습니다." + +#: core/docs/drf/viewsets.py:284 +msgid "" +"adds a list of products to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에 제품 목록을 추가합니다." + +#: core/docs/drf/viewsets.py:289 +msgid "remove product from order" +msgstr "주문에서 제품 제거" + +#: core/docs/drf/viewsets.py:290 +msgid "" +"removes a product from an order using the provided `product_uuid` and " +"`attributes`." +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에서 제품을 제거합니다." + +#: core/docs/drf/viewsets.py:295 +msgid "remove product from order, quantities will not count" +msgstr "주문에서 제품을 제거하면 수량이 계산되지 않습니다." + +#: core/docs/drf/viewsets.py:296 +msgid "" +"removes a list of products from an order using the provided `product_uuid` " +"and `attributes`" +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에서 제품 목록을 제거합니다." + +#: core/docs/drf/viewsets.py:304 +msgid "list all wishlists (simple view)" +msgstr "모든 속성 나열(단순 보기)" + +#: core/docs/drf/viewsets.py:305 +msgid "for non-staff users, only their own wishlists are returned." +msgstr "직원이 아닌 사용자의 경우 자신의 위시리스트만 반환됩니다." + +#: core/docs/drf/viewsets.py:309 +msgid "retrieve a single wishlist (detailed view)" +msgstr "단일 속성 검색(상세 보기)" + +#: core/docs/drf/viewsets.py:313 +msgid "create an wishlist" +msgstr "속성 만들기" + +#: core/docs/drf/viewsets.py:314 +msgid "Doesn't work for non-staff users." +msgstr "직원이 아닌 사용자에게는 작동하지 않습니다." + +#: core/docs/drf/viewsets.py:318 +msgid "delete an wishlist" +msgstr "속성 삭제" + +#: core/docs/drf/viewsets.py:322 +msgid "rewrite an existing wishlist saving non-editables" +msgstr "편집할 수 없는 속성을 저장하는 기존 속성 다시 작성하기" + +#: core/docs/drf/viewsets.py:326 +msgid "rewrite some fields of an existing wishlist saving non-editables" +msgstr "편집할 수 없는 기존 속성의 일부 필드를 다시 작성합니다." + +#: core/docs/drf/viewsets.py:330 +msgid "add product to wishlist" +msgstr "주문에 제품 추가" + +#: core/docs/drf/viewsets.py:331 +msgid "adds a product to an wishlist using the provided `product_uuid`" +msgstr "제공된 `product_uuid`를 사용하여 위시리스트에 제품을 추가합니다." + +#: core/docs/drf/viewsets.py:336 +msgid "remove product from wishlist" +msgstr "위시리스트에서 제품 제거" + +#: core/docs/drf/viewsets.py:337 +msgid "removes a product from an wishlist using the provided `product_uuid`" +msgstr "제공된 `product_uuid`를 사용하여 위시리스트에서 제품을 제거합니다." + +#: core/docs/drf/viewsets.py:342 +msgid "add many products to wishlist" +msgstr "위시리스트에 많은 제품 추가" + +#: core/docs/drf/viewsets.py:343 +msgid "adds many products to an wishlist using the provided `product_uuids`" +msgstr "제공된 `product_uuids`를 사용하여 위시리스트에 많은 제품을 추가합니다." + +#: core/docs/drf/viewsets.py:348 +msgid "remove many products from wishlist" +msgstr "주문에서 제품 제거" + +#: core/docs/drf/viewsets.py:349 +msgid "" +"removes many products from an wishlist using the provided `product_uuids`" +msgstr "제공된 `product_uuids`를 사용하여 위시리스트에서 많은 제품을 제거합니다." + +#: core/docs/drf/viewsets.py:356 +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" +"• **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" +"`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" +"예시: \n" +"색상=정확-빨간색`, `크기=gt-10`, `기능=in-[\"wifi\",\"블루투스\"]`,\n" +"b64-description=icontains-aGVhdC1jb2xk`" + +#: core/docs/drf/viewsets.py:372 core/docs/drf/viewsets.py:373 +msgid "list all products (simple view)" +msgstr "모든 제품 나열(간편 보기)" + +#: core/docs/drf/viewsets.py:378 +msgid "(exact) Product UUID" +msgstr "(정확한) 제품 UUID" + +#: core/docs/drf/viewsets.py:384 +msgid "(icontains) Product name" +msgstr "(아이콘 포함) 제품 이름" + +#: core/docs/drf/viewsets.py:390 +msgid "(list) Category names, case-insensitive" +msgstr "(목록) 카테고리 이름, 대소문자 구분 없음" + +#: core/docs/drf/viewsets.py:396 +msgid "(exact) Category UUID" +msgstr "(정확한) 카테고리 UUID" + +#: core/docs/drf/viewsets.py:402 +msgid "(list) Tag names, case-insensitive" +msgstr "(목록) 태그 이름, 대소문자 구분 없음" + +#: core/docs/drf/viewsets.py:408 +msgid "(gte) Minimum stock price" +msgstr "(gte) 최소 주가" + +#: core/docs/drf/viewsets.py:414 +msgid "(lte) Maximum stock price" +msgstr "(LTE) 최대 주가" + +#: core/docs/drf/viewsets.py:420 +msgid "(exact) Only active products" +msgstr "(정확한) 활성 제품만" + +#: core/docs/drf/viewsets.py:426 +msgid "(iexact) Brand name" +msgstr "(정확한) 브랜드 이름" + +#: core/docs/drf/viewsets.py:438 +msgid "(gt) Minimum stock quantity" +msgstr "(gt) 최소 재고 수량" + +#: core/docs/drf/viewsets.py:444 +msgid "(exact) Digital vs. physical" +msgstr "(정확한) 디지털 대 물리적" + +#: core/docs/drf/viewsets.py:451 +msgid "" +"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, 등급, 이름, 슬러그, 생성, 수정, 가격, 랜덤" + +#: core/docs/drf/viewsets.py:465 core/docs/drf/viewsets.py:466 +msgid "retrieve a single product (detailed view)" +msgstr "단일 제품 검색(상세 보기)" + +#: core/docs/drf/viewsets.py:471 core/docs/drf/viewsets.py:495 +#: core/docs/drf/viewsets.py:511 core/docs/drf/viewsets.py:527 +#: core/docs/drf/viewsets.py:543 core/docs/drf/viewsets.py:559 +msgid "Product UUID or slug" +msgstr "제품 UUID 또는 슬러그" + +#: core/docs/drf/viewsets.py:481 core/docs/drf/viewsets.py:482 +msgid "create a product" +msgstr "제품 만들기" + +#: core/docs/drf/viewsets.py:489 core/docs/drf/viewsets.py:490 +msgid "rewrite an existing product, preserving non-editable fields" +msgstr "편집할 수 없는 필드를 유지하면서 기존 제품을 다시 작성합니다." + +#: core/docs/drf/viewsets.py:505 core/docs/drf/viewsets.py:506 +msgid "" +"update some fields of an existing product, preserving non-editable fields" +msgstr "기존 제품의 일부 필드를 업데이트하여 편집할 수 없는 필드는 유지합니다." + +#: core/docs/drf/viewsets.py:521 core/docs/drf/viewsets.py:522 +msgid "delete a product" +msgstr "제품 삭제" + +#: core/docs/drf/viewsets.py:537 core/docs/drf/viewsets.py:538 +msgid "lists all permitted feedbacks for a product" +msgstr "제품에 대해 허용된 모든 피드백을 나열합니다." + +#: core/docs/drf/viewsets.py:554 +msgid "returns a snapshot of the product's SEO meta data" +msgstr "제품의 SEO 메타 데이터 스냅샷을 반환합니다." + +#: core/docs/drf/viewsets.py:572 +msgid "list all addresses" +msgstr "모든 주소 나열" + +#: core/docs/drf/viewsets.py:579 +msgid "retrieve a single address" +msgstr "단일 주소 검색" + +#: core/docs/drf/viewsets.py:586 +msgid "create a new address" +msgstr "새 주소 만들기" + +#: core/docs/drf/viewsets.py:594 +msgid "delete an address" +msgstr "주소 삭제" + +#: core/docs/drf/viewsets.py:601 +msgid "update an entire address" +msgstr "전체 주소 업데이트" + +#: core/docs/drf/viewsets.py:609 +msgid "partially update an address" +msgstr "주소 부분 업데이트" + +#: core/docs/drf/viewsets.py:617 +msgid "autocomplete address suggestions" +msgstr "주소 자동 완성 입력" + +#: core/docs/drf/viewsets.py:622 +msgid "raw data query string, please append with data from geo-IP endpoint" +msgstr "원시 데이터 쿼리 문자열, 지오-IP 엔드포인트의 데이터를 추가하세요." + +#: core/docs/drf/viewsets.py:628 +msgid "limit the results amount, 1 < limit < 10, default: 5" +msgstr "결과 금액을 제한합니다(1 < 제한 < 10, 기본값: 5)." + +#: core/docs/drf/viewsets.py:641 +msgid "list all feedbacks (simple view)" +msgstr "모든 피드백 나열(간편 보기)" + +#: core/docs/drf/viewsets.py:645 +msgid "retrieve a single feedback (detailed view)" +msgstr "단일 피드백 검색(상세 보기)" + +#: core/docs/drf/viewsets.py:649 +msgid "create a feedback" +msgstr "피드백 만들기" + +#: core/docs/drf/viewsets.py:653 +msgid "delete a feedback" +msgstr "피드백 삭제" + +#: core/docs/drf/viewsets.py:657 +msgid "rewrite an existing feedback saving non-editables" +msgstr "편집할 수 없는 기존 피드백을 다시 작성합니다." + +#: core/docs/drf/viewsets.py:661 +msgid "rewrite some fields of an existing feedback saving non-editables" +msgstr "기존 피드백의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." + +#: core/docs/drf/viewsets.py:668 +msgid "list all order–product relations (simple view)" +msgstr "모든 주문-제품 관계 나열(단순 보기)" + +#: core/docs/drf/viewsets.py:675 +msgid "retrieve a single order–product relation (detailed view)" +msgstr "단일 주문-제품 관계 검색(상세 보기)" + +#: core/docs/drf/viewsets.py:682 +msgid "create a new order–product relation" +msgstr "새 주문-제품 관계 생성" + +#: core/docs/drf/viewsets.py:689 +msgid "replace an existing order–product relation" +msgstr "기존 주문-제품 관계 교체" + +#: core/docs/drf/viewsets.py:696 +msgid "partially update an existing order–product relation" +msgstr "기존 주문-제품 관계를 부분적으로 업데이트합니다." + +#: core/docs/drf/viewsets.py:703 +msgid "delete an order–product relation" +msgstr "주문-제품 관계 삭제" + +#: core/docs/drf/viewsets.py:710 +msgid "add or remove feedback on an order–product relation" +msgstr "주문-제품 관계에 대한 피드백 추가 또는 제거" + +#: core/elasticsearch/__init__.py:105 +msgid "no search term provided." +msgstr "검색어가 입력되지 않았습니다." + +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 +msgid "UUID" +msgstr "UUID" + +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 +msgid "Name" +msgstr "이름" + +#: core/filters.py:66 core/filters.py:562 +msgid "Categories" +msgstr "카테고리" + +#: core/filters.py:68 +msgid "Categories Slugs" +msgstr "카테고리 슬러그" + +#: core/filters.py:69 core/filters.py:437 +msgid "Tags" +msgstr "태그" + +#: core/filters.py:70 +msgid "Min Price" +msgstr "최소 가격" + +#: core/filters.py:71 +msgid "Max Price" +msgstr "최대 가격" + +#: core/filters.py:72 +msgid "Is Active" +msgstr "활성 상태" + +#: core/filters.py:73 +msgid "Brand" +msgstr "브랜드" + +#: core/filters.py:74 +msgid "Attributes" +msgstr "속성" + +#: core/filters.py:75 +msgid "Quantity" +msgstr "수량" + +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 +msgid "Slug" +msgstr "슬러그" + +#: core/filters.py:77 +msgid "Is Digital" +msgstr "디지털" + +#: core/filters.py:78 +msgid "Include sub-categories" +msgstr "하위 카테고리 포함" + +#: core/filters.py:81 +msgid "Include personal ordered" +msgstr "개인 주문 제품 포함" + +#: core/filters.py:83 core/models.py:538 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:166 +msgid "there must be a category_uuid to use include_subcategories flag" +msgstr "include_subcategories 플래그를 사용하려면 category_uuid가 있어야 합니다." + +#: core/filters.py:356 +msgid "Search (ID, product name or part number)" +msgstr "검색(ID, 제품명 또는 부품 번호)" + +#: core/filters.py:359 +msgid "Bought after (inclusive)" +msgstr "구매 후(포함)" + +#: core/filters.py:360 +msgid "Bought before (inclusive)" +msgstr "이전 구매(포함)" + +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 +msgid "User email" +msgstr "사용자 이메일" + +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 +msgid "User UUID" +msgstr "사용자 UUID" + +#: core/filters.py:365 +msgid "Status" +msgstr "상태" + +#: core/filters.py:369 +msgid "Human Readable ID" +msgstr "사람이 읽을 수 있는 ID" + +#: core/filters.py:430 +msgid "Parent" +msgstr "부모" + +#: core/filters.py:434 +msgid "Whole category(has at least 1 product or not)" +msgstr "전체 카테고리(1개 이상의 제품 보유 여부)" + +#: core/filters.py:438 +msgid "Level" +msgstr "레벨" + +#: core/filters.py:598 +msgid "Product UUID" +msgstr "제품 UUID" + +#: core/graphene/mutations.py:39 +msgid "key to look for in or set into the cache" +msgstr "캐시에서 찾거나 캐시에 설정할 키" + +#: core/graphene/mutations.py:40 +msgid "data to store in cache" +msgstr "캐시에 저장할 데이터" + +#: core/graphene/mutations.py:43 +msgid "timeout in seconds to set the data for into the cache" +msgstr "캐시에 저장할 데이터를 설정하는 데 걸리는 시간(초)" + +#: core/graphene/mutations.py:46 +msgid "cached data" +msgstr "캐시된 데이터" + +#: core/graphene/mutations.py:60 +msgid "camelized JSON data from the requested URL" +msgstr "요청된 URL의 카멜라이즈된 JSON 데이터" + +#: core/graphene/mutations.py:65 core/views.py:360 +msgid "only URLs starting with http(s):// are allowed" +msgstr "http(s)://로 시작하는 URL만 허용됩니다." + +#: core/graphene/mutations.py:80 +msgid "add a product to the order" +msgstr "주문에 제품 추가" + +#: core/graphene/mutations.py:101 core/graphene/mutations.py:127 +#: core/graphene/mutations.py:232 core/graphene/mutations.py:279 +#, python-brace-format +msgid "order {order_uuid} not found" +msgstr "주문 {order_uuid}을 찾을 수 없습니다!" + +#: core/graphene/mutations.py:106 core/graphene/mutations.py:153 +msgid "remove a product from the order" +msgstr "주문에서 제품 제거" + +#: core/graphene/mutations.py:132 +msgid "remove all products from the order" +msgstr "주문에서 모든 제품 제거" + +#: core/graphene/mutations.py:175 +msgid "buy an order" +msgstr "주문 구매" + +#: core/graphene/mutations.py:204 core/graphene/mutations.py:257 +msgid "please provide either order_uuid or order_hr_id - mutually exclusive" +msgstr "주문_uuid 또는 주문_hr_id 중 하나를 입력하세요 - 상호 배타적입니다!" + +#: core/graphene/mutations.py:229 core/graphene/mutations.py:486 +#: core/graphene/mutations.py:527 core/viewsets.py:821 +msgid "wrong type came from order.buy() method: {type(instance)!s}" +msgstr "order.buy() 메서드에서 잘못된 유형이 발생했습니다: {type(instance)!s}" + +#: core/graphene/mutations.py:237 +msgid "perform an action on a list of products in the order" +msgstr "제품 목록에 대한 작업을 순서대로 수행합니다." + +#: core/graphene/mutations.py:242 +msgid "remove/add" +msgstr "제거/추가" + +#: core/graphene/mutations.py:274 core/graphene/mutations.py:314 +msgid "action must be either add or remove" +msgstr "작업은 \"추가\" 또는 \"제거\"여야 합니다!" + +#: core/graphene/mutations.py:284 +msgid "perform an action on a list of products in the wishlist" +msgstr "위시리스트의 제품 목록에서 작업 수행하기" + +#: core/graphene/mutations.py:302 +msgid "please provide wishlist_uuid value" +msgstr "위시리스트_유아이디` 값을 입력하세요." + +#: core/graphene/mutations.py:319 core/graphene/mutations.py:392 +#: core/graphene/mutations.py:419 core/graphene/mutations.py:446 +#: core/graphene/mutations.py:489 +#, python-brace-format +msgid "wishlist {wishlist_uuid} not found" +msgstr "위시리스트 {wishlist_uuid}를 찾을 수 없습니다!" + +#: core/graphene/mutations.py:370 +msgid "add a product to the wishlist" +msgstr "주문에 제품 추가" + +#: core/graphene/mutations.py:397 +msgid "remove a product from the wishlist" +msgstr "주문에서 제품 제거" + +#: core/graphene/mutations.py:424 +msgid "remove all products from the wishlist" +msgstr "주문에서 제품 제거" + +#: core/graphene/mutations.py:451 +msgid "buy all products from the wishlist" +msgstr "주문에서 제품 제거" + +#: core/graphene/mutations.py:494 +msgid "buy a product" +msgstr "주문 구매" + +#: core/graphene/mutations.py:500 +msgid "" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" +msgstr "속성을 attr1=value1,attr2=value2와 같은 형식의 문자열로 보내주세요." + +#: core/graphene/mutations.py:532 +msgid "add or delete a feedback for orderproduct" +msgstr "주문 제품에 대한 피드백 추가 또는 삭제" + +#: core/graphene/mutations.py:555 +msgid "action must be either `add` or `remove`" +msgstr "작업은 '추가' 또는 '제거' 중 하나여야 합니다!" + +#: core/graphene/mutations.py:558 +#, python-brace-format +msgid "order product {order_product_uuid} not found" +msgstr "주문 제품 {order_product_uuid}을 찾을 수 없습니다!" + +#: core/graphene/mutations.py:621 +msgid "original address string provided by the user" +msgstr "사용자가 제공한 원본 주소 문자열" + +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 +#: core/viewsets.py:824 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name}가 존재하지 않습니다: {uuid}!" + +#: core/graphene/mutations.py:668 +msgid "limit must be between 1 and 10" +msgstr "한도는 1에서 10 사이여야 합니다." + +#: core/graphene/mutations.py:713 +msgid "elasticsearch - works like a charm" +msgstr "ElasticSearch - 마법처럼 작동" + +#: core/graphene/object_types.py:82 core/graphene/object_types.py:397 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 +msgid "attributes" +msgstr "속성" + +#: core/graphene/object_types.py:95 +msgid "grouped attributes" +msgstr "그룹화된 속성" + +#: core/graphene/object_types.py:102 +msgid "groups of attributes" +msgstr "속성 그룹" + +#: core/graphene/object_types.py:116 core/graphene/object_types.py:193 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 +msgid "categories" +msgstr "카테고리" + +#: core/graphene/object_types.py:124 core/models.py:395 +msgid "brands" +msgstr "브랜드" + +#: core/graphene/object_types.py:195 +msgid "category image url" +msgstr "카테고리" + +#: core/graphene/object_types.py:196 core/graphene/object_types.py:344 +#: core/models.py:249 +msgid "markup percentage" +msgstr "마크업 퍼센트" + +#: core/graphene/object_types.py:199 +msgid "which attributes and values can be used for filtering this category." +msgstr "이 카테고리를 필터링하는 데 사용할 수 있는 속성 및 값입니다." + +#: core/graphene/object_types.py:203 +msgid "" +"minimum and maximum prices for products in this category, if available." +msgstr "이 카테고리의 제품에 대한 최소 및 최대 가격(가능한 경우)." + +#: core/graphene/object_types.py:205 +msgid "tags for this category" +msgstr "이 카테고리의 태그" + +#: core/graphene/object_types.py:206 +msgid "products in this category" +msgstr "이 카테고리의 제품" + +#: core/graphene/object_types.py:351 core/models.py:155 +msgid "vendors" +msgstr "공급업체" + +#: core/graphene/object_types.py:355 +msgid "Latitude (Y coordinate)" +msgstr "위도(Y 좌표)" + +#: core/graphene/object_types.py:356 +msgid "Longitude (X coordinate)" +msgstr "경도(X 좌표)" + +#: core/graphene/object_types.py:385 +msgid "comment" +msgstr "방법" + +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 +msgid "rating value from 1 to 10, inclusive, or 0 if not set." +msgstr "1에서 10까지의 등급 값(포함) 또는 설정하지 않은 경우 0입니다." + +#: core/graphene/object_types.py:393 +msgid "represents feedback from a user." +msgstr "사용자의 피드백을 나타냅니다." + +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 +msgid "notifications" +msgstr "알림" + +#: core/graphene/object_types.py:399 +msgid "download url for this order product if applicable" +msgstr "해당되는 경우 이 주문 제품의 URL 다운로드" + +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "피드백" + +#: core/graphene/object_types.py:434 +msgid "a list of order products in this order" +msgstr "주문 제품 목록은 다음 순서로 표시됩니다." + +#: core/graphene/object_types.py:436 core/models.py:1198 +msgid "billing address" +msgstr "청구서 수신 주소" + +#: core/graphene/object_types.py:439 +msgid "" +"shipping address for this order, leave blank if same as billing address or " +"if not applicable" +msgstr "이 주문의 배송 주소는 청구지 주소와 동일하거나 해당되지 않는 경우 비워 둡니다." + +#: core/graphene/object_types.py:441 +msgid "total price of this order" +msgstr "이 주문의 총 가격" + +#: core/graphene/object_types.py:442 +msgid "total quantity of products in order" +msgstr "주문한 제품의 총 수량" + +#: core/graphene/object_types.py:443 +msgid "are all products in the order digital" +msgstr "주문에 포함된 모든 제품이 디지털 제품인가요?" + +#: core/graphene/object_types.py:446 +msgid "transactions for this order" +msgstr "이 주문에 대한 거래" + +#: core/graphene/object_types.py:465 core/models.py:1262 +msgid "orders" +msgstr "주문" + +#: core/graphene/object_types.py:486 +msgid "image url" +msgstr "이미지 URL" + +#: core/graphene/object_types.py:493 +msgid "product's images" +msgstr "제품 이미지" + +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 +msgid "category" +msgstr "카테고리" + +#: core/graphene/object_types.py:502 core/models.py:1939 +msgid "feedbacks" +msgstr "피드백" + +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 +msgid "brand" +msgstr "브랜드" + +#: core/graphene/object_types.py:504 core/models.py:101 +msgid "attribute groups" +msgstr "속성 그룹" + +#: core/graphene/object_types.py:505 +#: core/templates/digital_order_created_email.html:111 +#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/shipped_order_created_email.html:109 +#: core/templates/shipped_order_delivered_email.html:109 +msgid "price" +msgstr "가격" + +#: core/graphene/object_types.py:506 +#: core/templates/digital_order_created_email.html:110 +#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/shipped_order_created_email.html:108 +#: core/templates/shipped_order_delivered_email.html:108 +msgid "quantity" +msgstr "수량" + +#: core/graphene/object_types.py:507 +msgid "number of feedbacks" +msgstr "피드백 수" + +#: core/graphene/object_types.py:508 +msgid "only available for personal orders" +msgstr "개인 주문만 가능한 제품" + +#: core/graphene/object_types.py:534 core/models.py:548 +msgid "products" +msgstr "제품" + +#: core/graphene/object_types.py:634 +msgid "promocodes" +msgstr "프로모션 코드" + +#: core/graphene/object_types.py:644 +msgid "products on sale" +msgstr "판매 중인 제품" + +#: core/graphene/object_types.py:651 core/models.py:843 +msgid "promotions" +msgstr "프로모션" + +#: core/graphene/object_types.py:655 core/models.py:154 +msgid "vendor" +msgstr "공급업체" + +#: core/graphene/object_types.py:656 core/models.py:547 +#: core/templates/digital_order_created_email.html:109 +#: core/templates/digital_order_delivered_email.html:107 +#: core/templates/shipped_order_created_email.html:107 +#: core/templates/shipped_order_delivered_email.html:107 +msgid "product" +msgstr "제품" + +#: core/graphene/object_types.py:667 core/models.py:868 +msgid "wishlisted products" +msgstr "위시리스트 제품" + +#: core/graphene/object_types.py:673 core/models.py:885 +msgid "wishlists" +msgstr "위시리스트" + +#: core/graphene/object_types.py:677 +msgid "tagged products" +msgstr "태그가 지정된 제품" + +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 +msgid "product tags" +msgstr "제품 태그" + +#: core/graphene/object_types.py:688 +msgid "tagged categories" +msgstr "태그가 지정된 카테고리" + +#: core/graphene/object_types.py:695 +msgid "categories tags" +msgstr "카테고리 태그" + +#: core/graphene/object_types.py:699 +msgid "project name" +msgstr "프로젝트 이름" + +#: core/graphene/object_types.py:700 +msgid "company email" +msgstr "회사 이메일" + +#: core/graphene/object_types.py:701 +msgid "company name" +msgstr "회사 이름" + +#: core/graphene/object_types.py:702 +msgid "company address" +msgstr "회사 주소" + +#: core/graphene/object_types.py:703 +msgid "company phone number" +msgstr "회사 전화번호" + +#: core/graphene/object_types.py:704 +msgid "email from, sometimes it must be used instead of host user value" +msgstr "'이메일 보낸 사람'을 호스트 사용자 값 대신 사용해야 하는 경우가 있습니다." + +#: core/graphene/object_types.py:705 +msgid "email host user" +msgstr "이메일 호스트 사용자" + +#: core/graphene/object_types.py:706 +msgid "maximum amount for payment" +msgstr "최대 결제 금액" + +#: core/graphene/object_types.py:707 +msgid "minimum amount for payment" +msgstr "최소 결제 금액" + +#: core/graphene/object_types.py:708 +msgid "analytics data" +msgstr "애널리틱스 데이터" + +#: core/graphene/object_types.py:709 +msgid "advertisement data" +msgstr "광고 데이터" + +#: core/graphene/object_types.py:712 +msgid "company configuration" +msgstr "구성" + +#: core/graphene/object_types.py:716 +msgid "language code" +msgstr "언어 코드" + +#: core/graphene/object_types.py:717 +msgid "language name" +msgstr "언어 이름" + +#: core/graphene/object_types.py:718 +msgid "language flag, if exists :)" +msgstr "언어 플래그가 있는 경우 :)" + +#: core/graphene/object_types.py:721 +msgid "supported languages" +msgstr "지원되는 언어 목록 보기" + +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 +msgid "products search results" +msgstr "제품 검색 결과" + +#: core/graphene/object_types.py:755 +msgid "posts search results" +msgstr "제품 검색 결과" + +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"계층적일 수 있는 속성 그룹을 나타냅니다. 이 클래스는 속성 그룹을 관리하고 구성하는 데 사용됩니다. 속성 그룹은 상위 그룹을 가질 수 " +"있으며 계층 구조를 형성할 수 있습니다. 이는 복잡한 시스템에서 속성을 보다 효과적으로 분류하고 관리하는 데 유용할 수 있습니다." + +#: core/models.py:86 +msgid "parent of this group" +msgstr "이 그룹의 부모" + +#: core/models.py:87 +msgid "parent attribute group" +msgstr "상위 속성 그룹" + +#: core/models.py:91 core/models.py:92 +msgid "attribute group's name" +msgstr "속성 그룹의 이름" + +#: core/models.py:100 core/models.py:628 +msgid "attribute group" +msgstr "속성 그룹" + +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"외부 공급업체 및 해당 공급업체의 상호 작용 요구 사항에 대한 정보를 저장할 수 있는 공급업체 엔티티를 나타냅니다. 공급업체 클래스는 " +"외부 공급업체와 관련된 정보를 정의하고 관리하는 데 사용됩니다. 공급업체의 이름, 통신에 필요한 인증 세부 정보, 공급업체에서 검색한 " +"제품에 적용된 마크업 비율을 저장합니다. 또한 이 모델은 추가 메타데이터 및 제약 조건을 유지하므로 타사 공급업체와 상호 작용하는 " +"시스템에서 사용하기에 적합합니다." + +#: core/models.py:119 +msgid "stores credentials and endpoints required for vendor communication" +msgstr "공급업체의 API 통신에 필요한 자격 증명과 엔드포인트를 저장합니다." + +#: core/models.py:120 +msgid "authentication info" +msgstr "인증 정보" + +#: core/models.py:125 +msgid "define the markup for products retrieved from this vendor" +msgstr "이 공급업체에서 검색된 제품에 대한 마크업을 정의합니다." + +#: core/models.py:126 +msgid "vendor markup percentage" +msgstr "공급업체 마크업 비율" + +#: core/models.py:130 +msgid "name of this vendor" +msgstr "이 공급업체의 이름" + +#: core/models.py:131 +msgid "vendor name" +msgstr "공급업체 이름" + +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"제품을 분류하거나 식별하는 데 사용되는 제품 태그를 나타냅니다. ProductTag 클래스는 내부 태그 식별자와 사용자 친화적인 표시 " +"이름의 조합을 통해 제품을 고유하게 식별하고 분류하도록 설계되었습니다. 믹스인을 통해 내보낸 작업을 지원하며 관리 목적으로 메타데이터 " +"사용자 지정을 제공합니다." + +#: core/models.py:175 core/models.py:206 +msgid "internal tag identifier for the product tag" +msgstr "제품 태그의 내부 태그 식별자" + +#: core/models.py:176 core/models.py:207 +msgid "tag name" +msgstr "태그 이름" + +#: core/models.py:180 core/models.py:211 +msgid "user-friendly name for the product tag" +msgstr "제품 태그의 사용자 친화적인 이름" + +#: core/models.py:181 core/models.py:212 +msgid "tag display name" +msgstr "태그 표시 이름" + +#: core/models.py:189 +msgid "product tag" +msgstr "제품 태그" + +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"제품에 사용되는 카테고리 태그를 나타냅니다. 이 클래스는 제품을 연결하고 분류하는 데 사용할 수 있는 카테고리 태그를 모델링합니다. 내부" +" 태그 식별자 및 사용자 친화적인 표시 이름에 대한 속성을 포함합니다." + +#: core/models.py:220 +msgid "category tag" +msgstr "카테고리 태그" + +#: core/models.py:221 core/models.py:293 +msgid "category tags" +msgstr "카테고리 태그" + +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"관련 항목을 계층 구조로 정리하고 그룹화할 카테고리 엔티티를 나타냅니다. 카테고리는 다른 카테고리와 계층적 관계를 가질 수 있으며, " +"상위-하위 관계를 지원합니다. 이 클래스에는 카테고리 관련 기능의 기반이 되는 메타데이터 및 시각적 표현을 위한 필드가 포함되어 " +"있습니다. 이 클래스는 일반적으로 애플리케이션 내에서 제품 카테고리 또는 기타 유사한 그룹을 정의하고 관리하는 데 사용되며, 사용자나 " +"관리자가 카테고리의 이름, 설명 및 계층 구조를 지정하고 이미지, 태그 또는 우선순위와 같은 속성을 할당할 수 있도록 합니다." + +#: core/models.py:240 +msgid "upload an image representing this category" +msgstr "이 카테고리를 대표하는 이미지 업로드" + +#: core/models.py:243 +msgid "category image" +msgstr "카테고리 이미지" + +#: core/models.py:248 +msgid "define a markup percentage for products in this category" +msgstr "이 카테고리의 제품에 대한 마크업 비율을 정의합니다." + +#: core/models.py:257 +msgid "parent of this category to form a hierarchical structure" +msgstr "계층 구조를 형성하는 이 카테고리의 상위 카테고리" + +#: core/models.py:258 +msgid "parent category" +msgstr "상위 카테고리" + +#: core/models.py:263 +msgid "category name" +msgstr "카테고리 이름" + +#: core/models.py:264 +msgid "provide a name for this category" +msgstr "이 카테고리의 이름을 입력합니다." + +#: core/models.py:271 +msgid "add a detailed description for this category" +msgstr "이 카테고리에 대한 자세한 설명 추가" + +#: core/models.py:272 +msgid "category description" +msgstr "카테고리 설명" + +#: core/models.py:292 +msgid "tags that help describe or group this category" +msgstr "이 카테고리를 설명하거나 그룹화하는 데 도움이 되는 태그" + +#: core/models.py:299 core/models.py:387 +msgid "priority" +msgstr "우선순위" + +#: core/models.py:340 +msgid "name of this brand" +msgstr "이 브랜드 이름" + +#: core/models.py:341 +msgid "brand name" +msgstr "브랜드 이름" + +#: core/models.py:348 +msgid "upload a logo representing this brand" +msgstr "이 브랜드를 대표하는 로고 업로드" + +#: core/models.py:350 +msgid "brand small image" +msgstr "브랜드 작은 이미지" + +#: core/models.py:356 +msgid "upload a big logo representing this brand" +msgstr "이 브랜드를 대표하는 큰 로고 업로드" + +#: core/models.py:358 +msgid "brand big image" +msgstr "브랜드 빅 이미지" + +#: core/models.py:363 +msgid "add a detailed description of the brand" +msgstr "브랜드에 대한 자세한 설명 추가" + +#: core/models.py:364 +msgid "brand description" +msgstr "브랜드 설명" + +#: core/models.py:369 +msgid "optional categories that this brand is associated with" +msgstr "이 브랜드와 연관된 선택적 카테고리" + +#: core/models.py:370 +msgid "associated categories" +msgstr "카테고리" + +#: core/models.py:400 +msgid "" +"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 및" +" 디지털 자산과 같은 재고 관련 속성에 대한 세부 정보를 제공합니다. 다양한 공급업체에서 제공하는 제품을 추적하고 평가할 수 있도록 하는" +" 재고 관리 시스템의 일부입니다." + +#: core/models.py:412 +msgid "the vendor supplying this product stock" +msgstr "이 제품 재고를 공급하는 공급업체" + +#: core/models.py:413 +msgid "associated vendor" +msgstr "관련 공급업체" + +#: core/models.py:417 +msgid "final price to the customer after markups" +msgstr "마크업 후 고객에게 제공되는 최종 가격" + +#: core/models.py:418 +msgid "selling price" +msgstr "판매 가격" + +#: core/models.py:423 +msgid "the product associated with this stock entry" +msgstr "이 주식 항목과 관련된 제품" + +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 +msgid "associated product" +msgstr "관련 제품" + +#: core/models.py:431 +msgid "the price paid to the vendor for this product" +msgstr "이 제품에 대해 공급업체에 지불한 가격" + +#: core/models.py:432 +msgid "vendor purchase price" +msgstr "공급업체 구매 가격" + +#: core/models.py:436 +msgid "available quantity of the product in stock" +msgstr "재고가 있는 제품의 사용 가능한 수량" + +#: core/models.py:437 +msgid "quantity in stock" +msgstr "재고 수량" + +#: core/models.py:441 +msgid "vendor-assigned SKU for identifying the product" +msgstr "제품 식별을 위해 공급업체에서 할당하는 SKU" + +#: core/models.py:442 +msgid "vendor sku" +msgstr "공급업체의 SKU" + +#: core/models.py:448 +msgid "digital file associated with this stock if applicable" +msgstr "해당되는 경우 이 주식과 관련된 디지털 파일" + +#: core/models.py:449 +msgid "digital file" +msgstr "디지털 파일" + +#: core/models.py:458 +msgid "stock entries" +msgstr "재고 항목" + +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"카테고리, 브랜드, 태그, 디지털 상태, 이름, 설명, 부품 번호, 슬러그 등의 속성을 가진 제품을 나타냅니다. 평점, 피드백 수, " +"가격, 수량, 총 주문 수 등을 검색할 수 있는 관련 유틸리티 속성을 제공합니다. 이커머스 또는 재고 관리를 처리하는 시스템에서 " +"사용하도록 설계되었습니다. 이 클래스는 관련 모델(예: 카테고리, 브랜드, 제품 태그)과 상호 작용하고 자주 액세스하는 속성에 대한 " +"캐싱을 관리하여 성능을 개선합니다. 애플리케이션 내에서 제품 데이터 및 관련 정보를 정의하고 조작하는 데 사용됩니다." + +#: core/models.py:476 +msgid "category this product belongs to" +msgstr "이 제품이 속한 카테고리" + +#: core/models.py:485 +msgid "optionally associate this product with a brand" +msgstr "선택 사항으로 이 제품을 브랜드와 연결" + +#: core/models.py:491 +msgid "tags that help describe or group this product" +msgstr "이 제품을 설명하거나 그룹화하는 데 도움이 되는 태그" + +#: core/models.py:496 +msgid "indicates whether this product is digitally delivered" +msgstr "이 제품이 디지털 방식으로 배송되는지 여부를 나타냅니다." + +#: core/models.py:497 +msgid "is product digital" +msgstr "제품 디지털화 여부" + +#: core/models.py:503 +msgid "provide a clear identifying name for the product" +msgstr "제품에 대한 명확한 식별 이름 제공" + +#: core/models.py:504 +msgid "product name" +msgstr "제품 이름" + +#: core/models.py:509 core/models.py:831 +msgid "add a detailed description of the product" +msgstr "제품에 대한 자세한 설명 추가" + +#: core/models.py:510 +msgid "product description" +msgstr "제품 설명" + +#: core/models.py:517 +msgid "part number for this product" +msgstr "이 제품의 부품 번호" + +#: core/models.py:518 +msgid "part number" +msgstr "부품 번호" + +#: core/models.py:537 +msgid "stock keeping unit for this product" +msgstr "이 제품의 재고 보관 단위" + +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" +"시스템의 속성을 나타냅니다. 이 클래스는 다른 엔티티와 연결할 수 있는 사용자 지정 가능한 데이터 조각인 속성을 정의하고 관리하는 데 " +"사용됩니다. 속성에는 연관된 카테고리, 그룹, 값 유형 및 이름이 있습니다. 이 모델은 문자열, 정수, 실수, 부울, 배열, 객체 등 " +"여러 유형의 값을 지원합니다. 이를 통해 동적이고 유연한 데이터 구조화가 가능합니다." + +#: core/models.py:619 +msgid "category of this attribute" +msgstr "이 속성의 범주" + +#: core/models.py:627 +msgid "group of this attribute" +msgstr "이 속성의 그룹" + +#: core/models.py:633 +msgid "string" +msgstr "문자열" + +#: core/models.py:634 +msgid "integer" +msgstr "정수" + +#: core/models.py:635 +msgid "float" +msgstr "Float" + +#: core/models.py:636 +msgid "boolean" +msgstr "부울" + +#: core/models.py:637 +msgid "array" +msgstr "배열" + +#: core/models.py:638 +msgid "object" +msgstr "개체" + +#: core/models.py:640 +msgid "type of the attribute's value" +msgstr "속성 값의 유형" + +#: core/models.py:641 +msgid "value type" +msgstr "값 유형" + +#: core/models.py:646 +msgid "name of this attribute" +msgstr "이 속성의 이름" + +#: core/models.py:647 +msgid "attribute's name" +msgstr "속성 이름" + +#: core/models.py:653 +msgid "is filterable" +msgstr "필터링 가능" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "는 이 속성을 필터링에 사용할 수 있는지 여부를 지정합니다." + +#: core/models.py:665 core/models.py:700 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "속성" + +#: core/models.py:699 +msgid "attribute of this value" +msgstr "이 값의 속성" + +#: core/models.py:707 +msgid "the specific product associated with this attribute's value" +msgstr "이 속성 값과 연관된 특정 제품" + +#: core/models.py:713 +msgid "the specific value for this attribute" +msgstr "이 속성의 구체적인 값은 다음과 같습니다." + +#: core/models.py:747 +msgid "provide alternative text for the image for accessibility" +msgstr "접근성을 위해 이미지에 대체 텍스트 제공" + +#: core/models.py:748 +msgid "image alt text" +msgstr "이미지 대체 텍스트" + +#: core/models.py:751 +msgid "upload the image file for this product" +msgstr "이 제품의 이미지 파일 업로드" + +#: core/models.py:752 core/models.py:777 +msgid "product image" +msgstr "제품 이미지" + +#: core/models.py:758 +msgid "determines the order in which images are displayed" +msgstr "이미지가 표시되는 순서를 결정합니다." + +#: core/models.py:759 +msgid "display priority" +msgstr "우선순위 표시" + +#: core/models.py:764 +msgid "the product that this image represents" +msgstr "이 이미지가 나타내는 제품" + +#: core/models.py:778 +msgid "product images" +msgstr "제품 이미지" + +#: core/models.py:819 +msgid "percentage discount for the selected products" +msgstr "선택한 제품에 대한 할인 비율" + +#: core/models.py:820 +msgid "discount percentage" +msgstr "할인 비율" + +#: core/models.py:825 +msgid "provide a unique name for this promotion" +msgstr "이 프로모션의 고유한 이름을 입력하세요." + +#: core/models.py:826 +msgid "promotion name" +msgstr "프로모션 이름" + +#: core/models.py:832 +msgid "promotion description" +msgstr "프로모션 설명" + +#: core/models.py:837 +msgid "select which products are included in this promotion" +msgstr "이 프로모션에 포함되는 제품 선택" + +#: core/models.py:838 +msgid "included products" +msgstr "포함된 제품" + +#: core/models.py:842 +msgid "promotion" +msgstr "프로모션" + +#: core/models.py:867 +msgid "products that the user has marked as wanted" +msgstr "사용자가 원하는 것으로 표시한 제품" + +#: core/models.py:875 +msgid "user who owns this wishlist" +msgstr "이 위시리스트를 소유한 사용자" + +#: core/models.py:876 +msgid "wishlist owner" +msgstr "위시리스트의 소유자" + +#: core/models.py:884 +msgid "wishlist" +msgstr "위시리스트" + +#: core/models.py:951 +msgid "documentary" +msgstr "다큐멘터리" + +#: core/models.py:952 +msgid "documentaries" +msgstr "다큐멘터리" + +#: core/models.py:962 +msgid "unresolved" +msgstr "해결되지 않음" + +#: core/models.py:1008 +msgid "address line for the customer" +msgstr "고객 주소 라인" + +#: core/models.py:1009 +msgid "address line" +msgstr "주소 라인" + +#: core/models.py:1011 +msgid "street" +msgstr "거리" + +#: core/models.py:1012 +msgid "district" +msgstr "지구" + +#: core/models.py:1013 +msgid "city" +msgstr "도시" + +#: core/models.py:1014 +msgid "region" +msgstr "지역" + +#: core/models.py:1015 +msgid "postal code" +msgstr "우편 번호" + +#: core/models.py:1016 +msgid "country" +msgstr "국가" + +#: core/models.py:1023 +msgid "geolocation point: (longitude, latitude)" +msgstr "지리적 위치 포인트(경도, 위도)" + +#: core/models.py:1026 +msgid "full JSON response from geocoder for this address" +msgstr "이 주소에 대한 지오코더의 전체 JSON 응답" + +#: core/models.py:1031 +msgid "stored JSON response from the geocoding service" +msgstr "지오코딩 서비스의 저장된 JSON 응답" + +#: core/models.py:1039 +msgid "address" +msgstr "주소" + +#: core/models.py:1040 +msgid "addresses" +msgstr "주소" + +#: core/models.py:1085 +msgid "unique code used by a user to redeem a discount" +msgstr "사용자가 할인을 받기 위해 사용하는 고유 코드" + +#: core/models.py:1086 +msgid "promo code identifier" +msgstr "프로모션 코드 식별자" + +#: core/models.py:1093 +msgid "fixed discount amount applied if percent is not used" +msgstr "퍼센트를 사용하지 않을 경우 고정 할인 금액 적용" + +#: core/models.py:1094 +msgid "fixed discount amount" +msgstr "고정 할인 금액" + +#: core/models.py:1100 +msgid "percentage discount applied if fixed amount is not used" +msgstr "고정 금액 미사용 시 적용되는 할인 비율" + +#: core/models.py:1101 +msgid "percentage discount" +msgstr "백분율 할인" + +#: core/models.py:1106 +msgid "timestamp when the promocode expires" +msgstr "프로모션 코드 만료 시 타임스탬프" + +#: core/models.py:1107 +msgid "end validity time" +msgstr "유효 기간 종료 시간" + +#: core/models.py:1112 +msgid "timestamp from which this promocode is valid" +msgstr "이 프로모코드의 타임스탬프가 유효한 시점" + +#: core/models.py:1113 +msgid "start validity time" +msgstr "유효 기간 시작 시간" + +#: core/models.py:1118 +msgid "timestamp when the promocode was used, blank if not used yet" +msgstr "프로모코드가 사용된 타임스탬프, 아직 사용되지 않은 경우 비워둡니다." + +#: core/models.py:1119 +msgid "usage timestamp" +msgstr "사용 타임스탬프" + +#: core/models.py:1124 +msgid "user assigned to this promocode if applicable" +msgstr "해당되는 경우 이 프로모코드에 할당된 사용자" + +#: core/models.py:1125 +msgid "assigned user" +msgstr "할당된 사용자" + +#: core/models.py:1132 +msgid "promo code" +msgstr "프로모션 코드" + +#: core/models.py:1133 +msgid "promo codes" +msgstr "프로모션 코드" + +#: core/models.py:1140 +msgid "" +"only one type of discount should be defined (amount or percent), but not " +"both or neither." +msgstr "할인 유형(금액 또는 백분율)은 한 가지 유형만 정의해야 하며, 두 가지 모두 또는 둘 다 정의해서는 안 됩니다." + +#: core/models.py:1155 +msgid "promocode already used" +msgstr "프로모코드가 이미 사용되었습니다." + +#: core/models.py:1171 +#, python-brace-format +msgid "invalid discount type for promocode {self.uuid}" +msgstr "프로모션 코드 {self.uuid}의 할인 유형이 잘못되었습니다!" + +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"사용자가 진행한 주문을 나타냅니다. 이 클래스는 청구 및 배송 정보, 상태, 연결된 사용자, 알림 및 관련 작업과 같은 다양한 속성을 " +"포함하여 애플리케이션 내에서 주문을 모델링합니다. 주문에는 연결된 제품, 프로모션 적용, 주소 설정, 배송 또는 청구 세부 정보 " +"업데이트가 가능합니다. 또한 주문 수명 주기에서 제품을 관리하는 기능도 지원합니다." + +#: core/models.py:1197 +msgid "the billing address used for this order" +msgstr "이 주문에 사용된 청구 주소" + +#: core/models.py:1205 +msgid "optional promo code applied to this order" +msgstr "이 주문에 적용된 프로모션 코드(선택 사항)" + +#: core/models.py:1206 +msgid "applied promo code" +msgstr "프로모션 코드 적용" + +#: core/models.py:1214 +msgid "the shipping address used for this order" +msgstr "이 주문에 사용된 배송지 주소" + +#: core/models.py:1215 +msgid "shipping address" +msgstr "배송 주소" + +#: core/models.py:1221 +msgid "current status of the order in its lifecycle" +msgstr "라이프사이클 내 주문의 현재 상태" + +#: core/models.py:1222 +msgid "order status" +msgstr "주문 상태" + +#: core/models.py:1227 core/models.py:1686 +msgid "json structure of notifications to display to users" +msgstr "사용자에게 표시할 알림의 JSON 구조, 관리자 UI에서는 테이블 보기가 사용됩니다." + +#: core/models.py:1233 +msgid "json representation of order attributes for this order" +msgstr "이 주문에 대한 주문 속성의 JSON 표현" + +#: core/models.py:1239 +msgid "the user who placed the order" +msgstr "주문한 사용자" + +#: core/models.py:1240 +msgid "user" +msgstr "사용자" + +#: core/models.py:1246 +msgid "the timestamp when the order was finalized" +msgstr "주문이 완료된 타임스탬프" + +#: core/models.py:1247 +msgid "buy time" +msgstr "시간 확보" + +#: core/models.py:1254 +msgid "a human-readable identifier for the order" +msgstr "사람이 읽을 수 있는 주문 식별자" + +#: core/models.py:1255 +msgid "human readable id" +msgstr "사람이 읽을 수 있는 ID" + +#: core/models.py:1261 +msgid "order" +msgstr "주문" + +#: core/models.py:1282 +msgid "a user must have only one pending order at a time" +msgstr "사용자는 한 번에 하나의 대기 주문만 보유해야 합니다!" + +#: core/models.py:1316 +msgid "you cannot add products to an order that is not a pending one" +msgstr "보류 중인 주문이 아닌 주문에는 제품을 추가할 수 없습니다." + +#: core/models.py:1321 +msgid "you cannot add inactive products to order" +msgstr "주문에 비활성 제품을 추가할 수 없습니다." + +#: core/models.py:1338 +msgid "you cannot add more products than available in stock" +msgstr "재고가 있는 제품보다 많은 제품을 추가할 수 없습니다." + +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 +msgid "you cannot remove products from an order that is not a pending one" +msgstr "보류 중인 주문이 아닌 주문에서는 제품을 제거할 수 없습니다." + +#: core/models.py:1381 +#, python-brace-format +msgid "{name} does not exist with query <{query}>" +msgstr "쿼리 <{query}>에 {name}가 존재하지 않습니다!" + +#: core/models.py:1413 +msgid "promocode does not exist" +msgstr "프로모코드가 존재하지 않습니다." + +#: core/models.py:1419 +msgid "you can only buy physical products with shipping address specified" +msgstr "배송 주소가 지정된 실제 제품만 구매할 수 있습니다!" + +#: core/models.py:1438 +msgid "address does not exist" +msgstr "주소가 존재하지 않습니다." + +#: core/models.py:1459 core/models.py:1528 +msgid "you can not buy at this moment, please try again in a few minutes" +msgstr "지금은 구매할 수 없습니다. 몇 분 후에 다시 시도해 주세요." + +#: core/models.py:1462 core/models.py:1524 +msgid "invalid force value" +msgstr "잘못된 힘 값" + +#: core/models.py:1468 core/models.py:1531 +msgid "you cannot purchase an empty order!" +msgstr "빈 주문은 구매할 수 없습니다!" + +#: core/models.py:1487 +msgid "you cannot buy an order without a user" +msgstr "사용자 없이는 주문을 구매할 수 없습니다!" + +#: core/models.py:1501 +msgid "a user without a balance cannot buy with balance" +msgstr "잔액이 없는 사용자는 잔액으로 구매할 수 없습니다!" + +#: core/models.py:1506 +msgid "insufficient funds to complete the order" +msgstr "주문을 완료하기에 자금이 부족합니다." + +#: core/models.py:1540 +msgid "" +"you cannot buy without registration, please provide the following " +"information: customer name, customer email, customer phone number" +msgstr "등록하지 않으면 구매할 수 없으므로 고객 이름, 고객 이메일, 고객 전화 번호 등의 정보를 제공하세요." + +#: core/models.py:1549 +#, python-brace-format +msgid "" +"invalid payment method: {payment_method} from {available_payment_methods}" +msgstr "결제 방법이 잘못되었습니다: {payment_method}에서 {available_payment_methods}로!" + +#: core/models.py:1674 +msgid "the price paid by the customer for this product at purchase time" +msgstr "구매 시점에 고객이 이 제품에 대해 지불한 가격입니다." + +#: core/models.py:1675 +msgid "purchase price at order time" +msgstr "주문 시점의 구매 가격" + +#: core/models.py:1680 +msgid "internal comments for admins about this ordered product" +msgstr "주문한 제품에 대한 관리자용 내부 댓글" + +#: core/models.py:1681 +msgid "internal comments" +msgstr "내부 의견" + +#: core/models.py:1687 +msgid "user notifications" +msgstr "사용자 알림" + +#: core/models.py:1692 +msgid "json representation of this item's attributes" +msgstr "이 항목의 속성에 대한 JSON 표현" + +#: core/models.py:1693 +msgid "ordered product attributes" +msgstr "주문한 제품 속성" + +#: core/models.py:1698 +msgid "reference to the parent order that contains this product" +msgstr "이 제품이 포함된 상위 주문 참조" + +#: core/models.py:1699 +msgid "parent order" +msgstr "상위 주문" + +#: core/models.py:1708 +msgid "the specific product associated with this order line" +msgstr "이 주문 라인과 연결된 특정 제품" + +#: core/models.py:1715 +msgid "quantity of this specific product in the order" +msgstr "이 특정 제품의 주문 수량" + +#: core/models.py:1716 +msgid "product quantity" +msgstr "제품 수량" + +#: core/models.py:1723 +msgid "current status of this product in the order" +msgstr "이 제품의 현재 상태 순서" + +#: core/models.py:1724 +msgid "product line status" +msgstr "제품 라인 상태" + +#: core/models.py:1784 +msgid "order product must have an order" +msgstr "주문제품에는 연결된 주문이 있어야 합니다!" + +#: core/models.py:1786 +#, python-brace-format +msgid "wrong action specified for feedback: {action}" +msgstr "피드백에 지정된 작업이 잘못되었습니다: {action}!" + +#: core/models.py:1800 +msgid "you cannot feedback an order which is not received" +msgstr "받지 않은 주문에 대해서는 피드백을 제공할 수 없습니다." + +#: core/models.py:1806 +msgid "name" +msgstr "이름" + +#: core/models.py:1807 +msgid "URL of the integration" +msgstr "통합 URL" + +#: core/models.py:1808 +msgid "authentication credentials" +msgstr "인증 자격 증명" + +#: core/models.py:1822 +msgid "you can only have one default CRM provider" +msgstr "기본 CRM 공급업체는 하나만 사용할 수 있습니다." + +#: core/models.py:1826 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1827 +msgid "CRMs" +msgstr "CRM" + +#: core/models.py:1839 +msgid "order CRM link" +msgstr "주문의 CRM 링크" + +#: core/models.py:1840 +msgid "orders CRM links" +msgstr "주문의 CRM 링크" + +#: core/models.py:1874 +msgid "download" +msgstr "다운로드" + +#: core/models.py:1875 +msgid "downloads" +msgstr "다운로드" + +#: core/models.py:1883 +msgid "you can not download a digital asset for a non-finished order" +msgstr "완료되지 않은 주문에 대해서는 디지털 자산을 다운로드할 수 없습니다." + +#: core/models.py:1913 +msgid "user-provided comments about their experience with the product" +msgstr "제품 사용 경험에 대한 사용자 제공 의견" + +#: core/models.py:1914 +msgid "feedback comments" +msgstr "피드백 댓글" + +#: core/models.py:1921 +msgid "" +"references the specific product in an order that this feedback is about" +msgstr "이 피드백에 대한 순서대로 특정 제품을 참조합니다." + +#: core/models.py:1922 +msgid "related order product" +msgstr "관련 주문 제품" + +#: core/models.py:1927 +msgid "user-assigned rating for the product" +msgstr "제품에 대한 사용자 지정 평점" + +#: core/models.py:1928 +msgid "product rating" +msgstr "제품 평가" + +#: core/serializers/utility.py:87 +msgid "" +"you must provide a comment, rating, and order product uuid to add feedback." +msgstr "피드백을 추가하려면 댓글, 평점, 주문 제품 고유번호를 제공해야 합니다." + +#: core/signals.py:65 +msgid "error during promocode creation: {e!s}" +msgstr "프로모코드 생성 중 오류가 발생했습니다: {e!s}" + +#: core/sitemaps.py:17 +msgid "Home" +msgstr "홈" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "문의하기" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "회사 소개" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "결제 정보" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "배달" + +#: core/templates/digital_order_created_email.html:7 +#: core/templates/digital_order_created_email.html:100 +#: core/templates/digital_order_delivered_email.html:6 +#: core/templates/shipped_order_created_email.html:7 +#: core/templates/shipped_order_created_email.html:99 +#: core/templates/shipped_order_delivered_email.html:7 +#: core/templates/shipped_order_delivered_email.html:99 +msgid "order confirmation" +msgstr "주문 확인" + +#: core/templates/digital_order_created_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 +#: core/templates/promocode_granted_email.html:94 +#: core/templates/shipped_order_created_email.html:94 +#: core/templates/shipped_order_delivered_email.html:94 +msgid "logo" +msgstr "로고" + +#: core/templates/digital_order_created_email.html:101 +#: core/templates/shipped_order_created_email.html:100 +#: core/templates/shipped_order_delivered_email.html:100 +#, python-format +msgid "hello %(order.user.first_name)s," +msgstr "안녕하세요 %(order.user.first_name)s," + +#: core/templates/digital_order_created_email.html:102 +#, 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" +" order:" +msgstr "" +"주문해 주셔서 감사합니다 #%(order.pk)s! 주문하신 상품이 입고되었음을 알려드립니다. 주문 세부 정보는 아래와 같습니다:" + +#: core/templates/digital_order_created_email.html:112 +#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/shipped_order_created_email.html:110 +#: core/templates/shipped_order_delivered_email.html:110 +msgid "total" +msgstr "합계" + +#: core/templates/digital_order_created_email.html:125 +#: core/templates/digital_order_delivered_email.html:157 +#: core/templates/shipped_order_created_email.html:127 +#: core/templates/shipped_order_delivered_email.html:127 +msgid "total price" +msgstr "총 가격" + +#: core/templates/digital_order_created_email.html:131 +#: core/templates/shipped_order_created_email.html:140 +#: core/templates/shipped_order_delivered_email.html:140 +#, python-format +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로 지원팀에 문의하세요." + +#: core/templates/digital_order_created_email.html:133 +#, python-format +msgid "best regards,
the %(config.PROJECT_NAME)s team" +msgstr "감사합니다,
%(config.PROJECT_NAME)s 팀" + +#: core/templates/digital_order_created_email.html:139 +#: core/templates/digital_order_delivered_email.html:171 +#: core/templates/promocode_granted_email.html:114 +msgid "all rights reserved" +msgstr "모든 권리 보유" + +#: core/templates/digital_order_delivered_email.html:99 +msgid "order delivered" +msgstr "주문 배송" + +#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "안녕하세요 %(user_first_name)s," + +#: core/templates/digital_order_delivered_email.html:101 +#, python-format +msgid "" +"we have successfully processed your order №%(order_uuid)s! below are the\n" +" details of your order:" +msgstr "주문이 성공적으로 처리되었습니다 №%(order_uuid)s! 주문 세부 정보는 아래와 같습니다:" + +#: core/templates/digital_order_delivered_email.html:128 +msgid "" +"additional\n" +" information" +msgstr "" +"추가\n" +" 정보" + +#: core/templates/digital_order_delivered_email.html:137 +#: core/templates/json_table_widget.html:6 +msgid "value" +msgstr "가치" + +#: core/templates/digital_order_delivered_email.html:163 +#: core/templates/promocode_granted_email.html:106 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "궁금한 점이 있으면 언제든지 %(contact_email)s로 지원팀에 문의하세요." + +#: core/templates/digital_order_delivered_email.html:165 +#: core/templates/promocode_granted_email.html:108 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "감사합니다,
%(project_name)s 팀" + +#: core/templates/json_table_widget.html:5 +msgid "key" +msgstr "키" + +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "프로모코드 부여" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"저희와 함께 해주셔서 감사합니다! 프로모션 코드가 부여되었습니다.\n" +" 에 대한" + +#: core/templates/shipped_order_created_email.html:101 +#: core/templates/shipped_order_delivered_email.html:101 +msgid "" +"thank you for your order! we are pleased to confirm your purchase. below are\n" +" the details of your order:" +msgstr "주문해 주셔서 감사합니다! 구매를 확인하게 되어 기쁩니다. 주문 세부 정보는 아래와 같습니다:" + +#: core/templates/shipped_order_created_email.html:123 +#: core/templates/shipped_order_delivered_email.html:123 +msgid "shipping price" +msgstr "배송 가격" + +#: core/templates/shipped_order_created_email.html:133 +#: core/templates/shipped_order_delivered_email.html:133 +msgid "your order will be delivered to the following address:" +msgstr "주문하신 상품은 다음 주소로 배송됩니다:" + +#: core/templates/shipped_order_created_email.html:142 +#: core/templates/shipped_order_delivered_email.html:142 +#, python-format +msgid "best regards,
The %(config.PROJECT_NAME)s team" +msgstr "감사합니다,
%(config.PROJECT_NAME)s 팀" + +#: core/templates/shipped_order_created_email.html:147 +#: core/templates/shipped_order_delivered_email.html:147 +msgid "" +"all rights\n" +" reserved" +msgstr "" +"모든 권리\n" +" 예약됨" + +#: core/utils/caching.py:41 +msgid "both data and timeout are required" +msgstr "데이터와 시간 초과가 모두 필요합니다." + +#: core/utils/caching.py:43 +msgid "invalid timeout value, it must be between 0 and 216000 seconds" +msgstr "잘못된 시간 초과 값, 0~216000초 사이여야 합니다." + +#: core/utils/emailing.py:25 +#, python-brace-format +msgid "{config.PROJECT_NAME} | contact us initiated" +msgstr "{config.PROJECT_NAME} | 문의 시작됨" + +#: core/utils/emailing.py:64 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order confirmation" +msgstr "{config.PROJECT_NAME} | 주문 확인" + +#: core/utils/emailing.py:99 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order delivered" +msgstr "{config.PROJECT_NAME} | 주문 배송됨" + +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | 프로모코드 부여됨" + +#: core/utils/messages.py:3 +msgid "you do not have permission to perform this action." +msgstr "이 작업을 수행할 수 있는 권한이 없습니다." + +#: core/utils/nominatim.py:8 +msgid "NOMINATIM_URL must be configured." +msgstr "NOMINATIM_URL 파라미터를 설정해야 합니다!" + +#: core/validators.py:16 +#, 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} 픽셀을 초과하지 않아야 합니다!" + +#: core/validators.py:22 +msgid "invalid phone number format" +msgstr "잘못된 전화 번호 형식" + +#: core/views.py:481 +msgid "you can only download the digital asset once" +msgstr "디지털 자산은 한 번만 다운로드할 수 있습니다." + +#: core/views.py:539 +msgid "favicon not found" +msgstr "파비콘을 찾을 수 없습니다." + +#: core/viewsets.py:1319 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "지오코딩 오류입니다: {e}" diff --git a/core/locale/nl_NL/LC_MESSAGES/django.mo b/core/locale/nl_NL/LC_MESSAGES/django.mo index 04a1ec5fbf5a60b3c19e6de260412ed5b6867dc7..42ec13386339e0482c6ef49aefd7ac4935cc94d2 100644 GIT binary patch delta 20213 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 diff --git a/core/locale/nl_NL/LC_MESSAGES/django.po b/core/locale/nl_NL/LC_MESSAGES/django.po index 871e2ce0..136d5609 100644 --- a/core/locale/nl_NL/LC_MESSAGES/django.po +++ b/core/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -87,12 +87,12 @@ msgstr "Deactiveer geselecteerd %(verbose_name_plural)s" msgid "selected items have been deactivated." msgstr "Geselecteerde items zijn gedeactiveerd!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Attribuut Waarde" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Attribuutwaarden" @@ -100,23 +100,23 @@ msgstr "Attribuutwaarden" msgid "image" msgstr "Afbeelding" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Afbeeldingen" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Voorraad" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Aandelen" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Product bestellen" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Producten bestellen" @@ -334,7 +334,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "SEO Meta momentopname" @@ -797,118 +797,118 @@ msgstr "feedback toevoegen of verwijderen op een order-productrelatie" msgid "no search term provided." msgstr "Geen zoekterm opgegeven." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Naam" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Categorieën" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Categorieën Naaktslakken" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Tags" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Min Prijs" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Maximale prijs" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Is actief" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Merk" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Attributen" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Hoeveelheid" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Slak" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "Is digitaal" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Subcategorieën opnemen" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Inclusief persoonlijk bestelde producten" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" "Er moet een categorie_uuid zijn om include_subcategories vlag te gebruiken" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Zoeken (ID, productnaam of onderdeelnummer)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Gekocht na (inclusief)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Eerder gekocht (inclusief)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "E-mail gebruiker" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "Gebruiker UUID" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Status" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "Menselijk leesbare ID" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Ouder" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Hele categorie (heeft minstens 1 product of niet)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Niveau" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "Product UUID" @@ -1038,8 +1038,8 @@ msgstr "Orderproduct {order_product_uuid} niet gevonden!" msgid "original address string provided by the user" msgstr "Originele adresstring geleverd door de gebruiker" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1054,8 +1054,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - werkt als een charme" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Attributen" @@ -1068,11 +1068,11 @@ msgid "groups of attributes" msgstr "Groepen van kenmerken" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Categorieën" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Merken" @@ -1081,7 +1081,7 @@ msgid "category image url" msgstr "Categorieën" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Opwaarderingspercentage" @@ -1106,7 +1106,7 @@ msgstr "Tags voor deze categorie" msgid "products in this category" msgstr "Producten in deze categorie" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Verkopers" @@ -1122,7 +1122,7 @@ msgstr "Lengtegraad (X-coördinaat)" msgid "comment" msgstr "Hoe" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Waarderingswaarde van 1 tot en met 10, of 0 indien niet ingesteld." @@ -1130,8 +1130,8 @@ msgstr "Waarderingswaarde van 1 tot en met 10, of 0 indien niet ingesteld." msgid "represents feedback from a user." msgstr "Vertegenwoordigt feedback van een gebruiker." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Meldingen" @@ -1139,15 +1139,19 @@ msgstr "Meldingen" msgid "download url for this order product if applicable" msgstr "Download url voor dit bestelproduct indien van toepassing" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Feedback" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "Een lijst met bestelde producten in deze bestelling" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Factuuradres" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1155,51 +1159,51 @@ msgstr "" "Verzendadres voor deze bestelling, leeg laten als dit hetzelfde is als het " "factuuradres of als dit niet van toepassing is" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Totale prijs van deze bestelling" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Totale hoeveelheid producten in bestelling" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Zijn alle producten in de bestelling digitaal" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Transacties voor deze bestelling" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Bestellingen" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "Afbeelding URL" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Afbeeldingen van het product" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Categorie" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Reacties" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Merk" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Attribuutgroepen" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1207,7 +1211,7 @@ msgstr "Attribuutgroepen" msgid "price" msgstr "Prijs" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1215,35 +1219,35 @@ msgstr "Prijs" msgid "quantity" msgstr "Hoeveelheid" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Aantal terugkoppelingen" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Producten alleen beschikbaar voor persoonlijke bestellingen" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Producten" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Producten te koop" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Promoties" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Verkoper" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1251,648 +1255,794 @@ msgstr "Verkoper" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Gewenste producten" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Verlanglijst" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Getagde producten" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Product tags" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Getagde categorieën" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Categorieën' tags" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Naam project" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "Bedrijf E-mail" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Bedrijfsnaam" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Adres" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Telefoonnummer bedrijf" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "e-mail van', soms moet deze worden gebruikt in plaats van de " "hostgebruikerswaarde" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "Gebruiker e-mail hosten" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Maximumbedrag voor betaling" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Minimumbedrag voor betaling" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Analytics-gegevens" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Advertentiegegevens" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Configuratie" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Taalcode" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Naam van de taal" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Taalvlag, indien aanwezig :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Een lijst met ondersteunde talen opvragen" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Producten zoekresultaten" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Zoekresultaten" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +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." + +#: core/models.py:86 msgid "parent of this group" msgstr "Ouder van deze groep" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Ouderattribuutgroep" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Naam attribuutgroep" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Attribuutgroep" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"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 " +"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 " +"van de verkoper worden opgehaald. Dit model onderhoudt ook aanvullende " +"metadata en beperkingen, waardoor het geschikt is voor gebruik in systemen " +"die communiceren met externe verkopers." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Slaat referenties en eindpunten op die vereist zijn voor API-communicatie " "van de verkoper" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Authenticatie-info" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definieer de opmaak voor producten die zijn opgehaald bij deze leverancier" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Verkoper winstpercentage" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Naam van deze verkoper" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Naam verkoper" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +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 " +"ondersteunt bewerkingen die geëxporteerd worden door mixins en biedt " +"aanpassing van metadata voor administratieve doeleinden." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Interne tagidentifier voor de producttag" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Tag naam" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "Gebruiksvriendelijke naam voor de producttag" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Tag weergavenaam" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Productlabel" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Representeert een categorietag die gebruikt wordt voor producten. Deze " +"klasse modelleert een categorietag die kan worden gebruikt om producten te " +"associëren en te classificeren. Ze bevat attributen voor een interne " +"tagidentifier en een gebruiksvriendelijke weergavenaam." + +#: core/models.py:220 msgid "category tag" msgstr "categorie tag" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "categorie tags" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +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 " +"kunnen toekennen." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Upload een afbeelding die deze categorie vertegenwoordigt" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Categorie afbeelding" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "Definieer een toeslagpercentage voor producten in deze categorie" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Ouder van deze categorie om een hiërarchische structuur te vormen" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Oudercategorie" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Naam categorie" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Geef deze categorie een naam" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Voeg een gedetailleerde beschrijving toe voor deze categorie" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Categorie beschrijving" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "tags die deze categorie helpen beschrijven of groeperen" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Prioriteit" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Naam van dit merk" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Merknaam" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Upload een logo dat dit merk vertegenwoordigt" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Klein merkimago" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Upload een groot logo dat dit merk vertegenwoordigt" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Groot merkimago" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Een gedetailleerde beschrijving van het merk toevoegen" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Merknaam" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Optionele categorieën waarmee dit merk wordt geassocieerd" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Categorieën" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" +"Vertegenwoordigt de voorraad van een product dat in het systeem wordt " +"beheerd. Deze klasse geeft details over de relatie tussen leveranciers, " +"producten en hun voorraadinformatie, evenals voorraadgerelateerde " +"eigenschappen zoals prijs, aankoopprijs, hoeveelheid, SKU en digitale " +"activa. Het maakt deel uit van het voorraadbeheersysteem om het volgen en " +"evalueren van beschikbare producten van verschillende leveranciers mogelijk " +"te maken." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "De verkoper die dit product levert" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Geassocieerde verkoper" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Eindprijs voor de klant na winstmarges" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Verkoopprijs" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "Het product dat bij deze voorraadvermelding hoort" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Bijbehorend product" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "De prijs die voor dit product aan de verkoper is betaald" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Aankoopprijs verkoper" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Beschikbare hoeveelheid van het product in voorraad" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Hoeveelheid op voorraad" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "Door de verkoper toegewezen SKU om het product te identificeren" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "Verkoper SKU" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "Digitaal bestand gekoppeld aan deze voorraad indien van toepassing" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Digitaal bestand" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Voorraadboekingen" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"Representeert een product met attributen zoals categorie, merk, tags, " +"digitale status, naam, beschrijving, onderdeelnummer en slug. Biedt " +"gerelateerde hulpeigenschappen om beoordelingen, feedbacktellingen, prijs, " +"hoeveelheid en totaal aantal orders op te halen. Ontworpen voor gebruik in " +"een systeem dat e-commerce of voorraadbeheer afhandelt. Deze klasse " +"interageert met gerelateerde modellen (zoals Categorie, Merk en ProductTag) " +"en beheert caching voor veelgebruikte eigenschappen om de prestaties te " +"verbeteren. Het wordt gebruikt om productgegevens en de bijbehorende " +"informatie te definiëren en te manipuleren binnen een applicatie." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Categorie waartoe dit product behoort" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Dit product optioneel koppelen aan een merk" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Tags die dit product helpen beschrijven of groeperen" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Geeft aan of dit product digitaal wordt geleverd" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "Is product digitaal" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Zorg voor een duidelijke identificerende naam voor het product" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Naam product" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Voeg een gedetailleerde beschrijving van het product toe" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Productbeschrijving" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Onderdeelnummer voor dit product" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Onderdeelnummer" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Voorraadhoudende eenheid voor dit product" -#: core/models.py:784 +#: core/models.py:607 +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 " +"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 " +"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." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Categorie van dit kenmerk" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Groep van dit kenmerk" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "String" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Integer" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Vlotter" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Booleaans" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Array" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Object" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Type waarde van het kenmerk" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Waardetype" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Naam van dit kenmerk" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Naam attribuut" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "kan worden gefilterd" + +#: core/models.py:654 +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." + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribuut" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Attribuut van deze waarde" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "Het specifieke product geassocieerd met de waarde van dit kenmerk" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "De specifieke waarde voor dit kenmerk" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "Geef alternatieve tekst voor de afbeelding voor toegankelijkheid" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Alt-tekst afbeelding" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Upload het afbeeldingsbestand voor dit product" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Product afbeelding" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Bepaalt de volgorde waarin afbeeldingen worden weergegeven" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Prioriteit weergeven" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "Het product dat deze afbeelding vertegenwoordigt" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Product afbeeldingen" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Kortingspercentage voor de geselecteerde producten" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Kortingspercentage" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Geef deze promotie een unieke naam" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Naam promotie" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Promotie beschrijving" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Selecteer welke producten onder deze promotie vallen" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Meegeleverde producten" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Promotie" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Producten die de gebruiker als gewenst heeft gemarkeerd" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "Gebruiker die eigenaar is van deze verlanglijst" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Eigenaar verlanglijstje" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Verlanglijst" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Documentaire" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Documentaires" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Onopgelost" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Adresregel voor de klant" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Adresregel" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Straat" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "District" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "Stad" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Regio" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Postcode" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "Land" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocatie Punt (lengtegraad, breedtegraad)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Volledig JSON-antwoord van geocoder voor dit adres" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Opgeslagen JSON-antwoord van de geocoderingsservice" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Adres" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Adressen" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "Unieke code die een gebruiker gebruikt om een korting te verzilveren" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Promo code identificatie" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "" "Vast kortingsbedrag dat wordt toegepast als percentage niet wordt gebruikt" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Vast kortingsbedrag" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "" "Kortingspercentage dat wordt toegepast als het vaste bedrag niet wordt " "gebruikt" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Kortingspercentage" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Tijdstempel wanneer de promocode verloopt" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "Geldigheidsduur einde" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Tijdstempel vanaf wanneer deze promocode geldig is" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Begin geldigheidsduur" -#: core/models.py:1273 +#: core/models.py:1118 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet " "gebruikt" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Gebruik tijdstempel" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "Gebruiker toegewezen aan deze promocode indien van toepassing" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Toegewezen gebruiker" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Kortingscode" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Actiecodes" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1900,150 +2050,168 @@ msgstr "" "Er moet slechts één type korting worden gedefinieerd (bedrag of percentage)," " maar niet beide of geen van beide." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "Promocode is al gebruikt" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ongeldig kortingstype voor promocode {self.uuid}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"Representeert een door een gebruiker geplaatste bestelling. Deze klasse " +"modelleert een bestelling binnen de applicatie, inclusief de verschillende " +"attributen zoals factuur- en verzendinformatie, status, gekoppelde " +"gebruiker, meldingen en gerelateerde bewerkingen. Bestellingen kunnen " +"gekoppelde producten hebben, promoties kunnen worden toegepast, adressen " +"kunnen worden ingesteld en verzend- of factureringsgegevens kunnen worden " +"bijgewerkt. De functionaliteit ondersteunt ook het beheer van de producten " +"in de levenscyclus van de bestelling." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "Het factuuradres dat voor deze bestelling is gebruikt" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Optionele promotiecode toegepast op deze bestelling" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Kortingscode toegepast" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "Het verzendadres dat voor deze bestelling is gebruikt" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Verzendadres" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Huidige status van de order in zijn levenscyclus" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Bestelstatus" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 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" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "JSON-weergave van bestelattributen voor deze bestelling" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "De gebruiker die de bestelling heeft geplaatst" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "Gebruiker" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "De tijdstempel waarop de bestelling is afgerond" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Tijd kopen" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "Een menselijk leesbare identificatiecode voor de bestelling" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "menselijk leesbare ID" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Bestel" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "Een gebruiker mag maar één lopende order tegelijk hebben!" -#: core/models.py:1481 +#: core/models.py:1316 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." -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "U kunt geen inactieve producten toevoegen aan uw bestelling" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "Je kunt niet meer producten toevoegen dan er op voorraad zijn" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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." -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} bestaat niet met query <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Promocode bestaat niet" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "Je kunt alleen fysieke producten kopen met opgegeven verzendadres!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "Adres bestaat niet" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Ongeldige krachtwaarde" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "Je kunt geen lege bestelling kopen!" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "" "U kunt geen producten verwijderen uit een bestelling die niet in behandeling" " is." -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "Een gebruiker zonder saldo kan niet kopen met saldo!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Onvoldoende fondsen om de bestelling te voltooien" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2051,7 +2219,7 @@ msgstr "" "u niet kunt kopen zonder registratie, geef dan de volgende informatie: " "klantnaam, e-mail klant, telefoonnummer klant" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2059,153 +2227,149 @@ msgstr "" "Ongeldige betalingsmethode: {payment_method} van " "{available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 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" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Aankoopprijs bij bestelling" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "Interne opmerkingen voor beheerders over dit bestelde product" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Interne opmerkingen" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "Meldingen van gebruikers" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "JSON weergave van de attributen van dit item" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Geordende producteigenschappen" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Verwijzing naar de bovenliggende bestelling die dit product bevat" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Ouderlijk bevel" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "Het specifieke product dat bij deze bestelregel hoort" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Hoeveelheid van dit specifieke product in de bestelling" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Hoeveelheid product" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Huidige status van dit product in de bestelling" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Status productlijn" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "Orderproduct moet een bijbehorende order hebben!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Verkeerde actie opgegeven voor feedback: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "" "U kunt geen producten verwijderen uit een bestelling die niet in behandeling" " is." -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Naam" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "URL van de integratie" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Authenticatiegegevens" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "Je kunt maar één standaard CRM-provider hebben" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRM's" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "CRM link van bestelling" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "CRM-koppelingen voor bestellingen" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Downloaden" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Downloads" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "" "U kunt geen digitale activa downloaden voor een niet-afgeronde bestelling" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "Opmerkingen van gebruikers over hun ervaring met het product" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Reacties" -#: core/models.py:2079 +#: core/models.py:1921 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" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Gerelateerd product bestellen" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "Door de gebruiker toegekende waardering voor het product" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Productbeoordeling" -#: core/models.py:2096 -msgid "feedback" -msgstr "Feedback" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2217,6 +2381,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Fout tijdens aanmaken promocode: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Home" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Neem contact met ons op" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Over ons" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Betalingsinformatie" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Levering" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/no_NO/LC_MESSAGES/django.mo b/core/locale/no_NO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..11d8f003237c4d47a989111cb43718bfe3aa1518 GIT binary patch literal 59136 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 literal 0 HcmV?d00001 diff --git a/core/locale/no_NO/LC_MESSAGES/django.po b/core/locale/no_NO/LC_MESSAGES/django.po new file mode 100644 index 00000000..11987119 --- /dev/null +++ b/core/locale/no_NO/LC_MESSAGES/django.po @@ -0,0 +1,2607 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: no-no\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: core/abstract.py:11 +msgid "unique id" +msgstr "Unik ID" + +#: core/abstract.py:12 +msgid "unique id is used to surely identify any database object" +msgstr "" +"Unik ID brukes til å identifisere alle databaseobjekter på en sikker måte" + +#: core/abstract.py:19 +msgid "is active" +msgstr "Er aktiv" + +#: core/abstract.py:20 +msgid "" +"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" + +#: core/abstract.py:22 core/choices.py:18 +msgid "created" +msgstr "Opprettet" + +#: core/abstract.py:22 +msgid "when the object first appeared on the database" +msgstr "Når objektet først dukket opp i databasen" + +#: core/abstract.py:23 +msgid "modified" +msgstr "Modifisert" + +#: core/abstract.py:23 +msgid "when the object was last modified" +msgstr "Når objektet sist ble redigert" + +#: core/admin.py:63 +msgid "translations" +msgstr "Oversettelser" + +#: core/admin.py:67 +msgid "general" +msgstr "Generelt" + +#: core/admin.py:69 +msgid "relations" +msgstr "Relasjoner" + +#: core/admin.py:87 +msgid "metadata" +msgstr "Metadata" + +#: core/admin.py:94 +msgid "timestamps" +msgstr "Tidsstempler" + +#: core/admin.py:109 +#, python-format +msgid "activate selected %(verbose_name_plural)s" +msgstr "Aktiver valgt %(verbose_name_plural)s" + +#: core/admin.py:114 +msgid "selected items have been activated." +msgstr "Utvalgte elementer har blitt aktivert!" + +#: core/admin.py:120 +#, python-format +msgid "deactivate selected %(verbose_name_plural)s" +msgstr "Deaktiver valgt %(verbose_name_plural)s" + +#: core/admin.py:125 +msgid "selected items have been deactivated." +msgstr "Utvalgte elementer har blitt deaktivert!" + +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 +msgid "attribute value" +msgstr "Attributtverdi" + +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 +msgid "attribute values" +msgstr "Attributtverdier" + +#: core/admin.py:146 +msgid "image" +msgstr "Bilde" + +#: core/admin.py:147 core/graphene/object_types.py:501 +msgid "images" +msgstr "Bilder" + +#: core/admin.py:155 core/models.py:457 +msgid "stock" +msgstr "Lager" + +#: core/admin.py:156 core/graphene/object_types.py:663 +msgid "stocks" +msgstr "Aksjer" + +#: core/admin.py:166 core/models.py:1735 +msgid "order product" +msgstr "Bestill produkt" + +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 +msgid "order products" +msgstr "Bestill produkter" + +#: core/admin.py:180 core/admin.py:181 +msgid "children" +msgstr "Barn" + +#: core/admin.py:566 +msgid "Config" +msgstr "Konfigurer" + +#: core/apps.py:8 +msgid "core" +msgstr "Kjerne" + +#: core/choices.py:4 core/choices.py:20 +msgid "finished" +msgstr "Ferdig" + +#: core/choices.py:5 core/choices.py:19 +msgid "delivering" +msgstr "Leverer" + +#: core/choices.py:6 +msgid "delivered" +msgstr "Leveres" + +#: core/choices.py:7 +msgid "canceled" +msgstr "Avlyst" + +#: core/choices.py:8 core/choices.py:16 core/choices.py:24 +msgid "failed" +msgstr "Mislyktes" + +#: core/choices.py:9 core/choices.py:15 +msgid "pending" +msgstr "Avventer" + +#: core/choices.py:10 +msgid "accepted" +msgstr "Godkjent" + +#: core/choices.py:11 +msgid "money returned" +msgstr "Penger returnert" + +#: core/choices.py:17 +msgid "payment" +msgstr "Betaling" + +#: core/choices.py:21 +msgid "momental" +msgstr "Momental" + +#: core/choices.py:24 +msgid "successful" +msgstr "Vellykket" + +#: core/docs/drf/views.py:17 core/graphene/mutations.py:36 +msgid "cache I/O" +msgstr "Cache I/O" + +#: core/docs/drf/views.py:19 +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 "" +"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." + +#: core/docs/drf/views.py:32 +msgid "get a list of supported languages" +msgstr "Få en liste over språk som støttes" + +#: core/docs/drf/views.py:41 +msgid "get application's exposable parameters" +msgstr "Hent applikasjonens eksponerbare parametere" + +#: core/docs/drf/views.py:48 +msgid "send a message to the support team" +msgstr "Send en melding til supportteamet" + +#: core/docs/drf/views.py:59 core/graphene/mutations.py:55 +msgid "request a CORSed URL" +msgstr "Be om en CORSed URL. Bare https er tillatt." + +#: core/docs/drf/views.py:85 +msgid "global search endpoint to query across project's tables" +msgstr "Globalt søkeendepunkt for å søke på tvers av prosjektets tabeller" + +#: core/docs/drf/views.py:91 +msgid "purchase an order as a business" +msgstr "Kjøp en ordre som en bedrift" + +#: core/docs/drf/views.py:98 +msgid "" +"purchase an order as a business, using the provided `products` with " +"`product_uuid` and `attributes`." +msgstr "" +"Kjøp en ordre som en bedrift, ved hjelp av de angitte `produktene` med " +"`product_uuid` og `attributter`." + +#: core/docs/drf/viewsets.py:44 +msgid "list all attribute groups (simple view)" +msgstr "Liste over alle attributtgrupper (enkel visning)" + +#: core/docs/drf/viewsets.py:48 +msgid "retrieve a single attribute group (detailed view)" +msgstr "Hent en enkelt attributtgruppe (detaljert visning)" + +#: core/docs/drf/viewsets.py:52 +msgid "create an attribute group" +msgstr "Opprett en attributtgruppe" + +#: core/docs/drf/viewsets.py:56 +msgid "delete an attribute group" +msgstr "Slett en attributtgruppe" + +#: core/docs/drf/viewsets.py:60 +msgid "rewrite an existing attribute group saving non-editables" +msgstr "" +"Skriv om en eksisterende attributtgruppe for å lagre ikke-redigerbare " +"attributter" + +#: core/docs/drf/viewsets.py:64 +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" + +#: core/docs/drf/viewsets.py:71 +msgid "list all attributes (simple view)" +msgstr "Liste over alle attributter (enkel visning)" + +#: core/docs/drf/viewsets.py:75 +msgid "retrieve a single attribute (detailed view)" +msgstr "Hent et enkelt attributt (detaljert visning)" + +#: core/docs/drf/viewsets.py:79 +msgid "create an attribute" +msgstr "Opprett et attributt" + +#: core/docs/drf/viewsets.py:83 +msgid "delete an attribute" +msgstr "Slett et attributt" + +#: core/docs/drf/viewsets.py:87 +msgid "rewrite an existing attribute saving non-editables" +msgstr "" +"Skriv om et eksisterende attributt for å lagre ikke-redigerbare attributter" + +#: core/docs/drf/viewsets.py:91 +msgid "rewrite some fields of an existing attribute saving non-editables" +msgstr "" +"Skriv om noen av feltene i et eksisterende attributt for å lagre ikke-" +"redigerbare felt" + +#: core/docs/drf/viewsets.py:98 +msgid "list all attribute values (simple view)" +msgstr "Liste over alle attributtverdier (enkel visning)" + +#: core/docs/drf/viewsets.py:102 +msgid "retrieve a single attribute value (detailed view)" +msgstr "Hent en enkelt attributtverdi (detaljert visning)" + +#: core/docs/drf/viewsets.py:106 +msgid "create an attribute value" +msgstr "Opprett en attributtverdi" + +#: core/docs/drf/viewsets.py:110 +msgid "delete an attribute value" +msgstr "Slett en attributtverdi" + +#: core/docs/drf/viewsets.py:114 +msgid "rewrite an existing attribute value saving non-editables" +msgstr "" +"Omskrive en eksisterende attributtverdi for å lagre ikke-redigerbare " +"attributter" + +#: core/docs/drf/viewsets.py:118 +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" + +#: core/docs/drf/viewsets.py:125 core/docs/drf/viewsets.py:126 +msgid "list all categories (simple view)" +msgstr "Liste over alle kategorier (enkel visning)" + +#: core/docs/drf/viewsets.py:130 core/docs/drf/viewsets.py:131 +msgid "retrieve a single category (detailed view)" +msgstr "Hent en enkelt kategori (detaljert visning)" + +#: core/docs/drf/viewsets.py:135 core/docs/drf/viewsets.py:136 +msgid "create a category" +msgstr "Opprett en kategori" + +#: core/docs/drf/viewsets.py:140 core/docs/drf/viewsets.py:141 +msgid "delete a category" +msgstr "Slett en kategori" + +#: core/docs/drf/viewsets.py:145 core/docs/drf/viewsets.py:146 +msgid "rewrite an existing category saving non-editables" +msgstr "Skriv om en eksisterende kategori som lagrer ikke-redigerbare filer" + +#: core/docs/drf/viewsets.py:150 core/docs/drf/viewsets.py:151 +msgid "rewrite some fields of an existing category saving non-editables" +msgstr "" +"Skriv om noen av feltene i en eksisterende kategori for å lagre ikke-" +"redigerbare" + +#: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 +#: core/graphene/object_types.py:117 core/graphene/object_types.py:207 +#: core/graphene/object_types.py:509 +msgid "SEO Meta snapshot" +msgstr "SEO Meta-øyeblikksbilde" + +#: core/docs/drf/viewsets.py:156 +msgid "returns a snapshot of the category's SEO meta data" +msgstr "Returnerer et øyeblikksbilde av kategoriens SEO-metadata" + +#: core/docs/drf/viewsets.py:161 +msgid "Category UUID or slug" +msgstr "Kategori UUID eller slug" + +#: core/docs/drf/viewsets.py:174 +msgid "list all orders (simple view)" +msgstr "Liste over alle kategorier (enkel visning)" + +#: core/docs/drf/viewsets.py:175 +msgid "for non-staff users, only their own orders are returned." +msgstr "For ikke-ansatte brukere returneres bare deres egne bestillinger." + +#: core/docs/drf/viewsets.py:181 +msgid "" +"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" + +#: core/docs/drf/viewsets.py:188 +msgid "Filter orders with buy_time >= this ISO 8601 datetime" +msgstr "Filtrer ordrer med buy_time >= denne ISO 8601-datoen" + +#: core/docs/drf/viewsets.py:193 +msgid "Filter orders with buy_time <= this ISO 8601 datetime" +msgstr "Filtrer bestillinger med buy_time <= denne ISO 8601-datoen" + +#: core/docs/drf/viewsets.py:198 +msgid "Filter by exact order UUID" +msgstr "Filtrer etter nøyaktig ordre UUID" + +#: core/docs/drf/viewsets.py:203 +msgid "Filter by exact human-readable order ID" +msgstr "Filtrer etter nøyaktig bestillings-ID som kan leses av mennesker" + +#: core/docs/drf/viewsets.py:208 +msgid "Filter by user's email (case-insensitive exact match)" +msgstr "Filtrer etter brukerens e-post (store og små bokstaver er ufølsomme)" + +#: core/docs/drf/viewsets.py:213 +msgid "Filter by user's UUID" +msgstr "Filtrer etter brukerens UUID" + +#: core/docs/drf/viewsets.py:218 +msgid "Filter by order status (case-insensitive substring match)" +msgstr "Filtrer etter ordrestatus (skiller mellom store og små bokstaver)" + +#: core/docs/drf/viewsets.py:224 +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')." +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')." + +#: core/docs/drf/viewsets.py:233 +msgid "retrieve a single order (detailed view)" +msgstr "Hent en enkelt kategori (detaljert visning)" + +#: core/docs/drf/viewsets.py:237 +msgid "create an order" +msgstr "Opprett et attributt" + +#: core/docs/drf/viewsets.py:238 +msgid "doesn't work for non-staff users." +msgstr "Fungerer ikke for brukere som ikke er ansatte." + +#: core/docs/drf/viewsets.py:242 +msgid "delete an order" +msgstr "Slett et attributt" + +#: core/docs/drf/viewsets.py:246 +msgid "rewrite an existing order saving non-editables" +msgstr "Skriv om en eksisterende kategori som lagrer ikke-redigerbare filer" + +#: core/docs/drf/viewsets.py:250 +msgid "rewrite some fields of an existing order saving non-editables" +msgstr "" +"Skriv om noen av feltene i en eksisterende kategori for å lagre ikke-" +"redigerbare" + +#: core/docs/drf/viewsets.py:254 +msgid "purchase an order" +msgstr "Innkjøpspris på bestillingstidspunktet" + +#: core/docs/drf/viewsets.py:256 +msgid "" +"finalizes the order purchase. if `force_balance` is used, the purchase is " +"completed using the user's balance; if `force_payment` is used, a " +"transaction is initiated." +msgstr "" +"Fullfører kjøpsordren. Hvis `force_balance` brukes, fullføres kjøpet ved " +"hjelp av brukerens saldo; hvis `force_payment` brukes, iverksettes en " +"transaksjon." + +#: core/docs/drf/viewsets.py:268 core/graphene/mutations.py:324 +msgid "purchase an order without account creation" +msgstr "kjøpe en ordre uten å opprette konto" + +#: core/docs/drf/viewsets.py:269 +msgid "finalizes the order purchase for a non-registered user." +msgstr "fullfører bestillingen for en ikke-registrert bruker." + +#: core/docs/drf/viewsets.py:277 +msgid "add product to order" +msgstr "Legg til et produkt i bestillingen" + +#: core/docs/drf/viewsets.py:278 +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`." + +#: core/docs/drf/viewsets.py:283 +msgid "add a list of products to order, quantities will not count" +msgstr "" +"Legg til en liste over produkter som skal bestilles, antall vil ikke telle" + +#: core/docs/drf/viewsets.py:284 +msgid "" +"adds a list of products to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Legger til en liste med produkter i en bestilling ved hjelp av de angitte " +"`product_uuid` og `attributtene`." + +#: core/docs/drf/viewsets.py:289 +msgid "remove product from order" +msgstr "Fjern et produkt fra bestillingen" + +#: core/docs/drf/viewsets.py:290 +msgid "" +"removes a product from an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Fjerner et produkt fra en bestilling ved hjelp av de angitte `product_uuid` " +"og `attributtene`." + +#: core/docs/drf/viewsets.py:295 +msgid "remove product from order, quantities will not count" +msgstr "Fjern et produkt fra bestillingen, antall vil ikke telle med" + +#: core/docs/drf/viewsets.py:296 +msgid "" +"removes a list of products from an order using the provided `product_uuid` " +"and `attributes`" +msgstr "" +"Fjerner en liste med produkter fra en bestilling ved hjelp av de angitte " +"`product_uuid` og `attributtene`." + +#: core/docs/drf/viewsets.py:304 +msgid "list all wishlists (simple view)" +msgstr "Liste over alle attributter (enkel visning)" + +#: core/docs/drf/viewsets.py:305 +msgid "for non-staff users, only their own wishlists are returned." +msgstr "" +"For brukere som ikke er ansatte, returneres bare deres egne ønskelister." + +#: core/docs/drf/viewsets.py:309 +msgid "retrieve a single wishlist (detailed view)" +msgstr "Hent et enkelt attributt (detaljert visning)" + +#: core/docs/drf/viewsets.py:313 +msgid "create an wishlist" +msgstr "Opprett et attributt" + +#: core/docs/drf/viewsets.py:314 +msgid "Doesn't work for non-staff users." +msgstr "Fungerer ikke for brukere som ikke er ansatte." + +#: core/docs/drf/viewsets.py:318 +msgid "delete an wishlist" +msgstr "Slett et attributt" + +#: core/docs/drf/viewsets.py:322 +msgid "rewrite an existing wishlist saving non-editables" +msgstr "" +"Skriv om et eksisterende attributt for å lagre ikke-redigerbare attributter" + +#: core/docs/drf/viewsets.py:326 +msgid "rewrite some fields of an existing wishlist saving non-editables" +msgstr "" +"Skriv om noen av feltene i et eksisterende attributt for å lagre ikke-" +"redigerbare felt" + +#: core/docs/drf/viewsets.py:330 +msgid "add product to wishlist" +msgstr "Legg til et produkt i bestillingen" + +#: core/docs/drf/viewsets.py:331 +msgid "adds a product to an wishlist using the provided `product_uuid`" +msgstr "" +"Legger til et produkt på en ønskeliste ved hjelp av den angitte " +"`product_uuid`." + +#: core/docs/drf/viewsets.py:336 +msgid "remove product from wishlist" +msgstr "Fjern et produkt fra ønskelisten" + +#: core/docs/drf/viewsets.py:337 +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`." + +#: core/docs/drf/viewsets.py:342 +msgid "add many products to wishlist" +msgstr "Legg til mange produkter på ønskelisten" + +#: core/docs/drf/viewsets.py:343 +msgid "adds many products to an wishlist using the provided `product_uuids`" +msgstr "" +"Legger til mange produkter på en ønskeliste ved hjelp av de angitte " +"`product_uuids`." + +#: core/docs/drf/viewsets.py:348 +msgid "remove many products from wishlist" +msgstr "Fjern et produkt fra bestillingen" + +#: core/docs/drf/viewsets.py:349 +msgid "" +"removes many products from an wishlist using the provided `product_uuids`" +msgstr "" +"Fjerner mange produkter fra en ønskeliste ved hjelp av de angitte " +"`product_uuids`." + +#: core/docs/drf/viewsets.py:356 +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" +"• **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" +"`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" +"Eksempler: \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" +"`b64-beskrivelse=icontains-aGVhdC1jb2xk`" + +#: core/docs/drf/viewsets.py:372 core/docs/drf/viewsets.py:373 +msgid "list all products (simple view)" +msgstr "Liste over alle produkter (enkel visning)" + +#: core/docs/drf/viewsets.py:378 +msgid "(exact) Product UUID" +msgstr "(nøyaktig) Produkt UUID" + +#: core/docs/drf/viewsets.py:384 +msgid "(icontains) Product name" +msgstr "(icontains) Produktnavn" + +#: core/docs/drf/viewsets.py:390 +msgid "(list) Category names, case-insensitive" +msgstr "(liste) Kategorinavn, skiller mellom store og små bokstaver" + +#: core/docs/drf/viewsets.py:396 +msgid "(exact) Category UUID" +msgstr "(nøyaktig) UUID for kategori" + +#: core/docs/drf/viewsets.py:402 +msgid "(list) Tag names, case-insensitive" +msgstr "(liste) Taggnavn, skiller mellom store og små bokstaver" + +#: core/docs/drf/viewsets.py:408 +msgid "(gte) Minimum stock price" +msgstr "(gte) Minimum aksjekurs" + +#: core/docs/drf/viewsets.py:414 +msgid "(lte) Maximum stock price" +msgstr "(lte) Maksimal aksjekurs" + +#: core/docs/drf/viewsets.py:420 +msgid "(exact) Only active products" +msgstr "(nøyaktig) Kun aktive produkter" + +#: core/docs/drf/viewsets.py:426 +msgid "(iexact) Brand name" +msgstr "(iexact) Merkenavn" + +#: core/docs/drf/viewsets.py:438 +msgid "(gt) Minimum stock quantity" +msgstr "(gt) Minste lagerkvantitet" + +#: core/docs/drf/viewsets.py:444 +msgid "(exact) Digital vs. physical" +msgstr "(nøyaktig) Digital vs. fysisk" + +#: core/docs/drf/viewsets.py:451 +msgid "" +"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" +"**Tillatt:** uuid, vurdering, navn, slug, opprettet, endret, pris, tilfeldig" + +#: core/docs/drf/viewsets.py:465 core/docs/drf/viewsets.py:466 +msgid "retrieve a single product (detailed view)" +msgstr "Hent et enkelt produkt (detaljert visning)" + +#: core/docs/drf/viewsets.py:471 core/docs/drf/viewsets.py:495 +#: core/docs/drf/viewsets.py:511 core/docs/drf/viewsets.py:527 +#: core/docs/drf/viewsets.py:543 core/docs/drf/viewsets.py:559 +msgid "Product UUID or slug" +msgstr "Produkt UUID eller Slug" + +#: core/docs/drf/viewsets.py:481 core/docs/drf/viewsets.py:482 +msgid "create a product" +msgstr "Opprett et produkt" + +#: core/docs/drf/viewsets.py:489 core/docs/drf/viewsets.py:490 +msgid "rewrite an existing product, preserving non-editable fields" +msgstr "Skriv om et eksisterende produkt, og behold ikke-redigerbare felt" + +#: core/docs/drf/viewsets.py:505 core/docs/drf/viewsets.py:506 +msgid "" +"update some fields of an existing product, preserving non-editable fields" +msgstr "" +"Oppdater noen av feltene i et eksisterende produkt, men behold feltene som " +"ikke kan redigeres" + +#: core/docs/drf/viewsets.py:521 core/docs/drf/viewsets.py:522 +msgid "delete a product" +msgstr "Slett et produkt" + +#: core/docs/drf/viewsets.py:537 core/docs/drf/viewsets.py:538 +msgid "lists all permitted feedbacks for a product" +msgstr "viser alle tillatte tilbakemeldinger for et produkt" + +#: core/docs/drf/viewsets.py:554 +msgid "returns a snapshot of the product's SEO meta data" +msgstr "Returnerer et øyeblikksbilde av produktets SEO-metadata" + +#: core/docs/drf/viewsets.py:572 +msgid "list all addresses" +msgstr "Liste over alle adresser" + +#: core/docs/drf/viewsets.py:579 +msgid "retrieve a single address" +msgstr "Hent en enkelt adresse" + +#: core/docs/drf/viewsets.py:586 +msgid "create a new address" +msgstr "Opprett en ny adresse" + +#: core/docs/drf/viewsets.py:594 +msgid "delete an address" +msgstr "Slett en adresse" + +#: core/docs/drf/viewsets.py:601 +msgid "update an entire address" +msgstr "Oppdater en hel adresse" + +#: core/docs/drf/viewsets.py:609 +msgid "partially update an address" +msgstr "Delvis oppdatering av en adresse" + +#: core/docs/drf/viewsets.py:617 +msgid "autocomplete address suggestions" +msgstr "Autofullfør adresseinndata" + +#: core/docs/drf/viewsets.py:622 +msgid "raw data query string, please append with data from geo-IP endpoint" +msgstr "" +"Spørringsstreng for rådata, vennligst legg til data fra geo-IP-sluttpunkt" + +#: core/docs/drf/viewsets.py:628 +msgid "limit the results amount, 1 < limit < 10, default: 5" +msgstr "begrenser resultatmengden, 1 < grense < 10, standard: 5" + +#: core/docs/drf/viewsets.py:641 +msgid "list all feedbacks (simple view)" +msgstr "liste opp alle tilbakemeldinger (enkel visning)" + +#: core/docs/drf/viewsets.py:645 +msgid "retrieve a single feedback (detailed view)" +msgstr "hente en enkelt tilbakemelding (detaljert visning)" + +#: core/docs/drf/viewsets.py:649 +msgid "create a feedback" +msgstr "skape en tilbakemelding" + +#: core/docs/drf/viewsets.py:653 +msgid "delete a feedback" +msgstr "slette en tilbakemelding" + +#: core/docs/drf/viewsets.py:657 +msgid "rewrite an existing feedback saving non-editables" +msgstr "" +"omskrive en eksisterende tilbakemelding som lagrer ikke-redigerbare filer" + +#: core/docs/drf/viewsets.py:661 +msgid "rewrite some fields of an existing feedback saving non-editables" +msgstr "" +"omskrive noen felter i en eksisterende tilbakemelding og lagre ikke-" +"redigerbare" + +#: core/docs/drf/viewsets.py:668 +msgid "list all order–product relations (simple view)" +msgstr "liste opp alle ordre-produkt-relasjoner (enkel visning)" + +#: core/docs/drf/viewsets.py:675 +msgid "retrieve a single order–product relation (detailed view)" +msgstr "hente en enkelt ordre-produkt-relasjon (detaljert visning)" + +#: core/docs/drf/viewsets.py:682 +msgid "create a new order–product relation" +msgstr "opprette en ny ordre-produkt-relasjon" + +#: core/docs/drf/viewsets.py:689 +msgid "replace an existing order–product relation" +msgstr "erstatte en eksisterende ordre-produkt-relasjon" + +#: core/docs/drf/viewsets.py:696 +msgid "partially update an existing order–product relation" +msgstr "delvis oppdatere en eksisterende ordre-produkt-relasjon" + +#: core/docs/drf/viewsets.py:703 +msgid "delete an order–product relation" +msgstr "slette en ordre-produkt-relasjon" + +#: core/docs/drf/viewsets.py:710 +msgid "add or remove feedback on an order–product relation" +msgstr "legge til eller fjerne tilbakemeldinger på en ordre-produkt-relasjon" + +#: core/elasticsearch/__init__.py:105 +msgid "no search term provided." +msgstr "Ingen søkeord oppgitt." + +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 +msgid "UUID" +msgstr "UUID" + +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 +msgid "Name" +msgstr "Navn" + +#: core/filters.py:66 core/filters.py:562 +msgid "Categories" +msgstr "Kategorier" + +#: core/filters.py:68 +msgid "Categories Slugs" +msgstr "Kategorier Snegler" + +#: core/filters.py:69 core/filters.py:437 +msgid "Tags" +msgstr "Tagger" + +#: core/filters.py:70 +msgid "Min Price" +msgstr "Min pris" + +#: core/filters.py:71 +msgid "Max Price" +msgstr "Maks pris" + +#: core/filters.py:72 +msgid "Is Active" +msgstr "Er aktiv" + +#: core/filters.py:73 +msgid "Brand" +msgstr "Merkevare" + +#: core/filters.py:74 +msgid "Attributes" +msgstr "Egenskaper" + +#: core/filters.py:75 +msgid "Quantity" +msgstr "Antall" + +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 +msgid "Slug" +msgstr "Snegl" + +#: core/filters.py:77 +msgid "Is Digital" +msgstr "Er Digital" + +#: core/filters.py:78 +msgid "Include sub-categories" +msgstr "Inkluder underkategorier" + +#: core/filters.py:81 +msgid "Include personal ordered" +msgstr "Inkluder personlig bestilte produkter" + +#: core/filters.py:83 core/models.py:538 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:166 +msgid "there must be a category_uuid to use include_subcategories flag" +msgstr "" +"Det må finnes en category_uuid for å bruke include_subcategories-flagget" + +#: core/filters.py:356 +msgid "Search (ID, product name or part number)" +msgstr "Søk (ID, produktnavn eller delenummer)" + +#: core/filters.py:359 +msgid "Bought after (inclusive)" +msgstr "Kjøpt etter (inklusive)" + +#: core/filters.py:360 +msgid "Bought before (inclusive)" +msgstr "Kjøpt før (inkludert)" + +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 +msgid "User email" +msgstr "Brukerens e-post" + +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 +msgid "User UUID" +msgstr "Bruker UUID" + +#: core/filters.py:365 +msgid "Status" +msgstr "Status" + +#: core/filters.py:369 +msgid "Human Readable ID" +msgstr "Menneskelig lesbar ID" + +#: core/filters.py:430 +msgid "Parent" +msgstr "Foreldre" + +#: core/filters.py:434 +msgid "Whole category(has at least 1 product or not)" +msgstr "Hele kategorien (har minst 1 produkt eller ikke)" + +#: core/filters.py:438 +msgid "Level" +msgstr "Nivå" + +#: core/filters.py:598 +msgid "Product UUID" +msgstr "Produkt UUID" + +#: core/graphene/mutations.py:39 +msgid "key to look for in or set into the cache" +msgstr "Nøkkel å lete etter i eller legge inn i hurtigbufferen" + +#: core/graphene/mutations.py:40 +msgid "data to store in cache" +msgstr "Data som skal lagres i hurtigbufferen" + +#: core/graphene/mutations.py:43 +msgid "timeout in seconds to set the data for into the cache" +msgstr "Tidsavbrudd i sekunder for å legge inn data i hurtigbufferen" + +#: core/graphene/mutations.py:46 +msgid "cached data" +msgstr "Bufret data" + +#: core/graphene/mutations.py:60 +msgid "camelized JSON data from the requested URL" +msgstr "Camelized JSON-data fra den forespurte URL-en" + +#: core/graphene/mutations.py:65 core/views.py:360 +msgid "only URLs starting with http(s):// are allowed" +msgstr "Bare nettadresser som begynner med http(s):// er tillatt" + +#: core/graphene/mutations.py:80 +msgid "add a product to the order" +msgstr "Legg til et produkt i bestillingen" + +#: core/graphene/mutations.py:101 core/graphene/mutations.py:127 +#: core/graphene/mutations.py:232 core/graphene/mutations.py:279 +#, python-brace-format +msgid "order {order_uuid} not found" +msgstr "Ordre {order_uuid} ikke funnet!" + +#: core/graphene/mutations.py:106 core/graphene/mutations.py:153 +msgid "remove a product from the order" +msgstr "Fjern et produkt fra bestillingen" + +#: core/graphene/mutations.py:132 +msgid "remove all products from the order" +msgstr "Fjern alle produktene fra bestillingen" + +#: core/graphene/mutations.py:175 +msgid "buy an order" +msgstr "Kjøp en ordre" + +#: core/graphene/mutations.py:204 core/graphene/mutations.py:257 +msgid "please provide either order_uuid or order_hr_id - mutually exclusive" +msgstr "" +"Vennligst oppgi enten order_uuid eller order_hr_id - gjensidig utelukkende!" + +#: core/graphene/mutations.py:229 core/graphene/mutations.py:486 +#: core/graphene/mutations.py:527 core/viewsets.py:821 +msgid "wrong type came from order.buy() method: {type(instance)!s}" +msgstr "Feil type kom fra order.buy()-metoden: {type(instance)!s}" + +#: core/graphene/mutations.py:237 +msgid "perform an action on a list of products in the order" +msgstr "Utfør en handling på en liste over produkter i bestillingen" + +#: core/graphene/mutations.py:242 +msgid "remove/add" +msgstr "Fjern/legg til" + +#: core/graphene/mutations.py:274 core/graphene/mutations.py:314 +msgid "action must be either add or remove" +msgstr "Handlingen må enten være \"legg til\" eller \"fjern\"!" + +#: core/graphene/mutations.py:284 +msgid "perform an action on a list of products in the wishlist" +msgstr "Utføre en handling på en liste over produkter i ønskelisten" + +#: core/graphene/mutations.py:302 +msgid "please provide wishlist_uuid value" +msgstr "Vennligst oppgi verdien `wishlist_uuid`." + +#: core/graphene/mutations.py:319 core/graphene/mutations.py:392 +#: core/graphene/mutations.py:419 core/graphene/mutations.py:446 +#: core/graphene/mutations.py:489 +#, python-brace-format +msgid "wishlist {wishlist_uuid} not found" +msgstr "Ønskeliste {wishlist_uuid} ikke funnet!" + +#: core/graphene/mutations.py:370 +msgid "add a product to the wishlist" +msgstr "Legg til et produkt i bestillingen" + +#: core/graphene/mutations.py:397 +msgid "remove a product from the wishlist" +msgstr "Fjern et produkt fra bestillingen" + +#: core/graphene/mutations.py:424 +msgid "remove all products from the wishlist" +msgstr "Fjern et produkt fra bestillingen" + +#: core/graphene/mutations.py:451 +msgid "buy all products from the wishlist" +msgstr "Fjern et produkt fra bestillingen" + +#: core/graphene/mutations.py:494 +msgid "buy a product" +msgstr "Kjøp en ordre" + +#: core/graphene/mutations.py:500 +msgid "" +"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" + +#: core/graphene/mutations.py:532 +msgid "add or delete a feedback for orderproduct" +msgstr "Legg til eller slett en tilbakemelding for ordreproduktet" + +#: core/graphene/mutations.py:555 +msgid "action must be either `add` or `remove`" +msgstr "Handlingen må være enten `add` eller `remove`!" + +#: core/graphene/mutations.py:558 +#, python-brace-format +msgid "order product {order_product_uuid} not found" +msgstr "Bestill produkt {order_product_uuid} ikke funnet!" + +#: core/graphene/mutations.py:621 +msgid "original address string provided by the user" +msgstr "Opprinnelig adressestreng oppgitt av brukeren" + +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 +#: core/viewsets.py:824 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} eksisterer ikke: {uuid}!" + +#: core/graphene/mutations.py:668 +msgid "limit must be between 1 and 10" +msgstr "Grensen må være mellom 1 og 10" + +#: core/graphene/mutations.py:713 +msgid "elasticsearch - works like a charm" +msgstr "ElasticSearch - fungerer som en drøm" + +#: core/graphene/object_types.py:82 core/graphene/object_types.py:397 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 +msgid "attributes" +msgstr "Egenskaper" + +#: core/graphene/object_types.py:95 +msgid "grouped attributes" +msgstr "Grupperte attributter" + +#: core/graphene/object_types.py:102 +msgid "groups of attributes" +msgstr "Grupper av attributter" + +#: core/graphene/object_types.py:116 core/graphene/object_types.py:193 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 +msgid "categories" +msgstr "Kategorier" + +#: core/graphene/object_types.py:124 core/models.py:395 +msgid "brands" +msgstr "Merkevarer" + +#: core/graphene/object_types.py:195 +msgid "category image url" +msgstr "Kategorier" + +#: core/graphene/object_types.py:196 core/graphene/object_types.py:344 +#: core/models.py:249 +msgid "markup percentage" +msgstr "Påslag i prosent" + +#: core/graphene/object_types.py:199 +msgid "which attributes and values can be used for filtering this category." +msgstr "" +"Hvilke attributter og verdier som kan brukes til å filtrere denne " +"kategorien." + +#: core/graphene/object_types.py:203 +msgid "" +"minimum and maximum prices for products in this category, if available." +msgstr "" +"Minimums- og maksimumspriser for produkter i denne kategorien, hvis " +"tilgjengelig." + +#: core/graphene/object_types.py:205 +msgid "tags for this category" +msgstr "Tagger for denne kategorien" + +#: core/graphene/object_types.py:206 +msgid "products in this category" +msgstr "Produkter i denne kategorien" + +#: core/graphene/object_types.py:351 core/models.py:155 +msgid "vendors" +msgstr "Leverandører" + +#: core/graphene/object_types.py:355 +msgid "Latitude (Y coordinate)" +msgstr "Breddegrad (Y-koordinat)" + +#: core/graphene/object_types.py:356 +msgid "Longitude (X coordinate)" +msgstr "Lengdegrad (X-koordinat)" + +#: core/graphene/object_types.py:385 +msgid "comment" +msgstr "Hvordan" + +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 +msgid "rating value from 1 to 10, inclusive, or 0 if not set." +msgstr "Vurderingsverdi fra 1 til og med 10, eller 0 hvis den ikke er angitt." + +#: core/graphene/object_types.py:393 +msgid "represents feedback from a user." +msgstr "Representerer tilbakemeldinger fra en bruker." + +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 +msgid "notifications" +msgstr "Varsler" + +#: core/graphene/object_types.py:399 +msgid "download url for this order product if applicable" +msgstr "Last ned url for dette bestillingsproduktet, hvis aktuelt" + +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Tilbakemeldinger" + +#: core/graphene/object_types.py:434 +msgid "a list of order products in this order" +msgstr "En liste over bestillingsprodukter i denne rekkefølgen" + +#: core/graphene/object_types.py:436 core/models.py:1198 +msgid "billing address" +msgstr "Faktureringsadresse" + +#: core/graphene/object_types.py:439 +msgid "" +"shipping address for this order, leave blank if same as billing address or " +"if not applicable" +msgstr "" +"Leveringsadresse for denne bestillingen, la den stå tom hvis den er den " +"samme som faktureringsadressen eller hvis den ikke er relevant" + +#: core/graphene/object_types.py:441 +msgid "total price of this order" +msgstr "Totalpris for denne bestillingen" + +#: core/graphene/object_types.py:442 +msgid "total quantity of products in order" +msgstr "Totalt antall produkter i bestillingen" + +#: core/graphene/object_types.py:443 +msgid "are all products in the order digital" +msgstr "Er alle produktene i bestillingen digitale" + +#: core/graphene/object_types.py:446 +msgid "transactions for this order" +msgstr "Transaksjoner for denne bestillingen" + +#: core/graphene/object_types.py:465 core/models.py:1262 +msgid "orders" +msgstr "Bestillinger" + +#: core/graphene/object_types.py:486 +msgid "image url" +msgstr "Bilde-URL" + +#: core/graphene/object_types.py:493 +msgid "product's images" +msgstr "Bilder av produktet" + +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 +msgid "category" +msgstr "Kategori" + +#: core/graphene/object_types.py:502 core/models.py:1939 +msgid "feedbacks" +msgstr "Tilbakemeldinger" + +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 +msgid "brand" +msgstr "Merkevare" + +#: core/graphene/object_types.py:504 core/models.py:101 +msgid "attribute groups" +msgstr "Attributtgrupper" + +#: core/graphene/object_types.py:505 +#: core/templates/digital_order_created_email.html:111 +#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/shipped_order_created_email.html:109 +#: core/templates/shipped_order_delivered_email.html:109 +msgid "price" +msgstr "Pris" + +#: core/graphene/object_types.py:506 +#: core/templates/digital_order_created_email.html:110 +#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/shipped_order_created_email.html:108 +#: core/templates/shipped_order_delivered_email.html:108 +msgid "quantity" +msgstr "Antall" + +#: core/graphene/object_types.py:507 +msgid "number of feedbacks" +msgstr "Antall tilbakemeldinger" + +#: core/graphene/object_types.py:508 +msgid "only available for personal orders" +msgstr "Produkter kun tilgjengelig for personlige bestillinger" + +#: core/graphene/object_types.py:534 core/models.py:548 +msgid "products" +msgstr "Produkter" + +#: core/graphene/object_types.py:634 +msgid "promocodes" +msgstr "Promokoder" + +#: core/graphene/object_types.py:644 +msgid "products on sale" +msgstr "Produkter på salg" + +#: core/graphene/object_types.py:651 core/models.py:843 +msgid "promotions" +msgstr "Kampanjer" + +#: core/graphene/object_types.py:655 core/models.py:154 +msgid "vendor" +msgstr "Leverandør" + +#: core/graphene/object_types.py:656 core/models.py:547 +#: core/templates/digital_order_created_email.html:109 +#: core/templates/digital_order_delivered_email.html:107 +#: core/templates/shipped_order_created_email.html:107 +#: core/templates/shipped_order_delivered_email.html:107 +msgid "product" +msgstr "Produkt" + +#: core/graphene/object_types.py:667 core/models.py:868 +msgid "wishlisted products" +msgstr "Produkter på ønskelisten" + +#: core/graphene/object_types.py:673 core/models.py:885 +msgid "wishlists" +msgstr "Ønskelister" + +#: core/graphene/object_types.py:677 +msgid "tagged products" +msgstr "Merkede produkter" + +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 +msgid "product tags" +msgstr "Produktmerker" + +#: core/graphene/object_types.py:688 +msgid "tagged categories" +msgstr "Merkede kategorier" + +#: core/graphene/object_types.py:695 +msgid "categories tags" +msgstr "Kategorier' tagger" + +#: core/graphene/object_types.py:699 +msgid "project name" +msgstr "Prosjektets navn" + +#: core/graphene/object_types.py:700 +msgid "company email" +msgstr "Selskapets e-post" + +#: core/graphene/object_types.py:701 +msgid "company name" +msgstr "Selskapets navn" + +#: core/graphene/object_types.py:702 +msgid "company address" +msgstr "Selskapets adresse" + +#: core/graphene/object_types.py:703 +msgid "company phone number" +msgstr "Telefonnummer til selskapet" + +#: core/graphene/object_types.py:704 +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" + +#: core/graphene/object_types.py:705 +msgid "email host user" +msgstr "E-post vert bruker" + +#: core/graphene/object_types.py:706 +msgid "maximum amount for payment" +msgstr "Maksimalt beløp for betaling" + +#: core/graphene/object_types.py:707 +msgid "minimum amount for payment" +msgstr "Minimumsbeløp for betaling" + +#: core/graphene/object_types.py:708 +msgid "analytics data" +msgstr "Analysedata" + +#: core/graphene/object_types.py:709 +msgid "advertisement data" +msgstr "Annonsedata" + +#: core/graphene/object_types.py:712 +msgid "company configuration" +msgstr "Konfigurasjon" + +#: core/graphene/object_types.py:716 +msgid "language code" +msgstr "Språkkode" + +#: core/graphene/object_types.py:717 +msgid "language name" +msgstr "Navn på språk" + +#: core/graphene/object_types.py:718 +msgid "language flag, if exists :)" +msgstr "Språkflagg, hvis det finnes :)" + +#: core/graphene/object_types.py:721 +msgid "supported languages" +msgstr "Få en liste over språk som støttes" + +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 +msgid "products search results" +msgstr "Søkeresultater for produkter" + +#: core/graphene/object_types.py:755 +msgid "posts search results" +msgstr "Søkeresultater for produkter" + +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"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." + +#: core/models.py:86 +msgid "parent of this group" +msgstr "Foreldre til denne gruppen" + +#: core/models.py:87 +msgid "parent attribute group" +msgstr "Overordnet attributtgruppe" + +#: core/models.py:91 core/models.py:92 +msgid "attribute group's name" +msgstr "Attributtgruppens navn" + +#: core/models.py:100 core/models.py:628 +msgid "attribute group" +msgstr "Attributtgruppe" + +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"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ø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 " +"som gjør den egnet for bruk i systemer som samhandler med " +"tredjepartsleverandører." + +#: core/models.py:119 +msgid "stores credentials and endpoints required for vendor communication" +msgstr "" +"Lagrer legitimasjon og endepunkter som kreves for leverandørens API-" +"kommunikasjon" + +#: core/models.py:120 +msgid "authentication info" +msgstr "Autentiseringsinformasjon" + +#: core/models.py:125 +msgid "define the markup for products retrieved from this vendor" +msgstr "Definer påslag for produkter som hentes fra denne leverandøren" + +#: core/models.py:126 +msgid "vendor markup percentage" +msgstr "Leverandørens påslagsprosent" + +#: core/models.py:130 +msgid "name of this vendor" +msgstr "Navn på denne leverandøren" + +#: core/models.py:131 +msgid "vendor name" +msgstr "Leverandørens navn" + +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"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 " +"intern tagg-identifikator og et brukervennlig visningsnavn. Den støtter " +"operasjoner som eksporteres gjennom mixins, og gir metadatatilpasning for " +"administrative formål." + +#: core/models.py:175 core/models.py:206 +msgid "internal tag identifier for the product tag" +msgstr "Intern tagg-identifikator for produkttaggen" + +#: core/models.py:176 core/models.py:207 +msgid "tag name" +msgstr "Tagg navn" + +#: core/models.py:180 core/models.py:211 +msgid "user-friendly name for the product tag" +msgstr "Brukervennlig navn for produkttaggen" + +#: core/models.py:181 core/models.py:212 +msgid "tag display name" +msgstr "Visningsnavn for taggen" + +#: core/models.py:189 +msgid "product tag" +msgstr "Produktmerke" + +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"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." + +#: core/models.py:220 +msgid "category tag" +msgstr "kategorimerke" + +#: core/models.py:221 core/models.py:293 +msgid "category tags" +msgstr "kategorikoder" + +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"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 " +"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 " +"grupperinger i en applikasjon, slik at brukere eller administratorer kan " +"spesifisere navn, beskrivelse og hierarki for kategoriene, samt tildele " +"attributter som bilder, tagger eller prioritet." + +#: core/models.py:240 +msgid "upload an image representing this category" +msgstr "Last opp et bilde som representerer denne kategorien" + +#: core/models.py:243 +msgid "category image" +msgstr "Kategori bilde" + +#: core/models.py:248 +msgid "define a markup percentage for products in this category" +msgstr "Definer en påslagsprosent for produkter i denne kategorien" + +#: core/models.py:257 +msgid "parent of this category to form a hierarchical structure" +msgstr "Overordnet til denne kategorien for å danne en hierarkisk struktur" + +#: core/models.py:258 +msgid "parent category" +msgstr "Overordnet kategori" + +#: core/models.py:263 +msgid "category name" +msgstr "Navn på kategori" + +#: core/models.py:264 +msgid "provide a name for this category" +msgstr "Oppgi et navn for denne kategorien" + +#: core/models.py:271 +msgid "add a detailed description for this category" +msgstr "Legg til en detaljert beskrivelse for denne kategorien" + +#: core/models.py:272 +msgid "category description" +msgstr "Beskrivelse av kategori" + +#: core/models.py:292 +msgid "tags that help describe or group this category" +msgstr "tagger som bidrar til å beskrive eller gruppere denne kategorien" + +#: core/models.py:299 core/models.py:387 +msgid "priority" +msgstr "Prioritet" + +#: core/models.py:340 +msgid "name of this brand" +msgstr "Navnet på dette merket" + +#: core/models.py:341 +msgid "brand name" +msgstr "Merkenavn" + +#: core/models.py:348 +msgid "upload a logo representing this brand" +msgstr "Last opp en logo som representerer dette varemerket" + +#: core/models.py:350 +msgid "brand small image" +msgstr "Merkevare lite image" + +#: core/models.py:356 +msgid "upload a big logo representing this brand" +msgstr "Last opp en stor logo som representerer dette varemerket" + +#: core/models.py:358 +msgid "brand big image" +msgstr "Merkevare med stort image" + +#: core/models.py:363 +msgid "add a detailed description of the brand" +msgstr "Legg til en detaljert beskrivelse av merket" + +#: core/models.py:364 +msgid "brand description" +msgstr "Varemerkebeskrivelse" + +#: core/models.py:369 +msgid "optional categories that this brand is associated with" +msgstr "Valgfrie kategorier som dette merket er assosiert med" + +#: core/models.py:370 +msgid "associated categories" +msgstr "Kategorier" + +#: core/models.py:400 +msgid "" +"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, " +"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." + +#: core/models.py:412 +msgid "the vendor supplying this product stock" +msgstr "Leverandøren som leverer dette produktet lagerfører" + +#: core/models.py:413 +msgid "associated vendor" +msgstr "Tilknyttet leverandør" + +#: core/models.py:417 +msgid "final price to the customer after markups" +msgstr "Sluttpris til kunden etter påslag" + +#: core/models.py:418 +msgid "selling price" +msgstr "Salgspris" + +#: core/models.py:423 +msgid "the product associated with this stock entry" +msgstr "Produktet som er knyttet til denne lagerposten" + +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 +msgid "associated product" +msgstr "Tilhørende produkt" + +#: core/models.py:431 +msgid "the price paid to the vendor for this product" +msgstr "Prisen som er betalt til leverandøren for dette produktet" + +#: core/models.py:432 +msgid "vendor purchase price" +msgstr "Leverandørens innkjøpspris" + +#: core/models.py:436 +msgid "available quantity of the product in stock" +msgstr "Tilgjengelig mengde av produktet på lager" + +#: core/models.py:437 +msgid "quantity in stock" +msgstr "Antall på lager" + +#: core/models.py:441 +msgid "vendor-assigned SKU for identifying the product" +msgstr "Leverandørens SKU for identifisering av produktet" + +#: core/models.py:442 +msgid "vendor sku" +msgstr "Leverandørens SKU" + +#: core/models.py:448 +msgid "digital file associated with this stock if applicable" +msgstr "Digital fil knyttet til denne aksjen, hvis aktuelt" + +#: core/models.py:449 +msgid "digital file" +msgstr "Digital fil" + +#: core/models.py:458 +msgid "stock entries" +msgstr "Lageroppføringer" + +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"Representerer et produkt med attributter som kategori, merke, tagger, " +"digital status, navn, beskrivelse, delenummer og slug. Tilbyr relaterte " +"verktøyegenskaper for å hente vurderinger, antall tilbakemeldinger, pris, " +"antall og totalt antall bestillinger. Designet for bruk i et system som " +"håndterer e-handel eller lagerstyring. Denne klassen samhandler med " +"relaterte modeller (for eksempel Category, Brand og ProductTag) og " +"administrerer hurtigbufring av egenskaper som brukes ofte, for å forbedre " +"ytelsen. Den brukes til å definere og manipulere produktdata og tilhørende " +"informasjon i en applikasjon." + +#: core/models.py:476 +msgid "category this product belongs to" +msgstr "Kategori dette produktet tilhører" + +#: core/models.py:485 +msgid "optionally associate this product with a brand" +msgstr "Du kan eventuelt knytte dette produktet til et varemerke" + +#: core/models.py:491 +msgid "tags that help describe or group this product" +msgstr "Tagger som bidrar til å beskrive eller gruppere dette produktet" + +#: core/models.py:496 +msgid "indicates whether this product is digitally delivered" +msgstr "Angir om dette produktet leveres digitalt" + +#: core/models.py:497 +msgid "is product digital" +msgstr "Er produktet digitalt" + +#: core/models.py:503 +msgid "provide a clear identifying name for the product" +msgstr "Gi produktet et tydelig navn som identifiserer det" + +#: core/models.py:504 +msgid "product name" +msgstr "Produktnavn" + +#: core/models.py:509 core/models.py:831 +msgid "add a detailed description of the product" +msgstr "Legg til en detaljert beskrivelse av produktet" + +#: core/models.py:510 +msgid "product description" +msgstr "Produktbeskrivelse" + +#: core/models.py:517 +msgid "part number for this product" +msgstr "Delenummer for dette produktet" + +#: core/models.py:518 +msgid "part number" +msgstr "Delenummer" + +#: core/models.py:537 +msgid "stock keeping unit for this product" +msgstr "Lagerholdsenhet for dette produktet" + +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" +"Representerer et attributt i systemet. Denne klassen brukes til å definere " +"og administrere attributter, som er data som kan tilpasses og knyttes til " +"andre enheter. Attributter har tilknyttede kategorier, grupper, verdityper " +"og navn. Modellen støtter flere typer verdier, blant annet streng, heltall, " +"float, boolsk, matrise og objekt. Dette gir mulighet for dynamisk og " +"fleksibel datastrukturering." + +#: core/models.py:619 +msgid "category of this attribute" +msgstr "Kategori for dette attributtet" + +#: core/models.py:627 +msgid "group of this attribute" +msgstr "Gruppe av dette attributtet" + +#: core/models.py:633 +msgid "string" +msgstr "Streng" + +#: core/models.py:634 +msgid "integer" +msgstr "Heltall" + +#: core/models.py:635 +msgid "float" +msgstr "Flyter" + +#: core/models.py:636 +msgid "boolean" +msgstr "Boolsk" + +#: core/models.py:637 +msgid "array" +msgstr "Array" + +#: core/models.py:638 +msgid "object" +msgstr "Objekt" + +#: core/models.py:640 +msgid "type of the attribute's value" +msgstr "Type av attributtets verdi" + +#: core/models.py:641 +msgid "value type" +msgstr "Verditype" + +#: core/models.py:646 +msgid "name of this attribute" +msgstr "Navn på dette attributtet" + +#: core/models.py:647 +msgid "attribute's name" +msgstr "Attributtets navn" + +#: core/models.py:653 +msgid "is filterable" +msgstr "er filtrerbar" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "" +"Hvilke attributter og verdier som kan brukes til å filtrere denne " +"kategorien." + +#: core/models.py:665 core/models.py:700 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Attributt" + +#: core/models.py:699 +msgid "attribute of this value" +msgstr "Attributt for denne verdien" + +#: core/models.py:707 +msgid "the specific product associated with this attribute's value" +msgstr "Det spesifikke produktet som er knyttet til dette attributtets verdi" + +#: core/models.py:713 +msgid "the specific value for this attribute" +msgstr "Den spesifikke verdien for dette attributtet" + +#: core/models.py:747 +msgid "provide alternative text for the image for accessibility" +msgstr "Gi alternativ tekst til bildet for tilgjengelighet" + +#: core/models.py:748 +msgid "image alt text" +msgstr "Alt-tekst til bilder" + +#: core/models.py:751 +msgid "upload the image file for this product" +msgstr "Last opp bildefilen for dette produktet" + +#: core/models.py:752 core/models.py:777 +msgid "product image" +msgstr "Produktbilde" + +#: core/models.py:758 +msgid "determines the order in which images are displayed" +msgstr "Bestemmer rekkefølgen bildene skal vises i" + +#: core/models.py:759 +msgid "display priority" +msgstr "Prioritet på skjermen" + +#: core/models.py:764 +msgid "the product that this image represents" +msgstr "Produktet som dette bildet representerer" + +#: core/models.py:778 +msgid "product images" +msgstr "Produktbilder" + +#: core/models.py:819 +msgid "percentage discount for the selected products" +msgstr "Prosentvis rabatt for de valgte produktene" + +#: core/models.py:820 +msgid "discount percentage" +msgstr "Rabattprosent" + +#: core/models.py:825 +msgid "provide a unique name for this promotion" +msgstr "Oppgi et unikt navn for denne kampanjen" + +#: core/models.py:826 +msgid "promotion name" +msgstr "Navn på kampanjen" + +#: core/models.py:832 +msgid "promotion description" +msgstr "Beskrivelse av kampanjen" + +#: core/models.py:837 +msgid "select which products are included in this promotion" +msgstr "Velg hvilke produkter som er inkludert i denne kampanjen" + +#: core/models.py:838 +msgid "included products" +msgstr "Inkluderte produkter" + +#: core/models.py:842 +msgid "promotion" +msgstr "Markedsføring" + +#: core/models.py:867 +msgid "products that the user has marked as wanted" +msgstr "Produkter som brukeren har merket som ønsket" + +#: core/models.py:875 +msgid "user who owns this wishlist" +msgstr "Bruker som eier denne ønskelisten" + +#: core/models.py:876 +msgid "wishlist owner" +msgstr "Ønskelistens eier" + +#: core/models.py:884 +msgid "wishlist" +msgstr "Ønskeliste" + +#: core/models.py:951 +msgid "documentary" +msgstr "Dokumentarfilm" + +#: core/models.py:952 +msgid "documentaries" +msgstr "Dokumentarfilmer" + +#: core/models.py:962 +msgid "unresolved" +msgstr "Uavklart" + +#: core/models.py:1008 +msgid "address line for the customer" +msgstr "Adresselinje for kunden" + +#: core/models.py:1009 +msgid "address line" +msgstr "Adresselinje" + +#: core/models.py:1011 +msgid "street" +msgstr "Gate" + +#: core/models.py:1012 +msgid "district" +msgstr "Distrikt" + +#: core/models.py:1013 +msgid "city" +msgstr "By" + +#: core/models.py:1014 +msgid "region" +msgstr "Region" + +#: core/models.py:1015 +msgid "postal code" +msgstr "Postnummer" + +#: core/models.py:1016 +msgid "country" +msgstr "Land" + +#: core/models.py:1023 +msgid "geolocation point: (longitude, latitude)" +msgstr "Geolokaliseringspunkt(lengdegrad, breddegrad)" + +#: core/models.py:1026 +msgid "full JSON response from geocoder for this address" +msgstr "Fullstendig JSON-svar fra geokoderen for denne adressen" + +#: core/models.py:1031 +msgid "stored JSON response from the geocoding service" +msgstr "Lagret JSON-svar fra geokodingstjenesten" + +#: core/models.py:1039 +msgid "address" +msgstr "Adresse" + +#: core/models.py:1040 +msgid "addresses" +msgstr "Adresser" + +#: core/models.py:1085 +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" + +#: core/models.py:1086 +msgid "promo code identifier" +msgstr "Kampanjekode-identifikator" + +#: core/models.py:1093 +msgid "fixed discount amount applied if percent is not used" +msgstr "Fast rabattbeløp som brukes hvis prosent ikke brukes" + +#: core/models.py:1094 +msgid "fixed discount amount" +msgstr "Fast rabattbeløp" + +#: core/models.py:1100 +msgid "percentage discount applied if fixed amount is not used" +msgstr "Prosentvis rabatt hvis fast beløp ikke brukes" + +#: core/models.py:1101 +msgid "percentage discount" +msgstr "Prosentvis rabatt" + +#: core/models.py:1106 +msgid "timestamp when the promocode expires" +msgstr "Tidsstempel for når kampanjekoden utløper" + +#: core/models.py:1107 +msgid "end validity time" +msgstr "Slutt gyldighetstid" + +#: core/models.py:1112 +msgid "timestamp from which this promocode is valid" +msgstr "Tidsstempel som denne kampanjekoden er gyldig fra" + +#: core/models.py:1113 +msgid "start validity time" +msgstr "Start gyldighetstid" + +#: core/models.py:1118 +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å" + +#: core/models.py:1119 +msgid "usage timestamp" +msgstr "Tidsstempel for bruk" + +#: core/models.py:1124 +msgid "user assigned to this promocode if applicable" +msgstr "Bruker som er tilordnet denne kampanjekoden, hvis aktuelt" + +#: core/models.py:1125 +msgid "assigned user" +msgstr "Tilordnet bruker" + +#: core/models.py:1132 +msgid "promo code" +msgstr "Kampanjekode" + +#: core/models.py:1133 +msgid "promo codes" +msgstr "Kampanjekoder" + +#: core/models.py:1140 +msgid "" +"only one type of discount should be defined (amount or percent), but not " +"both or neither." +msgstr "" +"Bare én type rabatt skal defineres (beløp eller prosent), men ikke begge " +"eller ingen av delene." + +#: core/models.py:1155 +msgid "promocode already used" +msgstr "Promokoden har allerede blitt brukt" + +#: core/models.py:1171 +#, python-brace-format +msgid "invalid discount type for promocode {self.uuid}" +msgstr "Ugyldig rabattype for kampanjekode {self.uuid}!" + +#: core/models.py:1180 +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 " +"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." + +#: core/models.py:1197 +msgid "the billing address used for this order" +msgstr "Faktureringsadressen som brukes for denne bestillingen" + +#: core/models.py:1205 +msgid "optional promo code applied to this order" +msgstr "Valgfri kampanjekode brukt på denne bestillingen" + +#: core/models.py:1206 +msgid "applied promo code" +msgstr "Anvendt kampanjekode" + +#: core/models.py:1214 +msgid "the shipping address used for this order" +msgstr "Leveringsadressen som brukes for denne bestillingen" + +#: core/models.py:1215 +msgid "shipping address" +msgstr "Leveringsadresse" + +#: core/models.py:1221 +msgid "current status of the order in its lifecycle" +msgstr "Ordrens nåværende status i livssyklusen" + +#: core/models.py:1222 +msgid "order status" +msgstr "Order status" + +#: core/models.py:1227 core/models.py:1686 +msgid "json structure of notifications to display to users" +msgstr "" +"JSON-struktur for varsler som skal vises til brukere, i admin-grensesnittet " +"brukes tabellvisningen" + +#: core/models.py:1233 +msgid "json representation of order attributes for this order" +msgstr "JSON-representasjon av ordreattributter for denne ordren" + +#: core/models.py:1239 +msgid "the user who placed the order" +msgstr "Brukeren som har lagt inn bestillingen" + +#: core/models.py:1240 +msgid "user" +msgstr "Bruker" + +#: core/models.py:1246 +msgid "the timestamp when the order was finalized" +msgstr "Tidsstempel for når bestillingen ble fullført" + +#: core/models.py:1247 +msgid "buy time" +msgstr "Kjøp tid" + +#: core/models.py:1254 +msgid "a human-readable identifier for the order" +msgstr "En menneskelig lesbar identifikator for bestillingen" + +#: core/models.py:1255 +msgid "human readable id" +msgstr "ID som kan leses av mennesker" + +#: core/models.py:1261 +msgid "order" +msgstr "Bestilling" + +#: core/models.py:1282 +msgid "a user must have only one pending order at a time" +msgstr "En bruker kan bare ha én ventende ordre om gangen!" + +#: core/models.py:1316 +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" + +#: core/models.py:1321 +msgid "you cannot add inactive products to order" +msgstr "Du kan ikke legge til inaktive produkter i bestillingen" + +#: core/models.py:1338 +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" + +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 +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" + +#: core/models.py:1381 +#, python-brace-format +msgid "{name} does not exist with query <{query}>" +msgstr "{name} finnes ikke med spørring <{query}>!" + +#: core/models.py:1413 +msgid "promocode does not exist" +msgstr "Promokoden finnes ikke" + +#: core/models.py:1419 +msgid "you can only buy physical products with shipping address specified" +msgstr "Du kan bare kjøpe fysiske produkter med oppgitt leveringsadresse!" + +#: core/models.py:1438 +msgid "address does not exist" +msgstr "Adressen eksisterer ikke" + +#: core/models.py:1459 core/models.py:1528 +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." + +#: core/models.py:1462 core/models.py:1524 +msgid "invalid force value" +msgstr "Ugyldig kraftverdi" + +#: core/models.py:1468 core/models.py:1531 +msgid "you cannot purchase an empty order!" +msgstr "Du kan ikke kjøpe en tom ordre!" + +#: core/models.py:1487 +msgid "you cannot buy an order without a user" +msgstr "Du kan ikke kjøpe en ordre uten en bruker!" + +#: core/models.py:1501 +msgid "a user without a balance cannot buy with balance" +msgstr "En bruker uten saldo kan ikke kjøpe med saldo!" + +#: core/models.py:1506 +msgid "insufficient funds to complete the order" +msgstr "Utilstrekkelige midler til å fullføre bestillingen" + +#: core/models.py:1540 +msgid "" +"you cannot buy without registration, please provide the following " +"information: customer name, customer email, customer phone number" +msgstr "" +"du kan ikke kjøpe uten registrering, vennligst oppgi følgende informasjon: " +"kundenavn, kundens e-postadresse, kundens telefonnummer" + +#: core/models.py:1549 +#, python-brace-format +msgid "" +"invalid payment method: {payment_method} from {available_payment_methods}" +msgstr "" +"Ugyldig betalingsmetode: {payment_method} fra {available_payment_methods}!" + +#: core/models.py:1674 +msgid "the price paid by the customer for this product at purchase time" +msgstr "Prisen kunden betalte for dette produktet på kjøpstidspunktet" + +#: core/models.py:1675 +msgid "purchase price at order time" +msgstr "Innkjøpspris på bestillingstidspunktet" + +#: core/models.py:1680 +msgid "internal comments for admins about this ordered product" +msgstr "Interne kommentarer for administratorer om dette bestilte produktet" + +#: core/models.py:1681 +msgid "internal comments" +msgstr "Interne kommentarer" + +#: core/models.py:1687 +msgid "user notifications" +msgstr "Brukervarsler" + +#: core/models.py:1692 +msgid "json representation of this item's attributes" +msgstr "JSON-representasjon av dette elementets attributter" + +#: core/models.py:1693 +msgid "ordered product attributes" +msgstr "Bestilte produktegenskaper" + +#: core/models.py:1698 +msgid "reference to the parent order that contains this product" +msgstr "" +"Referanse til den overordnede bestillingen som inneholder dette produktet" + +#: core/models.py:1699 +msgid "parent order" +msgstr "Overordnet ordre" + +#: core/models.py:1708 +msgid "the specific product associated with this order line" +msgstr "Det spesifikke produktet som er knyttet til denne ordrelinjen" + +#: core/models.py:1715 +msgid "quantity of this specific product in the order" +msgstr "Antall av dette spesifikke produktet i bestillingen" + +#: core/models.py:1716 +msgid "product quantity" +msgstr "Produktmengde" + +#: core/models.py:1723 +msgid "current status of this product in the order" +msgstr "Nåværende status for dette produktet i bestillingen" + +#: core/models.py:1724 +msgid "product line status" +msgstr "Status for produktlinjen" + +#: core/models.py:1784 +msgid "order product must have an order" +msgstr "Orderproduct må ha en tilknyttet ordre!" + +#: core/models.py:1786 +#, python-brace-format +msgid "wrong action specified for feedback: {action}" +msgstr "Feil handling angitt for tilbakemelding: {action}!" + +#: core/models.py:1800 +msgid "you cannot feedback an order which is not received" +msgstr "du kan ikke gi tilbakemelding på en bestilling som ikke er mottatt" + +#: core/models.py:1806 +msgid "name" +msgstr "Navn" + +#: core/models.py:1807 +msgid "URL of the integration" +msgstr "URL-adressen til integrasjonen" + +#: core/models.py:1808 +msgid "authentication credentials" +msgstr "Legitimasjon for autentisering" + +#: core/models.py:1822 +msgid "you can only have one default CRM provider" +msgstr "Du kan bare ha én standard CRM-leverandør" + +#: core/models.py:1826 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1827 +msgid "CRMs" +msgstr "CRM" + +#: core/models.py:1839 +msgid "order CRM link" +msgstr "Ordre CRM-kobling" + +#: core/models.py:1840 +msgid "orders CRM links" +msgstr "CRM-koblinger for bestillinger" + +#: core/models.py:1874 +msgid "download" +msgstr "Last ned" + +#: core/models.py:1875 +msgid "downloads" +msgstr "Nedlastinger" + +#: core/models.py:1883 +msgid "you can not download a digital asset for a non-finished order" +msgstr "" +"Du kan ikke laste ned en digital ressurs for en bestilling som ikke er " +"fullført" + +#: core/models.py:1913 +msgid "user-provided comments about their experience with the product" +msgstr "Brukerkommentarer om deres erfaringer med produktet" + +#: core/models.py:1914 +msgid "feedback comments" +msgstr "Tilbakemeldinger og kommentarer" + +#: core/models.py:1921 +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" + +#: core/models.py:1922 +msgid "related order product" +msgstr "Relatert bestillingsprodukt" + +#: core/models.py:1927 +msgid "user-assigned rating for the product" +msgstr "Brukertildelt vurdering for produktet" + +#: core/models.py:1928 +msgid "product rating" +msgstr "Produktvurdering" + +#: core/serializers/utility.py:87 +msgid "" +"you must provide a comment, rating, and order product uuid to add feedback." +msgstr "" +"du må oppgi en kommentar, vurdering og bestille produkt-uid for å legge til " +"tilbakemelding." + +#: core/signals.py:65 +msgid "error during promocode creation: {e!s}" +msgstr "Feil under opprettelse av promokode: {e!s}" + +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Hjem" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Kontakt oss" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Om oss" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Betalingsinformasjon" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Levering" + +#: core/templates/digital_order_created_email.html:7 +#: core/templates/digital_order_created_email.html:100 +#: core/templates/digital_order_delivered_email.html:6 +#: core/templates/shipped_order_created_email.html:7 +#: core/templates/shipped_order_created_email.html:99 +#: core/templates/shipped_order_delivered_email.html:7 +#: core/templates/shipped_order_delivered_email.html:99 +msgid "order confirmation" +msgstr "Ordrebekreftelse" + +#: core/templates/digital_order_created_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 +#: core/templates/promocode_granted_email.html:94 +#: core/templates/shipped_order_created_email.html:94 +#: core/templates/shipped_order_delivered_email.html:94 +msgid "logo" +msgstr "Logo" + +#: core/templates/digital_order_created_email.html:101 +#: core/templates/shipped_order_created_email.html:100 +#: core/templates/shipped_order_delivered_email.html:100 +#, python-format +msgid "hello %(order.user.first_name)s," +msgstr "Hallo %(order.user.first_name)s," + +#: core/templates/digital_order_created_email.html:102 +#, 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" +" 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:" + +#: core/templates/digital_order_created_email.html:112 +#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/shipped_order_created_email.html:110 +#: core/templates/shipped_order_delivered_email.html:110 +msgid "total" +msgstr "Totalt" + +#: core/templates/digital_order_created_email.html:125 +#: core/templates/digital_order_delivered_email.html:157 +#: core/templates/shipped_order_created_email.html:127 +#: core/templates/shipped_order_delivered_email.html:127 +msgid "total price" +msgstr "Totalpris" + +#: core/templates/digital_order_created_email.html:131 +#: core/templates/shipped_order_created_email.html:140 +#: core/templates/shipped_order_delivered_email.html:140 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(config.EMAIL_HOST_USER)s." +msgstr "" +"Hvis du har spørsmål, er du velkommen til å kontakte vår support på " +"%(config.EMAIL_HOST_USER)s." + +#: core/templates/digital_order_created_email.html:133 +#, python-format +msgid "best regards,
the %(config.PROJECT_NAME)s team" +msgstr "Med vennlig hilsen,
teamet %(config.PROJECT_NAME)s" + +#: core/templates/digital_order_created_email.html:139 +#: core/templates/digital_order_delivered_email.html:171 +#: core/templates/promocode_granted_email.html:114 +msgid "all rights reserved" +msgstr "Alle rettigheter forbeholdt" + +#: core/templates/digital_order_delivered_email.html:99 +msgid "order delivered" +msgstr "Bestilling levert" + +#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Hallo %(user_first_name)s," + +#: core/templates/digital_order_delivered_email.html:101 +#, python-format +msgid "" +"we have successfully processed your order №%(order_uuid)s! below are the\n" +" details of your order:" +msgstr "" +"Vi har behandlet bestillingen din №%(order_uuid)s! Nedenfor er detaljene i " +"bestillingen din:" + +#: core/templates/digital_order_delivered_email.html:128 +msgid "" +"additional\n" +" information" +msgstr "" +"ytterligere\n" +" informasjon" + +#: core/templates/digital_order_delivered_email.html:137 +#: core/templates/json_table_widget.html:6 +msgid "value" +msgstr "Verdi" + +#: core/templates/digital_order_delivered_email.html:163 +#: core/templates/promocode_granted_email.html:106 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" +"Hvis du har spørsmål, er du velkommen til å kontakte vår support på " +"%(contact_email)s." + +#: core/templates/digital_order_delivered_email.html:165 +#: core/templates/promocode_granted_email.html:108 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Med vennlig hilsen,
teamet %(project_name)s" + +#: core/templates/json_table_widget.html:5 +msgid "key" +msgstr "Nøkkel" + +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Promokode innvilget" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Takk for at du bor hos oss! Vi har gitt deg en promokode\n" +" for" + +#: core/templates/shipped_order_created_email.html:101 +#: core/templates/shipped_order_delivered_email.html:101 +msgid "" +"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. " +"Nedenfor er detaljene for bestillingen din:" + +#: core/templates/shipped_order_created_email.html:123 +#: core/templates/shipped_order_delivered_email.html:123 +msgid "shipping price" +msgstr "Fraktpris" + +#: core/templates/shipped_order_created_email.html:133 +#: core/templates/shipped_order_delivered_email.html:133 +msgid "your order will be delivered to the following address:" +msgstr "Bestillingen din vil bli levert til følgende adresse:" + +#: core/templates/shipped_order_created_email.html:142 +#: core/templates/shipped_order_delivered_email.html:142 +#, python-format +msgid "best regards,
The %(config.PROJECT_NAME)s team" +msgstr "Med vennlig hilsen, %(config.PROJECT_NAME)s-teamet" + +#: core/templates/shipped_order_created_email.html:147 +#: core/templates/shipped_order_delivered_email.html:147 +msgid "" +"all rights\n" +" reserved" +msgstr "" +"Alle rettigheter\n" +" forbeholdt" + +#: core/utils/caching.py:41 +msgid "both data and timeout are required" +msgstr "Både data og tidsavbrudd er påkrevd" + +#: core/utils/caching.py:43 +msgid "invalid timeout value, it must be between 0 and 216000 seconds" +msgstr "Ugyldig tidsavbruddsverdi, den må være mellom 0 og 216000 sekunder" + +#: core/utils/emailing.py:25 +#, python-brace-format +msgid "{config.PROJECT_NAME} | contact us initiated" +msgstr "{config.PROJECT_NAME} | kontakt oss initiert" + +#: core/utils/emailing.py:64 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order confirmation" +msgstr "{config.PROJECT_NAME} | Ordrebekreftelse" + +#: core/utils/emailing.py:99 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order delivered" +msgstr "{config.PROJECT_NAME} | Bestilling levert" + +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promokode gitt" + +#: core/utils/messages.py:3 +msgid "you do not have permission to perform this action." +msgstr "Du har ikke tillatelse til å utføre denne handlingen." + +#: core/utils/nominatim.py:8 +msgid "NOMINATIM_URL must be configured." +msgstr "Parameteren NOMINATIM_URL må være konfigurert!" + +#: core/validators.py:16 +#, python-brace-format +msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" +msgstr "" +"Bildedimensjonene bør ikke overstige b{max_width} x h{max_height} piksler!" + +#: core/validators.py:22 +msgid "invalid phone number format" +msgstr "Ugyldig telefonnummerformat" + +#: core/views.py:481 +msgid "you can only download the digital asset once" +msgstr "Du kan bare laste ned den digitale ressursen én gang" + +#: core/views.py:539 +msgid "favicon not found" +msgstr "favicon ble ikke funnet" + +#: core/viewsets.py:1319 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Feil i geokoding: {e}" diff --git a/core/locale/pl_PL/LC_MESSAGES/django.mo b/core/locale/pl_PL/LC_MESSAGES/django.mo index c433d6699f3908dd67c7551c74480a0e9ec41505..342a2faa850d9c65db6087c73a606117ee0cdf60 100644 GIT binary patch delta 20113 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 A-v9sr diff --git a/core/locale/pl_PL/LC_MESSAGES/django.po b/core/locale/pl_PL/LC_MESSAGES/django.po index b36d1891..4c060f0a 100644 --- a/core/locale/pl_PL/LC_MESSAGES/django.po +++ b/core/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -89,12 +89,12 @@ msgstr "Dezaktywacja wybranego %(verbose_name_plural)s" msgid "selected items have been deactivated." msgstr "Wybrane elementy zostały dezaktywowane!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Wartość atrybutu" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Wartości atrybutów" @@ -102,23 +102,23 @@ msgstr "Wartości atrybutów" msgid "image" msgstr "Obraz" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Obrazy" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Stan magazynowy" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Akcje" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Zamów produkt" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Zamawianie produktów" @@ -335,7 +335,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "SEO Meta snapshot" @@ -790,117 +790,117 @@ msgstr "dodawanie lub usuwanie opinii na temat relacji zamówienie-produkt" msgid "no search term provided." msgstr "Nie podano wyszukiwanego hasła." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Nazwa" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Kategorie" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Kategorie Ślimaki" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Tagi" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Cena minimalna" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Maksymalna cena" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Jest aktywny" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Marka" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Atrybuty" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Ilość" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Ślimak" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "Czy cyfrowy" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Uwzględnienie podkategorii" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Obejmuje produkty zamawiane osobiście" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "Aby użyć flagi include_subcategories, musi istnieć category_uuid" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Wyszukiwanie (ID, nazwa produktu lub numer części)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Kupione po (włącznie)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Kupione wcześniej (włącznie)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "E-mail użytkownika" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "UUID użytkownika" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Status" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "Identyfikator czytelny dla człowieka" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Rodzic" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Cała kategoria (ma co najmniej 1 produkt lub nie)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Poziom" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "UUID produktu" @@ -1031,8 +1031,8 @@ 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" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1047,8 +1047,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - działa jak urok" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Atrybuty" @@ -1061,11 +1061,11 @@ msgid "groups of attributes" msgstr "Grupy atrybutów" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Kategorie" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Marki" @@ -1074,7 +1074,7 @@ msgid "category image url" msgstr "Kategorie" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Procentowy narzut" @@ -1097,7 +1097,7 @@ msgstr "Tagi dla tej kategorii" msgid "products in this category" msgstr "Produkty w tej kategorii" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Sprzedawcy" @@ -1113,7 +1113,7 @@ msgstr "Długość geograficzna (współrzędna X)" msgid "comment" msgstr "Jak" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Wartość oceny od 1 do 10 włącznie lub 0, jeśli nie jest ustawiona." @@ -1121,8 +1121,8 @@ msgstr "Wartość oceny od 1 do 10 włącznie lub 0, jeśli nie jest ustawiona." msgid "represents feedback from a user." msgstr "Reprezentuje informacje zwrotne od użytkownika." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Powiadomienia" @@ -1130,15 +1130,19 @@ msgstr "Powiadomienia" msgid "download url for this order product if applicable" msgstr "Adres URL pobierania dla tego produktu zamówienia, jeśli dotyczy" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Informacje zwrotne" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "Lista zamówionych produktów w tym zamówieniu" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Adres rozliczeniowy" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1146,51 +1150,51 @@ msgstr "" "Adres wysyłki dla tego zamówienia, pozostaw pusty, jeśli jest taki sam jak " "adres rozliczeniowy lub jeśli nie dotyczy" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Całkowita cena tego zamówienia" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Całkowita ilość produktów w zamówieniu" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Czy wszystkie produkty w zamówieniu są cyfrowe?" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Transakcje dla tego zamówienia" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Zamówienia" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "Adres URL obrazu" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Zdjęcia produktu" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Kategoria" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Informacje zwrotne" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Marka" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Grupy atrybutów" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1198,7 +1202,7 @@ msgstr "Grupy atrybutów" msgid "price" msgstr "Cena" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1206,35 +1210,35 @@ msgstr "Cena" msgid "quantity" msgstr "Ilość" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Liczba informacji zwrotnych" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Produkty dostępne tylko dla zamówień osobistych" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Produkty" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Produkty w sprzedaży" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Promocje" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Sprzedawca" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1242,643 +1246,785 @@ msgstr "Sprzedawca" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Produkty z listy życzeń" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Listy życzeń" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Produkty Tagged" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Tagi produktu" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Kategorie oznaczone tagami" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Tagi kategorii" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Nazwa projektu" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "Firmowy adres e-mail" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Nazwa firmy" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Adres firmy" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Numer telefonu firmy" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 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" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "Użytkownik hosta poczty e-mail" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Maksymalna kwota płatności" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Minimalna kwota płatności" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Dane analityczne" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Dane reklamowe" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Konfiguracja" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Kod języka" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Nazwa języka" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Flaga języka, jeśli istnieje :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Pobierz listę obsługiwanych języków" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Wyniki wyszukiwania produktów" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Wyniki wyszukiwania produktów" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"Reprezentuje grupę atrybutów, która może być hierarchiczna. Klasa ta służy " +"do zarządzania i organizowania grup atrybutów. Grupa atrybutów może mieć " +"grupę nadrzędną, tworząc strukturę hierarchiczną. Może to być przydatne do " +"bardziej efektywnego kategoryzowania i zarządzania atrybutami w złożonym " +"systemie." + +#: core/models.py:86 msgid "parent of this group" msgstr "Rodzic tej grupy" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Grupa atrybutów nadrzędnych" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Nazwa grupy atrybutów" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Grupa atrybutów" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +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 " +"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." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Przechowuje dane uwierzytelniające i punkty końcowe wymagane do komunikacji " "API dostawcy." -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Informacje o uwierzytelnianiu" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "Definiowanie znaczników dla produktów pobranych od tego dostawcy" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Procentowa marża sprzedawcy" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Nazwa tego sprzedawcy" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Nazwa sprzedawcy" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Reprezentuje znacznik produktu używany do klasyfikacji lub identyfikacji " +"produktów. Klasa ProductTag została zaprojektowana w celu unikalnej " +"identyfikacji i klasyfikacji produktów poprzez połączenie wewnętrznego " +"identyfikatora tagu i przyjaznej dla użytkownika nazwy wyświetlanej. " +"Obsługuje operacje eksportowane przez mixiny i zapewnia dostosowanie " +"metadanych do celów administracyjnych." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Wewnętrzny identyfikator tagu produktu" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Nazwa tagu" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "Przyjazna dla użytkownika nazwa etykiety produktu" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Wyświetlana nazwa znacznika" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Etykieta produktu" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Reprezentuje tag kategorii używany dla produktów. Ta klasa modeluje tag " +"kategorii, który może być używany do kojarzenia i klasyfikowania produktów. " +"Zawiera atrybuty dla wewnętrznego identyfikatora tagu i przyjaznej dla " +"użytkownika nazwy wyświetlanej." + +#: core/models.py:220 msgid "category tag" msgstr "tag kategorii" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "tagi kategorii" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Reprezentuje jednostkę kategorii w celu organizowania i grupowania " +"powiązanych elementów w strukturze hierarchicznej. Kategorie mogą mieć " +"hierarchiczne relacje z innymi kategoriami, wspierając relacje rodzic-" +"dziecko. Klasa zawiera pola dla metadanych i reprezentacji wizualnej, które " +"służą jako podstawa dla funkcji związanych z kategoriami. Klasa ta jest " +"zwykle używana do definiowania i zarządzania kategoriami produktów lub " +"innymi podobnymi grupami w aplikacji, umożliwiając użytkownikom lub " +"administratorom określanie nazwy, opisu i hierarchii kategorii, a także " +"przypisywanie atrybutów, takich jak obrazy, tagi lub priorytety." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Prześlij obraz reprezentujący tę kategorię" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Obraz kategorii" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "Zdefiniuj procentowy narzut dla produktów w tej kategorii." -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Rodzic tej kategorii w celu utworzenia struktury hierarchicznej" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Kategoria nadrzędna" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Nazwa kategorii" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Podaj nazwę dla tej kategorii" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Dodaj szczegółowy opis dla tej kategorii" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Opis kategorii" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "tagi, które pomagają opisać lub pogrupować tę kategorię" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Priorytet" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Nazwa tej marki" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Nazwa marki" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Prześlij logo reprezentujące tę markę" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Mały wizerunek marki" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Prześlij duże logo reprezentujące tę markę" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Duży wizerunek marki" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Dodaj szczegółowy opis marki" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Opis marki" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Opcjonalne kategorie, z którymi powiązana jest ta marka" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Kategorie" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" +"Reprezentuje stan magazynowy produktu zarządzanego w systemie. Klasa ta " +"zapewnia szczegółowe informacje na temat relacji między dostawcami, " +"produktami i ich informacjami o zapasach, a także właściwościami związanymi " +"z zapasami, takimi jak cena, cena zakupu, ilość, SKU i zasoby cyfrowe. Jest " +"częścią systemu zarządzania zapasami, umożliwiając śledzenie i ocenę " +"produktów dostępnych od różnych dostawców." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "Sprzedawca dostarczający ten produkt" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Powiązany sprzedawca" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Ostateczna cena dla klienta po uwzględnieniu marży" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Cena sprzedaży" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "Produkt powiązany z tym wpisem magazynowym" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Produkt powiązany" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "Cena zapłacona sprzedawcy za ten produkt" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Cena zakupu przez sprzedawcę" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Dostępna ilość produktu w magazynie" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Ilość w magazynie" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "Jednostki SKU przypisane przez dostawcę w celu identyfikacji produktu" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "SKU sprzedawcy" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "Plik cyfrowy powiązany z tymi zapasami, jeśli dotyczy" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Plik cyfrowy" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Zapisy magazynowe" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"Reprezentuje produkt z atrybutami takimi jak kategoria, marka, tagi, status " +"cyfrowy, nazwa, opis, numer części i slug. Zapewnia powiązane właściwości " +"narzędziowe do pobierania ocen, liczby opinii, ceny, ilości i całkowitej " +"liczby zamówień. Zaprojektowany do użytku w systemie obsługującym handel " +"elektroniczny lub zarządzanie zapasami. Klasa ta współdziała z powiązanymi " +"modelami (takimi jak Category, Brand i ProductTag) i zarządza buforowaniem " +"często używanych właściwości w celu poprawy wydajności. Służy do " +"definiowania i manipulowania danymi produktu i powiązanymi z nimi " +"informacjami w aplikacji." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Kategoria, do której należy ten produkt" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Opcjonalnie można powiązać ten produkt z marką" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Tagi, które pomagają opisać lub pogrupować ten produkt" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Wskazuje, czy produkt jest dostarczany cyfrowo." -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "Czy produkt jest cyfrowy?" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Wyraźna nazwa identyfikująca produkt" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Nazwa produktu" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Dodaj szczegółowy opis produktu" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Opis produktu" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Numer części dla tego produktu" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Numer części" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Jednostka magazynowa dla tego produktu" -#: core/models.py:784 +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" +"Reprezentuje atrybut w systemie. Ta klasa jest używana do definiowania i " +"zarządzania atrybutami, które są konfigurowalnymi fragmentami danych, które " +"mogą być powiązane z innymi jednostkami. Atrybuty mają powiązane kategorie, " +"grupy, typy wartości i nazwy. Model obsługuje wiele typów wartości, w tym " +"string, integer, float, boolean, array i object. Pozwala to na dynamiczną i " +"elastyczną strukturę danych." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Kategoria tego atrybutu" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Grupa tego atrybutu" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "String" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Integer" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Pływak" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Wartość logiczna" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Tablica" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Obiekt" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Typ wartości atrybutu" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Typ wartości" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Nazwa tego atrybutu" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Nazwa atrybutu" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "można filtrować" + +#: core/models.py:654 +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." + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atrybut" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Atrybut tej wartości" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "Konkretny produkt powiązany z wartością tego atrybutu" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "Konkretna wartość dla tego atrybutu" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "" "Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Tekst alternatywny obrazu" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Prześlij plik obrazu dla tego produktu" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Obraz produktu" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Określa kolejność wyświetlania obrazów" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Priorytet wyświetlania" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "Produkt, który przedstawia ten obraz" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Zdjęcia produktów" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Rabat procentowy na wybrane produkty" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Procent rabatu" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Podaj unikalną nazwę tej promocji" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Nazwa promocji" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Opis promocji" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Wybierz produkty objęte promocją" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Dołączone produkty" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Promocja" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Produkty, które użytkownik oznaczył jako poszukiwane" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "Użytkownik posiadający tę listę życzeń" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Właściciel listy życzeń" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Lista życzeń" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Film dokumentalny" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Filmy dokumentalne" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Nierozwiązany" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Linia adresu dla klienta" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Linia adresowa" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "ul." -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "Okręg" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "Miasto" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Region" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Kod pocztowy" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "Kraj" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Pełna odpowiedź JSON z geokodera dla tego adresu" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Przechowywana odpowiedź JSON z usługi geokodowania" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Adres" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Adresy" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "Unikalny kod używany przez użytkownika do realizacji rabatu." -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Identyfikator kodu promocyjnego" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "Stała kwota rabatu stosowana, jeśli procent nie jest używany" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Stała kwota rabatu" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "Rabat procentowy stosowany w przypadku niewykorzystania stałej kwoty" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Rabat procentowy" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Znacznik czasu wygaśnięcia kodu promocyjnego" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "Końcowy czas ważności" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Znacznik czasu, od którego ten kod promocyjny jest ważny" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Czas rozpoczęcia ważności" -#: core/models.py:1273 +#: core/models.py:1118 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." -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Znacznik czasu użycia" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "Użytkownik przypisany do tego kodu promocyjnego, jeśli dotyczy" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Przypisany użytkownik" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Kod promocyjny" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Kody promocyjne" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1886,151 +2032,168 @@ msgstr "" "Należy zdefiniować tylko jeden rodzaj rabatu (kwotowy lub procentowy), ale " "nie oba lub żaden z nich." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "Kod promocyjny został już wykorzystany" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Nieprawidłowy typ rabatu dla kodu promocyjnego {self.uuid}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"Reprezentuje zamówienie złożone przez użytkownika. Ta klasa modeluje " +"zamówienie w aplikacji, w tym jego różne atrybuty, takie jak informacje " +"rozliczeniowe i wysyłkowe, status, powiązany użytkownik, powiadomienia i " +"powiązane operacje. Zamówienia mogą mieć powiązane produkty, można stosować " +"promocje, ustawiać adresy i aktualizować szczegóły wysyłki lub rozliczeń. " +"Funkcjonalność wspiera również zarządzanie produktami w cyklu życia " +"zamówienia." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "Adres rozliczeniowy użyty dla tego zamówienia" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Opcjonalny kod promocyjny zastosowany do tego zamówienia" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Zastosowany kod promocyjny" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "Adres wysyłki użyty dla tego zamówienia" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Adres wysyłki" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Aktualny status zamówienia w jego cyklu życia" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Status zamówienia" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 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" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "Reprezentacja JSON atrybutów zamówienia dla tego zamówienia" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "Użytkownik, który złożył zamówienie" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "Użytkownik" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "Znacznik czasu, kiedy zamówienie zostało sfinalizowane" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Kup czas" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "Czytelny dla człowieka identyfikator zamówienia" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "Identyfikator czytelny dla człowieka" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Zamówienie" -#: core/models.py:1447 +#: core/models.py:1282 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!" -#: core/models.py:1481 +#: core/models.py:1316 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." -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "Nie można dodać nieaktywnych produktów do zamówienia" -#: core/models.py:1503 +#: core/models.py:1338 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" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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." -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nie istnieje z zapytaniem <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Kod promocyjny nie istnieje" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "Możesz kupować tylko produkty fizyczne z podanym adresem wysyłki!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "Adres nie istnieje" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Nieprawidłowa wartość siły" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "Nie można kupić pustego zamówienia!" -#: core/models.py:1652 +#: core/models.py:1487 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." -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "Użytkownik bez salda nie może kupować za saldo!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Niewystarczające środki do zrealizowania zamówienia" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2039,7 +2202,7 @@ msgstr "" "informacje: imię i nazwisko klienta, adres e-mail klienta, numer telefonu " "klienta." -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2047,154 +2210,150 @@ msgstr "" "Nieprawidłowa metoda płatności: {payment_method} z " "{available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 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." -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Cena zakupu w momencie zamówienia" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "" "Wewnętrzne komentarze dla administratorów dotyczące tego zamówionego " "produktu" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Uwagi wewnętrzne" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "Powiadomienia użytkownika" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "Reprezentacja JSON atrybutów tego elementu" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Zamówione atrybuty produktu" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Odniesienie do zamówienia nadrzędnego zawierającego ten produkt" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Zamówienie nadrzędne" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "Konkretny produkt powiązany z tą linią zamówienia" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Ilość tego konkretnego produktu w zamówieniu" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Ilość produktu" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Aktualny status tego produktu w zamówieniu" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Status linii produktów" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "Orderproduct musi mieć powiązane zamówienie!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Nieprawidłowa akcja określona dla informacji zwrotnej: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 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." -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Nazwa" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "Adres URL integracji" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Dane uwierzytelniające" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "Można mieć tylko jednego domyślnego dostawcę CRM" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRM" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "Łącze CRM zamówienia" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "Łącza CRM zamówień" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Pobierz" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Pliki do pobrania" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "Nie można pobrać zasobu cyfrowego dla nieukończonego zamówienia." -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "Komentarze użytkowników na temat ich doświadczeń z produktem" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Komentarze zwrotne" -#: core/models.py:2079 +#: core/models.py:1921 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." -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Powiązany produkt zamówienia" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "Ocena produktu przypisana przez użytkownika" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Ocena produktu" -#: core/models.py:2096 -msgid "feedback" -msgstr "Informacje zwrotne" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2206,6 +2365,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Błąd podczas tworzenia kodu promocyjnego: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Strona główna" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Kontakt" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "O nas" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Informacje dotyczące płatności" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Dostawa" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/pt_BR/LC_MESSAGES/django.mo b/core/locale/pt_BR/LC_MESSAGES/django.mo index f1cb065840e298129dad688edb7b622a822c41ed..9c98c2d632b56aeec48671e86c5ff312747a7976 100644 GIT binary patch delta 20063 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 PhYx~F?TD+7+VB4W6exF; delta 11657 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -89,12 +89,12 @@ msgstr "Desativar o %(verbose_name_plural)s selecionado" msgid "selected items have been deactivated." msgstr "Os itens selecionados foram desativados!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Valor do atributo" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Valores de atributos" @@ -102,23 +102,23 @@ msgstr "Valores de atributos" msgid "image" msgstr "Imagem" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Imagens" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Estoque" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Ações" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Pedido de produto" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Solicitar produtos" @@ -329,7 +329,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "Meta snapshot de SEO" @@ -781,118 +781,118 @@ msgstr "adicionar ou remover feedback em uma relação pedido-produto" msgid "no search term provided." msgstr "Nenhum termo de pesquisa foi fornecido." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Nome" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Categorias" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Categorias Lesmas" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Tags" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Preço mínimo" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Preço máximo" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Está ativo" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Brand" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Atributos" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Quantidade" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Lesma" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "É digital" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Incluir subcategorias" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Incluir produtos pessoais encomendados" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" "Deve haver um category_uuid para usar o sinalizador include_subcategories" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Pesquisa (ID, nome do produto ou número de peça)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Comprado depois (inclusive)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Comprado antes (inclusive)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "E-mail do usuário" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "UUID do usuário" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Status" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "ID legível por humanos" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Parent" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Toda a categoria (com pelo menos 1 produto ou não)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Nível" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "UUID do produto" @@ -1022,8 +1022,8 @@ 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" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1038,8 +1038,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funciona muito bem" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Atributos" @@ -1052,11 +1052,11 @@ msgid "groups of attributes" msgstr "Grupos de atributos" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Categorias" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Marcas" @@ -1065,7 +1065,7 @@ msgid "category image url" msgstr "Categorias" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Porcentagem de marcação" @@ -1087,7 +1087,7 @@ msgstr "Tags para esta categoria" msgid "products in this category" msgstr "Produtos desta categoria" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Vendors" @@ -1103,7 +1103,7 @@ msgstr "Longitude (coordenada X)" msgid "comment" msgstr "Como fazer" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" "Valor de classificação de 1 a 10, inclusive, ou 0 se não estiver definido." @@ -1112,8 +1112,8 @@ msgstr "" msgid "represents feedback from a user." msgstr "Representa o feedback de um usuário." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Notificações" @@ -1121,15 +1121,19 @@ msgstr "Notificações" msgid "download url for this order product if applicable" msgstr "URL de download para este produto do pedido, se aplicável" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Feedback" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "Uma lista dos produtos solicitados nesse pedido" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Endereço de cobrança" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1137,51 +1141,51 @@ msgstr "" "Endereço de entrega para este pedido, deixe em branco se for o mesmo que o " "endereço de cobrança ou se não for aplicável" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Preço total deste pedido" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Quantidade total de produtos no pedido" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Todos os produtos estão no pedido digital?" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Transações para esta ordem" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Pedidos" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "URL da imagem" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Imagens do produto" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Categoria" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Grupos de atributos" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1189,7 +1193,7 @@ msgstr "Grupos de atributos" msgid "price" msgstr "Preço" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1197,35 +1201,35 @@ msgstr "Preço" msgid "quantity" msgstr "Quantidade" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Número de feedbacks" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Produtos disponíveis apenas para pedidos pessoais" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Produtos" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Códigos promocionais" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Produtos à venda" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Promoções" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1233,645 +1237,788 @@ msgstr "Vendor" msgid "product" msgstr "Produto" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Produtos da lista de desejos" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Listas de desejos" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Produtos marcados" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Etiquetas do produto" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Categorias de tags" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Tags das categorias" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Nome do projeto" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "E-mail da empresa" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Nome da empresa" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Endereço da empresa" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Número de telefone da empresa" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', às vezes ele deve ser usado em vez do valor do usuário do host" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "Usuário do host de e-mail" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Valor máximo para pagamento" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Valor mínimo para pagamento" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Dados analíticos" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Dados do anúncio" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Configuração" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Código do idioma" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Nome do idioma" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Sinalizador de idioma, se houver :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Obter uma lista de idiomas suportados" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Resultados da pesquisa de produtos" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Resultados da pesquisa de produtos" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"Representa um grupo de atributos, que pode ser hierárquico. Essa classe é " +"usada para gerenciar e organizar grupos de atributos. Um grupo de atributos " +"pode ter um grupo pai, formando uma estrutura hierárquica. Isso pode ser " +"útil para categorizar e gerenciar atributos de forma mais eficaz em um " +"sistema complexo." + +#: core/models.py:86 msgid "parent of this group" msgstr "Pai deste grupo" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Grupo de atributos pai" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Nome do grupo de atributos" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Grupo de atributos" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"Representa uma entidade de fornecedor capaz de armazenar informações sobre " +"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 " +"fornecedores terceirizados." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Armazena as credenciais e os pontos de extremidade necessários para a " "comunicação da API do fornecedor" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Informações de autenticação" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "Definir a marcação para produtos recuperados desse fornecedor" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Porcentagem da margem de lucro do fornecedor" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Nome do fornecedor" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Nome do fornecedor" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Representa uma tag de produto usada para classificar ou identificar " +"produtos. A classe ProductTag foi projetada para identificar e classificar " +"produtos de forma exclusiva por meio de uma combinação de um identificador " +"de tag interno e um nome de exibição fácil de usar. Ela oferece suporte a " +"operações exportadas por meio de mixins e fornece personalização de " +"metadados para fins administrativos." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Identificador de tag interno para a tag do produto" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Nome da etiqueta" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "Nome de fácil utilização para a etiqueta do produto" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Nome de exibição da tag" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Etiqueta do produto" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Representa uma tag de categoria usada para produtos. Essa classe modela uma " +"tag de categoria que pode ser usada para associar e classificar produtos. " +"Ela inclui atributos para um identificador de tag interno e um nome de " +"exibição de fácil utilização." + +#: core/models.py:220 msgid "category tag" msgstr "tag de categoria" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "tags de categoria" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Representa uma entidade de categoria para organizar e agrupar itens " +"relacionados em uma estrutura hierárquica. As categorias podem ter " +"relacionamentos hierárquicos com outras categorias, oferecendo suporte a " +"relacionamentos pai-filho. A classe inclui campos para metadados e " +"representação visual, que servem como base para recursos relacionados a " +"categorias. Normalmente, essa classe é usada para definir e gerenciar " +"categorias de produtos ou outros agrupamentos semelhantes em um aplicativo, " +"permitindo que os usuários ou administradores especifiquem o nome, a " +"descrição e a hierarquia das categorias, bem como atribuam atributos como " +"imagens, tags ou prioridade." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Faça upload de uma imagem que represente essa categoria" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Imagem da categoria" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "Definir uma porcentagem de majoração para os produtos dessa categoria" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Pai dessa categoria para formar uma estrutura hierárquica" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Categoria dos pais" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Nome da categoria" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Forneça um nome para essa categoria" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Adicione uma descrição detalhada para essa categoria" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Descrição da categoria" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "tags que ajudam a descrever ou agrupar essa categoria" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Prioridade" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Nome da marca" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Nome da marca" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Faça upload de um logotipo que represente essa marca" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Imagem pequena da marca" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Faça upload de um logotipo grande que represente essa marca" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Imagem de marca grande" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Adicione uma descrição detalhada da marca" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Descrição da marca" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Categorias opcionais às quais essa marca está associada" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Categorias" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" +"Representa o estoque de um produto gerenciado no sistema. Essa classe " +"fornece detalhes sobre a relação entre fornecedores, produtos e suas " +"informações de estoque, bem como propriedades relacionadas ao estoque, como " +"preço, preço de compra, quantidade, SKU e ativos digitais. Ela faz parte do " +"sistema de gerenciamento de estoque para permitir o rastreamento e a " +"avaliação dos produtos disponíveis de vários fornecedores." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "O fornecedor que fornece esse estoque de produtos" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Fornecedor associado" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Preço final para o cliente após as marcações" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Preço de venda" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "O produto associado a essa entrada em estoque" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Produto associado" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "O preço pago ao fornecedor por esse produto" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Preço de compra do fornecedor" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Quantidade disponível do produto em estoque" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Quantidade em estoque" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU atribuído pelo fornecedor para identificar o produto" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "SKU do fornecedor" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "Arquivo digital associado a esse estoque, se aplicável" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Arquivo digital" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Entradas de estoque" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"Representa um produto com atributos como categoria, marca, tags, status " +"digital, nome, descrição, número de peça e slug. Fornece propriedades " +"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 " +"frequência para melhorar o desempenho. É usada para definir e manipular " +"dados de produtos e suas informações associadas em um aplicativo." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Categoria à qual este produto pertence" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Opcionalmente, associe esse produto a uma marca" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Tags que ajudam a descrever ou agrupar este produto" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Indica se esse produto é entregue digitalmente" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "O produto é digital" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Fornecer um nome de identificação claro para o produto" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Nome do produto" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Adicione uma descrição detalhada do produto" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Descrição do produto" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Número de peça para este produto" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Número da peça" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Unidade de Manutenção de Estoque para este produto" -#: core/models.py:784 +#: core/models.py:607 +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 " +"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 " +"valores, incluindo string, inteiro, float, booleano, matriz e objeto. Isso " +"permite a estruturação dinâmica e flexível dos dados." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Categoria desse atributo" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Grupo desse atributo" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "Cordas" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Inteiro" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Flutuação" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Booleano" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Matriz" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Objeto" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Tipo do valor do atributo" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Tipo de valor" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Nome desse atributo" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Nome do atributo" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "é filtrável" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "" +"Quais atributos e valores podem ser usados para filtrar essa categoria." + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atributo" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Atributo desse valor" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "O produto específico associado ao valor desse atributo" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "O valor específico para esse atributo" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "" "Forneça um texto alternativo para a imagem para fins de acessibilidade" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Texto alternativo da imagem" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Faça o upload do arquivo de imagem para este produto" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Imagem do produto" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Determina a ordem em que as imagens são exibidas" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Prioridade de exibição" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "O produto que esta imagem representa" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Imagens do produto" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Desconto percentual para os produtos selecionados" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Porcentagem de desconto" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Forneça um nome exclusivo para essa promoção" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Nome da promoção" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Descrição da promoção" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Selecione quais produtos estão incluídos nessa promoção" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Produtos incluídos" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Promoção" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Produtos que o usuário marcou como desejados" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "Usuário que possui esta lista de desejos" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Proprietário da lista de desejos" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Lista de desejos" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Documentário" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Documentários" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Não resolvido" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Linha de endereço do cliente" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Linha de endereço" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Rua" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "Distrito" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "Cidade" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Região" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Código postal" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "País" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Ponto de geolocalização (Longitude, Latitude)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Resposta JSON completa do geocodificador para este endereço" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Resposta JSON armazenada do serviço de geocodificação" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Endereço" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Endereços" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "Código exclusivo usado por um usuário para resgatar um desconto" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Identificador de código promocional" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "Valor de desconto fixo aplicado se a porcentagem não for usada" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Valor do desconto fixo" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "Desconto percentual aplicado se o valor fixo não for usado" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Desconto percentual" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Registro de data e hora em que o código promocional expira" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "Tempo de validade final" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "" "Registro de data e hora a partir do qual esse código promocional é válido" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Hora de início da validade" -#: core/models.py:1273 +#: core/models.py:1118 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" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Registro de data e hora de uso" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "Usuário atribuído a esse código promocional, se aplicável" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Usuário atribuído" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Código promocional" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Códigos promocionais" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1879,147 +2026,164 @@ msgstr "" "Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não" " ambos ou nenhum." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "O código promocional já foi usado" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Tipo de desconto inválido para o código promocional {self.uuid}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"Representa um pedido feito por um usuário. Essa classe modela um pedido " +"dentro do aplicativo, incluindo seus vários atributos, como informações de " +"faturamento e envio, status, usuário associado, notificações e operações " +"relacionadas. Os pedidos podem ter produtos associados, promoções podem ser " +"aplicadas, endereços definidos e detalhes de envio ou faturamento " +"atualizados. Da mesma forma, a funcionalidade suporta o gerenciamento dos " +"produtos no ciclo de vida do pedido." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "O endereço de cobrança usado para esse pedido" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Código promocional aplicado" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "O endereço de entrega usado para esse pedido" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Endereço de entrega" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Status atual do pedido em seu ciclo de vida" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Status do pedido" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 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" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "Representação JSON dos atributos do pedido para esse pedido" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "O usuário que fez o pedido" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "Usuário" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "O registro de data e hora em que o pedido foi finalizado" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Tempo de compra" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "Um identificador legível por humanos para o pedido" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "ID legível por humanos" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Pedido" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "Um usuário deve ter apenas uma ordem pendente por vez!" -#: core/models.py:1481 +#: core/models.py:1316 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" -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "Não é possível adicionar produtos inativos ao pedido" -#: core/models.py:1503 +#: core/models.py:1338 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" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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" -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} não existe com a consulta <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "O código promocional não existe" -#: core/models.py:1584 +#: core/models.py:1419 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!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "O endereço não existe" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Valor de força inválido" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "Você não pode comprar um pedido vazio!" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "Não é possível comprar um pedido sem um usuário!" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "Um usuário sem saldo não pode comprar com saldo!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Fundos insuficientes para concluir o pedido" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2027,7 +2191,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" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2035,154 +2199,150 @@ msgstr "" "Método de pagamento inválido: {payment_method} de " "{available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 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" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Preço de compra no momento do pedido" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "" "Comentários internos para administradores sobre este produto encomendado" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Comentários internos" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "Notificações do usuário" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "Representação JSON dos atributos desse item" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Atributos ordenados do produto" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Referência ao pedido pai que contém esse produto" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Ordem dos pais" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "O produto específico associado a essa linha de pedido" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Quantidade desse produto específico no pedido" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Quantidade do produto" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Status atual desse produto no pedido" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Status da linha de produtos" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "O Orderproduct deve ter um pedido associado!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Ação incorreta especificada para o feedback: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 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" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Nome" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "URL da integração" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Credenciais de autenticação" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "Você só pode ter um provedor de CRM padrão" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRMs" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "Link do CRM do pedido" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "Links de CRM dos pedidos" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Baixar" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Downloads" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "" "Não é possível fazer download de um ativo digital para um pedido não " "concluído" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "" "Comentários fornecidos pelo usuário sobre sua experiência com o produto" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Comentários de feedback" -#: core/models.py:2079 +#: core/models.py:1921 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" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Produto de pedido relacionado" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "Classificação atribuída pelo usuário ao produto" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Avaliação do produto" -#: core/models.py:2096 -msgid "feedback" -msgstr "Feedback" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2194,6 +2354,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Erro durante a criação do código promocional: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Início" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Entre em contato conosco" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Sobre nós" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Informações de pagamento" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Entrega" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/ro_RO/LC_MESSAGES/django.mo b/core/locale/ro_RO/LC_MESSAGES/django.mo index ac4fd4297ec0869d3f4cfd7ebab22c3e8d573fbd..fb8591a8060515970609f0388b4805dc969685d7 100644 GIT binary patch delta 20365 zcmbuF2bdH^8utgu2#Dk;ElA#7LD)f&h)Y^voq_2g~iY+ik?})h~dnj zD0*u=^gIO>;~gRfjCY>tyc5HD>KX3){i~{HXF2bAzUTY;q2^a_b#;aJee132Ue3L~ z`DK4@9=_YT#g#Fxp}WLlec=ha$6_ClzkYy9DX)mdy1`*k_YZYE0d_^Mhkf8Buot`w z_Jo^Y7x)ew0>6Z6ve!sk?;zMF77Js?kZH$_lb{|v*;QB$TO!{8o5NdS3wS3y1FnO5 zZp7ZPSSL6ZYM@i$DtIDn1;2u-_dTS;Sc_4y*q*Qh976xGkz{&PFdsh1%(HNR0ip9sdfuQr?@J8rVp~OiYZ$&V?N&+nKFA%$nkMIFtt0LJjN{r~$q1 zY$ zE{=P_c2pPxrLyr*16%+-n1RFLWpE$30m@XLyK;|dtK;cV8e0GdzyxdwSGfBZK?WSg zt|y}o@3jT7M`0`E7hnhY3RDB{!}hTGQPvkaLCv%m+!YRl8rVp8|9Gf&6L2?}cI9V4 zt&;O#N3H+s$w-BFLv{FjsF}YA)#1mk{GZT6-er~@z(6SPFN2!tD7YKkAIdb-pxQeL zs+}6Bj+a3_cPVVG^}mXYY4auoL_N$`tKq+YstG9st$xT&Rg8p$4=B zmcbB?fa{=q;SDG6fZ=`=^f}r_yt#09;YFmsq{wJ72Xd$_zaY@ehf9UU5<;zX2Pzp4pzb%_$JhVrXFwO%uGmdjfE$W(F|{e z(!@Pb4LtzIz-OQa_#@Pa2Q9Go%b^B%D3o(8fg|CqP$t|8r@@b5A2{j+HXJw;s=tdM zCJkd(ktupE94_l12=w42T>sDaFdJQzD2s^JTrd?(xk`9UZXyb9HB+h5r| zp|9g)C{3pfvHvAxJPPiE{ooe3H{1dHL+>Pee>~Jo<527OVkk{r0ei#SpnT^ECvS#R zkw0+dBNp2GqhUwN4~8v5GBe0@hqIwZTn(kdQ(;edDb$SDK$SlPWvb_41>6GV?XfsJ z9T*6u$fu-jtG{oo+v1x`K-N`<#U+5GoVzVkI~2Ro&x3;V!1a0!$z zya1=^evOxL0&C`}+;Be$cj#t1Tst*rtu2@WRUve|A66iL01t$nPqFupgi_&|a01-y!jAA1*ae;mwOUp|J$D^c zgKHo*jlBp*!mV&3Y+kVCQygbPnP_eS{j0%~C{TwvC}%nc?hY@8yTO~FynQ{CMxKG? z@EiC%99S2NEr*{&nIgNyYT`PmdT+rp*mkMiUB|+q$R{pE|5EJ=3P!`HpfvI=l#Tn< z+dbiMsD`WHq3{wo2EGi{aEoQJ*j{iHJO~~GHN%xqnz|A03U7nG;C)aUdp;ziNcTBx z58It;JM00a!ZA>*!iW383{=BwU{BZp<;^cbIbHYD>;%R`O`r-6hL=NW@)6hqZidoK z_!61UWPX5sV8_$#Ool@}coaMY)C|f-O)!^H%yg!wu zBOeVF>28GTXd6^VyPRWvrX0#N^PtK@*bm+X6JaxKL8dnaWh<<6Ooe@s<51;i!2a-B zH~>BhJ@__MLq9=jpwD^M`Q}5_TLoo;hoLn36jXaJKt1;n3}w?6=i4JzJJ=ezBjjJK zJ3mtOO;FCW7HX4v6g~#GK-v6~Ut3dM2lf0~co@7N9uB{SgW&iJP=9lr5+;%BFGl~m z@$SXg8Me5@&ZGt&fV>vUx&8`U!JnW8(Be|7+P+ZoWT=^*0JVx1K`pa9)C4bqn)xcI z0k3!5a4GiJx__1e1)v|{6R^W&R%I_iHS`+PgI_?ck{@AP*z+ir!v$CIC5-z!uEuxZ1J|)nQ2y=p^oRUlcq8_q;F;gphD%~q&`YWQxbW%U4* z3H}0y!+y70(;N;*AfE#(;C*lkd=GkX@Ew*@;V9&4sCKS{@`Y{g{vLOldSUEPGCnsJ zLOIVfP$PdCc7pH2J>ZwH73{QzxD9*2Ij{hafX_L(>stFEXGy{UIk-v2E_fS63?r!_sV5klbfHK7#*c~RI zBJDER23`#N(tqqKG6P@(+!MYAWrFV<2d}d#oD27*{8Fd^ZiE`h>u`Vg9&8DF-D5lK z57psVs0mDidhS>#O{QR|k>$v!;|rkVbxj)4DwnnAC7?fn5z4VO82 zypxZBGUcyad99O|L9MEb?nVFV@D2*JX*>>x!>v#=`Ps3>dOOp0Py_1>JHUakBOK+* z$3qW!Hq;EWQ0>%14KQ?E2^BZ)T#x>Tk$Hjwjr3F475)GfB0Jq@ov#9_e5PY1RKrW4 zmec9595z7N{?AVSH#{79=>2w^J_TyR8ysH=$*AE^9e;)zS(o41nT&uk%?zmWG#mt1 zIC&k^OgBN95N-I3GR%HS-=1+RbZkI2L&()Bw+cx_=?mKyQN#AdKBZMh$L)YH$lw z$3MXr;iQM`1DzhW>$n%3O!;Ui6V$`wVF;6OJ3I&;`iS+7(_jVig>WeR9UKWifG24E zcX`yRq84`I#(A&{yar0u>tKKQ3hV*Df>p5H@9d^^3OosUJJfPKV1sRMB0L89I4I5D z2X+53xEtIAE9gJ=Dw)x+IeV(Sc|WKDOocPx0(cNy0}p{8!d`H%$88Kh1P(#I6i$H; zLz(nvsP@|a-mb2ma3XRA+#8+(!&PK%AtP0ed%}A2!B8g2K{b3P)N)$`2g8Tpq3|83 zf%N->4N&9Y{>WJ<6|aNp=xw+!?C_+OC%^-cvrnRbRlJ7+@f|o$6`!)Z*jCiS2OItt2!)192y7}|AvIt8-P-LNZs7|Ls3 zg!1C8a39!ill{bUFdTz?HPnD#f?EGApSAkJ$FG!Mjbo_ zJHzjxDz<;ddTT$}2YCwAfGS~M7(l6Z1=P$QhTY*7I2nEdHGuMG?Et1gIo$#{5H5y; zV0bB+31l9GE#bFNBm4MKVNhsT22`9pB@JQJ6IcwuZa3S()D2@IIWx6)c z+x7=SIp;9gO6z|#8Fh3Zl-JLOnu!lJgVUf?cqLT5yPW(7C{1mH(%eT-&wUSD!%i>Q z(A^Vi0OK5whWjDcz|LC#caTv-k3tVV57pska0pZs>Ia6x-Qg6d`^Unzum);iOWgg7 zUHMH=t6?oHgCD?Au+vLcgA?I!`j4GWMiuUXDYzYufm2_$yW#0j9j$?y>2IM{%hPZw z{08=D#!Ji}?Q`?~WLL$7unqS=h4T8ZoZN1U-BY^2a8GWGA)}ejcQ-=En;kd8S=|2+ z4u@l3v8IZ{YUBc(58s8eb$=^+K0F`F%Rh$0VEugZ=in_ zWZ$q4+zqvSzK09pA#d74=1ow6=4&_~&fadh*0I@Jw%&12HopfBh95)CyyM$eWBWmA zaE6nYgk;X5;6m65c6i601^0k0kS9QuPl0N1K9qN#0Y||VZ~=S-vYcXF-?dKK2g+y4 z;ZQgZ_J9jvN4OMrh2eQ*I+M8`4uI?71o#R(1a^Io{Q=H_%izD@IC#qYR)uS!OtAx& z!vTM`1Dgd^?`${*{?5r?Kn-ZN$dY2Ei^D(du@)S4-9tFF=f|GykTayb)@KKf>c-t55B!h{IvXH$rK4Gu$2a{u}o1 zPo|8_a5w|XIhH_GSOE`!*T6&JR=5y$`OJRP&BG&*AAvGe^S>LL#>PSgs02I=u7s1} zn{Wo);~#qULc{++|0?*Ig5hxb=e9x}lu9?kli~MJaU!|HHhc{%L*5KEvu_;xe_>TS z4fdwI0Gq+C`r(q6bRFho^Z!4NM4*3jjdvXE_y8Qtec4Ob1LPZQHa4F8>Eu_EI+8!i zm7hfZ8`5bcIcjvRBl8OBELZR(_g|3xza-5-7_bX(y--&c{t7-$nn(UIC==-V82K&I zeWVjf(e+pImyo_E9Z*uP`-@4PNy{joLTX0x=r6?i&2=`vFO!buMk{XggM(oPuA=;Y z=#!%BTJrUzy(nNM#;V*s*?R@)Q{=6%jVq7QRx9M`q+3b4uv)0{*fS&r8~MUVBwbID zSZQXdZKn}=w62~OvEB8cyZUnfF4Bp}7rL^`khhaRg|s*MJ*Xdt`kybl&NaX2|6MZo zk)G$qi||=^Dg2S7>t51d+(VzhuT81_`2+G_$QDSu(m|h+d)K=Bp455W>pk4Qh2euQBUDT&OGvKW&f+lT<$9O1~p(JxJ@x>#M4+ZLmM>{ub7d+S=k+rMd6)KO3PR zm2`~ORY^*ae-b_fA0Z7S--2`@`Q4zdzmd*C9%dx|2uXeg>09Kd;6F+2NLxsesdte7 zBlk~$Q&kuztwPYX$Wi$}>xb(U%I1(pk-FF-b1rDZfOW(wy(UnnJ82ea2{)c~H~)pK z>kBx5)SLX>Fua4GG{V(T*ZxpjuCDjVUqL$Gie^hzHs|DZ-0RLDQt(aEP|9C|b)>so z9U<@XgQ$BD`QMQKL7h{Zp_EBvo+jz~#-hpZhunLWl8Z<`kcJ_zC7tP>=|!WuJmd=a z4t$SvC+SDhnYzifoYaE4tzG^3D%1M^jLe=CHYdHn1JjVdAay03jr;`Z7}Cw8m=aeH z(iW0W>gpQ&j(l(Ke-CvnAk8NAl~8h(QRiPyZX5FOASdX*;O#YD@Zq!dLoy@pW%z7wxlPJ&w|&H{!N-mnoPQl@?A+Uk#xOb z!7ui|hYFv&f>z{5lRidXO4>x4kNg!$*HMmtvSRV~ZE}}8X^g9ra`G9-lgWQVx`njT z-G5G`|5$S}C&2efueqCK&0n^~<6YTMcpmZ^6}qcC?0_BLa`L&<=|pNt*#OFJAdN#l z+TEW@{$P@>v83=pe!e2TLgDMAj^r3lpPIX2l( z1$BP5zTu{kd$nkusqq`0+&A58eb&CY}#6>6PVU%EF`l+N_`BPR@&a ziFn>$l*!h6$U(l|%V)eyc2PVXEc3m1I_WLSW(u`l)=yC{=>>VeCg%ld9;^=hY&@H& z4ifQ{m&<1hiF_gJS9p_bgMpv(YU1@?b-d1RS~oO}F_>I+P@D6X1o>(&ldtx((O7u2 z%*z#OYctt=kY41~#UDLOHYL>elOlu+fzHPxJY4{}lW zIWJ#dD`lkWy+RIMp~<9Q6{M{mYvSqnBHydcX2K+@Dw!+#cJt2#H9;z#wK`|!Ryoo( z|7vSfw60N=d32IlBGu4QHm3&S$(kS?V1{@;LkWH7YW+k|g+b9!I$qQO^Wdya^Ad|&| zDq_FvUsSYu31u1dAT>1AVNE9KrP2&yfAV|vhaU0Z#QsPFdEGRW1Y@MI}*r^(sHf$kc+ zi2TV7IMT2j!}&|-{54mcjq?q4-njN6eOqrpQ4>mx;FhI2F$*m27Ktq{li%VGi+*vL zhIXA=-z}=Os*o!6_F$QLoDrG986g@G3pQ}c+<5cLupO{pb5%eu>4tX0$=?u=vFg;q!hrxeUUtS#$**)Q-V z)?Z;!HHu-ll|kArb6N2J!znzx&BZGgV=Zw}ODyO4OBKR2Lb_G2HNny#9pd5Wl?m1{ zVU!sKsYD@{&(s9V8beRXsz%RVZ6RBm$q{&(F0n|rCXzOKB10msv67`_Q8P&6AChlWN9 zbX!_|nKw}iv|~gEieR|pFryjUhqTQ`g#&A_RaqamOy^l4@kGMUXX;K z53!`U&*JfF3gaYrRvUOtJiC|!k=c$->{&T-VxKVT&4qa5K~B4mI(`M%4-^EKXUV#OrNn)%4gBBMoESkRw#SI>;u=wP5Sr)OU&# zrP~M2pn17az0*17f7_xlxJ26=M>8)`2wmXPaBBk}PnX{q&n(@&OT4q>)Mp%yh`|om zxWm|8t(u3kNK&OD812kuYSskBs9aM>7x#OYEWA@0ItY;8G!c?ka zI}D@~qlxH@Odm~GUfM=Fk5fhhm#QRKm?Ma5-L8@7Y!p?N0-Y7(wPDHGuyH;L2z7Ce zWd)qCQMFN2s|->pO}zY6at z6T!{lZD)hJ@Ws>QYG_XzraLsb#YMx(B&(SnkK;LpXfjelRWyU-L2fMN)G5jw9OS? zQ0P6{h0R&r?Xesm64i0`&;QzU=Y-Se*$$&K0VekqtnE%@jsd7Z<1cnsva1$1W8$)w zf=4_{m_R0z`C4i==+Z`HcrRW@{IwA-+a*&|bXBK{iiTsyeA1!6&Uo0A9lF}5`z&K% zYb?6+%Dd8iTHy+KWW&Le-fPpgDoANhuS_-cn9*%SJI)Tg>~cG37_sEdW}V$jbA0pa zpgirzW(0K&|5-Y_WvdB^cy813hNI5d+N{?!yK_<{kgDne=D^y_$5-xo=DzmrnbUE8 z({e9kcS~)@N#Y>nRXWgqk>-V%Wo=%hiIH({^R)qo^Mc-G&#Re@NzPV*XTIrHLuZLV&g3}I1C!Fb8%aiADWqD^$xvETO!J>3zo6k zHZ3osQ$+J7olAHu-P*iY8DGX!TqE4)wB=`cQ4JCrL&{&Yv+~#m5`H`<^(yiKpZ5vR zoG>{WhZLaeOeM$0;^5-;O*^n!roL8uqY4y(<@Fqx@cvxfsYvFK4m|hXZH&NE$t>?e zg*45_OH4hj=9LVj(f&rcCJaOa zjaD?<9}UwRq{?AWQ|`mNTc4O;Y>2!Yr!?zeP^$kWFpzD;tQIMAOzZk zUt3_fD`!2^J=BzW@9ozJL_*=T}WwX z(rYbRv^#Mk6H;lJwjlGZLEo*5?h&m3z63W3U3QB`Rgph4anG%18xGZVRvl`GPvo;1 zT*_u!YW2E=Y37aoDPO+GvLcG1DeDn^ugYJj4+{- z&8y>_v`aT<l?J^t5L=*7V6{*VQKubC7fA9z~)iu~4fH zo6s5~i-u*!!&YKnxY>d@!5S~t05GIZy1qh(i%Z5qacipSEX9j9fuO)a%dT1?O2TKA za$?$eZ_2B}0d(HgF}&!KE^;dDm63#c_r;d zdPWIuo#Kg&M+NByeX)C*&vSgwCl>iB~@uuZz4E>J5%t@mnDd*>5|tm?qP>8FtNJAo2fs% z5VeXMkhXVyG9f(f^qBi#k_+l&NPP<^)DVNEIPA{XlVAL3VvNq2-F!1C9z8;xJ#?(5 zpXj{@8)`E#A5qY;LWBK`V%9IWm>R?1dC?PjdDWCrwD-$%nJ9}V+GHCKliYIltO+&k z=pb8cp(N52&;LG}G;c-v9sr delta 11655 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -89,12 +89,12 @@ msgstr "Dezactivați %(verbose_name_plural)s selectat" msgid "selected items have been deactivated." msgstr "Articolele selectate au fost dezactivate!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Atribut Valoare" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Valori ale atributului" @@ -102,23 +102,23 @@ msgstr "Valori ale atributului" msgid "image" msgstr "Imagine" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Imagini" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Stoc" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Stocuri" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Comanda Produs" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Comandați produse" @@ -335,7 +335,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "SEO Meta snapshot" @@ -791,119 +791,119 @@ msgstr "adăugarea sau eliminarea feedback-ului într-o relație comandă-produs msgid "no search term provided." msgstr "Nu a fost furnizat niciun termen de căutare." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Nume și prenume" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Categorii" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Categorii Melci" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Etichete" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Preț minim" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Preț maxim" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Este activ" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Marca" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Atribute" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Cantitate" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Melc" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "Este digital" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Includeți subcategorii" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Includeți produsele comandate personal" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "SKU" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" "Trebuie să existe un category_uuid pentru a utiliza flagul " "include_subcategories" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Căutare (ID, numele produsului sau numărul piesei)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Cumpărat după (inclusiv)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Cumpărat înainte (inclusiv)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "E-mail utilizator" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "UUID utilizator" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Statut" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "ID lizibil de către om" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Părinte" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Întreaga categorie (are cel puțin 1 produs sau nu)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Nivel" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "UUID produs" @@ -1035,8 +1035,8 @@ 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" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1051,8 +1051,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funcționează ca un farmec" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Atribute" @@ -1065,11 +1065,11 @@ msgid "groups of attributes" msgstr "Grupuri de atribute" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Categorii" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Mărci" @@ -1078,7 +1078,7 @@ msgid "category image url" msgstr "Categorii" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Procentul de majorare" @@ -1103,7 +1103,7 @@ msgstr "Etichete pentru această categorie" msgid "products in this category" msgstr "Produse din această categorie" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Furnizori" @@ -1119,7 +1119,7 @@ msgstr "Longitudine (coordonata X)" msgid "comment" msgstr "Cum să" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Valoare nominală de la 1 la 10, inclusiv, sau 0 dacă nu este setată." @@ -1127,8 +1127,8 @@ msgstr "Valoare nominală de la 1 la 10, inclusiv, sau 0 dacă nu este setată." msgid "represents feedback from a user." msgstr "Reprezintă feedback de la un utilizator." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Notificări" @@ -1136,15 +1136,19 @@ 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" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Feedback" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "O listă a produselor comandate în această comandă" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Adresa de facturare" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1152,51 +1156,51 @@ msgstr "" "Adresa de expediere pentru această comandă, lăsați în alb dacă este aceeași " "cu adresa de facturare sau dacă nu se aplică" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Prețul total al acestei comenzi" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Cantitatea totală de produse din comandă" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Sunt toate produsele din comanda digitală" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Tranzacții pentru această comandă" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Ordine" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "URL imagine" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Imagini ale produsului" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Categorie" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Feedback-uri" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Marca" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Grupuri de atribute" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1204,7 +1208,7 @@ msgstr "Grupuri de atribute" msgid "price" msgstr "Preț" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1212,35 +1216,35 @@ msgstr "Preț" msgid "quantity" msgstr "Cantitate" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Numărul de reacții" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Produse disponibile numai pentru comenzi personale" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Produse" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Coduri promoționale" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Produse scoase la vânzare" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Promoții" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Furnizor" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1248,646 +1252,789 @@ msgstr "Furnizor" msgid "product" msgstr "Produs" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Produse dorite" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Liste de dorințe" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Produse etichetate" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Etichete de produs" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Categorii etichetate" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Etichete \"Categorii" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Numele proiectului" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "Email companie" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Numele companiei" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Adresa companiei" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Numărul de telefon al companiei" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "\"e-mail de la\", uneori trebuie să fie utilizat în locul valorii " "utilizatorului gazdă" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "Utilizator gazdă e-mail" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Suma maximă pentru plată" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Suma minimă pentru plată" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Date analitice" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Date publicitare" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Configurație" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Codul limbii" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Numele limbii" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Indicatorul de limbă, dacă există :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Obțineți o listă a limbilor acceptate" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Rezultate căutare produse" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Rezultate căutare produse" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +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 " +"atributelor în cadrul unui sistem complex." + +#: core/models.py:86 msgid "parent of this group" msgstr "Părinte al acestui grup" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Grup de atribute părinte" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Numele grupului de atribute" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Grup de atribute" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"Reprezintă o entitate furnizor capabilă să stocheze informații despre " +"furnizorii externi și cerințele lor de interacțiune. Clasa Vendor este " +"utilizată pentru a defini și gestiona informațiile referitoare la un " +"furnizor extern. Aceasta stochează numele furnizorului, detaliile de " +"autentificare necesare pentru comunicare și marja procentuală aplicată " +"produselor preluate de la furnizor. Acest model păstrează, de asemenea, " +"metadate și constrângeri suplimentare, ceea ce îl face potrivit pentru " +"utilizarea în sisteme care interacționează cu furnizori terți." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stochează acreditările și punctele finale necesare pentru comunicarea API a " "furnizorului" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Informații privind autentificarea" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definirea marjei de profit pentru produsele preluate de la acest furnizor" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Procentul de majorare al furnizorului" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Numele acestui vânzător" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Numele furnizorului" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Reprezintă o etichetă de produs utilizată pentru clasificarea sau " +"identificarea produselor. Clasa ProductTag este concepută pentru " +"identificarea și clasificarea unică a produselor printr-o combinație de " +"identificator intern al etichetei și un nume de afișare ușor de utilizat. " +"Aceasta acceptă operațiuni exportate prin mixins și oferă personalizarea " +"metadatelor în scopuri administrative." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Identificator intern de etichetă pentru eticheta produsului" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Nume etichetă" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "Nume ușor de utilizat pentru eticheta produsului" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Nume afișare etichetă" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Etichetă produs" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"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." + +#: core/models.py:220 msgid "category tag" msgstr "etichetă de categorie" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "Etichete de categorie" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Reprezintă o entitate de categorie pentru organizarea și gruparea " +"elementelor conexe într-o structură ierarhică. Categoriile pot avea relații " +"ierarhice cu alte categorii, susținând relațiile părinte-copil. Clasa " +"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." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Încărcați o imagine care reprezintă această categorie" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Categorie imagine" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "" "Definiți un procent de majorare pentru produsele din această categorie" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Părinte al acestei categorii pentru a forma o structură ierarhică" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Categoria de părinți" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Numele categoriei" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Furnizați un nume pentru această categorie" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Adăugați o descriere detaliată pentru această categorie" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Descriere categorie" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "etichete care ajută la descrierea sau gruparea acestei categorii" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Prioritate" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Denumirea acestui brand" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Nume de marcă" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Încărcați un logo care reprezintă acest brand" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Brand imagine mică" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Încărcați un logo mare care reprezintă acest brand" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Imagine de marcă mare" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Adăugați o descriere detaliată a mărcii" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Descrierea mărcii" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Categorii opționale cu care acest brand este asociat" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Categorii" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 "" +"Reprezintă stocul unui produs gestionat în sistem. Această clasă oferă " +"detalii despre relația dintre furnizori, produse și informațiile privind " +"stocurile acestora, precum și proprietăți legate de inventar, cum ar fi " +"prețul, prețul de achiziție, cantitatea, SKU și activele digitale. Face " +"parte din sistemul de gestionare a stocurilor pentru a permite urmărirea și " +"evaluarea produselor disponibile de la diverși furnizori." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "Furnizorul care furnizează acest stoc de produse" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Furnizor asociat" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Prețul final pentru client după majorări" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Prețul de vânzare" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "Produsul asociat cu această intrare în stoc" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Produs asociat" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "Prețul plătit vânzătorului pentru acest produs" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Prețul de achiziție al furnizorului" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Cantitatea disponibilă a produsului în stoc" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Cantitate în stoc" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU atribuit de furnizor pentru identificarea produsului" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "SKU al furnizorului" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "Fișier digital asociat cu acest stoc, dacă este cazul" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Fișier digital" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Intrări pe stoc" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"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 " +"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 " +"despre produse și informațiile asociate acestora în cadrul unei aplicații." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Categoria din care face parte acest produs" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "Opțional, asociați acest produs cu un brand" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Etichete care ajută la descrierea sau gruparea acestui produs" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Indică dacă acest produs este livrat digital" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "Produsul este digital" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Furnizați o denumire clară de identificare a produsului" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Denumirea produsului" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Adăugați o descriere detaliată a produsului" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Descrierea produsului" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Numărul piesei pentru acest produs" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Numărul piesei" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Stock Keeping Unit pentru acest produs" -#: core/models.py:784 +#: core/models.py:607 +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 " +"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." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Categoria acestui atribut" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Grupul acestui atribut" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "Șir de caractere" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Număr întreg" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Float" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Boolean" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Array" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Obiect" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Tipul valorii atributului" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Tipul de valoare" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Denumirea acestui atribut" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Numele atributului" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "este filtrabil" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "" +"Atributele și valorile care pot fi utilizate pentru filtrarea acestei " +"categorii." + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atribut" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Atributul acestei valori" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "Produsul specific asociat cu valoarea acestui atribut" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "Valoarea specifică pentru acest atribut" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "Furnizați text alternativ pentru imagine pentru accesibilitate" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Textul alt al imaginii" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Încărcați fișierul de imagine pentru acest produs" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Imaginea produsului" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Determină ordinea în care sunt afișate imaginile" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Prioritatea afișării" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "Produsul pe care îl reprezintă această imagine" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Imagini ale produsului" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Procentul de reducere pentru produsele selectate" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Procent de reducere" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Furnizați un nume unic pentru această promoție" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Numele promoției" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Descrierea promoției" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Selectați ce produse sunt incluse în această promoție" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Produse incluse" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Promovare" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Produse pe care utilizatorul le-a marcat ca fiind dorite" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "Utilizatorul care deține această listă de dorințe" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Proprietarul listei de dorințe" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Lista dorințelor" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Documentar" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Documentare" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Nerezolvat" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Linia de adresă pentru client" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Linia de adresă" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Strada" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "Districtul" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "Oraș" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Regiunea" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Cod poștal" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "Țara" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Punct de geolocație (longitudine, latitudine)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Răspuns JSON complet de la geocoder pentru această adresă" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Răspuns JSON stocat de la serviciul de geocodare" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Adresă" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Adrese" -#: core/models.py:1240 +#: core/models.py:1085 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" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Cod promoțional de identificare" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "Valoarea fixă a reducerii aplicate dacă procentul nu este utilizat" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Valoarea fixă a reducerii" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentul de reducere aplicat dacă suma fixă nu este utilizată" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Reducere procentuală" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Data la care expiră codul promoțional" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "Timpul final de valabilitate" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Timestamp de la care acest cod promoțional este valabil" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Ora de începere a valabilității" -#: core/models.py:1273 +#: core/models.py:1118 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ă" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Timestamp de utilizare" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "Utilizatorul atribuit acestui cod promoțional, dacă este cazul" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Utilizator atribuit" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Cod promoțional" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Coduri promoționale" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1895,149 +2042,166 @@ msgstr "" "Trebuie definit un singur tip de reducere (sumă sau procent), dar nu ambele " "sau niciuna." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "Codul promoțional a fost deja utilizat" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Tip de reducere invalid pentru codul promoțional {self.uuid}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"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ă " +"gestionarea produselor în ciclul de viață al comenzii." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "Adresa de facturare utilizată pentru această comandă" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Cod promoțional opțional aplicat la această comandă" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Cod promoțional aplicat" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "Adresa de expediere utilizată pentru această comandă" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Adresa de expediere" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Stadiul actual al comenzii în ciclul său de viață" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Stadiul comenzii" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 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ă" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "Reprezentarea JSON a atributelor comenzii pentru această comandă" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "Utilizatorul care a plasat comanda" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "Utilizator" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "Momentul în care comanda a fost finalizată" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Cumpărați timp" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "Un identificator ușor de citit pentru comandă" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "ID lizibil de către om" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Comandă" -#: core/models.py:1447 +#: core/models.py:1282 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!" -#: core/models.py:1481 +#: core/models.py:1316 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" -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "Nu puteți adăuga produse inactive la comandă" -#: core/models.py:1503 +#: core/models.py:1338 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" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 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" -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nu există cu interogarea <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Codul promoțional nu există" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "" "Puteți cumpăra numai produse fizice cu adresa de expediere specificată!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "Adresa nu există" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 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." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Valoare forță invalidă" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "Nu puteți achiziționa o comandă goală!" -#: core/models.py:1652 +#: core/models.py:1487 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" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "Un utilizator fără sold nu poate cumpăra cu sold!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Insuficiența fondurilor pentru finalizarea comenzii" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2045,7 +2209,7 @@ 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" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2053,153 +2217,149 @@ msgstr "" "Metodă de plată invalidă: {payment_method} de la " "{available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 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" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Prețul de achiziție la momentul comenzii" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarii interne pentru administratori cu privire la acest produs comandat" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Observații interne" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "Notificări pentru utilizatori" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "Reprezentarea JSON a atributelor acestui element" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Atribute de produs ordonate" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Trimitere la comanda mamă care conține acest produs" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Ordinul părinților" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "Produsul specific asociat cu această linie de comandă" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Cantitatea acestui produs specific din comandă" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Cantitatea produsului" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Starea actuală a acestui produs în comandă" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Starea liniei de produse" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "Comandaprodusul trebuie să aibă o comandă asociată!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Acțiune greșită specificată pentru feedback: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 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" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Nume și prenume" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "Adresa URL a integrării" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Acreditări de autentificare" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "Puteți avea un singur furnizor CRM implicit" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRM-uri" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "Legătura CRM a comenzii" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "Legături CRM pentru comenzi" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Descărcare" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Descărcări" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "Nu puteți descărca un bun digital pentru o comandă nefinalizată" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "" "Comentarii furnizate de utilizatori cu privire la experiența lor cu produsul" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Comentarii de feedback" -#: core/models.py:2079 +#: core/models.py:1921 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" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Produs aferent comenzii" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "Rating atribuit de utilizator pentru produs" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Evaluarea produsului" -#: core/models.py:2096 -msgid "feedback" -msgstr "Feedback" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2211,6 +2371,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Eroare în timpul creării codului promoțional: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Acasă" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Contactați-ne" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Despre noi" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Informații privind plata" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Livrare" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/ru_RU/LC_MESSAGES/django.mo b/core/locale/ru_RU/LC_MESSAGES/django.mo index 14887fb51abdce0231f312243d0efe6ef6df7223..a4b0facc627473b42114714d07c5c37f59739f50 100644 GIT binary patch delta 22033 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -89,12 +89,12 @@ msgstr "Деактивировать выбранный %(verbose_name_plural)s" msgid "selected items have been deactivated." msgstr "Выбранные сущности были деактивированы!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "Значение атрибута" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "Значения атрибутов" @@ -102,23 +102,23 @@ msgstr "Значения атрибутов" msgid "image" msgstr "Изображение" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "Изображения" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "Наличие" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "Наличия" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "Заказанный товар" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "Заказанные товары" @@ -336,7 +336,7 @@ msgstr "" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "SEO Meta snapshot" @@ -790,119 +790,119 @@ msgstr "добавлять или удалять отзывы о связи за msgid "no search term provided." msgstr "Поисковый запрос не предоставлен." -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "Имя" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "Категории" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "Категории Слизни" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "Теги" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "Мин. цена" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "Максимальная цена" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "Активен" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "Бренд" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "Атрибуты" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "Количество" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "Слаг" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "Цифровой" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "Включите подкатегории" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "Включите продукты, заказанные лично" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "Артикул" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" "Для использования флага include_subcategories должен быть указан " "category_uuid." -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "Поиск (идентификатор, название продукта или номер детали)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "Куплено после (включительно)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "Куплено ранее (включительно)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "Электронная почта пользователя" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "UUID пользователя" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "Статус" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "Человекочитаемый идентификатор" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "Родитель" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "Вся категория (есть хотя бы 1 продукт или нет)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "Уровень" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "UUID продукта" @@ -1035,8 +1035,8 @@ msgstr "Заказ товара {order_product_uuid} не найден!" msgid "original address string provided by the user" msgstr "Оригинальная строка адреса, предоставленная пользователем" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -1051,8 +1051,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - работает как шарм" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "Атрибуты" @@ -1065,11 +1065,11 @@ msgid "groups of attributes" msgstr "Группы атрибутов" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "Категории" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "Бренды" @@ -1078,7 +1078,7 @@ msgid "category image url" msgstr "Категории" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "Процент наценки" @@ -1102,7 +1102,7 @@ msgstr "Теги для этой категории" msgid "products in this category" msgstr "Продукты в этой категории" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "Поставщики" @@ -1118,7 +1118,7 @@ msgstr "Долгота (координата X)" msgid "comment" msgstr "Как" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" "Значение рейтинга от 1 до 10, включительно, или 0, если он не установлен." @@ -1127,8 +1127,8 @@ msgstr "" msgid "represents feedback from a user." msgstr "Представляет собой отзыв пользователя." -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "Уведомления" @@ -1136,15 +1136,19 @@ msgstr "Уведомления" msgid "download url for this order product if applicable" msgstr "Если применимо, загрузите url для этого продукта заказа" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Обратная связь" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "Список товаров, заказанных в этом заказе" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "Адрес для выставления счетов" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1152,51 +1156,51 @@ msgstr "" "Адрес доставки для данного заказа, оставьте пустым, если он совпадает с " "адресом выставления счета или не применяется" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "Общая стоимость этого заказа" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "Общее количество продуктов в заказе" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "Все ли товары в заказе представлены в цифровом виде" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "Операции для этого заказа" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "Заказы" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "URL-адрес изображения" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "Изображения товара" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "Категория" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "Отзывы" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "Бренд" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "Группы атрибутов" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1204,7 +1208,7 @@ msgstr "Группы атрибутов" msgid "price" msgstr "Цена" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1212,35 +1216,35 @@ msgstr "Цена" msgid "quantity" msgstr "Количество" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "Количество отзывов" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "Продукты доступны только для личных заказов" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "Товары" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "Промокоды" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "Продукты в продаже" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "Промоакции" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "Поставщик" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1248,647 +1252,790 @@ msgstr "Поставщик" msgid "product" msgstr "Товар" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "Продукты из списка желаний" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "Списки желаний" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "Теги товара" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "Категории с метками" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "Теги категорий" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "Название проекта" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "Электронная почта компании" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "Название компании" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "Адрес компании" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "Номер телефона компании" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', иногда его нужно использовать вместо значения пользователя " "хоста." -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "Пользователь узла электронной почты" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "Максимальная сумма для оплаты" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "Минимальная сумма для оплаты" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "Аналитические данные" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "Рекламные данные" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "Конфигурация" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "Код языка" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "Название языка" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "Языковой флаг, если он существует :)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "Получите список поддерживаемых языков" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "Результаты поиска товаров" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "Результаты поиска товаров" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"Представляет группу атрибутов, которая может быть иерархической. Этот класс " +"используется для управления и организации групп атрибутов. Группа атрибутов " +"может иметь родительскую группу, образуя иерархическую структуру. Это может " +"быть полезно для категоризации и более эффективного управления атрибутами в " +"сложной системе." + +#: core/models.py:86 msgid "parent of this group" msgstr "Родитель этой группы" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "Родительская группа атрибутов" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "Имя группы атрибутов" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "Группа атрибутов" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"Представляет собой сущность поставщика, способную хранить информацию о " +"внешних поставщиках и требованиях к их взаимодействию. Класс Vendor " +"используется для определения и управления информацией, связанной с внешним " +"поставщиком. Он хранит имя поставщика, данные аутентификации, необходимые " +"для взаимодействия, и процентную наценку, применяемую к продуктам, " +"полученным от поставщика. Эта модель также содержит дополнительные " +"метаданные и ограничения, что делает ее пригодной для использования в " +"системах, взаимодействующих со сторонними поставщиками." + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Хранит учетные данные и конечные точки, необходимые для взаимодействия с API" " поставщика." -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "Информация об аутентификации" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "Определите наценку для товаров, полученных от этого продавца" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "Процент наценки поставщика" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "Имя этого продавца" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "Название поставщика" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Представляет тег продукта, используемый для классификации или идентификации " +"продуктов. Класс ProductTag предназначен для уникальной идентификации и " +"классификации продуктов с помощью комбинации внутреннего идентификатора тега" +" и удобного для пользователя отображаемого имени. Он поддерживает операции, " +"экспортируемые через миксины, и обеспечивает настройку метаданных для " +"административных целей." + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "Внутренний идентификатор тега для тега продукта" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "Название тега" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "Удобное название для метки продукта" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "Отображаемое имя тега" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "Метка продукта" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Представляет тег категории, используемый для продуктов. Этот класс " +"моделирует тег категории, который может быть использован для ассоциации и " +"классификации продуктов. Он включает атрибуты для внутреннего идентификатора" +" тега и удобного для пользователя отображаемого имени." + +#: core/models.py:220 msgid "category tag" msgstr "тег категории" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "теги категорий" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Представляет собой объект категории для организации и группировки связанных " +"элементов в иерархическую структуру. Категории могут иметь иерархические " +"отношения с другими категориями, поддерживая отношения \"родитель-ребенок\"." +" Класс включает поля для метаданных и визуального представления, которые " +"служат основой для функций, связанных с категориями. Этот класс обычно " +"используется для определения и управления категориями товаров или другими " +"подобными группировками в приложении, позволяя пользователям или " +"администраторам указывать название, описание и иерархию категорий, а также " +"назначать атрибуты, такие как изображения, теги или приоритет." + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "Загрузите изображение, представляющее эту категорию" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "Изображение категории" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "Определите процент наценки для товаров в этой категории" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "Родитель данной категории для формирования иерархической структуры" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "Родительская категория" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "Название категории" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "Укажите название этой категории" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "Добавьте подробное описание для этой категории" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "Описание категории" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "теги, которые помогают описать или сгруппировать эту категорию" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "Приоритет" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "Название этой марки" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "Название бренда" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "Загрузите логотип, представляющий этот бренд" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "Маленький образ бренда" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "Загрузите большой логотип, представляющий этот бренд" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "Большой имидж бренда" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "Добавьте подробное описание бренда" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "Описание бренда" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "Дополнительные категории, с которыми ассоциируется этот бренд" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "Категории" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 и цифровые " +"активы. Он является частью системы управления запасами, позволяющей " +"отслеживать и оценивать продукты, доступные у различных поставщиков." + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "Поставщик, поставляющий данный товар на склад" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "Ассоциированный поставщик" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "Окончательная цена для покупателя после наценок" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "Цена продажи" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "Продукт, связанный с этой складской записью" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "Сопутствующий товар" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "Цена, уплаченная продавцу за этот продукт" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "Цена покупки у поставщика" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "Доступное количество продукта на складе" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "Количество на складе" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "Присвоенный поставщиком SKU для идентификации продукта" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "Артикул поставщика" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "Цифровой файл, связанный с этой акцией, если применимо" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "Цифровой файл" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "Наличия" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"Представляет продукт с такими атрибутами, как категория, бренд, теги, " +"цифровой статус, название, описание, номер детали и метка. Предоставляет " +"связанные с ним полезные свойства для получения оценок, количества отзывов, " +"цены, количества и общего числа заказов. Предназначен для использования в " +"системе, которая занимается электронной коммерцией или управлением запасами." +" Этот класс взаимодействует со связанными моделями (такими как Category, " +"Brand и ProductTag) и управляет кэшированием часто используемых свойств для " +"повышения производительности. Он используется для определения и " +"манипулирования данными о товаре и связанной с ним информацией в приложении." + +#: core/models.py:476 msgid "category this product belongs to" msgstr "Категория, к которой относится этот продукт" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "По желанию ассоциируйте этот продукт с брендом" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "Теги, которые помогают описать или сгруппировать этот продукт" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "Указывает, поставляется ли этот продукт в цифровом виде" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "Является ли продукт цифровым" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "Обеспечьте четкое идентификационное название продукта" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "Название продукта" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "Добавьте подробное описание продукта" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "Описание товара" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "Парт. номер для данного товара" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "Парт. номер" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "Единица складского учета для данного продукта" -#: core/models.py:784 +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" +"Представляет атрибут в системе. Этот класс используется для определения и " +"управления атрибутами, которые представляют собой настраиваемые фрагменты " +"данных, которые могут быть связаны с другими сущностями. Атрибуты имеют " +"связанные с ними категории, группы, типы значений и имена. Модель " +"поддерживает множество типов значений, включая строку, целое число, " +"плавающую форму, булевую форму, массив и объект. Это позволяет динамично и " +"гибко структурировать данные." + +#: core/models.py:619 msgid "category of this attribute" msgstr "Категория этого атрибута" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "Группа этого атрибута" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "Строка" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "Целое число" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "Поплавок" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "Булево" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "Массив" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "Объект" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "Тип значения атрибута" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "Тип значения" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "Имя этого атрибута" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "Имя атрибута" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "поддается фильтрации" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "" +"Какие атрибуты и значения можно использовать для фильтрации этой категории." + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Атрибут" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "Атрибут этого значения" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "Конкретный продукт, связанный со значением этого атрибута" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "Конкретное значение для этого атрибута" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "" "Предоставьте альтернативный текст для изображения, чтобы обеспечить " "доступность" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "Альтовый текст изображения" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "Загрузите файл изображения для этого продукта" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "Изображение продукта" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "Определяет порядок отображения изображений" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "Приоритет отображения" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "Продукт, который представлен на этом изображении" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "Изображения товаров" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "Процентная скидка на выбранные продукты" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "Процент скидки" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "Укажите уникальное имя для этой акции" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "Название акции" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "Описание акции" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "Выберите, какие продукты участвуют в этой акции" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "Включенные продукты" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "Продвижение" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "Продукты, которые пользователь отметил как желаемые" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "Пользователь, владеющий этим списком желаний" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "Владелец вишлиста" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "Список желаний" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "Документальный фильм" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "Документальные фильмы" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "Неразрешенные" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "Адресная строка для клиента" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "Адресная строка" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "Улица" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "Округ" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "Город" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "Регион" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "Почтовый индекс" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "Страна" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "Геолокационная точка(долгота, широта)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "Полный JSON-ответ от геокодера для этого адреса" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "Сохраненный JSON-ответ от сервиса геокодирования" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "Адрес" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "Адреса" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "Уникальный код, используемый пользователем для получения скидки" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "Идентификатор промо-кода" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "Фиксированная сумма скидки, применяемая, если процент не используется" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "Фиксированная сумма скидки" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "" "Процентная скидка, применяемая, если фиксированная сумма не используется" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "Процентная скидка" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "Временная метка, когда истекает срок действия промокода" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "Время окончания срока действия" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "Время, с которого действует этот промокод" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "Время начала действия" -#: core/models.py:1273 +#: core/models.py:1118 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Временная метка, когда был использован промокод, пустая, если он еще не " "использовался" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "Временная метка использования" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "Пользователь, назначенный на этот промокод, если применимо" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "Назначенный пользователь" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "Промокод" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "Промокоды" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1896,147 +2043,164 @@ msgstr "" "Следует определить только один тип скидки (сумма или процент), но не оба или" " ни один из них." -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "Промокоды" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Неверный тип скидки для промокода {self.uuid}!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"Представляет заказ, оформленный пользователем. Этот класс моделирует заказ в" +" приложении, включая его различные атрибуты, такие как информация о " +"выставлении счета и доставке, статус, связанный пользователь, уведомления и " +"связанные операции. Заказы могут иметь связанные продукты, к ним можно " +"применять рекламные акции, устанавливать адреса и обновлять данные о " +"доставке или выставлении счета. Кроме того, функциональность поддерживает " +"управление продуктами в жизненном цикле заказа." + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "Адрес для выставления счетов, используемый для данного заказа" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "Дополнительный промокод, применяемый к этому заказу" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "Примененный промокод" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "Адрес доставки, используемый для данного заказа" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "Адрес доставки" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "Текущий статус заказа в его жизненном цикле" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "Статус заказа" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 msgid "json structure of notifications to display to users" msgstr "" "JSON-структура уведомлений для отображения пользователям, в административном" " интерфейсе используется табличный вид" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "JSON-представление атрибутов заказа для этого заказа" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "Пользователь, разместивший заказ" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "Пользователь" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "Временная метка, когда заказ был завершен" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "Время покупки" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "Человекочитаемый идентификатор для заказа" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "человекочитаемый идентификатор" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "Заказать" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "Пользователь может одновременно иметь только один отложенный ордер!" -#: core/models.py:1481 +#: core/models.py:1316 msgid "you cannot add products to an order that is not a pending one" msgstr "Вы не можете добавить товары в заказ, который не является отложенным." -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "Вы не можете добавить неактивные товары в заказ" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "Вы не можете добавить больше товаров, чем есть на складе" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Вы не можете удалить товары из заказа, который не является отложенным." -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} не существует с запросом <{query}>!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "Промокод не существует" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "" "Вы можете купить физические товары только с указанным адресом доставки!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "Адрес не существует" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "В данный момент вы не можете совершить покупку, пожалуйста, повторите " "попытку через несколько минут." -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "Недопустимое значение силы" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "Вы не можете приобрести пустой заказ!" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "Вы не можете купить заказ без пользователя!" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "Пользователь без баланса не может покупать с балансом!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "Недостаточно средств для выполнения заказа" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2044,157 +2208,153 @@ msgstr "" "Вы не можете купить без регистрации, пожалуйста, предоставьте следующую " "информацию: имя клиента, электронная почта клиента, номер телефона клиента" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Неверный способ оплаты: {payment_method} от {available_payment_methods}!" -#: core/models.py:1839 +#: core/models.py:1674 msgid "the price paid by the customer for this product at purchase time" msgstr "Цена, уплаченная клиентом за данный продукт на момент покупки" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "Покупная цена на момент заказа" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "" "Внутренние комментарии для администраторов об этом заказанном продукте" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "Внутренние комментарии" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "Уведомления пользователей" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "JSON-представление атрибутов этого элемента" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "Атрибуты заказанного продукта" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "Ссылка на родительский заказ, содержащий данный продукт" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "Родительский приказ" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "Конкретный продукт, связанный с этой линией заказа" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "Количество данного товара в заказе" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "Количество продукта" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "Текущий статус этого продукта в заказе" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "Состояние продуктовой линейки" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "У заказанного продукта должен быть связанный с ним заказ!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Для обратной связи указано неверное действие: {action}!" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "Вы не можете отозвать заказ, который не был получен" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "Имя" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "URL-адрес интеграции" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "Учетные данные для аутентификации" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "У вас может быть только один поставщик CRM по умолчанию" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "CRM" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "CRM" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "Ссылка на CRM заказа" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "Ссылки на CRM заказов" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "Скачать" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "Скачать" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "Вы не можете загрузить цифровой актив для незавершенного заказа" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "Комментарии пользователей об их опыте использования продукта" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "Комментарии к отзывам" -#: core/models.py:2079 +#: core/models.py:1921 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Ссылка на конкретный продукт в заказе, о котором идет речь в этом отзыве" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "Сопутствующий товар для заказа" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "Присвоенный пользователем рейтинг продукта" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "Рейтинг продукции" -#: core/models.py:2096 -msgid "feedback" -msgstr "Обратная связь" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2206,6 +2366,26 @@ msgstr "" msgid "error during promocode creation: {e!s}" msgstr "Ошибка при создании промокода: {e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Главная" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Свяжитесь с нами" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "О нас" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Информация об оплате" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Доставка" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/locale/sv_SE/LC_MESSAGES/django.mo b/core/locale/sv_SE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8814225da4c3b5574acfe3209f7dd67f84a39586 GIT binary patch literal 59038 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 literal 0 HcmV?d00001 diff --git a/core/locale/sv_SE/LC_MESSAGES/django.po b/core/locale/sv_SE/LC_MESSAGES/django.po new file mode 100644 index 00000000..182448d2 --- /dev/null +++ b/core/locale/sv_SE/LC_MESSAGES/django.po @@ -0,0 +1,2587 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: sv-se\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: core/abstract.py:11 +msgid "unique id" +msgstr "Unikt ID" + +#: core/abstract.py:12 +msgid "unique id is used to surely identify any database object" +msgstr "Unikt ID används för att säkert identifiera alla databasobjekt" + +#: core/abstract.py:19 +msgid "is active" +msgstr "Är aktiv" + +#: core/abstract.py:20 +msgid "" +"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" + +#: core/abstract.py:22 core/choices.py:18 +msgid "created" +msgstr "Skapad" + +#: core/abstract.py:22 +msgid "when the object first appeared on the database" +msgstr "När objektet först dök upp på databasen" + +#: core/abstract.py:23 +msgid "modified" +msgstr "Modifierad" + +#: core/abstract.py:23 +msgid "when the object was last modified" +msgstr "När objektet senast redigerades" + +#: core/admin.py:63 +msgid "translations" +msgstr "Översättningar" + +#: core/admin.py:67 +msgid "general" +msgstr "Allmänt" + +#: core/admin.py:69 +msgid "relations" +msgstr "Relationer" + +#: core/admin.py:87 +msgid "metadata" +msgstr "Metadata" + +#: core/admin.py:94 +msgid "timestamps" +msgstr "Tidsstämplar" + +#: core/admin.py:109 +#, python-format +msgid "activate selected %(verbose_name_plural)s" +msgstr "Aktivera vald %(verbose_name_plural)s." + +#: core/admin.py:114 +msgid "selected items have been activated." +msgstr "Valda artiklar har aktiverats!" + +#: core/admin.py:120 +#, python-format +msgid "deactivate selected %(verbose_name_plural)s" +msgstr "Avaktivera vald %(verbose_name_plural)s." + +#: core/admin.py:125 +msgid "selected items have been deactivated." +msgstr "Valda objekt har avaktiverats!" + +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 +msgid "attribute value" +msgstr "Attributvärde" + +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 +msgid "attribute values" +msgstr "Attributets värden" + +#: core/admin.py:146 +msgid "image" +msgstr "Bild" + +#: core/admin.py:147 core/graphene/object_types.py:501 +msgid "images" +msgstr "Bilder" + +#: core/admin.py:155 core/models.py:457 +msgid "stock" +msgstr "Stock" + +#: core/admin.py:156 core/graphene/object_types.py:663 +msgid "stocks" +msgstr "Stocks" + +#: core/admin.py:166 core/models.py:1735 +msgid "order product" +msgstr "Beställ produkt" + +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 +msgid "order products" +msgstr "Beställ produkter" + +#: core/admin.py:180 core/admin.py:181 +msgid "children" +msgstr "Barn och ungdomar" + +#: core/admin.py:566 +msgid "Config" +msgstr "Konfig" + +#: core/apps.py:8 +msgid "core" +msgstr "Kärnan" + +#: core/choices.py:4 core/choices.py:20 +msgid "finished" +msgstr "Färdig" + +#: core/choices.py:5 core/choices.py:19 +msgid "delivering" +msgstr "Leverera" + +#: core/choices.py:6 +msgid "delivered" +msgstr "Levereras" + +#: core/choices.py:7 +msgid "canceled" +msgstr "Annullerad" + +#: core/choices.py:8 core/choices.py:16 core/choices.py:24 +msgid "failed" +msgstr "Misslyckades" + +#: core/choices.py:9 core/choices.py:15 +msgid "pending" +msgstr "Avvaktande" + +#: core/choices.py:10 +msgid "accepted" +msgstr "Accepterad" + +#: core/choices.py:11 +msgid "money returned" +msgstr "Återbetalda pengar" + +#: core/choices.py:17 +msgid "payment" +msgstr "Betalning" + +#: core/choices.py:21 +msgid "momental" +msgstr "Momental" + +#: core/choices.py:24 +msgid "successful" +msgstr "Framgångsrik" + +#: core/docs/drf/views.py:17 core/graphene/mutations.py:36 +msgid "cache I/O" +msgstr "Cache I/O" + +#: core/docs/drf/views.py:19 +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 "" +"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." + +#: core/docs/drf/views.py:32 +msgid "get a list of supported languages" +msgstr "Hämta en lista över språk som stöds" + +#: core/docs/drf/views.py:41 +msgid "get application's exposable parameters" +msgstr "Hämta applikationens exponerbara parametrar" + +#: core/docs/drf/views.py:48 +msgid "send a message to the support team" +msgstr "Skicka ett meddelande till supportteamet" + +#: core/docs/drf/views.py:59 core/graphene/mutations.py:55 +msgid "request a CORSed URL" +msgstr "Begär en CORSed URL. Endast https tillåtet." + +#: core/docs/drf/views.py:85 +msgid "global search endpoint to query across project's tables" +msgstr "Global sökpunkt för att söka i projektets alla tabeller" + +#: core/docs/drf/views.py:91 +msgid "purchase an order as a business" +msgstr "Köpa en order som ett företag" + +#: core/docs/drf/views.py:98 +msgid "" +"purchase an order as a business, using the provided `products` with " +"`product_uuid` and `attributes`." +msgstr "" +"Köp en order som ett företag, med hjälp av de tillhandahållna `produkterna` " +"med `produkt_uuid` och `attribut`." + +#: core/docs/drf/viewsets.py:44 +msgid "list all attribute groups (simple view)" +msgstr "Lista alla attributgrupper (enkel vy)" + +#: core/docs/drf/viewsets.py:48 +msgid "retrieve a single attribute group (detailed view)" +msgstr "Hämta en enskild attributgrupp (detaljerad vy)" + +#: core/docs/drf/viewsets.py:52 +msgid "create an attribute group" +msgstr "Skapa en attributgrupp" + +#: core/docs/drf/viewsets.py:56 +msgid "delete an attribute group" +msgstr "Ta bort en attributgrupp" + +#: core/docs/drf/viewsets.py:60 +msgid "rewrite an existing attribute group saving non-editables" +msgstr "" +"Skriva om en befintlig attributgrupp och spara icke-redigerbara attribut" + +#: core/docs/drf/viewsets.py:64 +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" + +#: core/docs/drf/viewsets.py:71 +msgid "list all attributes (simple view)" +msgstr "Lista alla attribut (enkel vy)" + +#: core/docs/drf/viewsets.py:75 +msgid "retrieve a single attribute (detailed view)" +msgstr "Hämta ett enskilt attribut (detaljerad vy)" + +#: core/docs/drf/viewsets.py:79 +msgid "create an attribute" +msgstr "Skapa ett attribut" + +#: core/docs/drf/viewsets.py:83 +msgid "delete an attribute" +msgstr "Ta bort ett attribut" + +#: core/docs/drf/viewsets.py:87 +msgid "rewrite an existing attribute saving non-editables" +msgstr "Skriva om ett befintligt attribut och spara icke-redigerbara" + +#: core/docs/drf/viewsets.py:91 +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" + +#: core/docs/drf/viewsets.py:98 +msgid "list all attribute values (simple view)" +msgstr "Lista alla attributvärden (enkel vy)" + +#: core/docs/drf/viewsets.py:102 +msgid "retrieve a single attribute value (detailed view)" +msgstr "Hämta ett enskilt attributvärde (detaljerad vy)" + +#: core/docs/drf/viewsets.py:106 +msgid "create an attribute value" +msgstr "Skapa ett attributvärde" + +#: core/docs/drf/viewsets.py:110 +msgid "delete an attribute value" +msgstr "Ta bort ett attributvärde" + +#: core/docs/drf/viewsets.py:114 +msgid "rewrite an existing attribute value saving non-editables" +msgstr "Skriva om ett befintligt attributvärde som sparar icke-redigerbara" + +#: core/docs/drf/viewsets.py:118 +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" + +#: core/docs/drf/viewsets.py:125 core/docs/drf/viewsets.py:126 +msgid "list all categories (simple view)" +msgstr "Lista alla kategorier (enkel vy)" + +#: core/docs/drf/viewsets.py:130 core/docs/drf/viewsets.py:131 +msgid "retrieve a single category (detailed view)" +msgstr "Hämta en enskild kategori (detaljerad vy)" + +#: core/docs/drf/viewsets.py:135 core/docs/drf/viewsets.py:136 +msgid "create a category" +msgstr "Skapa en kategori" + +#: core/docs/drf/viewsets.py:140 core/docs/drf/viewsets.py:141 +msgid "delete a category" +msgstr "Ta bort en kategori" + +#: core/docs/drf/viewsets.py:145 core/docs/drf/viewsets.py:146 +msgid "rewrite an existing category saving non-editables" +msgstr "Skriva om en befintlig kategori som sparar icke-redigerbara" + +#: core/docs/drf/viewsets.py:150 core/docs/drf/viewsets.py:151 +msgid "rewrite some fields of an existing category saving non-editables" +msgstr "Skriva om vissa fält i en befintlig kategori spara icke-redigerbara" + +#: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 +#: core/graphene/object_types.py:117 core/graphene/object_types.py:207 +#: core/graphene/object_types.py:509 +msgid "SEO Meta snapshot" +msgstr "SEO Meta snapshot" + +#: core/docs/drf/viewsets.py:156 +msgid "returns a snapshot of the category's SEO meta data" +msgstr "Returnerar en ögonblicksbild av kategorins SEO-metadata" + +#: core/docs/drf/viewsets.py:161 +msgid "Category UUID or slug" +msgstr "Kategori UUID eller slug" + +#: core/docs/drf/viewsets.py:174 +msgid "list all orders (simple view)" +msgstr "Lista alla kategorier (enkel vy)" + +#: core/docs/drf/viewsets.py:175 +msgid "for non-staff users, only their own orders are returned." +msgstr "" +"För användare som inte är anställda returneras endast deras egna " +"beställningar." + +#: core/docs/drf/viewsets.py:181 +msgid "" +"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" + +#: core/docs/drf/viewsets.py:188 +msgid "Filter orders with buy_time >= this ISO 8601 datetime" +msgstr "Filtrera order med buy_time >= denna ISO 8601-datumtid" + +#: core/docs/drf/viewsets.py:193 +msgid "Filter orders with buy_time <= this ISO 8601 datetime" +msgstr "Filtrera order med buy_time <= denna ISO 8601-datumtid" + +#: core/docs/drf/viewsets.py:198 +msgid "Filter by exact order UUID" +msgstr "Filtrera efter exakt order UUID" + +#: core/docs/drf/viewsets.py:203 +msgid "Filter by exact human-readable order ID" +msgstr "Filtrera efter exakt mänskligt läsbart order-ID" + +#: core/docs/drf/viewsets.py:208 +msgid "Filter by user's email (case-insensitive exact match)" +msgstr "" +"Filtrera efter användarens e-post (exakt matchning utan " +"skiftlägeskänslighet)" + +#: core/docs/drf/viewsets.py:213 +msgid "Filter by user's UUID" +msgstr "Filtrera efter användarens UUID" + +#: core/docs/drf/viewsets.py:218 +msgid "Filter by order status (case-insensitive substring match)" +msgstr "Filtrera efter orderstatus (skiftlägeskänslig matchning av delsträng)" + +#: core/docs/drf/viewsets.py:224 +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')." +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 " +"ordning (t.ex. \"-buy_time\")." + +#: core/docs/drf/viewsets.py:233 +msgid "retrieve a single order (detailed view)" +msgstr "Hämta en enskild kategori (detaljerad vy)" + +#: core/docs/drf/viewsets.py:237 +msgid "create an order" +msgstr "Skapa ett attribut" + +#: core/docs/drf/viewsets.py:238 +msgid "doesn't work for non-staff users." +msgstr "Fungerar inte för användare som inte är anställda." + +#: core/docs/drf/viewsets.py:242 +msgid "delete an order" +msgstr "Ta bort ett attribut" + +#: core/docs/drf/viewsets.py:246 +msgid "rewrite an existing order saving non-editables" +msgstr "Skriva om en befintlig kategori som sparar icke-redigerbara" + +#: core/docs/drf/viewsets.py:250 +msgid "rewrite some fields of an existing order saving non-editables" +msgstr "Skriva om vissa fält i en befintlig kategori spara icke-redigerbara" + +#: core/docs/drf/viewsets.py:254 +msgid "purchase an order" +msgstr "Inköpspris vid ordertillfället" + +#: core/docs/drf/viewsets.py:256 +msgid "" +"finalizes the order purchase. if `force_balance` is used, the purchase is " +"completed using the user's balance; if `force_payment` is used, a " +"transaction is initiated." +msgstr "" +"Slutför orderköpet. Om `force_balance` används, slutförs köpet med " +"användarens saldo; Om `force_payment` används, initieras en transaktion." + +#: core/docs/drf/viewsets.py:268 core/graphene/mutations.py:324 +msgid "purchase an order without account creation" +msgstr "köpa en order utan att skapa ett konto" + +#: core/docs/drf/viewsets.py:269 +msgid "finalizes the order purchase for a non-registered user." +msgstr "slutför orderköpet för en icke registrerad användare." + +#: core/docs/drf/viewsets.py:277 +msgid "add product to order" +msgstr "Lägg till en produkt i ordern" + +#: core/docs/drf/viewsets.py:278 +msgid "" +"adds a product to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Lägger till en produkt till en order med hjälp av de angivna `product_uuid` " +"och `attributes`." + +#: core/docs/drf/viewsets.py:283 +msgid "add a list of products to order, quantities will not count" +msgstr "Lägg till en lista med produkter till ordern, kvantiteter räknas inte" + +#: core/docs/drf/viewsets.py:284 +msgid "" +"adds a list of products to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Lägger till en lista med produkter till en order med hjälp av de angivna " +"`product_uuid` och `attributes`." + +#: core/docs/drf/viewsets.py:289 +msgid "remove product from order" +msgstr "Ta bort en produkt från ordern" + +#: core/docs/drf/viewsets.py:290 +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`." + +#: core/docs/drf/viewsets.py:295 +msgid "remove product from order, quantities will not count" +msgstr "Ta bort en produkt från ordern, kvantiteter räknas inte" + +#: core/docs/drf/viewsets.py:296 +msgid "" +"removes a list of products from an order using the provided `product_uuid` " +"and `attributes`" +msgstr "" +"Tar bort en lista med produkter från en order med hjälp av de angivna " +"`product_uuid` och `attributes`." + +#: core/docs/drf/viewsets.py:304 +msgid "list all wishlists (simple view)" +msgstr "Lista alla attribut (enkel vy)" + +#: core/docs/drf/viewsets.py:305 +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." + +#: core/docs/drf/viewsets.py:309 +msgid "retrieve a single wishlist (detailed view)" +msgstr "Hämta ett enskilt attribut (detaljerad vy)" + +#: core/docs/drf/viewsets.py:313 +msgid "create an wishlist" +msgstr "Skapa ett attribut" + +#: core/docs/drf/viewsets.py:314 +msgid "Doesn't work for non-staff users." +msgstr "Fungerar inte för användare som inte är anställda." + +#: core/docs/drf/viewsets.py:318 +msgid "delete an wishlist" +msgstr "Ta bort ett attribut" + +#: core/docs/drf/viewsets.py:322 +msgid "rewrite an existing wishlist saving non-editables" +msgstr "Skriva om ett befintligt attribut och spara icke-redigerbara" + +#: core/docs/drf/viewsets.py:326 +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" + +#: core/docs/drf/viewsets.py:330 +msgid "add product to wishlist" +msgstr "Lägg till en produkt i ordern" + +#: core/docs/drf/viewsets.py:331 +msgid "adds a product to an wishlist using the provided `product_uuid`" +msgstr "" +"Lägger till en produkt i en önskelista med hjälp av den angivna " +"`product_uuid`." + +#: core/docs/drf/viewsets.py:336 +msgid "remove product from wishlist" +msgstr "Ta bort en produkt från önskelistan" + +#: core/docs/drf/viewsets.py:337 +msgid "removes a product from an wishlist using the provided `product_uuid`" +msgstr "" +"Tar bort en produkt från en önskelista med hjälp av den angivna " +"`product_uuid`" + +#: core/docs/drf/viewsets.py:342 +msgid "add many products to wishlist" +msgstr "Lägg till många produkter på önskelistan" + +#: core/docs/drf/viewsets.py:343 +msgid "adds many products to an wishlist using the provided `product_uuids`" +msgstr "" +"Lägger till många produkter till en önskelista med hjälp av de angivna " +"`product_uuids`" + +#: core/docs/drf/viewsets.py:348 +msgid "remove many products from wishlist" +msgstr "Ta bort en produkt från ordern" + +#: core/docs/drf/viewsets.py:349 +msgid "" +"removes many products from an wishlist using the provided `product_uuids`" +msgstr "" +"Tar bort många produkter från en önskelista med hjälp av de angivna " +"`product_uuids`" + +#: core/docs/drf/viewsets.py:356 +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" +"• **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" +"`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" +"- **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" +"`b64-beskrivning=icontains-aGVhdC1jb2xk`" + +#: core/docs/drf/viewsets.py:372 core/docs/drf/viewsets.py:373 +msgid "list all products (simple view)" +msgstr "Lista alla produkter (enkel vy)" + +#: core/docs/drf/viewsets.py:378 +msgid "(exact) Product UUID" +msgstr "(exakt) UUID för produkt" + +#: core/docs/drf/viewsets.py:384 +msgid "(icontains) Product name" +msgstr "(i containrar) Produktnamn" + +#: core/docs/drf/viewsets.py:390 +msgid "(list) Category names, case-insensitive" +msgstr "(list) Kategorinamn, skiftlägesokänsliga" + +#: core/docs/drf/viewsets.py:396 +msgid "(exact) Category UUID" +msgstr "(exakt) Kategori UUID" + +#: core/docs/drf/viewsets.py:402 +msgid "(list) Tag names, case-insensitive" +msgstr "(list) Namn på taggar, skiftlägesokänsliga" + +#: core/docs/drf/viewsets.py:408 +msgid "(gte) Minimum stock price" +msgstr "(gte) Lägsta aktiekurs" + +#: core/docs/drf/viewsets.py:414 +msgid "(lte) Maximum stock price" +msgstr "(lte) Maximum stock price" + +#: core/docs/drf/viewsets.py:420 +msgid "(exact) Only active products" +msgstr "(exakt) Endast aktiva produkter" + +#: core/docs/drf/viewsets.py:426 +msgid "(iexact) Brand name" +msgstr "(iexact) Varumärke" + +#: core/docs/drf/viewsets.py:438 +msgid "(gt) Minimum stock quantity" +msgstr "(gt) Minsta lagerkvantitet" + +#: core/docs/drf/viewsets.py:444 +msgid "(exact) Digital vs. physical" +msgstr "(exakt) Digital vs. fysisk" + +#: core/docs/drf/viewsets.py:451 +msgid "" +"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" +"**Tillåtna:** uuid, betyg, namn, slug, skapad, modifierad, pris, slumpmässig" + +#: core/docs/drf/viewsets.py:465 core/docs/drf/viewsets.py:466 +msgid "retrieve a single product (detailed view)" +msgstr "Hämta en enskild produkt (detaljerad vy)" + +#: core/docs/drf/viewsets.py:471 core/docs/drf/viewsets.py:495 +#: core/docs/drf/viewsets.py:511 core/docs/drf/viewsets.py:527 +#: core/docs/drf/viewsets.py:543 core/docs/drf/viewsets.py:559 +msgid "Product UUID or slug" +msgstr "Produkt UUID eller Slug" + +#: core/docs/drf/viewsets.py:481 core/docs/drf/viewsets.py:482 +msgid "create a product" +msgstr "Skapa en produkt" + +#: core/docs/drf/viewsets.py:489 core/docs/drf/viewsets.py:490 +msgid "rewrite an existing product, preserving non-editable fields" +msgstr "Skriva om en befintlig produkt och bevara icke redigerbara fält" + +#: core/docs/drf/viewsets.py:505 core/docs/drf/viewsets.py:506 +msgid "" +"update some fields of an existing product, preserving non-editable fields" +msgstr "" +"Uppdatera vissa fält i en befintlig produkt och bevara icke redigerbara fält" + +#: core/docs/drf/viewsets.py:521 core/docs/drf/viewsets.py:522 +msgid "delete a product" +msgstr "Ta bort en produkt" + +#: core/docs/drf/viewsets.py:537 core/docs/drf/viewsets.py:538 +msgid "lists all permitted feedbacks for a product" +msgstr "listar alla tillåtna återkopplingar för en produkt" + +#: core/docs/drf/viewsets.py:554 +msgid "returns a snapshot of the product's SEO meta data" +msgstr "Returnerar en ögonblicksbild av produktens SEO-metadata" + +#: core/docs/drf/viewsets.py:572 +msgid "list all addresses" +msgstr "Lista alla adresser" + +#: core/docs/drf/viewsets.py:579 +msgid "retrieve a single address" +msgstr "Hämta en enskild adress" + +#: core/docs/drf/viewsets.py:586 +msgid "create a new address" +msgstr "Skapa en ny adress" + +#: core/docs/drf/viewsets.py:594 +msgid "delete an address" +msgstr "Ta bort en adress" + +#: core/docs/drf/viewsets.py:601 +msgid "update an entire address" +msgstr "Uppdatera en hel adress" + +#: core/docs/drf/viewsets.py:609 +msgid "partially update an address" +msgstr "Delvis uppdatera en adress" + +#: core/docs/drf/viewsets.py:617 +msgid "autocomplete address suggestions" +msgstr "Autokomplettering av adressinmatning" + +#: core/docs/drf/viewsets.py:622 +msgid "raw data query string, please append with data from geo-IP endpoint" +msgstr "Frågesträng för rådata, komplettera med data från geo-IP-slutpunkt" + +#: core/docs/drf/viewsets.py:628 +msgid "limit the results amount, 1 < limit < 10, default: 5" +msgstr "begränsar resultatmängden, 1 < limit < 10, standard: 5" + +#: core/docs/drf/viewsets.py:641 +msgid "list all feedbacks (simple view)" +msgstr "lista alla återkopplingar (enkel vy)" + +#: core/docs/drf/viewsets.py:645 +msgid "retrieve a single feedback (detailed view)" +msgstr "hämta en enskild feedback (detaljerad vy)" + +#: core/docs/drf/viewsets.py:649 +msgid "create a feedback" +msgstr "skapa en återkoppling" + +#: core/docs/drf/viewsets.py:653 +msgid "delete a feedback" +msgstr "ta bort en återkoppling" + +#: core/docs/drf/viewsets.py:657 +msgid "rewrite an existing feedback saving non-editables" +msgstr "skriva om en befintlig feedback och spara icke-redigerbara filer" + +#: core/docs/drf/viewsets.py:661 +msgid "rewrite some fields of an existing feedback saving non-editables" +msgstr "" +"skriva om vissa fält i en befintlig feedback och spara icke-redigerbara fält" + +#: core/docs/drf/viewsets.py:668 +msgid "list all order–product relations (simple view)" +msgstr "lista alla order-produktrelationer (enkel vy)" + +#: core/docs/drf/viewsets.py:675 +msgid "retrieve a single order–product relation (detailed view)" +msgstr "hämta en enskild order-produktrelation (detaljerad vy)" + +#: core/docs/drf/viewsets.py:682 +msgid "create a new order–product relation" +msgstr "skapa en ny relation mellan order och produkt" + +#: core/docs/drf/viewsets.py:689 +msgid "replace an existing order–product relation" +msgstr "ersätta en befintlig order-produktrelation" + +#: core/docs/drf/viewsets.py:696 +msgid "partially update an existing order–product relation" +msgstr "delvis uppdatera en befintlig order-produktrelation" + +#: core/docs/drf/viewsets.py:703 +msgid "delete an order–product relation" +msgstr "ta bort en order-produktrelation" + +#: core/docs/drf/viewsets.py:710 +msgid "add or remove feedback on an order–product relation" +msgstr "lägga till eller ta bort feedback om en order-produktrelation" + +#: core/elasticsearch/__init__.py:105 +msgid "no search term provided." +msgstr "Ingen sökterm angavs." + +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 +msgid "UUID" +msgstr "UUID" + +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 +msgid "Name" +msgstr "Namn" + +#: core/filters.py:66 core/filters.py:562 +msgid "Categories" +msgstr "Kategorier" + +#: core/filters.py:68 +msgid "Categories Slugs" +msgstr "Kategorier Sniglar" + +#: core/filters.py:69 core/filters.py:437 +msgid "Tags" +msgstr "Etiketter" + +#: core/filters.py:70 +msgid "Min Price" +msgstr "Min pris" + +#: core/filters.py:71 +msgid "Max Price" +msgstr "Max pris" + +#: core/filters.py:72 +msgid "Is Active" +msgstr "Är aktiv" + +#: core/filters.py:73 +msgid "Brand" +msgstr "Varumärke" + +#: core/filters.py:74 +msgid "Attributes" +msgstr "Attribut" + +#: core/filters.py:75 +msgid "Quantity" +msgstr "Kvantitet" + +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 +msgid "Slug" +msgstr "Snigel" + +#: core/filters.py:77 +msgid "Is Digital" +msgstr "Är digital" + +#: core/filters.py:78 +msgid "Include sub-categories" +msgstr "Inkludera underkategorier" + +#: core/filters.py:81 +msgid "Include personal ordered" +msgstr "Inkludera personligt beställda produkter" + +#: core/filters.py:83 core/models.py:538 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:166 +msgid "there must be a category_uuid to use include_subcategories flag" +msgstr "" +"Det måste finnas en category_uuid för att använda flaggan " +"include_subcategories" + +#: core/filters.py:356 +msgid "Search (ID, product name or part number)" +msgstr "Sök (ID, produktnamn eller artikelnummer)" + +#: core/filters.py:359 +msgid "Bought after (inclusive)" +msgstr "Köpt efter (inklusive)" + +#: core/filters.py:360 +msgid "Bought before (inclusive)" +msgstr "Köpt tidigare (inklusive)" + +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 +msgid "User email" +msgstr "Användarens e-post" + +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 +msgid "User UUID" +msgstr "Användarens UUID" + +#: core/filters.py:365 +msgid "Status" +msgstr "Status" + +#: core/filters.py:369 +msgid "Human Readable ID" +msgstr "Human Readable ID" + +#: core/filters.py:430 +msgid "Parent" +msgstr "Förälder" + +#: core/filters.py:434 +msgid "Whole category(has at least 1 product or not)" +msgstr "Hela kategorin (har minst 1 produkt eller inte)" + +#: core/filters.py:438 +msgid "Level" +msgstr "Nivå" + +#: core/filters.py:598 +msgid "Product UUID" +msgstr "Produktens UUID" + +#: core/graphene/mutations.py:39 +msgid "key to look for in or set into the cache" +msgstr "Nyckel att leta efter i eller sätta in i cachen" + +#: core/graphene/mutations.py:40 +msgid "data to store in cache" +msgstr "Data som ska lagras i cacheminnet" + +#: core/graphene/mutations.py:43 +msgid "timeout in seconds to set the data for into the cache" +msgstr "Timeout i sekunder för att lägga data i cacheminnet" + +#: core/graphene/mutations.py:46 +msgid "cached data" +msgstr "Cachad data" + +#: core/graphene/mutations.py:60 +msgid "camelized JSON data from the requested URL" +msgstr "Cameliserad JSON-data från den begärda URL:en" + +#: core/graphene/mutations.py:65 core/views.py:360 +msgid "only URLs starting with http(s):// are allowed" +msgstr "Endast webbadresser som börjar med http(s):// är tillåtna" + +#: core/graphene/mutations.py:80 +msgid "add a product to the order" +msgstr "Lägg till en produkt i ordern" + +#: core/graphene/mutations.py:101 core/graphene/mutations.py:127 +#: core/graphene/mutations.py:232 core/graphene/mutations.py:279 +#, python-brace-format +msgid "order {order_uuid} not found" +msgstr "Order {order_uuid} hittades inte!" + +#: core/graphene/mutations.py:106 core/graphene/mutations.py:153 +msgid "remove a product from the order" +msgstr "Ta bort en produkt från ordern" + +#: core/graphene/mutations.py:132 +msgid "remove all products from the order" +msgstr "Ta bort alla produkter från ordern" + +#: core/graphene/mutations.py:175 +msgid "buy an order" +msgstr "Köpa en order" + +#: core/graphene/mutations.py:204 core/graphene/mutations.py:257 +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!" + +#: core/graphene/mutations.py:229 core/graphene/mutations.py:486 +#: core/graphene/mutations.py:527 core/viewsets.py:821 +msgid "wrong type came from order.buy() method: {type(instance)!s}" +msgstr "Fel typ kom från order.buy()-metoden: {type(instance)!s}" + +#: core/graphene/mutations.py:237 +msgid "perform an action on a list of products in the order" +msgstr "Utför en åtgärd på en lista med produkter i ordern" + +#: core/graphene/mutations.py:242 +msgid "remove/add" +msgstr "Ta bort/lägga till" + +#: core/graphene/mutations.py:274 core/graphene/mutations.py:314 +msgid "action must be either add or remove" +msgstr "Åtgärden måste vara antingen \"lägg till\" eller \"ta bort\"!" + +#: core/graphene/mutations.py:284 +msgid "perform an action on a list of products in the wishlist" +msgstr "Utför en åtgärd på en lista med produkter i önskelistan" + +#: core/graphene/mutations.py:302 +msgid "please provide wishlist_uuid value" +msgstr "Vänligen ange värdet för `wishlist_uuid`." + +#: core/graphene/mutations.py:319 core/graphene/mutations.py:392 +#: core/graphene/mutations.py:419 core/graphene/mutations.py:446 +#: core/graphene/mutations.py:489 +#, python-brace-format +msgid "wishlist {wishlist_uuid} not found" +msgstr "Önskelista {wishlist_uuid} hittades inte!" + +#: core/graphene/mutations.py:370 +msgid "add a product to the wishlist" +msgstr "Lägg till en produkt i ordern" + +#: core/graphene/mutations.py:397 +msgid "remove a product from the wishlist" +msgstr "Ta bort en produkt från ordern" + +#: core/graphene/mutations.py:424 +msgid "remove all products from the wishlist" +msgstr "Ta bort en produkt från ordern" + +#: core/graphene/mutations.py:451 +msgid "buy all products from the wishlist" +msgstr "Ta bort en produkt från ordern" + +#: core/graphene/mutations.py:494 +msgid "buy a product" +msgstr "Köpa en order" + +#: core/graphene/mutations.py:500 +msgid "" +"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" + +#: core/graphene/mutations.py:532 +msgid "add or delete a feedback for orderproduct" +msgstr "Lägg till eller ta bort en feedback för orderprodukten" + +#: core/graphene/mutations.py:555 +msgid "action must be either `add` or `remove`" +msgstr "Åtgärden måste vara antingen `add` eller `remove`!" + +#: core/graphene/mutations.py:558 +#, python-brace-format +msgid "order product {order_product_uuid} not found" +msgstr "Orderprodukt {order_product_uuid} hittades inte!" + +#: core/graphene/mutations.py:621 +msgid "original address string provided by the user" +msgstr "Originaladresssträng som tillhandahålls av användaren" + +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 +#: core/viewsets.py:824 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} existerar inte: {uuid}!" + +#: core/graphene/mutations.py:668 +msgid "limit must be between 1 and 10" +msgstr "Gränsen måste vara mellan 1 och 10" + +#: core/graphene/mutations.py:713 +msgid "elasticsearch - works like a charm" +msgstr "ElasticSearch - fungerar som en smäck" + +#: core/graphene/object_types.py:82 core/graphene/object_types.py:397 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 +msgid "attributes" +msgstr "Attribut" + +#: core/graphene/object_types.py:95 +msgid "grouped attributes" +msgstr "Grupperade attribut" + +#: core/graphene/object_types.py:102 +msgid "groups of attributes" +msgstr "Grupper av attribut" + +#: core/graphene/object_types.py:116 core/graphene/object_types.py:193 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 +msgid "categories" +msgstr "Kategorier" + +#: core/graphene/object_types.py:124 core/models.py:395 +msgid "brands" +msgstr "Brands" + +#: core/graphene/object_types.py:195 +msgid "category image url" +msgstr "Kategorier" + +#: core/graphene/object_types.py:196 core/graphene/object_types.py:344 +#: core/models.py:249 +msgid "markup percentage" +msgstr "Procentuell påslagning" + +#: core/graphene/object_types.py:199 +msgid "which attributes and values can be used for filtering this category." +msgstr "" +"Vilka attribut och värden som kan användas för att filtrera denna kategori." + +#: core/graphene/object_types.py:203 +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." + +#: core/graphene/object_types.py:205 +msgid "tags for this category" +msgstr "Taggar för denna kategori" + +#: core/graphene/object_types.py:206 +msgid "products in this category" +msgstr "Produkter i denna kategori" + +#: core/graphene/object_types.py:351 core/models.py:155 +msgid "vendors" +msgstr "Leverantörer" + +#: core/graphene/object_types.py:355 +msgid "Latitude (Y coordinate)" +msgstr "Latitud (Y-koordinat)" + +#: core/graphene/object_types.py:356 +msgid "Longitude (X coordinate)" +msgstr "Longitud (X-koordinat)" + +#: core/graphene/object_types.py:385 +msgid "comment" +msgstr "Hur gör man" + +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 +msgid "rating value from 1 to 10, inclusive, or 0 if not set." +msgstr "Ratingvärde från 1 till och med 10, eller 0 om det inte är inställt." + +#: core/graphene/object_types.py:393 +msgid "represents feedback from a user." +msgstr "Representerar feedback från en användare." + +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 +msgid "notifications" +msgstr "Meddelanden" + +#: core/graphene/object_types.py:399 +msgid "download url for this order product if applicable" +msgstr "Nedladdningsadress för denna orderprodukt om tillämpligt" + +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Återkoppling" + +#: core/graphene/object_types.py:434 +msgid "a list of order products in this order" +msgstr "En lista över orderprodukter i den här ordern" + +#: core/graphene/object_types.py:436 core/models.py:1198 +msgid "billing address" +msgstr "Faktureringsadress" + +#: core/graphene/object_types.py:439 +msgid "" +"shipping address for this order, leave blank if same as billing address or " +"if not applicable" +msgstr "" +"Leveransadress för denna order, lämna tom om den är samma som " +"faktureringsadressen eller om den inte är tillämplig" + +#: core/graphene/object_types.py:441 +msgid "total price of this order" +msgstr "Totalpris för denna order" + +#: core/graphene/object_types.py:442 +msgid "total quantity of products in order" +msgstr "Totalt antal produkter i ordern" + +#: core/graphene/object_types.py:443 +msgid "are all products in the order digital" +msgstr "Är alla produkter i beställningen digitala" + +#: core/graphene/object_types.py:446 +msgid "transactions for this order" +msgstr "Transaktioner för denna order" + +#: core/graphene/object_types.py:465 core/models.py:1262 +msgid "orders" +msgstr "Beställningar" + +#: core/graphene/object_types.py:486 +msgid "image url" +msgstr "URL för bild" + +#: core/graphene/object_types.py:493 +msgid "product's images" +msgstr "Produktens bilder" + +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 +msgid "category" +msgstr "Kategori" + +#: core/graphene/object_types.py:502 core/models.py:1939 +msgid "feedbacks" +msgstr "Återkoppling" + +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 +msgid "brand" +msgstr "Varumärke" + +#: core/graphene/object_types.py:504 core/models.py:101 +msgid "attribute groups" +msgstr "Attributgrupper" + +#: core/graphene/object_types.py:505 +#: core/templates/digital_order_created_email.html:111 +#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/shipped_order_created_email.html:109 +#: core/templates/shipped_order_delivered_email.html:109 +msgid "price" +msgstr "Pris" + +#: core/graphene/object_types.py:506 +#: core/templates/digital_order_created_email.html:110 +#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/shipped_order_created_email.html:108 +#: core/templates/shipped_order_delivered_email.html:108 +msgid "quantity" +msgstr "Kvantitet" + +#: core/graphene/object_types.py:507 +msgid "number of feedbacks" +msgstr "Antal återkopplingar" + +#: core/graphene/object_types.py:508 +msgid "only available for personal orders" +msgstr "Produkter endast tillgängliga för personliga beställningar" + +#: core/graphene/object_types.py:534 core/models.py:548 +msgid "products" +msgstr "Produkter" + +#: core/graphene/object_types.py:634 +msgid "promocodes" +msgstr "Promokoder" + +#: core/graphene/object_types.py:644 +msgid "products on sale" +msgstr "Produkter på rea" + +#: core/graphene/object_types.py:651 core/models.py:843 +msgid "promotions" +msgstr "Kampanjer" + +#: core/graphene/object_types.py:655 core/models.py:154 +msgid "vendor" +msgstr "Leverantör" + +#: core/graphene/object_types.py:656 core/models.py:547 +#: core/templates/digital_order_created_email.html:109 +#: core/templates/digital_order_delivered_email.html:107 +#: core/templates/shipped_order_created_email.html:107 +#: core/templates/shipped_order_delivered_email.html:107 +msgid "product" +msgstr "Produkt" + +#: core/graphene/object_types.py:667 core/models.py:868 +msgid "wishlisted products" +msgstr "Önskelistade produkter" + +#: core/graphene/object_types.py:673 core/models.py:885 +msgid "wishlists" +msgstr "Önskelistor" + +#: core/graphene/object_types.py:677 +msgid "tagged products" +msgstr "Taggade produkter" + +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 +msgid "product tags" +msgstr "Produkttaggar" + +#: core/graphene/object_types.py:688 +msgid "tagged categories" +msgstr "Taggade kategorier" + +#: core/graphene/object_types.py:695 +msgid "categories tags" +msgstr "Kategoriernas taggar" + +#: core/graphene/object_types.py:699 +msgid "project name" +msgstr "Projektets namn" + +#: core/graphene/object_types.py:700 +msgid "company email" +msgstr "Företagets e-post" + +#: core/graphene/object_types.py:701 +msgid "company name" +msgstr "Företagets namn" + +#: core/graphene/object_types.py:702 +msgid "company address" +msgstr "Företagets adress" + +#: core/graphene/object_types.py:703 +msgid "company phone number" +msgstr "Företagets telefonnummer" + +#: core/graphene/object_types.py:704 +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" + +#: core/graphene/object_types.py:705 +msgid "email host user" +msgstr "E-post värd användare" + +#: core/graphene/object_types.py:706 +msgid "maximum amount for payment" +msgstr "Högsta belopp för betalning" + +#: core/graphene/object_types.py:707 +msgid "minimum amount for payment" +msgstr "Lägsta belopp för betalning" + +#: core/graphene/object_types.py:708 +msgid "analytics data" +msgstr "Analysdata" + +#: core/graphene/object_types.py:709 +msgid "advertisement data" +msgstr "Annonsdata" + +#: core/graphene/object_types.py:712 +msgid "company configuration" +msgstr "Konfiguration" + +#: core/graphene/object_types.py:716 +msgid "language code" +msgstr "Språkkod" + +#: core/graphene/object_types.py:717 +msgid "language name" +msgstr "Språkets namn" + +#: core/graphene/object_types.py:718 +msgid "language flag, if exists :)" +msgstr "Språkflagga, om sådan finns :)" + +#: core/graphene/object_types.py:721 +msgid "supported languages" +msgstr "Hämta en lista över språk som stöds" + +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 +msgid "products search results" +msgstr "Sökresultat för produkter" + +#: core/graphene/object_types.py:755 +msgid "posts search results" +msgstr "Sökresultat för produkter" + +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"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ändbart för att kategorisera och hantera attribut på ett mer effektivt " +"sätt i ett komplext system." + +#: core/models.py:86 +msgid "parent of this group" +msgstr "Förälder till denna grupp" + +#: core/models.py:87 +msgid "parent attribute group" +msgstr "Överordnad attributgrupp" + +#: core/models.py:91 core/models.py:92 +msgid "attribute group's name" +msgstr "Attributgruppens namn" + +#: core/models.py:100 core/models.py:628 +msgid "attribute group" +msgstr "Attributgrupp" + +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +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 " +"interagerar med tredjepartsleverantörer." + +#: core/models.py:119 +msgid "stores credentials and endpoints required for vendor communication" +msgstr "" +"Lagrar autentiseringsuppgifter och ändpunkter som krävs för leverantörens " +"API-kommunikation" + +#: core/models.py:120 +msgid "authentication info" +msgstr "Autentiseringsinformation" + +#: core/models.py:125 +msgid "define the markup for products retrieved from this vendor" +msgstr "" +"Definiera markeringen för produkter som hämtas från den här leverantören" + +#: core/models.py:126 +msgid "vendor markup percentage" +msgstr "Leverantörens påslag i procent" + +#: core/models.py:130 +msgid "name of this vendor" +msgstr "Namn på denna säljare" + +#: core/models.py:131 +msgid "vendor name" +msgstr "Leverantörens namn" + +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"Representerar en produkttagg som används för att klassificera eller " +"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." + +#: core/models.py:175 core/models.py:206 +msgid "internal tag identifier for the product tag" +msgstr "Intern taggidentifierare för produkttaggen" + +#: core/models.py:176 core/models.py:207 +msgid "tag name" +msgstr "Tagg namn" + +#: core/models.py:180 core/models.py:211 +msgid "user-friendly name for the product tag" +msgstr "Användarvänligt namn för produkttaggen" + +#: core/models.py:181 core/models.py:212 +msgid "tag display name" +msgstr "Taggens visningsnamn" + +#: core/models.py:189 +msgid "product tag" +msgstr "Produktmärkning" + +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Representerar en kategoritagg som används för produkter. Den här klassen " +"modellerar en kategoritagg som kan användas för att associera och " +"klassificera produkter. Den innehåller attribut för en intern " +"taggidentifierare och ett användarvänligt visningsnamn." + +#: core/models.py:220 +msgid "category tag" +msgstr "kategori tagg" + +#: core/models.py:221 core/models.py:293 +msgid "category tags" +msgstr "Kategoritaggar" + +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"Representerar en kategorientitet för att organisera och gruppera relaterade " +"objekt i en hierarkisk struktur. Kategorier kan ha hierarkiska relationer " +"med andra kategorier, vilket stöder förälder-barn-relationer. Klassen " +"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 " +"som bilder, taggar eller prioritet." + +#: core/models.py:240 +msgid "upload an image representing this category" +msgstr "Ladda upp en bild som representerar denna kategori" + +#: core/models.py:243 +msgid "category image" +msgstr "Kategori bild" + +#: core/models.py:248 +msgid "define a markup percentage for products in this category" +msgstr "Definiera en påslagsprocent för produkter i den här kategorin" + +#: core/models.py:257 +msgid "parent of this category to form a hierarchical structure" +msgstr "Förälder till denna kategori för att bilda en hierarkisk struktur" + +#: core/models.py:258 +msgid "parent category" +msgstr "Föräldrakategori" + +#: core/models.py:263 +msgid "category name" +msgstr "Namn på kategori" + +#: core/models.py:264 +msgid "provide a name for this category" +msgstr "Ange ett namn för denna kategori" + +#: core/models.py:271 +msgid "add a detailed description for this category" +msgstr "Lägg till en detaljerad beskrivning för denna kategori" + +#: core/models.py:272 +msgid "category description" +msgstr "Beskrivning av kategori" + +#: core/models.py:292 +msgid "tags that help describe or group this category" +msgstr "taggar som hjälper till att beskriva eller gruppera denna kategori" + +#: core/models.py:299 core/models.py:387 +msgid "priority" +msgstr "Prioritet" + +#: core/models.py:340 +msgid "name of this brand" +msgstr "Namn på detta varumärke" + +#: core/models.py:341 +msgid "brand name" +msgstr "Varumärke" + +#: core/models.py:348 +msgid "upload a logo representing this brand" +msgstr "Ladda upp en logotyp som representerar detta varumärke" + +#: core/models.py:350 +msgid "brand small image" +msgstr "Varumärke liten image" + +#: core/models.py:356 +msgid "upload a big logo representing this brand" +msgstr "Ladda upp en stor logotyp som representerar detta varumärke" + +#: core/models.py:358 +msgid "brand big image" +msgstr "Varumärke med stor image" + +#: core/models.py:363 +msgid "add a detailed description of the brand" +msgstr "Lägg till en detaljerad beskrivning av varumärket" + +#: core/models.py:364 +msgid "brand description" +msgstr "Varumärkesbeskrivning" + +#: core/models.py:369 +msgid "optional categories that this brand is associated with" +msgstr "Valfria kategorier som detta varumärke är förknippat med" + +#: core/models.py:370 +msgid "associated categories" +msgstr "Kategorier" + +#: core/models.py:400 +msgid "" +"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 "" +"Representerar lagret för en produkt som hanteras i systemet. Klassen ger " +"information om förhållandet mellan leverantörer, produkter och deras " +"lagerinformation, samt lagerrelaterade egenskaper som pris, inköpspris, " +"kvantitet, SKU och digitala tillgångar. Den är en del av " +"lagerhanteringssystemet för att möjliggöra spårning och utvärdering av " +"produkter som finns tillgängliga från olika leverantörer." + +#: core/models.py:412 +msgid "the vendor supplying this product stock" +msgstr "Leverantören som levererar denna produkt lager" + +#: core/models.py:413 +msgid "associated vendor" +msgstr "Associerad leverantör" + +#: core/models.py:417 +msgid "final price to the customer after markups" +msgstr "Slutligt pris till kunden efter påslag" + +#: core/models.py:418 +msgid "selling price" +msgstr "Försäljningspris" + +#: core/models.py:423 +msgid "the product associated with this stock entry" +msgstr "Produkten som är associerad med denna lagerpost" + +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 +msgid "associated product" +msgstr "Tillhörande produkt" + +#: core/models.py:431 +msgid "the price paid to the vendor for this product" +msgstr "Det pris som betalats till säljaren för denna produkt" + +#: core/models.py:432 +msgid "vendor purchase price" +msgstr "Leverantörens inköpspris" + +#: core/models.py:436 +msgid "available quantity of the product in stock" +msgstr "Tillgänglig kvantitet av produkten i lager" + +#: core/models.py:437 +msgid "quantity in stock" +msgstr "Antal i lager" + +#: core/models.py:441 +msgid "vendor-assigned SKU for identifying the product" +msgstr "SKU som tilldelats av leverantören för identifiering av produkten" + +#: core/models.py:442 +msgid "vendor sku" +msgstr "Leverantörens SKU" + +#: core/models.py:448 +msgid "digital file associated with this stock if applicable" +msgstr "Digital fil associerad med detta lager om tillämpligt" + +#: core/models.py:449 +msgid "digital file" +msgstr "Digital fil" + +#: core/models.py:458 +msgid "stock entries" +msgstr "Lagerposter" + +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +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 " +"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 " +"en applikation." + +#: core/models.py:476 +msgid "category this product belongs to" +msgstr "Kategori som denna produkt tillhör" + +#: core/models.py:485 +msgid "optionally associate this product with a brand" +msgstr "Möjlighet att associera produkten med ett varumärke" + +#: core/models.py:491 +msgid "tags that help describe or group this product" +msgstr "Taggar som hjälper till att beskriva eller gruppera denna produkt" + +#: core/models.py:496 +msgid "indicates whether this product is digitally delivered" +msgstr "Anger om denna produkt levereras digitalt" + +#: core/models.py:497 +msgid "is product digital" +msgstr "Är produkten digital" + +#: core/models.py:503 +msgid "provide a clear identifying name for the product" +msgstr "Tillhandahålla ett tydligt identifierande namn för produkten" + +#: core/models.py:504 +msgid "product name" +msgstr "Produktens namn" + +#: core/models.py:509 core/models.py:831 +msgid "add a detailed description of the product" +msgstr "Lägg till en detaljerad beskrivning av produkten" + +#: core/models.py:510 +msgid "product description" +msgstr "Produktbeskrivning" + +#: core/models.py:517 +msgid "part number for this product" +msgstr "Artikelnummer för denna produkt" + +#: core/models.py:518 +msgid "part number" +msgstr "Artikelnummer" + +#: core/models.py:537 +msgid "stock keeping unit for this product" +msgstr "Lagerhållningsenhet för denna produkt" + +#: core/models.py:607 +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 " +"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 " +"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." + +#: core/models.py:619 +msgid "category of this attribute" +msgstr "Kategori för detta attribut" + +#: core/models.py:627 +msgid "group of this attribute" +msgstr "Grupp av detta attribut" + +#: core/models.py:633 +msgid "string" +msgstr "Sträng" + +#: core/models.py:634 +msgid "integer" +msgstr "Heltal" + +#: core/models.py:635 +msgid "float" +msgstr "Flottör" + +#: core/models.py:636 +msgid "boolean" +msgstr "Boolean" + +#: core/models.py:637 +msgid "array" +msgstr "Array" + +#: core/models.py:638 +msgid "object" +msgstr "Objekt" + +#: core/models.py:640 +msgid "type of the attribute's value" +msgstr "Typ av attributets värde" + +#: core/models.py:641 +msgid "value type" +msgstr "Typ av värde" + +#: core/models.py:646 +msgid "name of this attribute" +msgstr "Namn på detta attribut" + +#: core/models.py:647 +msgid "attribute's name" +msgstr "Attributets namn" + +#: core/models.py:653 +msgid "is filterable" +msgstr "är filtrerbar" + +#: core/models.py:654 +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." + +#: core/models.py:665 core/models.py:700 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Attribut" + +#: core/models.py:699 +msgid "attribute of this value" +msgstr "Attribut för detta värde" + +#: core/models.py:707 +msgid "the specific product associated with this attribute's value" +msgstr "Den specifika produkt som är associerad med detta attributs värde" + +#: core/models.py:713 +msgid "the specific value for this attribute" +msgstr "Det specifika värdet för detta attribut" + +#: core/models.py:747 +msgid "provide alternative text for the image for accessibility" +msgstr "Tillhandahåll alternativ text för bilden för tillgänglighet" + +#: core/models.py:748 +msgid "image alt text" +msgstr "Alt-text för bild" + +#: core/models.py:751 +msgid "upload the image file for this product" +msgstr "Ladda upp bildfilen för den här produkten" + +#: core/models.py:752 core/models.py:777 +msgid "product image" +msgstr "Produktbild" + +#: core/models.py:758 +msgid "determines the order in which images are displayed" +msgstr "Bestämmer i vilken ordning bilderna ska visas" + +#: core/models.py:759 +msgid "display priority" +msgstr "Prioritet för visning" + +#: core/models.py:764 +msgid "the product that this image represents" +msgstr "Den produkt som denna bild representerar" + +#: core/models.py:778 +msgid "product images" +msgstr "Produktbilder" + +#: core/models.py:819 +msgid "percentage discount for the selected products" +msgstr "Procentuell rabatt för de valda produkterna" + +#: core/models.py:820 +msgid "discount percentage" +msgstr "Rabattprocent" + +#: core/models.py:825 +msgid "provide a unique name for this promotion" +msgstr "Ange ett unikt namn för denna kampanj" + +#: core/models.py:826 +msgid "promotion name" +msgstr "Kampanjens namn" + +#: core/models.py:832 +msgid "promotion description" +msgstr "Beskrivning av kampanjen" + +#: core/models.py:837 +msgid "select which products are included in this promotion" +msgstr "Välj vilka produkter som ingår i denna kampanj" + +#: core/models.py:838 +msgid "included products" +msgstr "Inkluderade produkter" + +#: core/models.py:842 +msgid "promotion" +msgstr "Marknadsföring" + +#: core/models.py:867 +msgid "products that the user has marked as wanted" +msgstr "Produkter som användaren har markerat som önskade" + +#: core/models.py:875 +msgid "user who owns this wishlist" +msgstr "Användare som äger denna önskelista" + +#: core/models.py:876 +msgid "wishlist owner" +msgstr "Wishlist's ägare" + +#: core/models.py:884 +msgid "wishlist" +msgstr "Önskelista" + +#: core/models.py:951 +msgid "documentary" +msgstr "Dokumentärfilm" + +#: core/models.py:952 +msgid "documentaries" +msgstr "Dokumentärer" + +#: core/models.py:962 +msgid "unresolved" +msgstr "Olöst" + +#: core/models.py:1008 +msgid "address line for the customer" +msgstr "Adressrad till kunden" + +#: core/models.py:1009 +msgid "address line" +msgstr "Adresslinje" + +#: core/models.py:1011 +msgid "street" +msgstr "Gata" + +#: core/models.py:1012 +msgid "district" +msgstr "Distrikt" + +#: core/models.py:1013 +msgid "city" +msgstr "Stad" + +#: core/models.py:1014 +msgid "region" +msgstr "Region" + +#: core/models.py:1015 +msgid "postal code" +msgstr "Postnummer" + +#: core/models.py:1016 +msgid "country" +msgstr "Land" + +#: core/models.py:1023 +msgid "geolocation point: (longitude, latitude)" +msgstr "Geolokaliseringspunkt (longitud, latitud)" + +#: core/models.py:1026 +msgid "full JSON response from geocoder for this address" +msgstr "Fullständigt JSON-svar från geokodaren för denna adress" + +#: core/models.py:1031 +msgid "stored JSON response from the geocoding service" +msgstr "Lagrad JSON-svar från geokodningstjänsten" + +#: core/models.py:1039 +msgid "address" +msgstr "Adress" + +#: core/models.py:1040 +msgid "addresses" +msgstr "Adresser" + +#: core/models.py:1085 +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" + +#: core/models.py:1086 +msgid "promo code identifier" +msgstr "Identifierare för kampanjkod" + +#: core/models.py:1093 +msgid "fixed discount amount applied if percent is not used" +msgstr "Fast rabattbelopp tillämpas om procent inte används" + +#: core/models.py:1094 +msgid "fixed discount amount" +msgstr "Fast diskonteringsbelopp" + +#: core/models.py:1100 +msgid "percentage discount applied if fixed amount is not used" +msgstr "Procentuell rabatt som tillämpas om fast belopp inte används" + +#: core/models.py:1101 +msgid "percentage discount" +msgstr "Procentuell rabatt" + +#: core/models.py:1106 +msgid "timestamp when the promocode expires" +msgstr "Tidsstämpel när kampanjkoden upphör att gälla" + +#: core/models.py:1107 +msgid "end validity time" +msgstr "Slutgiltig giltighetstid" + +#: core/models.py:1112 +msgid "timestamp from which this promocode is valid" +msgstr "Tidsstämpel från vilken denna promokod är giltig" + +#: core/models.py:1113 +msgid "start validity time" +msgstr "Start giltighetstid" + +#: core/models.py:1118 +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" + +#: core/models.py:1119 +msgid "usage timestamp" +msgstr "Tidsstämpel för användning" + +#: core/models.py:1124 +msgid "user assigned to this promocode if applicable" +msgstr "Användare som tilldelats denna promokod om tillämpligt" + +#: core/models.py:1125 +msgid "assigned user" +msgstr "Tilldelad användare" + +#: core/models.py:1132 +msgid "promo code" +msgstr "Kampanjkod" + +#: core/models.py:1133 +msgid "promo codes" +msgstr "Kampanjkoder" + +#: core/models.py:1140 +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." + +#: core/models.py:1155 +msgid "promocode already used" +msgstr "Promokoden har redan använts" + +#: core/models.py:1171 +#, python-brace-format +msgid "invalid discount type for promocode {self.uuid}" +msgstr "Ogiltig rabattyp för promokod {self.uuid}!" + +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"Representerar en order som lagts av en användare. Denna klass modellerar en " +"order i applikationen, inklusive dess olika attribut som fakturerings- och " +"leveransinformation, status, associerad användare, meddelanden och " +"relaterade operationer. Beställningar kan ha associerade produkter, " +"kampanjer kan tillämpas, adresser kan anges och leverans- eller " +"faktureringsuppgifter kan uppdateras. På samma sätt stöder funktionaliteten " +"hanteringen av produkterna i orderns livscykel." + +#: core/models.py:1197 +msgid "the billing address used for this order" +msgstr "Den faktureringsadress som används för denna order" + +#: core/models.py:1205 +msgid "optional promo code applied to this order" +msgstr "Valfri kampanjkod tillämpas på denna beställning" + +#: core/models.py:1206 +msgid "applied promo code" +msgstr "Tillämpad kampanjkod" + +#: core/models.py:1214 +msgid "the shipping address used for this order" +msgstr "Den leveransadress som används för denna order" + +#: core/models.py:1215 +msgid "shipping address" +msgstr "Leveransadress" + +#: core/models.py:1221 +msgid "current status of the order in its lifecycle" +msgstr "Aktuell status för ordern i dess livscykel" + +#: core/models.py:1222 +msgid "order status" +msgstr "Orderstatus" + +#: core/models.py:1227 core/models.py:1686 +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" + +#: core/models.py:1233 +msgid "json representation of order attributes for this order" +msgstr "JSON-representation av orderattribut för denna order" + +#: core/models.py:1239 +msgid "the user who placed the order" +msgstr "Användaren som gjorde beställningen" + +#: core/models.py:1240 +msgid "user" +msgstr "Användare" + +#: core/models.py:1246 +msgid "the timestamp when the order was finalized" +msgstr "Tidsstämpel när ordern slutfördes" + +#: core/models.py:1247 +msgid "buy time" +msgstr "Köp tid" + +#: core/models.py:1254 +msgid "a human-readable identifier for the order" +msgstr "En mänskligt läsbar identifierare för ordern" + +#: core/models.py:1255 +msgid "human readable id" +msgstr "mänskligt läsbart ID" + +#: core/models.py:1261 +msgid "order" +msgstr "Beställning" + +#: core/models.py:1282 +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!" + +#: core/models.py:1316 +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" + +#: core/models.py:1321 +msgid "you cannot add inactive products to order" +msgstr "Du kan inte lägga till inaktiva produkter i ordern" + +#: core/models.py:1338 +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" + +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 +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" + +#: core/models.py:1381 +#, python-brace-format +msgid "{name} does not exist with query <{query}>" +msgstr "{name} finns inte med frågan <{query}>!" + +#: core/models.py:1413 +msgid "promocode does not exist" +msgstr "Promokoden finns inte" + +#: core/models.py:1419 +msgid "you can only buy physical products with shipping address specified" +msgstr "Du kan bara köpa fysiska produkter med angiven leveransadress!" + +#: core/models.py:1438 +msgid "address does not exist" +msgstr "Adressen finns inte" + +#: core/models.py:1459 core/models.py:1528 +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." + +#: core/models.py:1462 core/models.py:1524 +msgid "invalid force value" +msgstr "Ogiltigt kraftvärde" + +#: core/models.py:1468 core/models.py:1531 +msgid "you cannot purchase an empty order!" +msgstr "Du kan inte köpa en tom order!" + +#: core/models.py:1487 +msgid "you cannot buy an order without a user" +msgstr "Du kan inte köpa en order utan en användare!" + +#: core/models.py:1501 +msgid "a user without a balance cannot buy with balance" +msgstr "En användare utan balans kan inte köpa med balans!" + +#: core/models.py:1506 +msgid "insufficient funds to complete the order" +msgstr "Otillräckliga medel för att slutföra ordern" + +#: core/models.py:1540 +msgid "" +"you cannot buy without registration, please provide the following " +"information: customer name, customer email, customer phone number" +msgstr "" +"du kan inte köpa utan registrering, vänligen ange följande information: " +"kundens namn, kundens e-post, kundens telefonnummer" + +#: core/models.py:1549 +#, python-brace-format +msgid "" +"invalid payment method: {payment_method} from {available_payment_methods}" +msgstr "" +"Ogiltig betalningsmetod: {payment_method} från {available_payment_methods}!" + +#: core/models.py:1674 +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" + +#: core/models.py:1675 +msgid "purchase price at order time" +msgstr "Inköpspris vid ordertillfället" + +#: core/models.py:1680 +msgid "internal comments for admins about this ordered product" +msgstr "Interna kommentarer för administratörer om denna beställda produkt" + +#: core/models.py:1681 +msgid "internal comments" +msgstr "Interna kommentarer" + +#: core/models.py:1687 +msgid "user notifications" +msgstr "Meddelanden till användare" + +#: core/models.py:1692 +msgid "json representation of this item's attributes" +msgstr "JSON-representation av detta objekts attribut" + +#: core/models.py:1693 +msgid "ordered product attributes" +msgstr "Sorterade produktattribut" + +#: core/models.py:1698 +msgid "reference to the parent order that contains this product" +msgstr "Referens till den överordnade order som innehåller denna produkt" + +#: core/models.py:1699 +msgid "parent order" +msgstr "Föräldraorder" + +#: core/models.py:1708 +msgid "the specific product associated with this order line" +msgstr "Den specifika produkt som är kopplad till denna orderrad" + +#: core/models.py:1715 +msgid "quantity of this specific product in the order" +msgstr "Antal av denna specifika produkt i ordern" + +#: core/models.py:1716 +msgid "product quantity" +msgstr "Produktens kvantitet" + +#: core/models.py:1723 +msgid "current status of this product in the order" +msgstr "Aktuell status för denna produkt i ordern" + +#: core/models.py:1724 +msgid "product line status" +msgstr "Status för produktlinje" + +#: core/models.py:1784 +msgid "order product must have an order" +msgstr "Orderprodukt måste ha en tillhörande order!" + +#: core/models.py:1786 +#, python-brace-format +msgid "wrong action specified for feedback: {action}" +msgstr "Fel åtgärd angiven för återkoppling: {action}!" + +#: core/models.py:1800 +msgid "you cannot feedback an order which is not received" +msgstr "du kan inte återkoppla en order som inte mottagits" + +#: core/models.py:1806 +msgid "name" +msgstr "Namn" + +#: core/models.py:1807 +msgid "URL of the integration" +msgstr "URL för integrationen" + +#: core/models.py:1808 +msgid "authentication credentials" +msgstr "Autentiseringsuppgifter" + +#: core/models.py:1822 +msgid "you can only have one default CRM provider" +msgstr "Du kan bara ha en CRM-leverantör som standard" + +#: core/models.py:1826 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1827 +msgid "CRMs" +msgstr "CRM-system" + +#: core/models.py:1839 +msgid "order CRM link" +msgstr "Beställningens CRM-länk" + +#: core/models.py:1840 +msgid "orders CRM links" +msgstr "Beställningarnas CRM-länkar" + +#: core/models.py:1874 +msgid "download" +msgstr "Nedladdningar" + +#: core/models.py:1875 +msgid "downloads" +msgstr "Nedladdningar" + +#: core/models.py:1883 +msgid "you can not download a digital asset for a non-finished order" +msgstr "Du kan inte ladda ner en digital tillgång för en oavslutad order" + +#: core/models.py:1913 +msgid "user-provided comments about their experience with the product" +msgstr "Kommentarer från användare om deras erfarenhet av produkten" + +#: core/models.py:1914 +msgid "feedback comments" +msgstr "Återkoppling av kommentarer" + +#: core/models.py:1921 +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" + +#: core/models.py:1922 +msgid "related order product" +msgstr "Relaterad order produkt" + +#: core/models.py:1927 +msgid "user-assigned rating for the product" +msgstr "Användartilldelat betyg för produkten" + +#: core/models.py:1928 +msgid "product rating" +msgstr "Produktbetyg" + +#: core/serializers/utility.py:87 +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." + +#: core/signals.py:65 +msgid "error during promocode creation: {e!s}" +msgstr "Fel under skapande av promokod: {e!s}" + +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Hem" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Kontakta oss" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Om oss" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Betalningsinformation" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Leverans" + +#: core/templates/digital_order_created_email.html:7 +#: core/templates/digital_order_created_email.html:100 +#: core/templates/digital_order_delivered_email.html:6 +#: core/templates/shipped_order_created_email.html:7 +#: core/templates/shipped_order_created_email.html:99 +#: core/templates/shipped_order_delivered_email.html:7 +#: core/templates/shipped_order_delivered_email.html:99 +msgid "order confirmation" +msgstr "Orderbekräftelse" + +#: core/templates/digital_order_created_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 +#: core/templates/promocode_granted_email.html:94 +#: core/templates/shipped_order_created_email.html:94 +#: core/templates/shipped_order_delivered_email.html:94 +msgid "logo" +msgstr "Logotyp" + +#: core/templates/digital_order_created_email.html:101 +#: core/templates/shipped_order_created_email.html:100 +#: core/templates/shipped_order_delivered_email.html:100 +#, python-format +msgid "hello %(order.user.first_name)s," +msgstr "Hej %(order.user.first_name)s," + +#: core/templates/digital_order_created_email.html:102 +#, 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" +" order:" +msgstr "" +"Tack för din beställning #%(order.pk)s! Vi är glada att kunna informera dig " +"om att vi har tagit din beställning i arbete. Nedan följer detaljerna för " +"din order:" + +#: core/templates/digital_order_created_email.html:112 +#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/shipped_order_created_email.html:110 +#: core/templates/shipped_order_delivered_email.html:110 +msgid "total" +msgstr "Totalt" + +#: core/templates/digital_order_created_email.html:125 +#: core/templates/digital_order_delivered_email.html:157 +#: core/templates/shipped_order_created_email.html:127 +#: core/templates/shipped_order_delivered_email.html:127 +msgid "total price" +msgstr "Totalt pris" + +#: core/templates/digital_order_created_email.html:131 +#: core/templates/shipped_order_created_email.html:140 +#: core/templates/shipped_order_delivered_email.html:140 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(config.EMAIL_HOST_USER)s." +msgstr "" +"Om du har några frågor är du välkommen att kontakta vår support på " +"%(config.EMAIL_HOST_USER)s." + +#: core/templates/digital_order_created_email.html:133 +#, python-format +msgid "best regards,
the %(config.PROJECT_NAME)s team" +msgstr "Bästa hälsningar,
teamet %(config.PROJECT_NAME)s" + +#: core/templates/digital_order_created_email.html:139 +#: core/templates/digital_order_delivered_email.html:171 +#: core/templates/promocode_granted_email.html:114 +msgid "all rights reserved" +msgstr "Alla rättigheter förbehålls" + +#: core/templates/digital_order_delivered_email.html:99 +msgid "order delivered" +msgstr "Beställning levererad" + +#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Hej %(user_first_name)s," + +#: core/templates/digital_order_delivered_email.html:101 +#, python-format +msgid "" +"we have successfully processed your order №%(order_uuid)s! below are the\n" +" details of your order:" +msgstr "" +"Vi har framgångsrikt behandlat din beställning №%(order_uuid)s! Nedan finns " +"detaljerna i din beställning:" + +#: core/templates/digital_order_delivered_email.html:128 +msgid "" +"additional\n" +" information" +msgstr "" +"ytterligare\n" +" information" + +#: core/templates/digital_order_delivered_email.html:137 +#: core/templates/json_table_widget.html:6 +msgid "value" +msgstr "Värde" + +#: core/templates/digital_order_delivered_email.html:163 +#: core/templates/promocode_granted_email.html:106 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" +"Om du har några frågor är du välkommen att kontakta vår support på " +"%(contact_email)s." + +#: core/templates/digital_order_delivered_email.html:165 +#: core/templates/promocode_granted_email.html:108 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Bästa hälsningar,
teamet %(project_name)s" + +#: core/templates/json_table_widget.html:5 +msgid "key" +msgstr "Nyckel" + +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Promokod beviljad" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Tack för att du stannar hos oss! Vi har gett dig en promokod\n" +" för" + +#: core/templates/shipped_order_created_email.html:101 +#: core/templates/shipped_order_delivered_email.html:101 +msgid "" +"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 " +"följer detaljerna för din beställning:" + +#: core/templates/shipped_order_created_email.html:123 +#: core/templates/shipped_order_delivered_email.html:123 +msgid "shipping price" +msgstr "Fraktpris" + +#: core/templates/shipped_order_created_email.html:133 +#: core/templates/shipped_order_delivered_email.html:133 +msgid "your order will be delivered to the following address:" +msgstr "Din beställning kommer att levereras till följande adress:" + +#: core/templates/shipped_order_created_email.html:142 +#: core/templates/shipped_order_delivered_email.html:142 +#, python-format +msgid "best regards,
The %(config.PROJECT_NAME)s team" +msgstr "Bästa hälsningar,
The %(config.PROJECT_NAME)s team" + +#: core/templates/shipped_order_created_email.html:147 +#: core/templates/shipped_order_delivered_email.html:147 +msgid "" +"all rights\n" +" reserved" +msgstr "" +"Alla rättigheter\n" +" reserverade" + +#: core/utils/caching.py:41 +msgid "both data and timeout are required" +msgstr "Både data och timeout krävs" + +#: core/utils/caching.py:43 +msgid "invalid timeout value, it must be between 0 and 216000 seconds" +msgstr "Ogiltigt timeout-värde, det måste vara mellan 0 och 216000 sekunder" + +#: core/utils/emailing.py:25 +#, python-brace-format +msgid "{config.PROJECT_NAME} | contact us initiated" +msgstr "{config.PROJECT_NAME} | kontakta oss initierad" + +#: core/utils/emailing.py:64 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order confirmation" +msgstr "{config.PROJECT_NAME} | Orderbekräftelse" + +#: core/utils/emailing.py:99 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order delivered" +msgstr "{config.PROJECT_NAME} | Beställning levererad" + +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promocode beviljad" + +#: core/utils/messages.py:3 +msgid "you do not have permission to perform this action." +msgstr "Du har inte behörighet att utföra den här åtgärden." + +#: core/utils/nominatim.py:8 +msgid "NOMINATIM_URL must be configured." +msgstr "Parametern NOMINATIM_URL måste konfigureras!" + +#: core/validators.py:16 +#, python-brace-format +msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" +msgstr "Bildmåtten får inte överstiga w{max_width} x h{max_height} pixlar!" + +#: core/validators.py:22 +msgid "invalid phone number format" +msgstr "Ogiltigt format på telefonnumret" + +#: core/views.py:481 +msgid "you can only download the digital asset once" +msgstr "Du kan bara ladda ner den digitala tillgången en gång" + +#: core/views.py:539 +msgid "favicon not found" +msgstr "favicon hittades inte" + +#: core/viewsets.py:1319 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Fel i geokodningen: {e}" diff --git a/core/locale/th_TH/LC_MESSAGES/django.mo b/core/locale/th_TH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f2bf3d4863f7627032cff8b41af44719af4cb23e GIT binary patch literal 93959 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
a{lm&XR+{%YnZ)mFQT?nRgtjO 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 literal 0 HcmV?d00001 diff --git a/core/locale/th_TH/LC_MESSAGES/django.po b/core/locale/th_TH/LC_MESSAGES/django.po new file mode 100644 index 00000000..cdee868d --- /dev/null +++ b/core/locale/th_TH/LC_MESSAGES/django.po @@ -0,0 +1,2557 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: th-th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: core/abstract.py:11 +msgid "unique id" +msgstr "รหัสประจำตัวที่ไม่ซ้ำกัน" + +#: core/abstract.py:12 +msgid "unique id is used to surely identify any database object" +msgstr "รหัสประจำตัวที่ไม่ซ้ำกันใช้เพื่อระบุวัตถุฐานข้อมูลใด ๆ อย่างแน่นอน" + +#: core/abstract.py:19 +msgid "is active" +msgstr "กำลังใช้งานอยู่" + +#: core/abstract.py:20 +msgid "" +"if set to false, this object can't be seen by users without needed " +"permission" +msgstr "" +"หากตั้งค่าเป็น false, " +"วัตถุนี้ไม่สามารถมองเห็นได้โดยผู้ใช้ที่ไม่มีสิทธิ์ที่ต้องการ" + +#: core/abstract.py:22 core/choices.py:18 +msgid "created" +msgstr "สร้างขึ้น" + +#: core/abstract.py:22 +msgid "when the object first appeared on the database" +msgstr "เมื่อวัตถุปรากฏขึ้นครั้งแรกในฐานข้อมูล" + +#: core/abstract.py:23 +msgid "modified" +msgstr "แก้ไขแล้ว" + +#: core/abstract.py:23 +msgid "when the object was last modified" +msgstr "เมื่อครั้งล่าสุดที่มีการแก้ไขวัตถุ" + +#: core/admin.py:63 +msgid "translations" +msgstr "การแปล" + +#: core/admin.py:67 +msgid "general" +msgstr "ทั่วไป" + +#: core/admin.py:69 +msgid "relations" +msgstr "ความสัมพันธ์" + +#: core/admin.py:87 +msgid "metadata" +msgstr "เมตาดาตา" + +#: core/admin.py:94 +msgid "timestamps" +msgstr "เวลาที่บันทึก" + +#: core/admin.py:109 +#, python-format +msgid "activate selected %(verbose_name_plural)s" +msgstr "เปิดใช้งานที่เลือกไว้ %(verbose_name_plural)s" + +#: core/admin.py:114 +msgid "selected items have been activated." +msgstr "รายการที่เลือกไว้ได้รับการเปิดใช้งานแล้ว!" + +#: core/admin.py:120 +#, python-format +msgid "deactivate selected %(verbose_name_plural)s" +msgstr "ยกเลิกการใช้งานที่เลือกไว้ %(verbose_name_plural)s" + +#: core/admin.py:125 +msgid "selected items have been deactivated." +msgstr "รายการที่เลือกถูกยกเลิกการใช้งานแล้ว!" + +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 +msgid "attribute value" +msgstr "ค่าคุณสมบัติ" + +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 +msgid "attribute values" +msgstr "ค่าของแอตทริบิวต์" + +#: core/admin.py:146 +msgid "image" +msgstr "ภาพ" + +#: core/admin.py:147 core/graphene/object_types.py:501 +msgid "images" +msgstr "รูปภาพ" + +#: core/admin.py:155 core/models.py:457 +msgid "stock" +msgstr "สต็อก" + +#: core/admin.py:156 core/graphene/object_types.py:663 +msgid "stocks" +msgstr "หุ้น" + +#: core/admin.py:166 core/models.py:1735 +msgid "order product" +msgstr "สั่งซื้อสินค้า" + +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 +msgid "order products" +msgstr "สั่งซื้อสินค้า" + +#: core/admin.py:180 core/admin.py:181 +msgid "children" +msgstr "เด็ก" + +#: core/admin.py:566 +msgid "Config" +msgstr "การกำหนดค่า" + +#: core/apps.py:8 +msgid "core" +msgstr "แกนหลัก" + +#: core/choices.py:4 core/choices.py:20 +msgid "finished" +msgstr "เสร็จแล้ว" + +#: core/choices.py:5 core/choices.py:19 +msgid "delivering" +msgstr "การส่งมอบ" + +#: core/choices.py:6 +msgid "delivered" +msgstr "ส่งมอบแล้ว" + +#: core/choices.py:7 +msgid "canceled" +msgstr "ยกเลิก" + +#: core/choices.py:8 core/choices.py:16 core/choices.py:24 +msgid "failed" +msgstr "ล้มเหลว" + +#: core/choices.py:9 core/choices.py:15 +msgid "pending" +msgstr "รอดำเนินการ" + +#: core/choices.py:10 +msgid "accepted" +msgstr "ได้รับการยอมรับ" + +#: core/choices.py:11 +msgid "money returned" +msgstr "เงินคืน" + +#: core/choices.py:17 +msgid "payment" +msgstr "การชำระเงิน" + +#: core/choices.py:21 +msgid "momental" +msgstr "ชั่วขณะหนึ่ง" + +#: core/choices.py:24 +msgid "successful" +msgstr "ประสบความสำเร็จ" + +#: core/docs/drf/views.py:17 core/graphene/mutations.py:36 +msgid "cache I/O" +msgstr "แคช I/O" + +#: core/docs/drf/views.py:19 +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 "" +"ใช้เฉพาะคีย์เพื่ออ่านข้อมูลที่ได้รับอนุญาตจากแคช ใช้คีย์ ข้อมูล " +"และระยะเวลาหมดอายุ พร้อมการยืนยันตัวตนเพื่อเขียนข้อมูลลงในแคช" + +#: core/docs/drf/views.py:32 +msgid "get a list of supported languages" +msgstr "รับรายการภาษาที่รองรับ" + +#: core/docs/drf/views.py:41 +msgid "get application's exposable parameters" +msgstr "รับพารามิเตอร์ที่สามารถเปิดเผยได้ของแอปพลิเคชัน" + +#: core/docs/drf/views.py:48 +msgid "send a message to the support team" +msgstr "ส่งข้อความถึงทีมสนับสนุน" + +#: core/docs/drf/views.py:59 core/graphene/mutations.py:55 +msgid "request a CORSed URL" +msgstr "ขอ URL ที่รองรับ CORS เท่านั้น อนุญาตเฉพาะ https" + +#: core/docs/drf/views.py:85 +msgid "global search endpoint to query across project's tables" +msgstr "จุดสิ้นสุดการค้นหาทั่วโลกเพื่อค้นหาข้ามตารางของโครงการ" + +#: core/docs/drf/views.py:91 +msgid "purchase an order as a business" +msgstr "ซื้อสินค้าเป็นธุรกิจ" + +#: core/docs/drf/views.py:98 +msgid "" +"purchase an order as a business, using the provided `products` with " +"`product_uuid` and `attributes`." +msgstr "" +"ซื้อสินค้าในฐานะธุรกิจ โดยใช้ `products` ที่ให้มาพร้อมกับ `product_uuid` และ" +" `attributes`" + +#: core/docs/drf/viewsets.py:44 +msgid "list all attribute groups (simple view)" +msgstr "แสดงกลุ่มแอตทริบิวต์ทั้งหมด (มุมมองแบบง่าย)" + +#: core/docs/drf/viewsets.py:48 +msgid "retrieve a single attribute group (detailed view)" +msgstr "ดึงกลุ่มแอตทริบิวต์เดียว (มุมมองรายละเอียด)" + +#: core/docs/drf/viewsets.py:52 +msgid "create an attribute group" +msgstr "สร้างกลุ่มคุณลักษณะ" + +#: core/docs/drf/viewsets.py:56 +msgid "delete an attribute group" +msgstr "ลบกลุ่มแอตทริบิวต์" + +#: core/docs/drf/viewsets.py:60 +msgid "rewrite an existing attribute group saving non-editables" +msgstr "" +"เขียนกลุ่มคุณลักษณะที่มีอยู่ใหม่โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:64 +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" +msgstr "" +"เขียนฟิลด์บางส่วนของกลุ่มแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:71 +msgid "list all attributes (simple view)" +msgstr "แสดงรายการคุณลักษณะทั้งหมด (มุมมองแบบง่าย)" + +#: core/docs/drf/viewsets.py:75 +msgid "retrieve a single attribute (detailed view)" +msgstr "ดึงข้อมูลคุณลักษณะเดียว (มุมมองรายละเอียด)" + +#: core/docs/drf/viewsets.py:79 +msgid "create an attribute" +msgstr "สร้างแอตทริบิวต์" + +#: core/docs/drf/viewsets.py:83 +msgid "delete an attribute" +msgstr "ลบแอตทริบิวต์" + +#: core/docs/drf/viewsets.py:87 +msgid "rewrite an existing attribute saving non-editables" +msgstr "เขียนแอตทริบิวต์ที่มีอยู่ใหม่โดยบันทึกเฉพาะส่วนที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:91 +msgid "rewrite some fields of an existing attribute saving non-editables" +msgstr "" +"เขียนฟิลด์บางส่วนของแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่มีการแก้ไข" + +#: core/docs/drf/viewsets.py:98 +msgid "list all attribute values (simple view)" +msgstr "แสดงรายการค่าของแอตทริบิวต์ทั้งหมด (มุมมองแบบง่าย)" + +#: core/docs/drf/viewsets.py:102 +msgid "retrieve a single attribute value (detailed view)" +msgstr "ดึงค่าแอตทริบิวต์เดียว (มุมมองรายละเอียด)" + +#: core/docs/drf/viewsets.py:106 +msgid "create an attribute value" +msgstr "สร้างค่าแอตทริบิวต์" + +#: core/docs/drf/viewsets.py:110 +msgid "delete an attribute value" +msgstr "ลบค่าของแอตทริบิวต์" + +#: core/docs/drf/viewsets.py:114 +msgid "rewrite an existing attribute value saving non-editables" +msgstr "เขียนค่าแอตทริบิวต์ที่มีอยู่ใหม่โดยเก็บค่าที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:118 +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" +msgstr "" +"เขียนฟิลด์บางส่วนของค่าแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยเก็บค่าที่ไม่สามารถแก้ไขได้ไว้" + +#: core/docs/drf/viewsets.py:125 core/docs/drf/viewsets.py:126 +msgid "list all categories (simple view)" +msgstr "แสดงรายการหมวดหมู่ทั้งหมด (มุมมองแบบง่าย)" + +#: core/docs/drf/viewsets.py:130 core/docs/drf/viewsets.py:131 +msgid "retrieve a single category (detailed view)" +msgstr "ดึงข้อมูลหมวดหมู่เดียว (มุมมองรายละเอียด)" + +#: core/docs/drf/viewsets.py:135 core/docs/drf/viewsets.py:136 +msgid "create a category" +msgstr "สร้างหมวดหมู่" + +#: core/docs/drf/viewsets.py:140 core/docs/drf/viewsets.py:141 +msgid "delete a category" +msgstr "ลบหมวดหมู่" + +#: core/docs/drf/viewsets.py:145 core/docs/drf/viewsets.py:146 +msgid "rewrite an existing category saving non-editables" +msgstr "เขียนหมวดหมู่ที่มีอยู่ใหม่โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:150 core/docs/drf/viewsets.py:151 +msgid "rewrite some fields of an existing category saving non-editables" +msgstr "" +"เขียนฟิลด์บางส่วนของหมวดหมู่ที่มีอยู่แล้วใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 +#: core/graphene/object_types.py:117 core/graphene/object_types.py:207 +#: core/graphene/object_types.py:509 +msgid "SEO Meta snapshot" +msgstr "SEO Meta snapshot" + +#: core/docs/drf/viewsets.py:156 +msgid "returns a snapshot of the category's SEO meta data" +msgstr "ส่งคืนภาพรวมของข้อมูลเมตา SEO ของหมวดหมู่" + +#: core/docs/drf/viewsets.py:161 +msgid "Category UUID or slug" +msgstr "หมวดหมู่ UUID หรือ slug" + +#: core/docs/drf/viewsets.py:174 +msgid "list all orders (simple view)" +msgstr "แสดงรายการหมวดหมู่ทั้งหมด (มุมมองแบบง่าย)" + +#: core/docs/drf/viewsets.py:175 +msgid "for non-staff users, only their own orders are returned." +msgstr "สำหรับผู้ใช้ที่ไม่ใช่พนักงาน จะแสดงเฉพาะคำสั่งซื้อของตนเองเท่านั้น" + +#: core/docs/drf/viewsets.py:181 +msgid "" +"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" + +#: core/docs/drf/viewsets.py:188 +msgid "Filter orders with buy_time >= this ISO 8601 datetime" +msgstr "กรองคำสั่งซื้อที่มี buy_time >= วันที่และเวลาตามมาตรฐาน ISO 8601 นี้" + +#: core/docs/drf/viewsets.py:193 +msgid "Filter orders with buy_time <= this ISO 8601 datetime" +msgstr "กรองคำสั่งซื้อที่มี buy_time <= วันที่และเวลาตามมาตรฐาน ISO 8601 นี้" + +#: core/docs/drf/viewsets.py:198 +msgid "Filter by exact order UUID" +msgstr "กรองตาม UUID ของคำสั่งซื้อที่ตรงกัน" + +#: core/docs/drf/viewsets.py:203 +msgid "Filter by exact human-readable order ID" +msgstr "กรองตามหมายเลขคำสั่งซื้อที่อ่านได้โดยมนุษย์อย่างถูกต้อง" + +#: core/docs/drf/viewsets.py:208 +msgid "Filter by user's email (case-insensitive exact match)" +msgstr "" +"กรองตามอีเมลของผู้ใช้ (ตรงตามตัวอักษรโดยไม่คำนึงถึงตัวพิมพ์ใหญ่หรือเล็ก)" + +#: core/docs/drf/viewsets.py:213 +msgid "Filter by user's UUID" +msgstr "กรองตาม UUID ของผู้ใช้" + +#: core/docs/drf/viewsets.py:218 +msgid "Filter by order status (case-insensitive substring match)" +msgstr "" +"กรองตามสถานะคำสั่งซื้อ (การจับคู่สตริงย่อยโดยไม่คำนึงตัวพิมพ์ใหญ่/เล็ก)" + +#: core/docs/drf/viewsets.py:224 +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')." +msgstr "" +"เรียงลำดับโดยหนึ่งใน: uuid, human_readable_id, user_email, user, status, " +"created, modified, buy_time, random. นำหน้าด้วย '-' " +"สำหรับเรียงลำดับจากมากไปน้อย (เช่น '-buy_time')." + +#: core/docs/drf/viewsets.py:233 +msgid "retrieve a single order (detailed view)" +msgstr "ดึงข้อมูลหมวดหมู่เดียว (มุมมองรายละเอียด)" + +#: core/docs/drf/viewsets.py:237 +msgid "create an order" +msgstr "สร้างแอตทริบิวต์" + +#: core/docs/drf/viewsets.py:238 +msgid "doesn't work for non-staff users." +msgstr "ไม่สามารถใช้งานได้สำหรับผู้ใช้ที่ไม่ใช่พนักงาน" + +#: core/docs/drf/viewsets.py:242 +msgid "delete an order" +msgstr "ลบแอตทริบิวต์" + +#: core/docs/drf/viewsets.py:246 +msgid "rewrite an existing order saving non-editables" +msgstr "เขียนหมวดหมู่ที่มีอยู่ใหม่โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:250 +msgid "rewrite some fields of an existing order saving non-editables" +msgstr "" +"เขียนฟิลด์บางส่วนของหมวดหมู่ที่มีอยู่แล้วใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:254 +msgid "purchase an order" +msgstr "ราคาซื้อ ณ เวลาที่สั่งซื้อ" + +#: core/docs/drf/viewsets.py:256 +msgid "" +"finalizes the order purchase. if `force_balance` is used, the purchase is " +"completed using the user's balance; if `force_payment` is used, a " +"transaction is initiated." +msgstr "" +"สรุปการสั่งซื้อสินค้า หากใช้ `force_balance` " +"การสั่งซื้อจะเสร็จสมบูรณ์โดยใช้ยอดเงินคงเหลือของผู้ใช้ หากใช้ " +"`force_payment` จะเริ่มการทำธุรกรรม" + +#: core/docs/drf/viewsets.py:268 core/graphene/mutations.py:324 +msgid "purchase an order without account creation" +msgstr "ซื้อสินค้าโดยไม่ต้องสร้างบัญชี" + +#: core/docs/drf/viewsets.py:269 +msgid "finalizes the order purchase for a non-registered user." +msgstr "สรุปการสั่งซื้อสินค้าสำหรับผู้ใช้ที่ไม่ได้ลงทะเบียน" + +#: core/docs/drf/viewsets.py:277 +msgid "add product to order" +msgstr "เพิ่มสินค้าในคำสั่งซื้อ" + +#: core/docs/drf/viewsets.py:278 +msgid "" +"adds a product to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"เพิ่มสินค้าไปยังคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" + +#: core/docs/drf/viewsets.py:283 +msgid "add a list of products to order, quantities will not count" +msgstr "เพิ่มรายการสินค้าที่ต้องการสั่งซื้อ โดยจำนวนจะไม่ถูกนับ" + +#: core/docs/drf/viewsets.py:284 +msgid "" +"adds a list of products to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"เพิ่มรายการสินค้าไปยังคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` " +"ที่ให้มา" + +#: core/docs/drf/viewsets.py:289 +msgid "remove product from order" +msgstr "ลบสินค้าออกจากคำสั่งซื้อ" + +#: core/docs/drf/viewsets.py:290 +msgid "" +"removes a product from an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"ลบผลิตภัณฑ์ออกจากคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" + +#: core/docs/drf/viewsets.py:295 +msgid "remove product from order, quantities will not count" +msgstr "นำสินค้าออกจากคำสั่งซื้อ, จำนวนจะไม่ถูกนับ" + +#: core/docs/drf/viewsets.py:296 +msgid "" +"removes a list of products from an order using the provided `product_uuid` " +"and `attributes`" +msgstr "" +"ลบรายการสินค้าออกจากคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` " +"ที่ให้มา" + +#: core/docs/drf/viewsets.py:304 +msgid "list all wishlists (simple view)" +msgstr "แสดงรายการคุณลักษณะทั้งหมด (มุมมองแบบง่าย)" + +#: core/docs/drf/viewsets.py:305 +msgid "for non-staff users, only their own wishlists are returned." +msgstr "" +"สำหรับผู้ใช้ที่ไม่ใช่บุคลากร " +"จะแสดงเฉพาะรายการที่อยู่ในรายการสิ่งที่ต้องการของตนเองเท่านั้น" + +#: core/docs/drf/viewsets.py:309 +msgid "retrieve a single wishlist (detailed view)" +msgstr "ดึงข้อมูลคุณลักษณะเดียว (มุมมองรายละเอียด)" + +#: core/docs/drf/viewsets.py:313 +msgid "create an wishlist" +msgstr "สร้างแอตทริบิวต์" + +#: core/docs/drf/viewsets.py:314 +msgid "Doesn't work for non-staff users." +msgstr "ไม่สามารถใช้งานได้สำหรับผู้ใช้ที่ไม่ใช่พนักงาน" + +#: core/docs/drf/viewsets.py:318 +msgid "delete an wishlist" +msgstr "ลบแอตทริบิวต์" + +#: core/docs/drf/viewsets.py:322 +msgid "rewrite an existing wishlist saving non-editables" +msgstr "เขียนแอตทริบิวต์ที่มีอยู่ใหม่โดยบันทึกเฉพาะส่วนที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:326 +msgid "rewrite some fields of an existing wishlist saving non-editables" +msgstr "" +"เขียนฟิลด์บางส่วนของแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่มีการแก้ไข" + +#: core/docs/drf/viewsets.py:330 +msgid "add product to wishlist" +msgstr "เพิ่มสินค้าในคำสั่งซื้อ" + +#: core/docs/drf/viewsets.py:331 +msgid "adds a product to an wishlist using the provided `product_uuid`" +msgstr "เพิ่มสินค้าไปยังรายการที่ต้องการโดยใช้ `product_uuid` ที่ให้มา" + +#: core/docs/drf/viewsets.py:336 +msgid "remove product from wishlist" +msgstr "นำสินค้าออกจากรายการที่อยากได้" + +#: core/docs/drf/viewsets.py:337 +msgid "removes a product from an wishlist using the provided `product_uuid`" +msgstr "ลบผลิตภัณฑ์ออกจากรายการที่ต้องการโดยใช้ `product_uuid` ที่ให้มา" + +#: core/docs/drf/viewsets.py:342 +msgid "add many products to wishlist" +msgstr "เพิ่มสินค้าหลายรายการลงในรายการที่ต้องการ" + +#: core/docs/drf/viewsets.py:343 +msgid "adds many products to an wishlist using the provided `product_uuids`" +msgstr "" +"เพิ่มสินค้าหลายรายการลงในรายการสินค้าที่ต้องการโดยใช้ `product_uuids` " +"ที่ให้มา" + +#: core/docs/drf/viewsets.py:348 +msgid "remove many products from wishlist" +msgstr "ลบสินค้าออกจากคำสั่งซื้อ" + +#: core/docs/drf/viewsets.py:349 +msgid "" +"removes many products from an wishlist using the provided `product_uuids`" +msgstr "" +"ลบผลิตภัณฑ์หลายรายการออกจากรายการที่ต้องการโดยใช้ `product_uuids` ที่ให้มา" + +#: core/docs/drf/viewsets.py:356 +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" +"• **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" +"`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`" + +#: core/docs/drf/viewsets.py:372 core/docs/drf/viewsets.py:373 +msgid "list all products (simple view)" +msgstr "รายการสินค้าทั้งหมด (มุมมองแบบง่าย)" + +#: core/docs/drf/viewsets.py:378 +msgid "(exact) Product UUID" +msgstr "(exact) รหัส UUID ของผลิตภัณฑ์" + +#: core/docs/drf/viewsets.py:384 +msgid "(icontains) Product name" +msgstr "(icontains) ชื่อผลิตภัณฑ์" + +#: core/docs/drf/viewsets.py:390 +msgid "(list) Category names, case-insensitive" +msgstr "(รายการ) ชื่อหมวดหมู่, ไม่คำนึงถึงตัวพิมพ์ใหญ่หรือเล็ก" + +#: core/docs/drf/viewsets.py:396 +msgid "(exact) Category UUID" +msgstr "(เฉพาะ) UUID หมวดหมู่" + +#: core/docs/drf/viewsets.py:402 +msgid "(list) Tag names, case-insensitive" +msgstr "(รายการ) ชื่อแท็ก, ไม่คำนึงถึงตัวพิมพ์ใหญ่หรือเล็ก" + +#: core/docs/drf/viewsets.py:408 +msgid "(gte) Minimum stock price" +msgstr "(gte) ราคาหุ้นขั้นต่ำ" + +#: core/docs/drf/viewsets.py:414 +msgid "(lte) Maximum stock price" +msgstr "(ลที) ราคาหุ้นสูงสุด" + +#: core/docs/drf/viewsets.py:420 +msgid "(exact) Only active products" +msgstr "(เฉพาะ) ผลิตภัณฑ์ที่ใช้งานอยู่เท่านั้น" + +#: core/docs/drf/viewsets.py:426 +msgid "(iexact) Brand name" +msgstr "(ไม่ระบุ) ชื่อแบรนด์" + +#: core/docs/drf/viewsets.py:438 +msgid "(gt) Minimum stock quantity" +msgstr "(gt) ปริมาณสต็อกขั้นต่ำ" + +#: core/docs/drf/viewsets.py:444 +msgid "(exact) Digital vs. physical" +msgstr "(ตรงตัว) ดิจิทัล vs. วัตถุ" + +#: core/docs/drf/viewsets.py:451 +msgid "" +"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" + +#: core/docs/drf/viewsets.py:465 core/docs/drf/viewsets.py:466 +msgid "retrieve a single product (detailed view)" +msgstr "ดึงข้อมูลสินค้าเพียงรายการเดียว (มุมมองรายละเอียด)" + +#: core/docs/drf/viewsets.py:471 core/docs/drf/viewsets.py:495 +#: core/docs/drf/viewsets.py:511 core/docs/drf/viewsets.py:527 +#: core/docs/drf/viewsets.py:543 core/docs/drf/viewsets.py:559 +msgid "Product UUID or slug" +msgstr "รหัส UUID ของผลิตภัณฑ์ หรือชื่อเรียก" + +#: core/docs/drf/viewsets.py:481 core/docs/drf/viewsets.py:482 +msgid "create a product" +msgstr "สร้างผลิตภัณฑ์" + +#: core/docs/drf/viewsets.py:489 core/docs/drf/viewsets.py:490 +msgid "rewrite an existing product, preserving non-editable fields" +msgstr "เขียนใหม่ผลิตภัณฑ์ที่มีอยู่ โดยรักษาฟิลด์ที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:505 core/docs/drf/viewsets.py:506 +msgid "" +"update some fields of an existing product, preserving non-editable fields" +msgstr "" +"อัปเดตบางฟิลด์ของสินค้าที่มีอยู่แล้ว โดยคงฟิลด์ที่ไม่สามารถแก้ไขได้ไว้" + +#: core/docs/drf/viewsets.py:521 core/docs/drf/viewsets.py:522 +msgid "delete a product" +msgstr "ลบผลิตภัณฑ์" + +#: core/docs/drf/viewsets.py:537 core/docs/drf/viewsets.py:538 +msgid "lists all permitted feedbacks for a product" +msgstr "แสดงรายการข้อเสนอแนะที่ได้รับอนุญาตทั้งหมดสำหรับผลิตภัณฑ์" + +#: core/docs/drf/viewsets.py:554 +msgid "returns a snapshot of the product's SEO meta data" +msgstr "ส่งคืนภาพรวมของข้อมูลเมตา SEO ของผลิตภัณฑ์" + +#: core/docs/drf/viewsets.py:572 +msgid "list all addresses" +msgstr "รายการที่อยู่ทั้งหมด" + +#: core/docs/drf/viewsets.py:579 +msgid "retrieve a single address" +msgstr "ดึงที่อยู่เดียว" + +#: core/docs/drf/viewsets.py:586 +msgid "create a new address" +msgstr "สร้างที่อยู่ใหม่" + +#: core/docs/drf/viewsets.py:594 +msgid "delete an address" +msgstr "ลบที่อยู่" + +#: core/docs/drf/viewsets.py:601 +msgid "update an entire address" +msgstr "อัปเดตที่อยู่ทั้งหมด" + +#: core/docs/drf/viewsets.py:609 +msgid "partially update an address" +msgstr "อัปเดตที่อยู่บางส่วน" + +#: core/docs/drf/viewsets.py:617 +msgid "autocomplete address suggestions" +msgstr "การเติมที่อยู่โดยอัตโนมัติ" + +#: core/docs/drf/viewsets.py:622 +msgid "raw data query string, please append with data from geo-IP endpoint" +msgstr "ข้อมูลดิบสำหรับคำค้นหา กรุณาเพิ่มข้อมูลจากจุดสิ้นสุด geo-IP" + +#: core/docs/drf/viewsets.py:628 +msgid "limit the results amount, 1 < limit < 10, default: 5" +msgstr "จำกัดจำนวนผลลัพธ์, 1 < limit < 10, ค่าเริ่มต้น: 5" + +#: core/docs/drf/viewsets.py:641 +msgid "list all feedbacks (simple view)" +msgstr "แสดงความคิดเห็นทั้งหมด (มุมมองแบบง่าย)" + +#: core/docs/drf/viewsets.py:645 +msgid "retrieve a single feedback (detailed view)" +msgstr "ดึงข้อมูลความคิดเห็นหนึ่งรายการ (มุมมองแบบละเอียด)" + +#: core/docs/drf/viewsets.py:649 +msgid "create a feedback" +msgstr "สร้างข้อเสนอแนะ" + +#: core/docs/drf/viewsets.py:653 +msgid "delete a feedback" +msgstr "ลบความคิดเห็น" + +#: core/docs/drf/viewsets.py:657 +msgid "rewrite an existing feedback saving non-editables" +msgstr "เขียนใหม่ข้อเสนอแนะที่มีอยู่โดยไม่แก้ไขส่วนที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:661 +msgid "rewrite some fields of an existing feedback saving non-editables" +msgstr "" +"เขียนข้อมูลบางส่วนของฟิลด์ในข้อเสนอแนะที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" + +#: core/docs/drf/viewsets.py:668 +msgid "list all order–product relations (simple view)" +msgstr "แสดงความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์ทั้งหมด (มุมมองแบบง่าย)" + +#: core/docs/drf/viewsets.py:675 +msgid "retrieve a single order–product relation (detailed view)" +msgstr "" +"ดึงความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์เพียงรายการเดียว " +"(มุมมองรายละเอียด)" + +#: core/docs/drf/viewsets.py:682 +msgid "create a new order–product relation" +msgstr "สร้างความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์ใหม่" + +#: core/docs/drf/viewsets.py:689 +msgid "replace an existing order–product relation" +msgstr "แทนที่ความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์ที่มีอยู่" + +#: core/docs/drf/viewsets.py:696 +msgid "partially update an existing order–product relation" +msgstr "อัปเดตบางส่วนของความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์ที่มีอยู่" + +#: core/docs/drf/viewsets.py:703 +msgid "delete an order–product relation" +msgstr "ลบความสัมพันธ์ระหว่างคำสั่งซื้อและสินค้า" + +#: core/docs/drf/viewsets.py:710 +msgid "add or remove feedback on an order–product relation" +msgstr "" +"เพิ่มหรือลบความคิดเห็นเกี่ยวกับความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์" + +#: core/elasticsearch/__init__.py:105 +msgid "no search term provided." +msgstr "ไม่พบคำค้นหา" + +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 +msgid "UUID" +msgstr "ยูไอไอดี" + +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 +msgid "Name" +msgstr "ชื่อ" + +#: core/filters.py:66 core/filters.py:562 +msgid "Categories" +msgstr "หมวดหมู่" + +#: core/filters.py:68 +msgid "Categories Slugs" +msgstr "หมวดหมู่ slug" + +#: core/filters.py:69 core/filters.py:437 +msgid "Tags" +msgstr "แท็ก" + +#: core/filters.py:70 +msgid "Min Price" +msgstr "ราคาต่ำสุด" + +#: core/filters.py:71 +msgid "Max Price" +msgstr "ราคาสูงสุด" + +#: core/filters.py:72 +msgid "Is Active" +msgstr "กำลังใช้งานอยู่" + +#: core/filters.py:73 +msgid "Brand" +msgstr "แบรนด์" + +#: core/filters.py:74 +msgid "Attributes" +msgstr "คุณลักษณะ" + +#: core/filters.py:75 +msgid "Quantity" +msgstr "ปริมาณ" + +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 +msgid "Slug" +msgstr "ทาก" + +#: core/filters.py:77 +msgid "Is Digital" +msgstr "คือ ดิจิทัล" + +#: core/filters.py:78 +msgid "Include sub-categories" +msgstr "รวมหมวดหมู่ย่อย" + +#: core/filters.py:81 +msgid "Include personal ordered" +msgstr "รวมสินค้าสั่งทำส่วนตัว" + +#: core/filters.py:83 core/models.py:538 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:166 +msgid "there must be a category_uuid to use include_subcategories flag" +msgstr "ต้องมี category_uuid เพื่อใช้แฟล็ก include_subcategories" + +#: core/filters.py:356 +msgid "Search (ID, product name or part number)" +msgstr "ค้นหา (รหัส, ชื่อผลิตภัณฑ์ หรือหมายเลขชิ้นส่วน)" + +#: core/filters.py:359 +msgid "Bought after (inclusive)" +msgstr "ซื้อหลังจาก (รวมแล้ว)" + +#: core/filters.py:360 +msgid "Bought before (inclusive)" +msgstr "ซื้อมาก่อน (รวมแล้ว)" + +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 +msgid "User email" +msgstr "อีเมลผู้ใช้" + +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 +msgid "User UUID" +msgstr "รหัสผู้ใช้ UUID" + +#: core/filters.py:365 +msgid "Status" +msgstr "สถานะ" + +#: core/filters.py:369 +msgid "Human Readable ID" +msgstr "รหัสที่มนุษย์อ่านได้" + +#: core/filters.py:430 +msgid "Parent" +msgstr "ผู้ปกครอง" + +#: core/filters.py:434 +msgid "Whole category(has at least 1 product or not)" +msgstr "หมวดหมู่ทั้งหมด (มีอย่างน้อย 1 ผลิตภัณฑ์หรือไม่)" + +#: core/filters.py:438 +msgid "Level" +msgstr "ระดับ" + +#: core/filters.py:598 +msgid "Product UUID" +msgstr "รหัส UUID ของผลิตภัณฑ์" + +#: core/graphene/mutations.py:39 +msgid "key to look for in or set into the cache" +msgstr "กุญแจที่ต้องค้นหาหรือติดตั้งไว้ในแคช" + +#: core/graphene/mutations.py:40 +msgid "data to store in cache" +msgstr "ข้อมูลที่จะเก็บไว้ในแคช" + +#: core/graphene/mutations.py:43 +msgid "timeout in seconds to set the data for into the cache" +msgstr "เวลาหมดในวินาทีเพื่อตั้งค่าข้อมูลสำหรับเก็บในแคช" + +#: core/graphene/mutations.py:46 +msgid "cached data" +msgstr "ข้อมูลที่เก็บไว้ในแคช" + +#: core/graphene/mutations.py:60 +msgid "camelized JSON data from the requested URL" +msgstr "ข้อมูล JSON ที่ผ่านการคาราเมลไลซ์จาก URL ที่ร้องขอ" + +#: core/graphene/mutations.py:65 core/views.py:360 +msgid "only URLs starting with http(s):// are allowed" +msgstr "อนุญาตเฉพาะ URL ที่ขึ้นต้นด้วย http(s):// เท่านั้น" + +#: core/graphene/mutations.py:80 +msgid "add a product to the order" +msgstr "เพิ่มสินค้าในคำสั่งซื้อ" + +#: core/graphene/mutations.py:101 core/graphene/mutations.py:127 +#: core/graphene/mutations.py:232 core/graphene/mutations.py:279 +#, python-brace-format +msgid "order {order_uuid} not found" +msgstr "ไม่พบคำสั่งซื้อ {order_uuid}!" + +#: core/graphene/mutations.py:106 core/graphene/mutations.py:153 +msgid "remove a product from the order" +msgstr "ลบสินค้าออกจากคำสั่งซื้อ" + +#: core/graphene/mutations.py:132 +msgid "remove all products from the order" +msgstr "นำสินค้าทั้งหมดออกจากคำสั่งซื้อ" + +#: core/graphene/mutations.py:175 +msgid "buy an order" +msgstr "ซื้อคำสั่ง" + +#: core/graphene/mutations.py:204 core/graphene/mutations.py:257 +msgid "please provide either order_uuid or order_hr_id - mutually exclusive" +msgstr "" +"กรุณาให้ order_uuid หรือ order_hr_id - ต้องเลือกอย่างใดอย่างหนึ่งเท่านั้น!" + +#: core/graphene/mutations.py:229 core/graphene/mutations.py:486 +#: core/graphene/mutations.py:527 core/viewsets.py:821 +msgid "wrong type came from order.buy() method: {type(instance)!s}" +msgstr "ประเภทไม่ถูกต้องมาจากเมธอด order.buy(): {type(instance)!s}" + +#: core/graphene/mutations.py:237 +msgid "perform an action on a list of products in the order" +msgstr "ดำเนินการกับรายการสินค้าในลำดับ" + +#: core/graphene/mutations.py:242 +msgid "remove/add" +msgstr "ลบ/เพิ่ม" + +#: core/graphene/mutations.py:274 core/graphene/mutations.py:314 +msgid "action must be either add or remove" +msgstr "การกระทำต้องเป็น \"เพิ่ม\" หรือ \"ลบ\"!" + +#: core/graphene/mutations.py:284 +msgid "perform an action on a list of products in the wishlist" +msgstr "ดำเนินการกับรายการสินค้าในรายการสินค้าที่ต้องการ" + +#: core/graphene/mutations.py:302 +msgid "please provide wishlist_uuid value" +msgstr "กรุณาให้ค่า `wishlist_uuid`" + +#: core/graphene/mutations.py:319 core/graphene/mutations.py:392 +#: core/graphene/mutations.py:419 core/graphene/mutations.py:446 +#: core/graphene/mutations.py:489 +#, python-brace-format +msgid "wishlist {wishlist_uuid} not found" +msgstr "รายการที่อยากได้ {wishlist_uuid} ไม่พบ!" + +#: core/graphene/mutations.py:370 +msgid "add a product to the wishlist" +msgstr "เพิ่มสินค้าในคำสั่งซื้อ" + +#: core/graphene/mutations.py:397 +msgid "remove a product from the wishlist" +msgstr "ลบสินค้าออกจากคำสั่งซื้อ" + +#: core/graphene/mutations.py:424 +msgid "remove all products from the wishlist" +msgstr "ลบสินค้าออกจากคำสั่งซื้อ" + +#: core/graphene/mutations.py:451 +msgid "buy all products from the wishlist" +msgstr "ลบสินค้าออกจากคำสั่งซื้อ" + +#: core/graphene/mutations.py:494 +msgid "buy a product" +msgstr "ซื้อคำสั่ง" + +#: core/graphene/mutations.py:500 +msgid "" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" +msgstr "" +"กรุณาส่งแอตทริบิวต์ในรูปแบบสตริงที่จัดรูปแบบดังนี้ attr1=value1,attr2=value2" + +#: core/graphene/mutations.py:532 +msgid "add or delete a feedback for orderproduct" +msgstr "เพิ่มหรือลบความคิดเห็นสำหรับสินค้าที่สั่งซื้อ" + +#: core/graphene/mutations.py:555 +msgid "action must be either `add` or `remove`" +msgstr "การกระทำต้องเป็น `add` หรือ `remove` เท่านั้น!" + +#: core/graphene/mutations.py:558 +#, python-brace-format +msgid "order product {order_product_uuid} not found" +msgstr "ไม่พบคำสั่งซื้อสินค้า {order_product_uuid}!" + +#: core/graphene/mutations.py:621 +msgid "original address string provided by the user" +msgstr "สตริงที่อยู่ต้นฉบับที่ผู้ใช้ให้มา" + +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 +#: core/viewsets.py:824 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} ไม่พบ: {uuid}!" + +#: core/graphene/mutations.py:668 +msgid "limit must be between 1 and 10" +msgstr "ต้องอยู่ระหว่าง 1 ถึง 10" + +#: core/graphene/mutations.py:713 +msgid "elasticsearch - works like a charm" +msgstr "ElasticSearch - ทำงานได้อย่างยอดเยี่ยม" + +#: core/graphene/object_types.py:82 core/graphene/object_types.py:397 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 +msgid "attributes" +msgstr "คุณลักษณะ" + +#: core/graphene/object_types.py:95 +msgid "grouped attributes" +msgstr "กลุ่มคุณสมบัติ" + +#: core/graphene/object_types.py:102 +msgid "groups of attributes" +msgstr "กลุ่มของลักษณะ" + +#: core/graphene/object_types.py:116 core/graphene/object_types.py:193 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 +msgid "categories" +msgstr "หมวดหมู่" + +#: core/graphene/object_types.py:124 core/models.py:395 +msgid "brands" +msgstr "แบรนด์" + +#: core/graphene/object_types.py:195 +msgid "category image url" +msgstr "หมวดหมู่" + +#: core/graphene/object_types.py:196 core/graphene/object_types.py:344 +#: core/models.py:249 +msgid "markup percentage" +msgstr "เปอร์เซ็นต์มาร์กอัป" + +#: core/graphene/object_types.py:199 +msgid "which attributes and values can be used for filtering this category." +msgstr "คุณลักษณะและคุณค่าใดที่สามารถใช้สำหรับกรองหมวดหมู่นี้ได้" + +#: core/graphene/object_types.py:203 +msgid "" +"minimum and maximum prices for products in this category, if available." +msgstr "ราคาต่ำสุดและราคาสูงสุดสำหรับสินค้าในหมวดนี้ (หากมี)" + +#: core/graphene/object_types.py:205 +msgid "tags for this category" +msgstr "แท็กสำหรับหมวดหมู่นี้" + +#: core/graphene/object_types.py:206 +msgid "products in this category" +msgstr "สินค้าในหมวดหมู่" + +#: core/graphene/object_types.py:351 core/models.py:155 +msgid "vendors" +msgstr "ผู้ขาย" + +#: core/graphene/object_types.py:355 +msgid "Latitude (Y coordinate)" +msgstr "ละติจูด (พิกัด Y)" + +#: core/graphene/object_types.py:356 +msgid "Longitude (X coordinate)" +msgstr "ลองจิจูด (พิกัด X)" + +#: core/graphene/object_types.py:385 +msgid "comment" +msgstr "อย่างไร" + +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 +msgid "rating value from 1 to 10, inclusive, or 0 if not set." +msgstr "ให้คะแนนตั้งแต่ 1 ถึง 10 รวมทั้งสองค่า หรือ 0 หากไม่ได้กำหนด" + +#: core/graphene/object_types.py:393 +msgid "represents feedback from a user." +msgstr "แสดงความคิดเห็นจากผู้ใช้" + +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 +msgid "notifications" +msgstr "การแจ้งเตือน" + +#: core/graphene/object_types.py:399 +msgid "download url for this order product if applicable" +msgstr "ดาวน์โหลด url สำหรับคำสั่งซื้อสินค้านี้ หากมี" + +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "ข้อเสนอแนะ" + +#: core/graphene/object_types.py:434 +msgid "a list of order products in this order" +msgstr "รายการสินค้าที่สั่งซื้อในคำสั่งซื้อนี้" + +#: core/graphene/object_types.py:436 core/models.py:1198 +msgid "billing address" +msgstr "ที่อยู่สำหรับออกใบแจ้งหนี้" + +#: core/graphene/object_types.py:439 +msgid "" +"shipping address for this order, leave blank if same as billing address or " +"if not applicable" +msgstr "" +"ที่อยู่สำหรับจัดส่งสำหรับคำสั่งซื้อนี้, " +"ปล่อยว่างไว้หากเป็นที่อยู่เดียวกับที่อยู่สำหรับเรียกเก็บเงินหรือหากไม่เกี่ยวข้อง" + +#: core/graphene/object_types.py:441 +msgid "total price of this order" +msgstr "ราคาทั้งหมดของคำสั่งซื้อนี้" + +#: core/graphene/object_types.py:442 +msgid "total quantity of products in order" +msgstr "จำนวนรวมของผลิตภัณฑ์ในคำสั่งซื้อ" + +#: core/graphene/object_types.py:443 +msgid "are all products in the order digital" +msgstr "สินค้าทั้งหมดในคำสั่งซื้อนี้เป็นสินค้าดิจิทัลหรือไม่" + +#: core/graphene/object_types.py:446 +msgid "transactions for this order" +msgstr "รายการธุรกรรมสำหรับคำสั่งนี้" + +#: core/graphene/object_types.py:465 core/models.py:1262 +msgid "orders" +msgstr "คำสั่ง" + +#: core/graphene/object_types.py:486 +msgid "image url" +msgstr "URL ของรูปภาพ" + +#: core/graphene/object_types.py:493 +msgid "product's images" +msgstr "รูปภาพของสินค้า" + +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 +msgid "category" +msgstr "หมวดหมู่" + +#: core/graphene/object_types.py:502 core/models.py:1939 +msgid "feedbacks" +msgstr "ข้อเสนอแนะ" + +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 +msgid "brand" +msgstr "แบรนด์" + +#: core/graphene/object_types.py:504 core/models.py:101 +msgid "attribute groups" +msgstr "กลุ่มคุณลักษณะ" + +#: core/graphene/object_types.py:505 +#: core/templates/digital_order_created_email.html:111 +#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/shipped_order_created_email.html:109 +#: core/templates/shipped_order_delivered_email.html:109 +msgid "price" +msgstr "ราคา" + +#: core/graphene/object_types.py:506 +#: core/templates/digital_order_created_email.html:110 +#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/shipped_order_created_email.html:108 +#: core/templates/shipped_order_delivered_email.html:108 +msgid "quantity" +msgstr "ปริมาณ" + +#: core/graphene/object_types.py:507 +msgid "number of feedbacks" +msgstr "จำนวนความคิดเห็น" + +#: core/graphene/object_types.py:508 +msgid "only available for personal orders" +msgstr "สินค้าที่มีจำหน่ายเฉพาะการสั่งซื้อส่วนบุคคลเท่านั้น" + +#: core/graphene/object_types.py:534 core/models.py:548 +msgid "products" +msgstr "ผลิตภัณฑ์" + +#: core/graphene/object_types.py:634 +msgid "promocodes" +msgstr "รหัสส่งเสริมการขาย" + +#: core/graphene/object_types.py:644 +msgid "products on sale" +msgstr "สินค้าลดราคา" + +#: core/graphene/object_types.py:651 core/models.py:843 +msgid "promotions" +msgstr "โปรโมชั่น" + +#: core/graphene/object_types.py:655 core/models.py:154 +msgid "vendor" +msgstr "ผู้ขาย" + +#: core/graphene/object_types.py:656 core/models.py:547 +#: core/templates/digital_order_created_email.html:109 +#: core/templates/digital_order_delivered_email.html:107 +#: core/templates/shipped_order_created_email.html:107 +#: core/templates/shipped_order_delivered_email.html:107 +msgid "product" +msgstr "สินค้า" + +#: core/graphene/object_types.py:667 core/models.py:868 +msgid "wishlisted products" +msgstr "สินค้าที่อยู่ในรายการต้องการ" + +#: core/graphene/object_types.py:673 core/models.py:885 +msgid "wishlists" +msgstr "รายการสิ่งที่ต้องการ" + +#: core/graphene/object_types.py:677 +msgid "tagged products" +msgstr "สินค้าที่ติดแท็ก" + +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 +msgid "product tags" +msgstr "แท็กสินค้า" + +#: core/graphene/object_types.py:688 +msgid "tagged categories" +msgstr "หมวดหมู่ที่ถูกติดแท็ก" + +#: core/graphene/object_types.py:695 +msgid "categories tags" +msgstr "หมวดหมู่' แท็ก" + +#: core/graphene/object_types.py:699 +msgid "project name" +msgstr "ชื่อโครงการ" + +#: core/graphene/object_types.py:700 +msgid "company email" +msgstr "อีเมลบริษัท" + +#: core/graphene/object_types.py:701 +msgid "company name" +msgstr "ชื่อบริษัท" + +#: core/graphene/object_types.py:702 +msgid "company address" +msgstr "ที่อยู่บริษัท" + +#: core/graphene/object_types.py:703 +msgid "company phone number" +msgstr "หมายเลขโทรศัพท์บริษัท" + +#: core/graphene/object_types.py:704 +msgid "email from, sometimes it must be used instead of host user value" +msgstr "'อีเมลจาก', บางครั้งจำเป็นต้องใช้แทนค่าผู้ใช้โฮสต์" + +#: core/graphene/object_types.py:705 +msgid "email host user" +msgstr "ผู้ใช้โฮสต์อีเมล" + +#: core/graphene/object_types.py:706 +msgid "maximum amount for payment" +msgstr "จำนวนเงินสูงสุดสำหรับการชำระเงิน" + +#: core/graphene/object_types.py:707 +msgid "minimum amount for payment" +msgstr "จำนวนเงินขั้นต่ำสำหรับการชำระเงิน" + +#: core/graphene/object_types.py:708 +msgid "analytics data" +msgstr "ข้อมูลการวิเคราะห์" + +#: core/graphene/object_types.py:709 +msgid "advertisement data" +msgstr "ข้อมูลโฆษณา" + +#: core/graphene/object_types.py:712 +msgid "company configuration" +msgstr "การกำหนดค่า" + +#: core/graphene/object_types.py:716 +msgid "language code" +msgstr "รหัสภาษา" + +#: core/graphene/object_types.py:717 +msgid "language name" +msgstr "ชื่อภาษา" + +#: core/graphene/object_types.py:718 +msgid "language flag, if exists :)" +msgstr "ธงภาษา, หากมีอยู่ :)" + +#: core/graphene/object_types.py:721 +msgid "supported languages" +msgstr "รับรายการภาษาที่รองรับ" + +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 +msgid "products search results" +msgstr "ผลการค้นหาสินค้า" + +#: core/graphene/object_types.py:755 +msgid "posts search results" +msgstr "ผลการค้นหาสินค้า" + +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"แทนกลุ่มของแอตทริบิวต์ ซึ่งสามารถมีลำดับชั้นได้ " +"คลาสนี้ใช้เพื่อจัดการและจัดระเบียบกลุ่มแอตทริบิวต์ " +"กลุ่มแอตทริบิวต์สามารถมีกลุ่มแม่ได้ ทำให้เกิดโครงสร้างลำดับชั้น " +"ซึ่งสามารถมีประโยชน์ในการจัดหมวดหมู่และจัดการแอตทริบิวต์ได้อย่างมีประสิทธิภาพมากขึ้นในระบบที่ซับซ้อน" + +#: core/models.py:86 +msgid "parent of this group" +msgstr "ผู้ปกครองของกลุ่มนี้" + +#: core/models.py:87 +msgid "parent attribute group" +msgstr "กลุ่มแอตทริบิวต์ของพ่อแม่" + +#: core/models.py:91 core/models.py:92 +msgid "attribute group's name" +msgstr "ชื่อกลุ่มคุณสมบัติ" + +#: core/models.py:100 core/models.py:628 +msgid "attribute group" +msgstr "กลุ่มคุณลักษณะ" + +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"แทนหน่วยงานผู้ขายที่สามารถจัดเก็บข้อมูลเกี่ยวกับผู้ขายภายนอกและข้อกำหนดในการโต้ตอบของพวกเขาได้" +" คลาสผู้ขายถูกใช้เพื่อกำหนดและจัดการข้อมูลที่เกี่ยวข้องกับผู้ขายภายนอก " +"มันจัดเก็บชื่อผู้ขาย รายละเอียดการตรวจสอบสิทธิ์ที่จำเป็นสำหรับการสื่อสาร " +"และเปอร์เซ็นต์การเพิ่มราคาที่นำไปใช้กับสินค้าที่นำมาจากผู้ขาย " +"โมเดลนี้ยังรักษาข้อมูลเมตาเพิ่มเติมและข้อจำกัด " +"ทำให้เหมาะสำหรับการใช้งานในระบบที่มีการโต้ตอบกับผู้ขายภายนอก" + +#: core/models.py:119 +msgid "stores credentials and endpoints required for vendor communication" +msgstr "" +"เก็บรักษาข้อมูลประจำตัวและจุดสิ้นสุดที่จำเป็นสำหรับการสื่อสาร API ของผู้ขาย" + +#: core/models.py:120 +msgid "authentication info" +msgstr "ข้อมูลการยืนยันตัวตน" + +#: core/models.py:125 +msgid "define the markup for products retrieved from this vendor" +msgstr "กำหนดมาร์กอัปสำหรับสินค้าที่ดึงมาจากผู้ขายรายนี้" + +#: core/models.py:126 +msgid "vendor markup percentage" +msgstr "เปอร์เซ็นต์การบวกกำไรของผู้ขาย" + +#: core/models.py:130 +msgid "name of this vendor" +msgstr "ชื่อของผู้ขายนี้" + +#: core/models.py:131 +msgid "vendor name" +msgstr "ชื่อผู้ขาย" + +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"แทนแท็กผลิตภัณฑ์ที่ใช้ในการจัดประเภทหรือระบุผลิตภัณฑ์ คลาส ProductTag " +"ถูกออกแบบมาเพื่อระบุและจัดประเภทผลิตภัณฑ์อย่างเป็นเอกลักษณ์ผ่านการรวมกันของตัวระบุแท็กภายในและชื่อแสดงผลที่ใช้งานง่าย" +" รองรับการดำเนินการที่ส่งออกผ่าน mixins " +"และให้การปรับแต่งเมตาดาต้าสำหรับวัตถุประสงค์ในการบริหารจัดการ" + +#: core/models.py:175 core/models.py:206 +msgid "internal tag identifier for the product tag" +msgstr "ตัวระบุแท็กภายในสำหรับแท็กสินค้า" + +#: core/models.py:176 core/models.py:207 +msgid "tag name" +msgstr "ชื่อวัน" + +#: core/models.py:180 core/models.py:211 +msgid "user-friendly name for the product tag" +msgstr "ชื่อที่เป็นมิตรกับผู้ใช้สำหรับแท็กสินค้า" + +#: core/models.py:181 core/models.py:212 +msgid "tag display name" +msgstr "แสดงชื่อแท็ก" + +#: core/models.py:189 +msgid "product tag" +msgstr "แท็กสินค้า" + +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"แทนแท็กหมวดหมู่ที่ใช้สำหรับผลิตภัณฑ์ " +"คลาสนี้จำลองแท็กหมวดหมู่ที่สามารถใช้เพื่อเชื่อมโยงและจัดประเภทผลิตภัณฑ์ได้ " +"รวมถึงแอตทริบิวต์สำหรับตัวระบุแท็กภายในและชื่อแสดงผลที่เป็นมิตรกับผู้ใช้" + +#: core/models.py:220 +msgid "category tag" +msgstr "แท็กหมวดหมู่" + +#: core/models.py:221 core/models.py:293 +msgid "category tags" +msgstr "แท็กหมวดหมู่" + +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"แทนถึงเอนทิตีประเภทเพื่อจัดระเบียบและจัดกลุ่มรายการที่เกี่ยวข้องในโครงสร้างลำดับชั้น" +" หมวดหมู่สามารถมีความสัมพันธ์ลำดับชั้นกับหมวดหมู่อื่น ๆ ได้ " +"ซึ่งสนับสนุนความสัมพันธ์แบบพ่อแม่-ลูกคลาสนี้ประกอบด้วยฟิลด์สำหรับข้อมูลเมตาและตัวแทนภาพ" +" ซึ่งทำหน้าที่เป็นพื้นฐานสำหรับคุณสมบัติที่เกี่ยวข้องกับหมวดหมู่ " +"คลาสนี้มักใช้เพื่อกำหนดและจัดการหมวดหมู่สินค้าหรือการจัดกลุ่มที่คล้ายกันภายในแอปพลิเคชัน" +" ช่วยให้ผู้ใช้หรือผู้ดูแลระบบสามารถระบุชื่อ คำอธิบาย และลำดับชั้นของหมวดหมู่" +" รวมถึงกำหนดคุณลักษณะต่างๆ เช่น รูปภาพ แท็ก หรือความสำคัญ" + +#: core/models.py:240 +msgid "upload an image representing this category" +msgstr "อัปโหลดรูปภาพที่แสดงถึงหมวดหมู่นี้" + +#: core/models.py:243 +msgid "category image" +msgstr "ภาพหมวดหมู่" + +#: core/models.py:248 +msgid "define a markup percentage for products in this category" +msgstr "กำหนดเปอร์เซ็นต์มาร์กอัปสำหรับสินค้าในหมวดหมู่นี้" + +#: core/models.py:257 +msgid "parent of this category to form a hierarchical structure" +msgstr "ผู้ปกครองของหมวดหมู่นี้เพื่อสร้างโครงสร้างลำดับชั้น" + +#: core/models.py:258 +msgid "parent category" +msgstr "หมวดหมู่หลัก" + +#: core/models.py:263 +msgid "category name" +msgstr "ชื่อหมวดหมู่" + +#: core/models.py:264 +msgid "provide a name for this category" +msgstr "กรุณาตั้งชื่อสำหรับหมวดหมู่นี้" + +#: core/models.py:271 +msgid "add a detailed description for this category" +msgstr "เพิ่มคำอธิบายโดยละเอียดสำหรับหมวดหมู่นี้" + +#: core/models.py:272 +msgid "category description" +msgstr "หมวดหมู่คำอธิบาย" + +#: core/models.py:292 +msgid "tags that help describe or group this category" +msgstr "แท็กที่ช่วยอธิบายหรือจัดกลุ่มหมวดหมู่นี้" + +#: core/models.py:299 core/models.py:387 +msgid "priority" +msgstr "ลำดับความสำคัญ" + +#: core/models.py:340 +msgid "name of this brand" +msgstr "ชื่อของแบรนด์นี้" + +#: core/models.py:341 +msgid "brand name" +msgstr "ชื่อแบรนด์" + +#: core/models.py:348 +msgid "upload a logo representing this brand" +msgstr "อัปโหลดโลโก้ที่เป็นตัวแทนของแบรนด์นี้" + +#: core/models.py:350 +msgid "brand small image" +msgstr "แบรนด์รูปภาพขนาดเล็ก" + +#: core/models.py:356 +msgid "upload a big logo representing this brand" +msgstr "อัปโหลดโลโก้ขนาดใหญ่ที่เป็นตัวแทนของแบรนด์นี้" + +#: core/models.py:358 +msgid "brand big image" +msgstr "แบรนด์ภาพใหญ่" + +#: core/models.py:363 +msgid "add a detailed description of the brand" +msgstr "เพิ่มคำอธิบายรายละเอียดของแบรนด์" + +#: core/models.py:364 +msgid "brand description" +msgstr "คำอธิบายแบรนด์" + +#: core/models.py:369 +msgid "optional categories that this brand is associated with" +msgstr "หมวดหมู่เพิ่มเติมที่แบรนด์นี้เกี่ยวข้อง" + +#: core/models.py:370 +msgid "associated categories" +msgstr "หมวดหมู่" + +#: core/models.py:400 +msgid "" +"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), และสินทรัพย์ดิจิทัล " +"เป็นส่วนหนึ่งของระบบการจัดการสินค้าคงคลังเพื่อให้สามารถติดตามและประเมินสินค้าที่มีจากผู้จำหน่ายต่างๆ" +" ได้" + +#: core/models.py:412 +msgid "the vendor supplying this product stock" +msgstr "ผู้จัดจำหน่ายที่จัดหาสินค้าคงคลังนี้" + +#: core/models.py:413 +msgid "associated vendor" +msgstr "ผู้ขายที่เกี่ยวข้อง" + +#: core/models.py:417 +msgid "final price to the customer after markups" +msgstr "ราคาสุดท้ายที่ลูกค้าต้องชำระหลังจากการบวกกำไร" + +#: core/models.py:418 +msgid "selling price" +msgstr "ราคาขาย" + +#: core/models.py:423 +msgid "the product associated with this stock entry" +msgstr "สินค้าที่เกี่ยวข้องกับรายการสินค้าคงคลังนี้" + +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 +msgid "associated product" +msgstr "ผลิตภัณฑ์ที่เกี่ยวข้อง" + +#: core/models.py:431 +msgid "the price paid to the vendor for this product" +msgstr "ราคาที่จ่ายให้กับผู้ขายสำหรับสินค้านี้" + +#: core/models.py:432 +msgid "vendor purchase price" +msgstr "ราคาซื้อจากผู้ขาย" + +#: core/models.py:436 +msgid "available quantity of the product in stock" +msgstr "จำนวนสินค้าที่มีในสต็อก" + +#: core/models.py:437 +msgid "quantity in stock" +msgstr "จำนวนในสต็อก" + +#: core/models.py:441 +msgid "vendor-assigned SKU for identifying the product" +msgstr "รหัสสินค้าที่ผู้ขายกำหนดเพื่อระบุตัวผลิตภัณฑ์" + +#: core/models.py:442 +msgid "vendor sku" +msgstr "รหัสสินค้าของผู้ขาย" + +#: core/models.py:448 +msgid "digital file associated with this stock if applicable" +msgstr "ไฟล์ดิจิทัลที่เกี่ยวข้องกับสต็อกนี้ หากมี" + +#: core/models.py:449 +msgid "digital file" +msgstr "ไฟล์ดิจิทัล" + +#: core/models.py:458 +msgid "stock entries" +msgstr "รายการสินค้าคงคลัง" + +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"แสดงถึงผลิตภัณฑ์ที่มีคุณลักษณะต่างๆ เช่น หมวดหมู่, แบรนด์, แท็ก, " +"สถานะดิจิทัล, ชื่อ, คำอธิบาย, หมายเลขชิ้นส่วน, และ slug " +"ให้คุณสมบัติประโยชน์ที่เกี่ยวข้องเพื่อดึงคะแนน, จำนวนความคิดเห็น, ราคา, " +"จำนวนสินค้า, และยอดสั่งซื้อทั้งหมด " +"ออกแบบมาเพื่อใช้ในระบบที่จัดการอีคอมเมิร์ซหรือการจัดการสินค้าคงคลัง " +"คลาสนี้โต้ตอบกับโมเดลที่เกี่ยวข้อง (เช่น หมวดหมู่, แบรนด์, และแท็กผลิตภัณฑ์)" +" " +"และจัดการการแคชสำหรับคุณสมบัติที่เข้าถึงบ่อยเพื่อปรับปรุงประสิทธิภาพใช้เพื่อกำหนดและจัดการข้อมูลผลิตภัณฑ์และข้อมูลที่เกี่ยวข้องภายในแอปพลิเคชัน" + +#: core/models.py:476 +msgid "category this product belongs to" +msgstr "หมวดหมู่ที่สินค้านี้จัดอยู่ใน" + +#: core/models.py:485 +msgid "optionally associate this product with a brand" +msgstr "เลือกเชื่อมโยงผลิตภัณฑ์นี้กับแบรนด์" + +#: core/models.py:491 +msgid "tags that help describe or group this product" +msgstr "แท็กที่ช่วยอธิบายหรือจัดกลุ่มผลิตภัณฑ์นี้" + +#: core/models.py:496 +msgid "indicates whether this product is digitally delivered" +msgstr "บ่งชี้ว่าสินค้านี้จัดส่งในรูปแบบดิจิทัลหรือไม่" + +#: core/models.py:497 +msgid "is product digital" +msgstr "สินค้าเป็นดิจิทัล" + +#: core/models.py:503 +msgid "provide a clear identifying name for the product" +msgstr "ระบุชื่อที่ชัดเจนสำหรับผลิตภัณฑ์" + +#: core/models.py:504 +msgid "product name" +msgstr "ชื่อสินค้า" + +#: core/models.py:509 core/models.py:831 +msgid "add a detailed description of the product" +msgstr "เพิ่มคำอธิบายรายละเอียดของสินค้า" + +#: core/models.py:510 +msgid "product description" +msgstr "รายละเอียดสินค้า" + +#: core/models.py:517 +msgid "part number for this product" +msgstr "หมายเลขชิ้นส่วนสำหรับสินค้านี้" + +#: core/models.py:518 +msgid "part number" +msgstr "หมายเลขชิ้นส่วน" + +#: core/models.py:537 +msgid "stock keeping unit for this product" +msgstr "หน่วยเก็บสินค้าสำหรับสินค้านี้" + +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" +"แทนคุณสมบัติในระบบ. คลาสนี้ใช้เพื่อกำหนดและจัดการคุณสมบัติ " +"ซึ่งเป็นข้อมูลที่สามารถปรับแต่งได้ซึ่งสามารถเชื่อมโยงกับเอนทิตีอื่น ๆ ได้. " +"คุณสมบัติมีหมวดหมู่, กลุ่ม, ประเภทค่า, และชื่อที่เกี่ยวข้อง. " +"แบบจำลองรองรับหลายประเภทของค่า รวมถึงสตริง, จำนวนเต็ม, จำนวนทศนิยม, บูลีน, " +"อาร์เรย์, และออบเจ็กต์. " +"ซึ่งช่วยให้สามารถจัดโครงสร้างข้อมูลได้ไดนามิกและยืดหยุ่น." + +#: core/models.py:619 +msgid "category of this attribute" +msgstr "หมวดหมู่ของแอตทริบิวต์นี้" + +#: core/models.py:627 +msgid "group of this attribute" +msgstr "กลุ่มของแอตทริบิวต์นี้" + +#: core/models.py:633 +msgid "string" +msgstr "สตริง" + +#: core/models.py:634 +msgid "integer" +msgstr "ความซื่อสัตย์" + +#: core/models.py:635 +msgid "float" +msgstr "ลอย" + +#: core/models.py:636 +msgid "boolean" +msgstr "บูลีน" + +#: core/models.py:637 +msgid "array" +msgstr "อาร์เรย์" + +#: core/models.py:638 +msgid "object" +msgstr "วัตถุ" + +#: core/models.py:640 +msgid "type of the attribute's value" +msgstr "ประเภทของค่าของแอตทริบิวต์" + +#: core/models.py:641 +msgid "value type" +msgstr "ประเภทของค่า" + +#: core/models.py:646 +msgid "name of this attribute" +msgstr "ชื่อของแอตทริบิวต์นี้" + +#: core/models.py:647 +msgid "attribute's name" +msgstr "ชื่อของแอตทริบิวต์" + +#: core/models.py:653 +msgid "is filterable" +msgstr "สามารถกรองได้" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "กำหนดว่าแอตทริบิวต์นี้สามารถใช้สำหรับการกรองหรือไม่" + +#: core/models.py:665 core/models.py:700 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "คุณสมบัติ" + +#: core/models.py:699 +msgid "attribute of this value" +msgstr "คุณลักษณะของค่านี้" + +#: core/models.py:707 +msgid "the specific product associated with this attribute's value" +msgstr "ผลิตภัณฑ์เฉพาะที่เกี่ยวข้องกับค่าของแอตทริบิวต์นี้" + +#: core/models.py:713 +msgid "the specific value for this attribute" +msgstr "ค่าเฉพาะสำหรับคุณสมบัตินี้" + +#: core/models.py:747 +msgid "provide alternative text for the image for accessibility" +msgstr "ให้ข้อความทางเลือกสำหรับภาพเพื่อการเข้าถึง" + +#: core/models.py:748 +msgid "image alt text" +msgstr "ข้อความแสดงแทนภาพ" + +#: core/models.py:751 +msgid "upload the image file for this product" +msgstr "อัปโหลดไฟล์รูปภาพสำหรับสินค้านี้" + +#: core/models.py:752 core/models.py:777 +msgid "product image" +msgstr "รูปภาพสินค้า" + +#: core/models.py:758 +msgid "determines the order in which images are displayed" +msgstr "กำหนดลำดับการแสดงผลของภาพ" + +#: core/models.py:759 +msgid "display priority" +msgstr "ลำดับความสำคัญในการแสดงผล" + +#: core/models.py:764 +msgid "the product that this image represents" +msgstr "สินค้าที่ภาพนี้แทน" + +#: core/models.py:778 +msgid "product images" +msgstr "รูปภาพสินค้า" + +#: core/models.py:819 +msgid "percentage discount for the selected products" +msgstr "เปอร์เซ็นต์ส่วนลดสำหรับสินค้าที่เลือก" + +#: core/models.py:820 +msgid "discount percentage" +msgstr "เปอร์เซ็นต์ส่วนลด" + +#: core/models.py:825 +msgid "provide a unique name for this promotion" +msgstr "กรุณาตั้งชื่อที่ไม่ซ้ำกันสำหรับการส่งเสริมการขายนี้" + +#: core/models.py:826 +msgid "promotion name" +msgstr "ชื่อโปรโมชั่น" + +#: core/models.py:832 +msgid "promotion description" +msgstr "รายละเอียดโปรโมชั่น" + +#: core/models.py:837 +msgid "select which products are included in this promotion" +msgstr "เลือกผลิตภัณฑ์ที่รวมอยู่ในโปรโมชั่นนี้" + +#: core/models.py:838 +msgid "included products" +msgstr "สินค้าที่รวมอยู่" + +#: core/models.py:842 +msgid "promotion" +msgstr "โปรโมชั่น" + +#: core/models.py:867 +msgid "products that the user has marked as wanted" +msgstr "สินค้าที่ผู้ใช้ได้ทำเครื่องหมายว่าต้องการ" + +#: core/models.py:875 +msgid "user who owns this wishlist" +msgstr "ผู้ใช้ที่เป็นเจ้าของรายการความปรารถนา" + +#: core/models.py:876 +msgid "wishlist owner" +msgstr "เจ้าของรายการที่อยากได้" + +#: core/models.py:884 +msgid "wishlist" +msgstr "รายการสิ่งที่ต้องการ" + +#: core/models.py:951 +msgid "documentary" +msgstr "สารคดี" + +#: core/models.py:952 +msgid "documentaries" +msgstr "สารคดี" + +#: core/models.py:962 +msgid "unresolved" +msgstr "ยังไม่ได้รับการแก้ไข" + +#: core/models.py:1008 +msgid "address line for the customer" +msgstr "ที่อยู่สำหรับลูกค้า" + +#: core/models.py:1009 +msgid "address line" +msgstr "บรรทัดที่อยู่" + +#: core/models.py:1011 +msgid "street" +msgstr "ถนน" + +#: core/models.py:1012 +msgid "district" +msgstr "เขต" + +#: core/models.py:1013 +msgid "city" +msgstr "เมือง" + +#: core/models.py:1014 +msgid "region" +msgstr "ภูมิภาค" + +#: core/models.py:1015 +msgid "postal code" +msgstr "รหัสไปรษณีย์" + +#: core/models.py:1016 +msgid "country" +msgstr "ประเทศ" + +#: core/models.py:1023 +msgid "geolocation point: (longitude, latitude)" +msgstr "จุดพิกัดภูมิศาสตร์ (ลองจิจูด, ละติจูด)" + +#: core/models.py:1026 +msgid "full JSON response from geocoder for this address" +msgstr "การตอบกลับ JSON แบบเต็มจากตัวแปลงที่อยู่ทางภูมิศาสตร์สำหรับที่อยู่นี้" + +#: core/models.py:1031 +msgid "stored JSON response from the geocoding service" +msgstr "เก็บคำตอบ JSON จากบริการการแปลงที่อยู่ทางภูมิศาสตร์" + +#: core/models.py:1039 +msgid "address" +msgstr "ที่อยู่" + +#: core/models.py:1040 +msgid "addresses" +msgstr "ที่อยู่" + +#: core/models.py:1085 +msgid "unique code used by a user to redeem a discount" +msgstr "รหัสเฉพาะที่ผู้ใช้ใช้เพื่อแลกรับส่วนลด" + +#: core/models.py:1086 +msgid "promo code identifier" +msgstr "รหัสโปรโมชั่น" + +#: core/models.py:1093 +msgid "fixed discount amount applied if percent is not used" +msgstr "จำนวนส่วนลดคงที่ที่ใช้หากไม่ได้ใช้เปอร์เซ็นต์" + +#: core/models.py:1094 +msgid "fixed discount amount" +msgstr "จำนวนส่วนลดคงที่" + +#: core/models.py:1100 +msgid "percentage discount applied if fixed amount is not used" +msgstr "ส่วนลดเป็นเปอร์เซ็นต์ที่ใช้เมื่อไม่ได้ใช้จำนวนเงินคงที่" + +#: core/models.py:1101 +msgid "percentage discount" +msgstr "เปอร์เซ็นต์ส่วนลด" + +#: core/models.py:1106 +msgid "timestamp when the promocode expires" +msgstr "เวลาที่โค้ดโปรโมชั่นหมดอายุ" + +#: core/models.py:1107 +msgid "end validity time" +msgstr "เวลาสิ้นสุดความถูกต้อง" + +#: core/models.py:1112 +msgid "timestamp from which this promocode is valid" +msgstr "เวลาที่ตราไว้ซึ่งรหัสโปรโมชั่นนี้ใช้ได้" + +#: core/models.py:1113 +msgid "start validity time" +msgstr "เวลาเริ่มต้นความถูกต้อง" + +#: core/models.py:1118 +msgid "timestamp when the promocode was used, blank if not used yet" +msgstr "เวลาที่ตราประทับเมื่อใช้รหัสโปรโมชั่น, ว่างเปล่าหากยังไม่ได้ใช้" + +#: core/models.py:1119 +msgid "usage timestamp" +msgstr "เวลาการใช้งาน" + +#: core/models.py:1124 +msgid "user assigned to this promocode if applicable" +msgstr "ผู้ใช้ที่ได้รับมอบหมายให้ใช้รหัสโปรโมชั่นนี้ หากมี" + +#: core/models.py:1125 +msgid "assigned user" +msgstr "ผู้ใช้ที่ได้รับมอบหมาย" + +#: core/models.py:1132 +msgid "promo code" +msgstr "รหัสโปรโมชั่น" + +#: core/models.py:1133 +msgid "promo codes" +msgstr "รหัสส่งเสริมการขาย" + +#: core/models.py:1140 +msgid "" +"only one type of discount should be defined (amount or percent), but not " +"both or neither." +msgstr "" +"ควรกำหนดประเภทส่วนลดเพียงประเภทเดียว (จำนวนเงินหรือเปอร์เซ็นต์) เท่านั้น " +"ไม่ควรกำหนดทั้งสองประเภทหรือไม่ได้กำหนดเลย" + +#: core/models.py:1155 +msgid "promocode already used" +msgstr "รหัสโปรโมชั่นถูกใช้ไปแล้ว" + +#: core/models.py:1171 +#, python-brace-format +msgid "invalid discount type for promocode {self.uuid}" +msgstr "ประเภทส่วนลดไม่ถูกต้องสำหรับรหัสโปรโมชั่น {self.uuid}!" + +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"แทนคำสั่งซื้อที่ผู้ใช้ได้ทำการสั่งซื้อไว้ " +"คลาสนี้จำลองคำสั่งซื้อภายในแอปพลิเคชัน รวมถึงคุณสมบัติต่าง ๆ เช่น " +"ข้อมูลการเรียกเก็บเงิน ข้อมูลการจัดส่ง สถานะ ผู้ใช้ที่เกี่ยวข้อง " +"การแจ้งเตือน และการดำเนินการที่เกี่ยวข้อง " +"คำสั่งซื้อสามารถมีสินค้าที่เกี่ยวข้องได้ โปรโมชั่นสามารถนำมาใช้ได้ " +"ที่อยู่สามารถตั้งค่าได้ " +"และรายละเอียดการจัดส่งหรือการเรียกเก็บเงินสามารถอัปเดตได้เช่นกัน นอกจากนี้ " +"ฟังก์ชันการทำงานยังรองรับการจัดการสินค้าในวงจรชีวิตของคำสั่งซื้อ" + +#: core/models.py:1197 +msgid "the billing address used for this order" +msgstr "ที่อยู่สำหรับเรียกเก็บเงินที่ใช้สำหรับคำสั่งซื้อนี้" + +#: core/models.py:1205 +msgid "optional promo code applied to this order" +msgstr "รหัสโปรโมชั่นเสริมใช้กับคำสั่งซื้อนี้แล้ว" + +#: core/models.py:1206 +msgid "applied promo code" +msgstr "ใช้รหัสโปรโมชั่น" + +#: core/models.py:1214 +msgid "the shipping address used for this order" +msgstr "ที่อยู่สำหรับจัดส่งที่ใช้สำหรับคำสั่งซื้อนี้" + +#: core/models.py:1215 +msgid "shipping address" +msgstr "ที่อยู่สำหรับจัดส่ง" + +#: core/models.py:1221 +msgid "current status of the order in its lifecycle" +msgstr "สถานะปัจจุบันของคำสั่งซื้อในวงจรชีวิต" + +#: core/models.py:1222 +msgid "order status" +msgstr "สถานะการสั่งซื้อ" + +#: core/models.py:1227 core/models.py:1686 +msgid "json structure of notifications to display to users" +msgstr "" +"โครงสร้าง JSON ของการแจ้งเตือนที่จะแสดงให้ผู้ใช้เห็น ใน UI " +"ของผู้ดูแลระบบจะใช้การแสดงผลแบบตาราง" + +#: core/models.py:1233 +msgid "json representation of order attributes for this order" +msgstr "การแสดงผล JSON ของคุณลักษณะคำสั่งซื้อสำหรับคำสั่งซื้อนี้" + +#: core/models.py:1239 +msgid "the user who placed the order" +msgstr "ผู้ใช้ที่ทำการสั่งซื้อ" + +#: core/models.py:1240 +msgid "user" +msgstr "ผู้ใช้" + +#: core/models.py:1246 +msgid "the timestamp when the order was finalized" +msgstr "เวลาที่คำสั่งซื้อได้รับการยืนยัน" + +#: core/models.py:1247 +msgid "buy time" +msgstr "ซื้อเวลา" + +#: core/models.py:1254 +msgid "a human-readable identifier for the order" +msgstr "ตัวระบุที่มนุษย์อ่านได้สำหรับคำสั่ง" + +#: core/models.py:1255 +msgid "human readable id" +msgstr "รหัสที่สามารถอ่านได้โดยมนุษย์" + +#: core/models.py:1261 +msgid "order" +msgstr "คำสั่ง" + +#: core/models.py:1282 +msgid "a user must have only one pending order at a time" +msgstr "" +"ผู้ใช้ต้องมีคำสั่งซื้อที่รอดำเนินการเพียงหนึ่งรายการเท่านั้นในแต่ละครั้ง!" + +#: core/models.py:1316 +msgid "you cannot add products to an order that is not a pending one" +msgstr "" +"คุณไม่สามารถเพิ่มสินค้าในคำสั่งซื้อที่ไม่ใช่คำสั่งซื้อที่รอดำเนินการได้" + +#: core/models.py:1321 +msgid "you cannot add inactive products to order" +msgstr "คุณไม่สามารถเพิ่มสินค้าที่ไม่ใช้งานในคำสั่งซื้อได้" + +#: core/models.py:1338 +msgid "you cannot add more products than available in stock" +msgstr "คุณไม่สามารถเพิ่มสินค้าได้มากกว่าที่มีในสต็อก" + +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 +msgid "you cannot remove products from an order that is not a pending one" +msgstr "" +"คุณไม่สามารถลบสินค้าออกจากคำสั่งซื้อที่ไม่ใช่คำสั่งซื้อที่อยู่ในสถานะรอดำเนินการได้" + +#: core/models.py:1381 +#, python-brace-format +msgid "{name} does not exist with query <{query}>" +msgstr "{name} ไม่มีอยู่จริงกับคำค้นหา <{query}>!" + +#: core/models.py:1413 +msgid "promocode does not exist" +msgstr "รหัสโปรโมชั่นไม่มีอยู่" + +#: core/models.py:1419 +msgid "you can only buy physical products with shipping address specified" +msgstr "" +"คุณสามารถซื้อได้เฉพาะสินค้าทางกายภาพที่มีที่อยู่สำหรับจัดส่งระบุไว้เท่านั้น!" + +#: core/models.py:1438 +msgid "address does not exist" +msgstr "ไม่มีที่อยู่" + +#: core/models.py:1459 core/models.py:1528 +msgid "you can not buy at this moment, please try again in a few minutes" +msgstr "ขณะนี้คุณไม่สามารถซื้อได้ กรุณาลองใหม่อีกครั้งในอีกไม่กี่นาที" + +#: core/models.py:1462 core/models.py:1524 +msgid "invalid force value" +msgstr "ค่าแรงบังคับไม่ถูกต้อง" + +#: core/models.py:1468 core/models.py:1531 +msgid "you cannot purchase an empty order!" +msgstr "คุณไม่สามารถซื้อคำสั่งซื้อที่ว่างเปล่าได้!" + +#: core/models.py:1487 +msgid "you cannot buy an order without a user" +msgstr "คุณไม่สามารถซื้อคำสั่งซื้อได้หากไม่มีผู้ใช้!" + +#: core/models.py:1501 +msgid "a user without a balance cannot buy with balance" +msgstr "ผู้ใช้ที่ไม่มียอดคงเหลือไม่สามารถซื้อด้วยยอดคงเหลือได้!" + +#: core/models.py:1506 +msgid "insufficient funds to complete the order" +msgstr "เงินไม่เพียงพอในการทำรายการให้เสร็จสมบูรณ์" + +#: core/models.py:1540 +msgid "" +"you cannot buy without registration, please provide the following " +"information: customer name, customer email, customer phone number" +msgstr "" +"คุณไม่สามารถซื้อได้หากไม่มีการลงทะเบียน กรุณาให้ข้อมูลต่อไปนี้: ชื่อลูกค้า, " +"อีเมลลูกค้า, หมายเลขโทรศัพท์ลูกค้า" + +#: core/models.py:1549 +#, python-brace-format +msgid "" +"invalid payment method: {payment_method} from {available_payment_methods}" +msgstr "" +"วิธีการชำระเงินไม่ถูกต้อง: {payment_method} จาก {available_payment_methods}!" + +#: core/models.py:1674 +msgid "the price paid by the customer for this product at purchase time" +msgstr "ราคาที่ลูกค้าชำระสำหรับสินค้านี้ ณ เวลาที่ซื้อ" + +#: core/models.py:1675 +msgid "purchase price at order time" +msgstr "ราคาซื้อ ณ เวลาที่สั่งซื้อ" + +#: core/models.py:1680 +msgid "internal comments for admins about this ordered product" +msgstr "ความคิดเห็นภายในสำหรับผู้ดูแลระบบเกี่ยวกับสินค้าที่สั่งซื้อ" + +#: core/models.py:1681 +msgid "internal comments" +msgstr "ความคิดเห็นภายใน" + +#: core/models.py:1687 +msgid "user notifications" +msgstr "การแจ้งเตือนผู้ใช้" + +#: core/models.py:1692 +msgid "json representation of this item's attributes" +msgstr "การแสดงผล JSON ของคุณลักษณะของรายการนี้" + +#: core/models.py:1693 +msgid "ordered product attributes" +msgstr "จัดเรียงคุณลักษณะของสินค้า" + +#: core/models.py:1698 +msgid "reference to the parent order that contains this product" +msgstr "การอ้างอิงถึงคำสั่งซื้อหลักที่มีสินค้านี้อยู่" + +#: core/models.py:1699 +msgid "parent order" +msgstr "ลำดับของผู้ปกครอง" + +#: core/models.py:1708 +msgid "the specific product associated with this order line" +msgstr "สินค้าเฉพาะที่เกี่ยวข้องกับรายการคำสั่งซื้อนี้" + +#: core/models.py:1715 +msgid "quantity of this specific product in the order" +msgstr "ปริมาณของสินค้าชนิดนี้ในคำสั่งซื้อ" + +#: core/models.py:1716 +msgid "product quantity" +msgstr "จำนวนสินค้า" + +#: core/models.py:1723 +msgid "current status of this product in the order" +msgstr "สถานะปัจจุบันของสินค้านี้ในคำสั่งซื้อ" + +#: core/models.py:1724 +msgid "product line status" +msgstr "สถานะสายผลิตภัณฑ์" + +#: core/models.py:1784 +msgid "order product must have an order" +msgstr "Orderproduct ต้องมีการสั่งซื้อที่เกี่ยวข้อง!" + +#: core/models.py:1786 +#, python-brace-format +msgid "wrong action specified for feedback: {action}" +msgstr "ระบุการกระทำที่ไม่ถูกต้องสำหรับข้อเสนอแนะ: {action}!" + +#: core/models.py:1800 +msgid "you cannot feedback an order which is not received" +msgstr "คุณไม่สามารถให้ข้อเสนอแนะเกี่ยวกับคำสั่งซื้อที่ไม่ได้รับ" + +#: core/models.py:1806 +msgid "name" +msgstr "ชื่อ" + +#: core/models.py:1807 +msgid "URL of the integration" +msgstr "URL ของการผสานรวม" + +#: core/models.py:1808 +msgid "authentication credentials" +msgstr "ข้อมูลประจำตัวสำหรับการยืนยันตัวตน" + +#: core/models.py:1822 +msgid "you can only have one default CRM provider" +msgstr "คุณสามารถมีผู้ให้บริการ CRM เริ่มต้นได้เพียงรายเดียวเท่านั้น" + +#: core/models.py:1826 +msgid "CRM" +msgstr "ระบบบริหารความสัมพันธ์ลูกค้า" + +#: core/models.py:1827 +msgid "CRMs" +msgstr "ระบบบริหารความสัมพันธ์ลูกค้า" + +#: core/models.py:1839 +msgid "order CRM link" +msgstr "ลิงก์ CRM ของคำสั่ง" + +#: core/models.py:1840 +msgid "orders CRM links" +msgstr "ลิงก์ CRM ของคำสั่งซื้อ" + +#: core/models.py:1874 +msgid "download" +msgstr "ดาวน์โหลด" + +#: core/models.py:1875 +msgid "downloads" +msgstr "ดาวน์โหลด" + +#: core/models.py:1883 +msgid "you can not download a digital asset for a non-finished order" +msgstr "" +"คุณไม่สามารถดาวน์โหลดสินทรัพย์ดิจิทัลสำหรับคำสั่งซื้อที่ยังไม่เสร็จสมบูรณ์ได้" + +#: core/models.py:1913 +msgid "user-provided comments about their experience with the product" +msgstr "ความคิดเห็นที่ผู้ใช้ให้ไว้เกี่ยวกับประสบการณ์ของพวกเขาต่อผลิตภัณฑ์" + +#: core/models.py:1914 +msgid "feedback comments" +msgstr "ความคิดเห็นจากผู้ตอบแบบสอบถาม" + +#: core/models.py:1921 +msgid "" +"references the specific product in an order that this feedback is about" +msgstr "อ้างอิงถึงผลิตภัณฑ์เฉพาะในคำสั่งซื้อที่ความคิดเห็นนี้เกี่ยวข้อง" + +#: core/models.py:1922 +msgid "related order product" +msgstr "สินค้าที่เกี่ยวข้อง" + +#: core/models.py:1927 +msgid "user-assigned rating for the product" +msgstr "คะแนนที่ผู้ใช้กำหนดให้กับผลิตภัณฑ์" + +#: core/models.py:1928 +msgid "product rating" +msgstr "การให้คะแนนสินค้า" + +#: core/serializers/utility.py:87 +msgid "" +"you must provide a comment, rating, and order product uuid to add feedback." +msgstr "" +"คุณต้องแสดงความคิดเห็น, ให้คะแนน, และระบุ uuid ของสินค้าเพื่อเพิ่มคำแนะนำ" + +#: core/signals.py:65 +msgid "error during promocode creation: {e!s}" +msgstr "เกิดข้อผิดพลาดระหว่างการสร้างรหัสโปรโมชั่น: {e!s}" + +#: core/sitemaps.py:17 +msgid "Home" +msgstr "หน้าแรก" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "ติดต่อเรา" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "เกี่ยวกับเรา" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "ข้อมูลการชำระเงิน" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "การจัดส่ง" + +#: core/templates/digital_order_created_email.html:7 +#: core/templates/digital_order_created_email.html:100 +#: core/templates/digital_order_delivered_email.html:6 +#: core/templates/shipped_order_created_email.html:7 +#: core/templates/shipped_order_created_email.html:99 +#: core/templates/shipped_order_delivered_email.html:7 +#: core/templates/shipped_order_delivered_email.html:99 +msgid "order confirmation" +msgstr "การยืนยันคำสั่งซื้อ" + +#: core/templates/digital_order_created_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 +#: core/templates/promocode_granted_email.html:94 +#: core/templates/shipped_order_created_email.html:94 +#: core/templates/shipped_order_delivered_email.html:94 +msgid "logo" +msgstr "โลโก้" + +#: core/templates/digital_order_created_email.html:101 +#: core/templates/shipped_order_created_email.html:100 +#: core/templates/shipped_order_delivered_email.html:100 +#, python-format +msgid "hello %(order.user.first_name)s," +msgstr "สวัสดีครับ/ค่ะ %(order.user.first_name)s," + +#: core/templates/digital_order_created_email.html:102 +#, 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" +" order:" +msgstr "" +"ขอบคุณสำหรับคำสั่งซื้อของคุณ #%(order.pk)s! " +"เราขอแจ้งให้คุณทราบว่าเราได้ดำเนินการตามคำสั่งซื้อของคุณแล้ว " +"รายละเอียดของคำสั่งซื้อของคุณมีดังนี้:" + +#: core/templates/digital_order_created_email.html:112 +#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/shipped_order_created_email.html:110 +#: core/templates/shipped_order_delivered_email.html:110 +msgid "total" +msgstr "รวม" + +#: core/templates/digital_order_created_email.html:125 +#: core/templates/digital_order_delivered_email.html:157 +#: core/templates/shipped_order_created_email.html:127 +#: core/templates/shipped_order_delivered_email.html:127 +msgid "total price" +msgstr "ราคาทั้งหมด" + +#: core/templates/digital_order_created_email.html:131 +#: core/templates/shipped_order_created_email.html:140 +#: core/templates/shipped_order_delivered_email.html:140 +#, python-format +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" + +#: core/templates/digital_order_created_email.html:133 +#, python-format +msgid "best regards,
the %(config.PROJECT_NAME)s team" +msgstr "ขอแสดงความนับถือ
ทีมงาน %(config.PROJECT_NAME)s" + +#: core/templates/digital_order_created_email.html:139 +#: core/templates/digital_order_delivered_email.html:171 +#: core/templates/promocode_granted_email.html:114 +msgid "all rights reserved" +msgstr "สงวนลิขสิทธิ์" + +#: core/templates/digital_order_delivered_email.html:99 +msgid "order delivered" +msgstr "คำสั่งซื้อจัดส่งแล้ว" + +#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "สวัสดีครับ/ค่ะ %(user_first_name)s," + +#: core/templates/digital_order_delivered_email.html:101 +#, python-format +msgid "" +"we have successfully processed your order №%(order_uuid)s! below are the\n" +" details of your order:" +msgstr "" +"เราได้ดำเนินการคำสั่งซื้อของคุณหมายเลข %(order_uuid)s สำเร็จแล้ว! " +"รายละเอียดของคำสั่งซื้อของคุณมีดังนี้:" + +#: core/templates/digital_order_delivered_email.html:128 +msgid "" +"additional\n" +" information" +msgstr "ข้อมูลเพิ่มเติม" + +#: core/templates/digital_order_delivered_email.html:137 +#: core/templates/json_table_widget.html:6 +msgid "value" +msgstr "มูลค่า" + +#: core/templates/digital_order_delivered_email.html:163 +#: core/templates/promocode_granted_email.html:106 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "หากคุณมีคำถามใด ๆ โปรดติดต่อทีมสนับสนุนของเราได้ที่ %(contact_email)s" + +#: core/templates/digital_order_delivered_email.html:165 +#: core/templates/promocode_granted_email.html:108 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "ขอแสดงความนับถือ
ทีมงาน %(project_name)s" + +#: core/templates/json_table_widget.html:5 +msgid "key" +msgstr "คีย์" + +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "รหัสส่งเสริมการขายได้รับแล้ว" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "ขอบคุณที่เข้าพักกับเรา! เราได้มอบรหัสโปรโมชั่นให้คุณสำหรับ" + +#: core/templates/shipped_order_created_email.html:101 +#: core/templates/shipped_order_delivered_email.html:101 +msgid "" +"thank you for your order! we are pleased to confirm your purchase. below are\n" +" the details of your order:" +msgstr "" +"ขอบคุณสำหรับการสั่งซื้อของคุณ! เราขอแจ้งยืนยันการสั่งซื้อของคุณเรียบร้อยแล้ว" +" รายละเอียดการสั่งซื้อของคุณมีดังนี้:" + +#: core/templates/shipped_order_created_email.html:123 +#: core/templates/shipped_order_delivered_email.html:123 +msgid "shipping price" +msgstr "ราคาค่าจัดส่ง" + +#: core/templates/shipped_order_created_email.html:133 +#: core/templates/shipped_order_delivered_email.html:133 +msgid "your order will be delivered to the following address:" +msgstr "คำสั่งซื้อของคุณจะถูกจัดส่งไปยังที่อยู่ต่อไปนี้:" + +#: core/templates/shipped_order_created_email.html:142 +#: core/templates/shipped_order_delivered_email.html:142 +#, python-format +msgid "best regards,
The %(config.PROJECT_NAME)s team" +msgstr "ขอแสดงความนับถือ
ทีมงาน %(config.PROJECT_NAME)s" + +#: core/templates/shipped_order_created_email.html:147 +#: core/templates/shipped_order_delivered_email.html:147 +msgid "" +"all rights\n" +" reserved" +msgstr "สงวนลิขสิทธิ์" + +#: core/utils/caching.py:41 +msgid "both data and timeout are required" +msgstr "จำเป็นต้องมีทั้งข้อมูลและเวลาหมดอายุ" + +#: core/utils/caching.py:43 +msgid "invalid timeout value, it must be between 0 and 216000 seconds" +msgstr "ค่าหมดเวลาไม่ถูกต้อง ต้องอยู่ระหว่าง 0 ถึง 216000 วินาที" + +#: core/utils/emailing.py:25 +#, python-brace-format +msgid "{config.PROJECT_NAME} | contact us initiated" +msgstr "{config.PROJECT_NAME} | ติดต่อเรา เริ่มต้น" + +#: core/utils/emailing.py:64 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order confirmation" +msgstr "{config.PROJECT_NAME} | ยืนยันการสั่งซื้อ" + +#: core/utils/emailing.py:99 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order delivered" +msgstr "{config.PROJECT_NAME} | จัดส่งเรียบร้อย" + +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | รหัสโปรโมชั่นได้รับแล้ว" + +#: core/utils/messages.py:3 +msgid "you do not have permission to perform this action." +msgstr "คุณไม่มีสิทธิ์ดำเนินการนี้" + +#: core/utils/nominatim.py:8 +msgid "NOMINATIM_URL must be configured." +msgstr "ต้องกำหนดค่าพารามิเตอร์ NOMINATIM_URL!" + +#: core/validators.py:16 +#, 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} พิกเซล!" + +#: core/validators.py:22 +msgid "invalid phone number format" +msgstr "หมายเลขโทรศัพท์ไม่ถูกต้อง" + +#: core/views.py:481 +msgid "you can only download the digital asset once" +msgstr "คุณสามารถดาวน์โหลดสินทรัพย์ดิจิทัลได้เพียงครั้งเดียวเท่านั้น" + +#: core/views.py:539 +msgid "favicon not found" +msgstr "ไม่พบไอคอนเว็บไซต์" + +#: core/viewsets.py:1319 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "ข้อผิดพลาดในการแปลงพิกัดภูมิศาสตร์: {e}" diff --git a/core/locale/tr_TR/LC_MESSAGES/django.mo b/core/locale/tr_TR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6e387d4ce656b8260189d202049055c3bf9890d9 GIT binary patch literal 60703 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 Ou2|Tt{i@L1\n" +"Language-Team: BRITISH ENGLISH \n" +"Language: tr-tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: core/abstract.py:11 +msgid "unique id" +msgstr "Benzersiz Kimlik" + +#: core/abstract.py:12 +msgid "unique id is used to surely identify any database object" +msgstr "" +"Benzersiz kimlik, herhangi bir veritabanı nesnesini kesin olarak tanımlamak " +"için kullanılır" + +#: core/abstract.py:19 +msgid "is active" +msgstr "Aktif mi" + +#: core/abstract.py:20 +msgid "" +"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" + +#: core/abstract.py:22 core/choices.py:18 +msgid "created" +msgstr "Oluşturuldu" + +#: core/abstract.py:22 +msgid "when the object first appeared on the database" +msgstr "Nesne veritabanında ilk kez göründüğünde" + +#: core/abstract.py:23 +msgid "modified" +msgstr "Değiştirilmiş" + +#: core/abstract.py:23 +msgid "when the object was last modified" +msgstr "Nesne en son ne zaman düzenlendi" + +#: core/admin.py:63 +msgid "translations" +msgstr "Çeviriler" + +#: core/admin.py:67 +msgid "general" +msgstr "Genel" + +#: core/admin.py:69 +msgid "relations" +msgstr "İlişkiler" + +#: core/admin.py:87 +msgid "metadata" +msgstr "Metadata" + +#: core/admin.py:94 +msgid "timestamps" +msgstr "Zaman Damgaları" + +#: core/admin.py:109 +#, python-format +msgid "activate selected %(verbose_name_plural)s" +msgstr "Seçili %(verbose_name_plural)s'ı etkinleştirin" + +#: core/admin.py:114 +msgid "selected items have been activated." +msgstr "Seçilen öğeler etkinleştirildi!" + +#: core/admin.py:120 +#, python-format +msgid "deactivate selected %(verbose_name_plural)s" +msgstr "Seçili %(verbose_name_plural)s'ı devre dışı bırak" + +#: core/admin.py:125 +msgid "selected items have been deactivated." +msgstr "Seçilen öğeler devre dışı bırakıldı!" + +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 +msgid "attribute value" +msgstr "Öznitelik Değeri" + +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 +msgid "attribute values" +msgstr "Öznitelik Değerleri" + +#: core/admin.py:146 +msgid "image" +msgstr "Resim" + +#: core/admin.py:147 core/graphene/object_types.py:501 +msgid "images" +msgstr "Görüntüler" + +#: core/admin.py:155 core/models.py:457 +msgid "stock" +msgstr "Stok" + +#: core/admin.py:156 core/graphene/object_types.py:663 +msgid "stocks" +msgstr "Stoklar" + +#: core/admin.py:166 core/models.py:1735 +msgid "order product" +msgstr "Ürün Siparişi" + +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 +msgid "order products" +msgstr "Sipariş Ürünleri" + +#: core/admin.py:180 core/admin.py:181 +msgid "children" +msgstr "Çocuklar" + +#: core/admin.py:566 +msgid "Config" +msgstr "Konfigürasyon" + +#: core/apps.py:8 +msgid "core" +msgstr "Çekirdek" + +#: core/choices.py:4 core/choices.py:20 +msgid "finished" +msgstr "Bitti" + +#: core/choices.py:5 core/choices.py:19 +msgid "delivering" +msgstr "Teslimat" + +#: core/choices.py:6 +msgid "delivered" +msgstr "Teslim edildi" + +#: core/choices.py:7 +msgid "canceled" +msgstr "İptal edildi" + +#: core/choices.py:8 core/choices.py:16 core/choices.py:24 +msgid "failed" +msgstr "Başarısız" + +#: core/choices.py:9 core/choices.py:15 +msgid "pending" +msgstr "Beklemede" + +#: core/choices.py:10 +msgid "accepted" +msgstr "Kabul Edildi" + +#: core/choices.py:11 +msgid "money returned" +msgstr "İade Edilen Para" + +#: core/choices.py:17 +msgid "payment" +msgstr "Ödeme" + +#: core/choices.py:21 +msgid "momental" +msgstr "Momental" + +#: core/choices.py:24 +msgid "successful" +msgstr "Başarılı" + +#: core/docs/drf/views.py:17 core/graphene/mutations.py:36 +msgid "cache I/O" +msgstr "Önbellek I/O" + +#: core/docs/drf/views.py:19 +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." + +#: core/docs/drf/views.py:32 +msgid "get a list of supported languages" +msgstr "Desteklenen dillerin bir listesini alın" + +#: core/docs/drf/views.py:41 +msgid "get application's exposable parameters" +msgstr "Uygulamanın açığa çıkarılabilir parametrelerini alın" + +#: core/docs/drf/views.py:48 +msgid "send a message to the support team" +msgstr "Destek ekibine bir mesaj gönderin" + +#: core/docs/drf/views.py:59 core/graphene/mutations.py:55 +msgid "request a CORSed URL" +msgstr "CORS'lu bir URL isteyin. Yalnızca https'ye izin verilir." + +#: core/docs/drf/views.py:85 +msgid "global search endpoint to query across project's tables" +msgstr "" +"Proje tabloları arasında sorgulama yapmak için global arama uç noktası" + +#: core/docs/drf/views.py:91 +msgid "purchase an order as a business" +msgstr "İşletme olarak bir sipariş satın alın" + +#: core/docs/drf/views.py:98 +msgid "" +"purchase an order as a business, using the provided `products` with " +"`product_uuid` and `attributes`." +msgstr "" +"Sağlanan `products` ile `product_uuid` ve `attributes` öğelerini kullanarak " +"bir siparişi işletme olarak satın alın." + +#: core/docs/drf/viewsets.py:44 +msgid "list all attribute groups (simple view)" +msgstr "Tüm öznitelik gruplarını listeleme (basit görünüm)" + +#: core/docs/drf/viewsets.py:48 +msgid "retrieve a single attribute group (detailed view)" +msgstr "Tek bir öznitelik grubunu alma (ayrıntılı görünüm)" + +#: core/docs/drf/viewsets.py:52 +msgid "create an attribute group" +msgstr "Öznitelik grubu oluşturma" + +#: core/docs/drf/viewsets.py:56 +msgid "delete an attribute group" +msgstr "Öznitelik grubunu silme" + +#: core/docs/drf/viewsets.py:60 +msgid "rewrite an existing attribute group saving non-editables" +msgstr "" +"Düzenlenemeyenleri kaydederek mevcut bir öznitelik grubunu yeniden yazma" + +#: core/docs/drf/viewsets.py:64 +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" + +#: core/docs/drf/viewsets.py:71 +msgid "list all attributes (simple view)" +msgstr "Tüm öznitelikleri listele (basit görünüm)" + +#: core/docs/drf/viewsets.py:75 +msgid "retrieve a single attribute (detailed view)" +msgstr "Tek bir özniteliği alma (ayrıntılı görünüm)" + +#: core/docs/drf/viewsets.py:79 +msgid "create an attribute" +msgstr "Öznitelik oluşturma" + +#: core/docs/drf/viewsets.py:83 +msgid "delete an attribute" +msgstr "Bir özniteliği silme" + +#: core/docs/drf/viewsets.py:87 +msgid "rewrite an existing attribute saving non-editables" +msgstr "Düzenlenemeyenleri kaydederek mevcut bir niteliği yeniden yazma" + +#: core/docs/drf/viewsets.py:91 +msgid "rewrite some fields of an existing attribute saving non-editables" +msgstr "" +"Mevcut bir özniteliğin bazı alanlarını düzenlenemez olarak kaydederek " +"yeniden yazın" + +#: core/docs/drf/viewsets.py:98 +msgid "list all attribute values (simple view)" +msgstr "Tüm öznitelik değerlerini listeleme (basit görünüm)" + +#: core/docs/drf/viewsets.py:102 +msgid "retrieve a single attribute value (detailed view)" +msgstr "Tek bir öznitelik değerini alma (ayrıntılı görünüm)" + +#: core/docs/drf/viewsets.py:106 +msgid "create an attribute value" +msgstr "Öznitelik değeri oluşturma" + +#: core/docs/drf/viewsets.py:110 +msgid "delete an attribute value" +msgstr "Öznitelik değerini silme" + +#: core/docs/drf/viewsets.py:114 +msgid "rewrite an existing attribute value saving non-editables" +msgstr "" +"Düzenlenemeyenleri kaydederek mevcut bir öznitelik değerini yeniden yazma" + +#: core/docs/drf/viewsets.py:118 +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" + +#: core/docs/drf/viewsets.py:125 core/docs/drf/viewsets.py:126 +msgid "list all categories (simple view)" +msgstr "Tüm kategorileri listele (basit görünüm)" + +#: core/docs/drf/viewsets.py:130 core/docs/drf/viewsets.py:131 +msgid "retrieve a single category (detailed view)" +msgstr "Tek bir kategoriyi alma (ayrıntılı görünüm)" + +#: core/docs/drf/viewsets.py:135 core/docs/drf/viewsets.py:136 +msgid "create a category" +msgstr "Bir kategori oluşturun" + +#: core/docs/drf/viewsets.py:140 core/docs/drf/viewsets.py:141 +msgid "delete a category" +msgstr "Kategori silme" + +#: core/docs/drf/viewsets.py:145 core/docs/drf/viewsets.py:146 +msgid "rewrite an existing category saving non-editables" +msgstr "Düzenlenemeyenleri kaydederek mevcut bir kategoriyi yeniden yazın" + +#: core/docs/drf/viewsets.py:150 core/docs/drf/viewsets.py:151 +msgid "rewrite some fields of an existing category saving non-editables" +msgstr "" +"Mevcut bir kategorinin bazı alanlarını düzenlenemez olarak kaydederek " +"yeniden yazın" + +#: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 +#: core/graphene/object_types.py:117 core/graphene/object_types.py:207 +#: core/graphene/object_types.py:509 +msgid "SEO Meta snapshot" +msgstr "SEO Meta anlık görüntüsü" + +#: core/docs/drf/viewsets.py:156 +msgid "returns a snapshot of the category's SEO meta data" +msgstr "Kategorinin SEO meta verilerinin anlık görüntüsünü döndürür" + +#: core/docs/drf/viewsets.py:161 +msgid "Category UUID or slug" +msgstr "Kategori UUID'si veya slug" + +#: core/docs/drf/viewsets.py:174 +msgid "list all orders (simple view)" +msgstr "Tüm kategorileri listele (basit görünüm)" + +#: core/docs/drf/viewsets.py:175 +msgid "for non-staff users, only their own orders are returned." +msgstr "" +"Personel olmayan kullanıcılar için sadece kendi siparişleri iade edilir." + +#: core/docs/drf/viewsets.py:181 +msgid "" +"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ı" + +#: core/docs/drf/viewsets.py:188 +msgid "Filter orders with buy_time >= this ISO 8601 datetime" +msgstr "Buy_time >= this ISO 8601 datetime içeren siparişleri filtreleyin" + +#: core/docs/drf/viewsets.py:193 +msgid "Filter orders with buy_time <= this ISO 8601 datetime" +msgstr "Buy_time <= this ISO 8601 datetime ile siparişleri filtreleyin" + +#: core/docs/drf/viewsets.py:198 +msgid "Filter by exact order UUID" +msgstr "Tam sipariş UUID'sine göre filtreleme" + +#: core/docs/drf/viewsets.py:203 +msgid "Filter by exact human-readable order ID" +msgstr "" +"Tam olarak insan tarafından okunabilir sipariş kimliğine göre filtreleme" + +#: core/docs/drf/viewsets.py:208 +msgid "Filter by user's email (case-insensitive exact match)" +msgstr "" +"Kullanıcının e-postasına göre filtreleme (büyük/küçük harfe duyarlı olmayan " +"tam eşleşme)" + +#: core/docs/drf/viewsets.py:213 +msgid "Filter by user's UUID" +msgstr "Kullanıcının UUID'sine göre filtreleme" + +#: core/docs/drf/viewsets.py:218 +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)" + +#: core/docs/drf/viewsets.py:224 +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')." +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 " +"(örn. '-buy_time')." + +#: core/docs/drf/viewsets.py:233 +msgid "retrieve a single order (detailed view)" +msgstr "Tek bir kategoriyi alma (ayrıntılı görünüm)" + +#: core/docs/drf/viewsets.py:237 +msgid "create an order" +msgstr "Öznitelik oluşturma" + +#: core/docs/drf/viewsets.py:238 +msgid "doesn't work for non-staff users." +msgstr "Personel olmayan kullanıcılar için çalışmaz." + +#: core/docs/drf/viewsets.py:242 +msgid "delete an order" +msgstr "Bir özniteliği silme" + +#: core/docs/drf/viewsets.py:246 +msgid "rewrite an existing order saving non-editables" +msgstr "Düzenlenemeyenleri kaydederek mevcut bir kategoriyi yeniden yazın" + +#: core/docs/drf/viewsets.py:250 +msgid "rewrite some fields of an existing order saving non-editables" +msgstr "" +"Mevcut bir kategorinin bazı alanlarını düzenlenemez olarak kaydederek " +"yeniden yazın" + +#: core/docs/drf/viewsets.py:254 +msgid "purchase an order" +msgstr "Sipariş anındaki satın alma fiyatı" + +#: core/docs/drf/viewsets.py:256 +msgid "" +"finalizes the order purchase. if `force_balance` is used, the purchase is " +"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` " +"kullanılırsa, bir işlem başlatılır." + +#: core/docs/drf/viewsets.py:268 core/graphene/mutations.py:324 +msgid "purchase an order without account creation" +msgstr "hesap oluşturmadan sipariş satın alma" + +#: core/docs/drf/viewsets.py:269 +msgid "finalizes the order purchase for a non-registered user." +msgstr "Kayıtlı olmayan bir kullanıcı için sipariş alımını sonuçlandırır." + +#: core/docs/drf/viewsets.py:277 +msgid "add product to order" +msgstr "Siparişe ürün ekleme" + +#: core/docs/drf/viewsets.py:278 +msgid "" +"adds a product to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Verilen `product_uuid` ve `attributes` öğelerini kullanarak siparişe bir " +"ürün ekler." + +#: core/docs/drf/viewsets.py:283 +msgid "add a list of products to order, quantities will not count" +msgstr "" +"Sipariş edilecek ürünlerin bir listesini ekleyin, miktarlar sayılmayacaktır" + +#: core/docs/drf/viewsets.py:284 +msgid "" +"adds a list of products to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Sağlanan `product_uuid` ve `attributes` öğelerini kullanarak bir siparişe " +"ürün listesi ekler." + +#: core/docs/drf/viewsets.py:289 +msgid "remove product from order" +msgstr "Siparişten bir ürünü kaldırma" + +#: core/docs/drf/viewsets.py:290 +msgid "" +"removes a product from an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Sağlanan `product_uuid` ve `attributes` öğelerini kullanarak bir ürünü " +"siparişten kaldırır." + +#: core/docs/drf/viewsets.py:295 +msgid "remove product from order, quantities will not count" +msgstr "Siparişten bir ürünü kaldırın, miktarlar sayılmayacaktır" + +#: core/docs/drf/viewsets.py:296 +msgid "" +"removes a list of products from an order using the provided `product_uuid` " +"and `attributes`" +msgstr "" +"Sağlanan `product_uuid` ve `attributes` öğelerini kullanarak bir siparişten " +"ürün listesini kaldırır." + +#: core/docs/drf/viewsets.py:304 +msgid "list all wishlists (simple view)" +msgstr "Tüm öznitelikleri listele (basit görünüm)" + +#: core/docs/drf/viewsets.py:305 +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." + +#: core/docs/drf/viewsets.py:309 +msgid "retrieve a single wishlist (detailed view)" +msgstr "Tek bir özniteliği alma (ayrıntılı görünüm)" + +#: core/docs/drf/viewsets.py:313 +msgid "create an wishlist" +msgstr "Öznitelik oluşturma" + +#: core/docs/drf/viewsets.py:314 +msgid "Doesn't work for non-staff users." +msgstr "Personel olmayan kullanıcılar için çalışmaz." + +#: core/docs/drf/viewsets.py:318 +msgid "delete an wishlist" +msgstr "Bir özniteliği silme" + +#: core/docs/drf/viewsets.py:322 +msgid "rewrite an existing wishlist saving non-editables" +msgstr "Düzenlenemeyenleri kaydederek mevcut bir niteliği yeniden yazma" + +#: core/docs/drf/viewsets.py:326 +msgid "rewrite some fields of an existing wishlist saving non-editables" +msgstr "" +"Mevcut bir özniteliğin bazı alanlarını düzenlenemez olarak kaydederek " +"yeniden yazın" + +#: core/docs/drf/viewsets.py:330 +msgid "add product to wishlist" +msgstr "Siparişe ürün ekleme" + +#: core/docs/drf/viewsets.py:331 +msgid "adds a product to an wishlist using the provided `product_uuid`" +msgstr "" +"Sağlanan `product_uuid` öğesini kullanarak bir ürünü istek listesine ekler" + +#: core/docs/drf/viewsets.py:336 +msgid "remove product from wishlist" +msgstr "İstek listesinden bir ürünü kaldırma" + +#: core/docs/drf/viewsets.py:337 +msgid "removes a product from an wishlist using the provided `product_uuid`" +msgstr "" +"Sağlanan `product_uuid` öğesini kullanarak bir ürünü istek listesinden " +"kaldırır" + +#: core/docs/drf/viewsets.py:342 +msgid "add many products to wishlist" +msgstr "İstek listesine birçok ürün ekleyin" + +#: core/docs/drf/viewsets.py:343 +msgid "adds many products to an wishlist using the provided `product_uuids`" +msgstr "" +"Sağlanan `product_uuids` öğesini kullanarak bir istek listesine birçok ürün " +"ekler" + +#: core/docs/drf/viewsets.py:348 +msgid "remove many products from wishlist" +msgstr "Siparişten bir ürünü kaldırma" + +#: core/docs/drf/viewsets.py:349 +msgid "" +"removes many products from an wishlist using the provided `product_uuids`" +msgstr "" +"Sağlanan `product_uuids` öğesini kullanarak bir istek listesinden birçok " +"ürünü kaldırır" + +#: core/docs/drf/viewsets.py:356 +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" +"• **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" +"`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" +"Örnekler: \n" +"color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" +"`b64-description=icontains-aGVhdC1jb2xk`" + +#: core/docs/drf/viewsets.py:372 core/docs/drf/viewsets.py:373 +msgid "list all products (simple view)" +msgstr "Tüm ürünleri listele (basit görünüm)" + +#: core/docs/drf/viewsets.py:378 +msgid "(exact) Product UUID" +msgstr "(tam) Ürün UUID'si" + +#: core/docs/drf/viewsets.py:384 +msgid "(icontains) Product name" +msgstr "(icontains) Ürün adı" + +#: core/docs/drf/viewsets.py:390 +msgid "(list) Category names, case-insensitive" +msgstr "(liste) Kategori adları, büyük/küçük harfe duyarlı olmayan" + +#: core/docs/drf/viewsets.py:396 +msgid "(exact) Category UUID" +msgstr "(tam) Kategori UUID'si" + +#: core/docs/drf/viewsets.py:402 +msgid "(list) Tag names, case-insensitive" +msgstr "(liste) Etiket adları, büyük/küçük harfe duyarlı olmayan" + +#: core/docs/drf/viewsets.py:408 +msgid "(gte) Minimum stock price" +msgstr "(gte) Minimum hisse senedi fiyatı" + +#: core/docs/drf/viewsets.py:414 +msgid "(lte) Maximum stock price" +msgstr "(lte) Maksimum hisse senedi fiyatı" + +#: core/docs/drf/viewsets.py:420 +msgid "(exact) Only active products" +msgstr "(tam) Sadece aktif ürünler" + +#: core/docs/drf/viewsets.py:426 +msgid "(iexact) Brand name" +msgstr "(iexact) Marka adı" + +#: core/docs/drf/viewsets.py:438 +msgid "(gt) Minimum stock quantity" +msgstr "(gt) Minimum stok miktarı" + +#: core/docs/drf/viewsets.py:444 +msgid "(exact) Digital vs. physical" +msgstr "(tam olarak) Dijital vs fiziksel" + +#: core/docs/drf/viewsets.py:451 +msgid "" +"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" + +#: core/docs/drf/viewsets.py:465 core/docs/drf/viewsets.py:466 +msgid "retrieve a single product (detailed view)" +msgstr "Tek bir ürünü alma (ayrıntılı görünüm)" + +#: core/docs/drf/viewsets.py:471 core/docs/drf/viewsets.py:495 +#: core/docs/drf/viewsets.py:511 core/docs/drf/viewsets.py:527 +#: core/docs/drf/viewsets.py:543 core/docs/drf/viewsets.py:559 +msgid "Product UUID or slug" +msgstr "Ürün UUID'si veya Slug" + +#: core/docs/drf/viewsets.py:481 core/docs/drf/viewsets.py:482 +msgid "create a product" +msgstr "Bir ürün oluşturun" + +#: core/docs/drf/viewsets.py:489 core/docs/drf/viewsets.py:490 +msgid "rewrite an existing product, preserving non-editable fields" +msgstr "Düzenlenemeyen alanları koruyarak mevcut bir ürünü yeniden yazın" + +#: core/docs/drf/viewsets.py:505 core/docs/drf/viewsets.py:506 +msgid "" +"update some fields of an existing product, preserving non-editable fields" +msgstr "" +"Düzenlenemeyen alanları koruyarak mevcut bir ürünün bazı alanlarını " +"güncelleme" + +#: core/docs/drf/viewsets.py:521 core/docs/drf/viewsets.py:522 +msgid "delete a product" +msgstr "Ürün silme" + +#: core/docs/drf/viewsets.py:537 core/docs/drf/viewsets.py:538 +msgid "lists all permitted feedbacks for a product" +msgstr "bir ürün için izin verilen tüm geri bildirimleri listeler" + +#: core/docs/drf/viewsets.py:554 +msgid "returns a snapshot of the product's SEO meta data" +msgstr "Ürünün SEO meta verilerinin anlık görüntüsünü döndürür" + +#: core/docs/drf/viewsets.py:572 +msgid "list all addresses" +msgstr "Tüm adresleri listeleyin" + +#: core/docs/drf/viewsets.py:579 +msgid "retrieve a single address" +msgstr "Tek bir adres alma" + +#: core/docs/drf/viewsets.py:586 +msgid "create a new address" +msgstr "Yeni bir adres oluşturun" + +#: core/docs/drf/viewsets.py:594 +msgid "delete an address" +msgstr "Adres silme" + +#: core/docs/drf/viewsets.py:601 +msgid "update an entire address" +msgstr "Adresin tamamını güncelleme" + +#: core/docs/drf/viewsets.py:609 +msgid "partially update an address" +msgstr "Bir adresi kısmen güncelleme" + +#: core/docs/drf/viewsets.py:617 +msgid "autocomplete address suggestions" +msgstr "Otomatik tamamlanan adres girişi" + +#: core/docs/drf/viewsets.py:622 +msgid "raw data query string, please append with data from geo-IP endpoint" +msgstr "" +"Ham veri sorgu dizesi, lütfen geo-IP uç noktasından gelen verilerle ekleyin" + +#: core/docs/drf/viewsets.py:628 +msgid "limit the results amount, 1 < limit < 10, default: 5" +msgstr "sonuç miktarını sınırlar, 1 < limit < 10, varsayılan: 5" + +#: core/docs/drf/viewsets.py:641 +msgid "list all feedbacks (simple view)" +msgstr "tüm geri bildirimleri listele (basit görünüm)" + +#: core/docs/drf/viewsets.py:645 +msgid "retrieve a single feedback (detailed view)" +msgstr "tek bir geri bildirim alma (ayrıntılı görünüm)" + +#: core/docs/drf/viewsets.py:649 +msgid "create a feedback" +msgstr "bir geri bildirim oluşturun" + +#: core/docs/drf/viewsets.py:653 +msgid "delete a feedback" +msgstr "bir geri bildirimi silme" + +#: core/docs/drf/viewsets.py:657 +msgid "rewrite an existing feedback saving non-editables" +msgstr "düzenlenemeyenleri kaydederek mevcut bir geri bildirimi yeniden yazın" + +#: core/docs/drf/viewsets.py:661 +msgid "rewrite some fields of an existing feedback saving non-editables" +msgstr "" +"mevcut bir geri bildirimin bazı alanlarını yeniden yazarak düzenlenemezleri " +"kaydetme" + +#: core/docs/drf/viewsets.py:668 +msgid "list all order–product relations (simple view)" +msgstr "tüm sipariş-ürün ilişkilerini listeler (basit görünüm)" + +#: core/docs/drf/viewsets.py:675 +msgid "retrieve a single order–product relation (detailed view)" +msgstr "tek bir sipariş-ürün ilişkisi alma (ayrıntılı görünüm)" + +#: core/docs/drf/viewsets.py:682 +msgid "create a new order–product relation" +msgstr "yeni bir sipariş-ürün ilişkisi oluşturun" + +#: core/docs/drf/viewsets.py:689 +msgid "replace an existing order–product relation" +msgstr "mevcut bir sipariş-ürün ilişkisini değiştirir" + +#: core/docs/drf/viewsets.py:696 +msgid "partially update an existing order–product relation" +msgstr "mevcut bir sipariş-ürün ilişkisini kısmen güncelleme" + +#: core/docs/drf/viewsets.py:703 +msgid "delete an order–product relation" +msgstr "sipariş-ürün ilişkisini silme" + +#: core/docs/drf/viewsets.py:710 +msgid "add or remove feedback on an order–product relation" +msgstr "sipariş-ürün ilişkisine geri bildirim ekleme veya kaldırma" + +#: core/elasticsearch/__init__.py:105 +msgid "no search term provided." +msgstr "Arama terimi belirtilmemiştir." + +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 +msgid "UUID" +msgstr "UUID" + +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 +msgid "Name" +msgstr "İsim" + +#: core/filters.py:66 core/filters.py:562 +msgid "Categories" +msgstr "Kategoriler" + +#: core/filters.py:68 +msgid "Categories Slugs" +msgstr "Kategoriler Sümüklüböcekler" + +#: core/filters.py:69 core/filters.py:437 +msgid "Tags" +msgstr "Etiketler" + +#: core/filters.py:70 +msgid "Min Price" +msgstr "Min Fiyat" + +#: core/filters.py:71 +msgid "Max Price" +msgstr "Maksimum Fiyat" + +#: core/filters.py:72 +msgid "Is Active" +msgstr "Aktif mi" + +#: core/filters.py:73 +msgid "Brand" +msgstr "Marka" + +#: core/filters.py:74 +msgid "Attributes" +msgstr "Nitelikler" + +#: core/filters.py:75 +msgid "Quantity" +msgstr "Miktar" + +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 +msgid "Slug" +msgstr "Sümüklüböcek" + +#: core/filters.py:77 +msgid "Is Digital" +msgstr "Dijital mi" + +#: core/filters.py:78 +msgid "Include sub-categories" +msgstr "Alt kategorileri dahil edin" + +#: core/filters.py:81 +msgid "Include personal ordered" +msgstr "Kişisel sipariş edilen ürünleri dahil edin" + +#: core/filters.py:83 core/models.py:538 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:166 +msgid "there must be a category_uuid to use include_subcategories flag" +msgstr "" +"include_subcategories bayrağını kullanmak için bir category_uuid olmalıdır" + +#: core/filters.py:356 +msgid "Search (ID, product name or part number)" +msgstr "Arama (ID, ürün adı veya parça numarası)" + +#: core/filters.py:359 +msgid "Bought after (inclusive)" +msgstr "Sonra satın alındı (dahil)" + +#: core/filters.py:360 +msgid "Bought before (inclusive)" +msgstr "Daha önce satın alındı (dahil)" + +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 +msgid "User email" +msgstr "Kullanıcı e-postası" + +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 +msgid "User UUID" +msgstr "Kullanıcı UUID'si" + +#: core/filters.py:365 +msgid "Status" +msgstr "Durum" + +#: core/filters.py:369 +msgid "Human Readable ID" +msgstr "İnsan Tarafından Okunabilir Kimlik" + +#: core/filters.py:430 +msgid "Parent" +msgstr "Ebeveyn" + +#: core/filters.py:434 +msgid "Whole category(has at least 1 product or not)" +msgstr "Tüm kategori (en az 1 ürün var veya yok)" + +#: core/filters.py:438 +msgid "Level" +msgstr "Seviye" + +#: core/filters.py:598 +msgid "Product UUID" +msgstr "Ürün UUID'si" + +#: core/graphene/mutations.py:39 +msgid "key to look for in or set into the cache" +msgstr "Önbellekte aranacak veya önbelleğe yerleştirilecek anahtar" + +#: core/graphene/mutations.py:40 +msgid "data to store in cache" +msgstr "Önbellekte depolanacak veriler" + +#: core/graphene/mutations.py:43 +msgid "timeout in seconds to set the data for into the cache" +msgstr "Verileri önbelleğe almak için saniye cinsinden zaman aşımı" + +#: core/graphene/mutations.py:46 +msgid "cached data" +msgstr "Önbelleğe alınmış veriler" + +#: core/graphene/mutations.py:60 +msgid "camelized JSON data from the requested URL" +msgstr "İstenen URL'den kameleştirilmiş JSON verileri" + +#: core/graphene/mutations.py:65 core/views.py:360 +msgid "only URLs starting with http(s):// are allowed" +msgstr "Yalnızca http(s):// ile başlayan URL'lere izin verilir" + +#: core/graphene/mutations.py:80 +msgid "add a product to the order" +msgstr "Siparişe ürün ekleme" + +#: core/graphene/mutations.py:101 core/graphene/mutations.py:127 +#: core/graphene/mutations.py:232 core/graphene/mutations.py:279 +#, python-brace-format +msgid "order {order_uuid} not found" +msgstr "Sipariş {order_uuid} bulunamadı!" + +#: core/graphene/mutations.py:106 core/graphene/mutations.py:153 +msgid "remove a product from the order" +msgstr "Siparişten bir ürünü kaldırma" + +#: core/graphene/mutations.py:132 +msgid "remove all products from the order" +msgstr "Siparişten tüm ürünleri kaldırın" + +#: core/graphene/mutations.py:175 +msgid "buy an order" +msgstr "Bir sipariş satın alın" + +#: core/graphene/mutations.py:204 core/graphene/mutations.py:257 +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!" + +#: core/graphene/mutations.py:229 core/graphene/mutations.py:486 +#: core/graphene/mutations.py:527 core/viewsets.py:821 +msgid "wrong type came from order.buy() method: {type(instance)!s}" +msgstr "order.buy() metodundan yanlış tip geldi: {type(instance)!s}" + +#: core/graphene/mutations.py:237 +msgid "perform an action on a list of products in the order" +msgstr "Siparişteki ürünlerin listesi üzerinde bir eylem gerçekleştirin" + +#: core/graphene/mutations.py:242 +msgid "remove/add" +msgstr "Kaldır/Ekle" + +#: core/graphene/mutations.py:274 core/graphene/mutations.py:314 +msgid "action must be either add or remove" +msgstr "Eylem ya \"ekle\" ya da \"kaldır\" olmalıdır!" + +#: core/graphene/mutations.py:284 +msgid "perform an action on a list of products in the wishlist" +msgstr "İstek listesindeki bir ürün listesi üzerinde eylem gerçekleştirme" + +#: core/graphene/mutations.py:302 +msgid "please provide wishlist_uuid value" +msgstr "Lütfen `wishlist_uuid` değerini girin." + +#: core/graphene/mutations.py:319 core/graphene/mutations.py:392 +#: core/graphene/mutations.py:419 core/graphene/mutations.py:446 +#: core/graphene/mutations.py:489 +#, python-brace-format +msgid "wishlist {wishlist_uuid} not found" +msgstr "İstek listesi {wishlist_uuid} bulunamadı!" + +#: core/graphene/mutations.py:370 +msgid "add a product to the wishlist" +msgstr "Siparişe ürün ekleme" + +#: core/graphene/mutations.py:397 +msgid "remove a product from the wishlist" +msgstr "Siparişten bir ürünü kaldırma" + +#: core/graphene/mutations.py:424 +msgid "remove all products from the wishlist" +msgstr "Siparişten bir ürünü kaldırma" + +#: core/graphene/mutations.py:451 +msgid "buy all products from the wishlist" +msgstr "Siparişten bir ürünü kaldırma" + +#: core/graphene/mutations.py:494 +msgid "buy a product" +msgstr "Bir sipariş satın alın" + +#: core/graphene/mutations.py:500 +msgid "" +"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" + +#: core/graphene/mutations.py:532 +msgid "add or delete a feedback for orderproduct" +msgstr "Orderproduct için bir geri bildirim ekleme veya silme" + +#: core/graphene/mutations.py:555 +msgid "action must be either `add` or `remove`" +msgstr "Eylem ya `ekle` ya da `kaldır` olmalıdır!" + +#: core/graphene/mutations.py:558 +#, python-brace-format +msgid "order product {order_product_uuid} not found" +msgstr "Orderproduct {order_product_uuid} bulunamadı!" + +#: core/graphene/mutations.py:621 +msgid "original address string provided by the user" +msgstr "Kullanıcı tarafından sağlanan orijinal adres dizesi" + +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 +#: core/viewsets.py:824 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} mevcut değil: {uuid}!" + +#: core/graphene/mutations.py:668 +msgid "limit must be between 1 and 10" +msgstr "Limit 1 ile 10 arasında olmalıdır" + +#: core/graphene/mutations.py:713 +msgid "elasticsearch - works like a charm" +msgstr "ElasticSearch - bir cazibe gibi çalışır" + +#: core/graphene/object_types.py:82 core/graphene/object_types.py:397 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 +msgid "attributes" +msgstr "Nitelikler" + +#: core/graphene/object_types.py:95 +msgid "grouped attributes" +msgstr "Gruplandırılmış nitelikler" + +#: core/graphene/object_types.py:102 +msgid "groups of attributes" +msgstr "Nitelik grupları" + +#: core/graphene/object_types.py:116 core/graphene/object_types.py:193 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 +msgid "categories" +msgstr "Kategoriler" + +#: core/graphene/object_types.py:124 core/models.py:395 +msgid "brands" +msgstr "Markalar" + +#: core/graphene/object_types.py:195 +msgid "category image url" +msgstr "Kategoriler" + +#: core/graphene/object_types.py:196 core/graphene/object_types.py:344 +#: core/models.py:249 +msgid "markup percentage" +msgstr "İşaretleme Yüzdesi" + +#: core/graphene/object_types.py:199 +msgid "which attributes and values can be used for filtering this category." +msgstr "" +"Bu kategoriyi filtrelemek için hangi nitelikler ve değerler kullanılabilir." + +#: core/graphene/object_types.py:203 +msgid "" +"minimum and maximum prices for products in this category, if available." +msgstr "Varsa, bu kategorideki ürünler için minimum ve maksimum fiyatlar." + +#: core/graphene/object_types.py:205 +msgid "tags for this category" +msgstr "Bu kategori için etiketler" + +#: core/graphene/object_types.py:206 +msgid "products in this category" +msgstr "Bu kategorideki ürünler" + +#: core/graphene/object_types.py:351 core/models.py:155 +msgid "vendors" +msgstr "Satıcılar" + +#: core/graphene/object_types.py:355 +msgid "Latitude (Y coordinate)" +msgstr "Enlem (Y koordinatı)" + +#: core/graphene/object_types.py:356 +msgid "Longitude (X coordinate)" +msgstr "Boylam (X koordinatı)" + +#: core/graphene/object_types.py:385 +msgid "comment" +msgstr "Nasıl yapılır" + +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 +msgid "rating value from 1 to 10, inclusive, or 0 if not set." +msgstr "1'den 10'a kadar (dahil) derecelendirme değeri veya ayarlanmamışsa 0." + +#: core/graphene/object_types.py:393 +msgid "represents feedback from a user." +msgstr "Bir kullanıcıdan gelen geri bildirimi temsil eder." + +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 +msgid "notifications" +msgstr "Bildirimler" + +#: core/graphene/object_types.py:399 +msgid "download url for this order product if applicable" +msgstr "Varsa, bu sipariş ürünü için URL'yi indirin" + +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Geri bildirim" + +#: core/graphene/object_types.py:434 +msgid "a list of order products in this order" +msgstr "Bu siparişteki sipariş ürünlerinin bir listesi" + +#: core/graphene/object_types.py:436 core/models.py:1198 +msgid "billing address" +msgstr "Fatura adresi" + +#: core/graphene/object_types.py:439 +msgid "" +"shipping address for this order, leave blank if same as billing address or " +"if not applicable" +msgstr "" +"Bu sipariş için sevkiyat adresi, fatura adresi ile aynıysa veya geçerli " +"değilse boş bırakın" + +#: core/graphene/object_types.py:441 +msgid "total price of this order" +msgstr "Bu siparişin toplam fiyatı" + +#: core/graphene/object_types.py:442 +msgid "total quantity of products in order" +msgstr "Siparişteki toplam ürün miktarı" + +#: core/graphene/object_types.py:443 +msgid "are all products in the order digital" +msgstr "Siparişteki tüm ürünler dijital mi" + +#: core/graphene/object_types.py:446 +msgid "transactions for this order" +msgstr "Bu sipariş için işlemler" + +#: core/graphene/object_types.py:465 core/models.py:1262 +msgid "orders" +msgstr "Siparişler" + +#: core/graphene/object_types.py:486 +msgid "image url" +msgstr "Resim URL'si" + +#: core/graphene/object_types.py:493 +msgid "product's images" +msgstr "Ürün görselleri" + +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 +msgid "category" +msgstr "Kategori" + +#: core/graphene/object_types.py:502 core/models.py:1939 +msgid "feedbacks" +msgstr "Geri Bildirimler" + +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 +msgid "brand" +msgstr "Marka" + +#: core/graphene/object_types.py:504 core/models.py:101 +msgid "attribute groups" +msgstr "Öznitelik grupları" + +#: core/graphene/object_types.py:505 +#: core/templates/digital_order_created_email.html:111 +#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/shipped_order_created_email.html:109 +#: core/templates/shipped_order_delivered_email.html:109 +msgid "price" +msgstr "Fiyat" + +#: core/graphene/object_types.py:506 +#: core/templates/digital_order_created_email.html:110 +#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/shipped_order_created_email.html:108 +#: core/templates/shipped_order_delivered_email.html:108 +msgid "quantity" +msgstr "Miktar" + +#: core/graphene/object_types.py:507 +msgid "number of feedbacks" +msgstr "Geri bildirim sayısı" + +#: core/graphene/object_types.py:508 +msgid "only available for personal orders" +msgstr "Ürünler sadece kişisel siparişler için mevcuttur" + +#: core/graphene/object_types.py:534 core/models.py:548 +msgid "products" +msgstr "Ürünler" + +#: core/graphene/object_types.py:634 +msgid "promocodes" +msgstr "Promosyon Kodları" + +#: core/graphene/object_types.py:644 +msgid "products on sale" +msgstr "Satıştaki ürünler" + +#: core/graphene/object_types.py:651 core/models.py:843 +msgid "promotions" +msgstr "Promosyonlar" + +#: core/graphene/object_types.py:655 core/models.py:154 +msgid "vendor" +msgstr "Satıcı" + +#: core/graphene/object_types.py:656 core/models.py:547 +#: core/templates/digital_order_created_email.html:109 +#: core/templates/digital_order_delivered_email.html:107 +#: core/templates/shipped_order_created_email.html:107 +#: core/templates/shipped_order_delivered_email.html:107 +msgid "product" +msgstr "Ürün" + +#: core/graphene/object_types.py:667 core/models.py:868 +msgid "wishlisted products" +msgstr "İstek listesindeki ürünler" + +#: core/graphene/object_types.py:673 core/models.py:885 +msgid "wishlists" +msgstr "Dilek Listeleri" + +#: core/graphene/object_types.py:677 +msgid "tagged products" +msgstr "Etiketlenmiş ürünler" + +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 +msgid "product tags" +msgstr "Ürün etiketleri" + +#: core/graphene/object_types.py:688 +msgid "tagged categories" +msgstr "Etiketlenmiş kategoriler" + +#: core/graphene/object_types.py:695 +msgid "categories tags" +msgstr "Kategoriler' etiketleri" + +#: core/graphene/object_types.py:699 +msgid "project name" +msgstr "Proje adı" + +#: core/graphene/object_types.py:700 +msgid "company email" +msgstr "Şirket E-postası" + +#: core/graphene/object_types.py:701 +msgid "company name" +msgstr "Şirket Adı" + +#: core/graphene/object_types.py:702 +msgid "company address" +msgstr "Şirket Adresi" + +#: core/graphene/object_types.py:703 +msgid "company phone number" +msgstr "Şirket Telefon Numarası" + +#: core/graphene/object_types.py:704 +msgid "email from, sometimes it must be used instead of host user value" +msgstr "'email from', bazen ana kullanıcı değeri yerine kullanılmalıdır" + +#: core/graphene/object_types.py:705 +msgid "email host user" +msgstr "E-posta ana kullanıcısı" + +#: core/graphene/object_types.py:706 +msgid "maximum amount for payment" +msgstr "Ödeme için maksimum tutar" + +#: core/graphene/object_types.py:707 +msgid "minimum amount for payment" +msgstr "Ödeme için minimum tutar" + +#: core/graphene/object_types.py:708 +msgid "analytics data" +msgstr "Analitik veriler" + +#: core/graphene/object_types.py:709 +msgid "advertisement data" +msgstr "Reklam verileri" + +#: core/graphene/object_types.py:712 +msgid "company configuration" +msgstr "Konfigürasyon" + +#: core/graphene/object_types.py:716 +msgid "language code" +msgstr "Dil kodu" + +#: core/graphene/object_types.py:717 +msgid "language name" +msgstr "Dil adı" + +#: core/graphene/object_types.py:718 +msgid "language flag, if exists :)" +msgstr "Dil bayrağı, eğer varsa :)" + +#: core/graphene/object_types.py:721 +msgid "supported languages" +msgstr "Desteklenen dillerin bir listesini alın" + +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 +msgid "products search results" +msgstr "Ürünler arama sonuçları" + +#: core/graphene/object_types.py:755 +msgid "posts search results" +msgstr "Ürünler arama sonuçları" + +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +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." + +#: core/models.py:86 +msgid "parent of this group" +msgstr "Bu grubun ebeveyni" + +#: core/models.py:87 +msgid "parent attribute group" +msgstr "Üst öznitelik grubu" + +#: core/models.py:91 core/models.py:92 +msgid "attribute group's name" +msgstr "Öznitelik grubunun adı" + +#: core/models.py:100 core/models.py:628 +msgid "attribute group" +msgstr "Öznitelik grubu" + +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +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 " +"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." + +#: core/models.py:119 +msgid "stores credentials and endpoints required for vendor communication" +msgstr "" +"Satıcının API iletişimi için gerekli kimlik bilgilerini ve uç noktaları " +"depolar" + +#: core/models.py:120 +msgid "authentication info" +msgstr "Kimlik doğrulama bilgisi" + +#: core/models.py:125 +msgid "define the markup for products retrieved from this vendor" +msgstr "Bu satıcıdan alınan ürünler için işaretlemeyi tanımlayın" + +#: core/models.py:126 +msgid "vendor markup percentage" +msgstr "Satıcı kar payı yüzdesi" + +#: core/models.py:130 +msgid "name of this vendor" +msgstr "Bu satıcının adı" + +#: core/models.py:131 +msgid "vendor name" +msgstr "Satıcı adı" + +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"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." + +#: core/models.py:175 core/models.py:206 +msgid "internal tag identifier for the product tag" +msgstr "Ürün etiketi için dahili etiket tanımlayıcısı" + +#: core/models.py:176 core/models.py:207 +msgid "tag name" +msgstr "Etiket adı" + +#: core/models.py:180 core/models.py:211 +msgid "user-friendly name for the product tag" +msgstr "Ürün etiketi için kullanıcı dostu ad" + +#: core/models.py:181 core/models.py:212 +msgid "tag display name" +msgstr "Etiket görünen adı" + +#: core/models.py:189 +msgid "product tag" +msgstr "Ürün etiketi" + +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "" +"Ürünler için kullanılan bir kategori etiketini temsil eder. Bu sınıf, " +"ürünleri ilişkilendirmek ve sınıflandırmak için kullanılabilecek bir " +"kategori etiketini modeller. Dahili bir etiket tanımlayıcısı ve kullanıcı " +"dostu bir ekran adı için öznitelikler içerir." + +#: core/models.py:220 +msgid "category tag" +msgstr "kategori etiketi" + +#: core/models.py:221 core/models.py:293 +msgid "category tags" +msgstr "kategori etiketleri" + +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +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 " +"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ı, " +"açıklamasını ve hiyerarşisini belirlemesinin yanı sıra resimler, etiketler " +"veya öncelik gibi öznitelikler atamasına olanak tanır." + +#: core/models.py:240 +msgid "upload an image representing this category" +msgstr "Bu kategoriyi temsil eden bir resim yükleyin" + +#: core/models.py:243 +msgid "category image" +msgstr "Kategori görüntüsü" + +#: core/models.py:248 +msgid "define a markup percentage for products in this category" +msgstr "Bu kategorideki ürünler için bir fiyatlandırma yüzdesi tanımlayın" + +#: core/models.py:257 +msgid "parent of this category to form a hierarchical structure" +msgstr "Hiyerarşik bir yapı oluşturmak için bu kategorinin üst öğesi" + +#: core/models.py:258 +msgid "parent category" +msgstr "Ana kategori" + +#: core/models.py:263 +msgid "category name" +msgstr "Kategori adı" + +#: core/models.py:264 +msgid "provide a name for this category" +msgstr "Bu kategori için bir ad girin" + +#: core/models.py:271 +msgid "add a detailed description for this category" +msgstr "Bu kategori için ayrıntılı bir açıklama ekleyin" + +#: core/models.py:272 +msgid "category description" +msgstr "Kategori açıklaması" + +#: core/models.py:292 +msgid "tags that help describe or group this category" +msgstr "bu kategoriyi tanımlamaya veya gruplandırmaya yardımcı olan etiketler" + +#: core/models.py:299 core/models.py:387 +msgid "priority" +msgstr "Öncelik" + +#: core/models.py:340 +msgid "name of this brand" +msgstr "Bu markanın adı" + +#: core/models.py:341 +msgid "brand name" +msgstr "Marka adı" + +#: core/models.py:348 +msgid "upload a logo representing this brand" +msgstr "Bu markayı temsil eden bir logo yükleyin" + +#: core/models.py:350 +msgid "brand small image" +msgstr "Marka küçük imajı" + +#: core/models.py:356 +msgid "upload a big logo representing this brand" +msgstr "Bu markayı temsil eden büyük bir logo yükleyin" + +#: core/models.py:358 +msgid "brand big image" +msgstr "Marka büyük imaj" + +#: core/models.py:363 +msgid "add a detailed description of the brand" +msgstr "Markanın ayrıntılı bir açıklamasını ekleyin" + +#: core/models.py:364 +msgid "brand description" +msgstr "Marka açıklaması" + +#: core/models.py:369 +msgid "optional categories that this brand is associated with" +msgstr "Bu markanın ilişkili olduğu isteğe bağlı kategoriler" + +#: core/models.py:370 +msgid "associated categories" +msgstr "Kategoriler" + +#: core/models.py:400 +msgid "" +"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 "" +"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 " +"yönetim sisteminin bir parçasıdır." + +#: core/models.py:412 +msgid "the vendor supplying this product stock" +msgstr "Bu ürün stokunu tedarik eden satıcı" + +#: core/models.py:413 +msgid "associated vendor" +msgstr "İlişkili satıcı" + +#: core/models.py:417 +msgid "final price to the customer after markups" +msgstr "Fiyat artışlarından sonra müşteriye verilen nihai fiyat" + +#: core/models.py:418 +msgid "selling price" +msgstr "Satış fiyatı" + +#: core/models.py:423 +msgid "the product associated with this stock entry" +msgstr "Bu stok girişi ile ilişkili ürün" + +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 +msgid "associated product" +msgstr "İlişkili ürün" + +#: core/models.py:431 +msgid "the price paid to the vendor for this product" +msgstr "Bu ürün için satıcıya ödenen fiyat" + +#: core/models.py:432 +msgid "vendor purchase price" +msgstr "Satıcı satın alma fiyatı" + +#: core/models.py:436 +msgid "available quantity of the product in stock" +msgstr "Stoktaki mevcut ürün miktarı" + +#: core/models.py:437 +msgid "quantity in stock" +msgstr "Stoktaki miktar" + +#: core/models.py:441 +msgid "vendor-assigned SKU for identifying the product" +msgstr "Ürünü tanımlamak için satıcı tarafından atanan SKU" + +#: core/models.py:442 +msgid "vendor sku" +msgstr "Satıcının SKU'su" + +#: core/models.py:448 +msgid "digital file associated with this stock if applicable" +msgstr "Varsa bu stokla ilişkili dijital dosya" + +#: core/models.py:449 +msgid "digital file" +msgstr "Dijital dosya" + +#: core/models.py:458 +msgid "stock entries" +msgstr "Stok girişleri" + +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"Kategori, marka, etiketler, dijital durum, ad, açıklama, parça numarası ve " +"slug gibi özniteliklere sahip bir ürünü temsil eder. Derecelendirmeleri, " +"geri bildirim sayılarını, fiyatı, miktarı ve toplam siparişleri almak için " +"ilgili yardımcı program özelliklerini sağlar. E-ticaret veya envanter " +"yönetimi yapan bir sistemde kullanılmak üzere tasarlanmıştır. Bu sınıf, " +"ilgili modellerle (Kategori, Marka ve ProductTag gibi) etkileşime girer ve " +"performansı artırmak için sık erişilen özellikler için önbelleğe almayı " +"yönetir. Bir uygulama içinde ürün verilerini ve ilişkili bilgileri " +"tanımlamak ve işlemek için kullanılır." + +#: core/models.py:476 +msgid "category this product belongs to" +msgstr "Bu ürünün ait olduğu kategori" + +#: core/models.py:485 +msgid "optionally associate this product with a brand" +msgstr "İsteğe bağlı olarak bu ürünü bir marka ile ilişkilendirin" + +#: core/models.py:491 +msgid "tags that help describe or group this product" +msgstr "Bu ürünü tanımlamaya veya gruplandırmaya yardımcı olan etiketler" + +#: core/models.py:496 +msgid "indicates whether this product is digitally delivered" +msgstr "Bu ürünün dijital olarak teslim edilip edilmediğini belirtir" + +#: core/models.py:497 +msgid "is product digital" +msgstr "Ürün dijital mi" + +#: core/models.py:503 +msgid "provide a clear identifying name for the product" +msgstr "Ürün için net bir tanımlayıcı isim sağlayın" + +#: core/models.py:504 +msgid "product name" +msgstr "Ürün adı" + +#: core/models.py:509 core/models.py:831 +msgid "add a detailed description of the product" +msgstr "Ürünün ayrıntılı bir açıklamasını ekleyin" + +#: core/models.py:510 +msgid "product description" +msgstr "Ürün Açıklaması" + +#: core/models.py:517 +msgid "part number for this product" +msgstr "Bu ürün için parça numarası" + +#: core/models.py:518 +msgid "part number" +msgstr "Parça numarası" + +#: core/models.py:537 +msgid "stock keeping unit for this product" +msgstr "Bu ürün için Stok Tutma Birimi" + +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" +"Sistemdeki bir özniteliği temsil eder. Bu sınıf, diğer varlıklarla " +"ilişkilendirilebilen özelleştirilebilir veri parçaları olan öznitelikleri " +"tanımlamak ve yönetmek için kullanılır. Özniteliklerin ilişkili " +"kategorileri, grupları, değer türleri ve adları vardır. Model, dize, " +"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." + +#: core/models.py:619 +msgid "category of this attribute" +msgstr "Bu niteliğin kategorisi" + +#: core/models.py:627 +msgid "group of this attribute" +msgstr "Bu niteliğin grubu" + +#: core/models.py:633 +msgid "string" +msgstr "String" + +#: core/models.py:634 +msgid "integer" +msgstr "Tamsayı" + +#: core/models.py:635 +msgid "float" +msgstr "Yüzer" + +#: core/models.py:636 +msgid "boolean" +msgstr "Boolean" + +#: core/models.py:637 +msgid "array" +msgstr "Dizi" + +#: core/models.py:638 +msgid "object" +msgstr "Nesne" + +#: core/models.py:640 +msgid "type of the attribute's value" +msgstr "Özniteliğin değerinin türü" + +#: core/models.py:641 +msgid "value type" +msgstr "Değer türü" + +#: core/models.py:646 +msgid "name of this attribute" +msgstr "Bu niteliğin adı" + +#: core/models.py:647 +msgid "attribute's name" +msgstr "Özniteliğin adı" + +#: core/models.py:653 +msgid "is filterable" +msgstr "filtrelenebilir" + +#: core/models.py:654 +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." + +#: core/models.py:665 core/models.py:700 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Öznitelik" + +#: core/models.py:699 +msgid "attribute of this value" +msgstr "Bu değerin niteliği" + +#: core/models.py:707 +msgid "the specific product associated with this attribute's value" +msgstr "Bu özniteliğin değeriyle ilişkili belirli ürün" + +#: core/models.py:713 +msgid "the specific value for this attribute" +msgstr "Bu öznitelik için özel değer" + +#: core/models.py:747 +msgid "provide alternative text for the image for accessibility" +msgstr "Erişilebilirlik için görüntü için alternatif metin sağlayın" + +#: core/models.py:748 +msgid "image alt text" +msgstr "Resim alt metni" + +#: core/models.py:751 +msgid "upload the image file for this product" +msgstr "Bu ürün için resim dosyasını yükleyin" + +#: core/models.py:752 core/models.py:777 +msgid "product image" +msgstr "Ürün görseli" + +#: core/models.py:758 +msgid "determines the order in which images are displayed" +msgstr "Görüntülerin görüntülenme sırasını belirler" + +#: core/models.py:759 +msgid "display priority" +msgstr "Ekran önceliği" + +#: core/models.py:764 +msgid "the product that this image represents" +msgstr "Bu görselin temsil ettiği ürün" + +#: core/models.py:778 +msgid "product images" +msgstr "Ürün görselleri" + +#: core/models.py:819 +msgid "percentage discount for the selected products" +msgstr "Seçilen ürünler için yüzde indirim" + +#: core/models.py:820 +msgid "discount percentage" +msgstr "İndirim yüzdesi" + +#: core/models.py:825 +msgid "provide a unique name for this promotion" +msgstr "Bu promosyon için benzersiz bir ad girin" + +#: core/models.py:826 +msgid "promotion name" +msgstr "Promosyon adı" + +#: core/models.py:832 +msgid "promotion description" +msgstr "Promosyon açıklaması" + +#: core/models.py:837 +msgid "select which products are included in this promotion" +msgstr "Bu promosyona hangi ürünlerin dahil olduğunu seçin" + +#: core/models.py:838 +msgid "included products" +msgstr "Dahil olan ürünler" + +#: core/models.py:842 +msgid "promotion" +msgstr "Promosyon" + +#: core/models.py:867 +msgid "products that the user has marked as wanted" +msgstr "Kullanıcının aranıyor olarak işaretlediği ürünler" + +#: core/models.py:875 +msgid "user who owns this wishlist" +msgstr "Bu istek listesine sahip olan kullanıcı" + +#: core/models.py:876 +msgid "wishlist owner" +msgstr "Dilek Listesi Sahibi" + +#: core/models.py:884 +msgid "wishlist" +msgstr "İstek Listesi" + +#: core/models.py:951 +msgid "documentary" +msgstr "Belgesel" + +#: core/models.py:952 +msgid "documentaries" +msgstr "Belgeseller" + +#: core/models.py:962 +msgid "unresolved" +msgstr "Çözümlenmemiş" + +#: core/models.py:1008 +msgid "address line for the customer" +msgstr "Müşteri için adres satırı" + +#: core/models.py:1009 +msgid "address line" +msgstr "Adres hattı" + +#: core/models.py:1011 +msgid "street" +msgstr "Sokak" + +#: core/models.py:1012 +msgid "district" +msgstr "Bölge" + +#: core/models.py:1013 +msgid "city" +msgstr "Şehir" + +#: core/models.py:1014 +msgid "region" +msgstr "Bölge" + +#: core/models.py:1015 +msgid "postal code" +msgstr "Posta kodu" + +#: core/models.py:1016 +msgid "country" +msgstr "Ülke" + +#: core/models.py:1023 +msgid "geolocation point: (longitude, latitude)" +msgstr "Coğrafi Konum Noktası(Boylam, Enlem)" + +#: core/models.py:1026 +msgid "full JSON response from geocoder for this address" +msgstr "Bu adres için geocoder'dan alınan tam JSON yanıtı" + +#: core/models.py:1031 +msgid "stored JSON response from the geocoding service" +msgstr "Coğrafi kodlama hizmetinden depolanan JSON yanıtı" + +#: core/models.py:1039 +msgid "address" +msgstr "Adres" + +#: core/models.py:1040 +msgid "addresses" +msgstr "Adresler" + +#: core/models.py:1085 +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" + +#: core/models.py:1086 +msgid "promo code identifier" +msgstr "Promosyon kodu tanımlayıcı" + +#: core/models.py:1093 +msgid "fixed discount amount applied if percent is not used" +msgstr "Yüzde kullanılmazsa uygulanan sabit indirim tutarı" + +#: core/models.py:1094 +msgid "fixed discount amount" +msgstr "Sabit iskonto tutarı" + +#: core/models.py:1100 +msgid "percentage discount applied if fixed amount is not used" +msgstr "Sabit tutar kullanılmazsa uygulanan yüzde indirimi" + +#: core/models.py:1101 +msgid "percentage discount" +msgstr "Yüzde indirim" + +#: core/models.py:1106 +msgid "timestamp when the promocode expires" +msgstr "Promosyon kodunun sona erdiği zaman damgası" + +#: core/models.py:1107 +msgid "end validity time" +msgstr "Geçerlilik süresi sonu" + +#: core/models.py:1112 +msgid "timestamp from which this promocode is valid" +msgstr "Bu promosyon kodunun geçerli olduğu zaman damgası" + +#: core/models.py:1113 +msgid "start validity time" +msgstr "Geçerlilik süresini başlat" + +#: core/models.py:1118 +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ş" + +#: core/models.py:1119 +msgid "usage timestamp" +msgstr "Kullanım zaman damgası" + +#: core/models.py:1124 +msgid "user assigned to this promocode if applicable" +msgstr "Varsa bu promosyon koduna atanan kullanıcı" + +#: core/models.py:1125 +msgid "assigned user" +msgstr "Atanmış kullanıcı" + +#: core/models.py:1132 +msgid "promo code" +msgstr "Promosyon kodu" + +#: core/models.py:1133 +msgid "promo codes" +msgstr "Promosyon kodları" + +#: core/models.py:1140 +msgid "" +"only one type of discount should be defined (amount or percent), but not " +"both or neither." +msgstr "" +"Sadece bir indirim türü (tutar veya yüzde) tanımlanmalı, ikisi birden veya " +"hiçbiri tanımlanmamalıdır." + +#: core/models.py:1155 +msgid "promocode already used" +msgstr "Promosyon kodu zaten kullanılmış" + +#: core/models.py:1171 +#, python-brace-format +msgid "invalid discount type for promocode {self.uuid}" +msgstr "Promosyon kodu {self.uuid} için geçersiz indirim türü!" + +#: core/models.py:1180 +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 " +"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ı " +"güncellenebilir. Aynı şekilde işlevsellik, sipariş yaşam döngüsündeki " +"ürünlerin yönetilmesini de destekler." + +#: core/models.py:1197 +msgid "the billing address used for this order" +msgstr "Bu sipariş için kullanılan fatura adresi" + +#: core/models.py:1205 +msgid "optional promo code applied to this order" +msgstr "Bu siparişe isteğe bağlı promosyon kodu uygulanır" + +#: core/models.py:1206 +msgid "applied promo code" +msgstr "Uygulanan promosyon kodu" + +#: core/models.py:1214 +msgid "the shipping address used for this order" +msgstr "Bu sipariş için kullanılan gönderim adresi" + +#: core/models.py:1215 +msgid "shipping address" +msgstr "Nakliye adresi" + +#: core/models.py:1221 +msgid "current status of the order in its lifecycle" +msgstr "Siparişin yaşam döngüsündeki mevcut durumu" + +#: core/models.py:1222 +msgid "order status" +msgstr "Sipariş durumu" + +#: core/models.py:1227 core/models.py:1686 +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" + +#: core/models.py:1233 +msgid "json representation of order attributes for this order" +msgstr "Bu sipariş için sipariş özniteliklerinin JSON gösterimi" + +#: core/models.py:1239 +msgid "the user who placed the order" +msgstr "Siparişi veren kullanıcı" + +#: core/models.py:1240 +msgid "user" +msgstr "Kullanıcı" + +#: core/models.py:1246 +msgid "the timestamp when the order was finalized" +msgstr "Siparişin sonlandırıldığı zaman damgası" + +#: core/models.py:1247 +msgid "buy time" +msgstr "Zaman satın alın" + +#: core/models.py:1254 +msgid "a human-readable identifier for the order" +msgstr "Sipariş için insan tarafından okunabilir bir tanımlayıcı" + +#: core/models.py:1255 +msgid "human readable id" +msgstr "insan tarafından okunabilir kimlik" + +#: core/models.py:1261 +msgid "order" +msgstr "Sipariş" + +#: core/models.py:1282 +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!" + +#: core/models.py:1316 +msgid "you cannot add products to an order that is not a pending one" +msgstr "Beklemede olmayan bir siparişe ürün ekleyemezsiniz" + +#: core/models.py:1321 +msgid "you cannot add inactive products to order" +msgstr "Aktif olmayan ürünleri siparişe ekleyemezsiniz" + +#: core/models.py:1338 +msgid "you cannot add more products than available in stock" +msgstr "Stokta mevcut olandan daha fazla ürün ekleyemezsiniz" + +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 +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" + +#: core/models.py:1381 +#, python-brace-format +msgid "{name} does not exist with query <{query}>" +msgstr "{name} <{query}> sorgusu ile mevcut değil!" + +#: core/models.py:1413 +msgid "promocode does not exist" +msgstr "Promosyon kodu mevcut değil" + +#: core/models.py:1419 +msgid "you can only buy physical products with shipping address specified" +msgstr "" +"Fiziksel ürünleri yalnızca gönderim adresi belirtilerek satın alabilirsiniz!" + +#: core/models.py:1438 +msgid "address does not exist" +msgstr "Adres mevcut değil" + +#: core/models.py:1459 core/models.py:1528 +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." + +#: core/models.py:1462 core/models.py:1524 +msgid "invalid force value" +msgstr "Geçersiz kuvvet değeri" + +#: core/models.py:1468 core/models.py:1531 +msgid "you cannot purchase an empty order!" +msgstr "Boş bir sipariş satın alamazsınız!" + +#: core/models.py:1487 +msgid "you cannot buy an order without a user" +msgstr "Kullanıcı olmadan sipariş alamazsınız!" + +#: core/models.py:1501 +msgid "a user without a balance cannot buy with balance" +msgstr "Bakiyesi olmayan bir kullanıcı bakiye ile satın alamaz!" + +#: core/models.py:1506 +msgid "insufficient funds to complete the order" +msgstr "Siparişi tamamlamak için yeterli fon yok" + +#: core/models.py:1540 +msgid "" +"you cannot buy without registration, please provide the following " +"information: customer name, customer email, customer phone number" +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ı" + +#: core/models.py:1549 +#, 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}!" + +#: core/models.py:1674 +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" + +#: core/models.py:1675 +msgid "purchase price at order time" +msgstr "Sipariş anındaki satın alma fiyatı" + +#: core/models.py:1680 +msgid "internal comments for admins about this ordered product" +msgstr "Sipariş edilen bu ürün hakkında yöneticiler için dahili yorumlar" + +#: core/models.py:1681 +msgid "internal comments" +msgstr "Dahili yorumlar" + +#: core/models.py:1687 +msgid "user notifications" +msgstr "Kullanıcı bildirimleri" + +#: core/models.py:1692 +msgid "json representation of this item's attributes" +msgstr "Bu öğenin özniteliklerinin JSON gösterimi" + +#: core/models.py:1693 +msgid "ordered product attributes" +msgstr "Sıralı ürün özellikleri" + +#: core/models.py:1698 +msgid "reference to the parent order that contains this product" +msgstr "Bu ürünü içeren ana siparişe referans" + +#: core/models.py:1699 +msgid "parent order" +msgstr "Ana sipariş" + +#: core/models.py:1708 +msgid "the specific product associated with this order line" +msgstr "Bu sipariş satırıyla ilişkili belirli ürün" + +#: core/models.py:1715 +msgid "quantity of this specific product in the order" +msgstr "Siparişteki bu belirli ürünün miktarı" + +#: core/models.py:1716 +msgid "product quantity" +msgstr "Ürün miktarı" + +#: core/models.py:1723 +msgid "current status of this product in the order" +msgstr "Bu ürünün siparişteki mevcut durumu" + +#: core/models.py:1724 +msgid "product line status" +msgstr "Ürün hattı durumu" + +#: core/models.py:1784 +msgid "order product must have an order" +msgstr "Orderproduct ilişkili bir siparişe sahip olmalıdır!" + +#: core/models.py:1786 +#, python-brace-format +msgid "wrong action specified for feedback: {action}" +msgstr "Geri bildirim için yanlış eylem belirtildi: {action}!" + +#: core/models.py:1800 +msgid "you cannot feedback an order which is not received" +msgstr "alınmamış bir siparişe geri bildirim yapamazsınız" + +#: core/models.py:1806 +msgid "name" +msgstr "İsim" + +#: core/models.py:1807 +msgid "URL of the integration" +msgstr "Entegrasyonun URL'si" + +#: core/models.py:1808 +msgid "authentication credentials" +msgstr "Kimlik doğrulama bilgileri" + +#: core/models.py:1822 +msgid "you can only have one default CRM provider" +msgstr "Yalnızca bir varsayılan CRM sağlayıcınız olabilir" + +#: core/models.py:1826 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1827 +msgid "CRMs" +msgstr "CRM'ler" + +#: core/models.py:1839 +msgid "order CRM link" +msgstr "Siparişin CRM bağlantısı" + +#: core/models.py:1840 +msgid "orders CRM links" +msgstr "Siparişlerin CRM bağlantıları" + +#: core/models.py:1874 +msgid "download" +msgstr "İndir" + +#: core/models.py:1875 +msgid "downloads" +msgstr "İndirmeler" + +#: core/models.py:1883 +msgid "you can not download a digital asset for a non-finished order" +msgstr "Tamamlanmamış bir sipariş için dijital varlık indiremezsiniz" + +#: core/models.py:1913 +msgid "user-provided comments about their experience with the product" +msgstr "" +"Ürünle ilgili deneyimleri hakkında kullanıcı tarafından sağlanan yorumlar" + +#: core/models.py:1914 +msgid "feedback comments" +msgstr "Geri bildirim yorumları" + +#: core/models.py:1921 +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" + +#: core/models.py:1922 +msgid "related order product" +msgstr "İlgili sipariş ürünü" + +#: core/models.py:1927 +msgid "user-assigned rating for the product" +msgstr "Ürün için kullanıcı tarafından atanan derecelendirme" + +#: core/models.py:1928 +msgid "product rating" +msgstr "Ürün değerlendirmesi" + +#: core/serializers/utility.py:87 +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." + +#: core/signals.py:65 +msgid "error during promocode creation: {e!s}" +msgstr "Promosyon kodu oluşturma sırasında hata: {e!s}" + +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Ev" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Bize Ulaşın" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Hakkımızda" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Ödeme Bilgileri" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Teslimat" + +#: core/templates/digital_order_created_email.html:7 +#: core/templates/digital_order_created_email.html:100 +#: core/templates/digital_order_delivered_email.html:6 +#: core/templates/shipped_order_created_email.html:7 +#: core/templates/shipped_order_created_email.html:99 +#: core/templates/shipped_order_delivered_email.html:7 +#: core/templates/shipped_order_delivered_email.html:99 +msgid "order confirmation" +msgstr "Sipariş Onayı" + +#: core/templates/digital_order_created_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 +#: core/templates/promocode_granted_email.html:94 +#: core/templates/shipped_order_created_email.html:94 +#: core/templates/shipped_order_delivered_email.html:94 +msgid "logo" +msgstr "Logo" + +#: core/templates/digital_order_created_email.html:101 +#: core/templates/shipped_order_created_email.html:100 +#: core/templates/shipped_order_delivered_email.html:100 +#, python-format +msgid "hello %(order.user.first_name)s," +msgstr "Merhaba %(order.user.first_name)s," + +#: core/templates/digital_order_created_email.html:102 +#, 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" +" order:" +msgstr "" +"Siparişiniz için teşekkür ederiz #%(order.pk)s! Siparişinizi işleme " +"aldığımızı bildirmekten memnuniyet duyarız. Siparişinizin detayları " +"aşağıdadır:" + +#: core/templates/digital_order_created_email.html:112 +#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/shipped_order_created_email.html:110 +#: core/templates/shipped_order_delivered_email.html:110 +msgid "total" +msgstr "Toplam" + +#: core/templates/digital_order_created_email.html:125 +#: core/templates/digital_order_delivered_email.html:157 +#: core/templates/shipped_order_created_email.html:127 +#: core/templates/shipped_order_delivered_email.html:127 +msgid "total price" +msgstr "Toplam Fiyat" + +#: core/templates/digital_order_created_email.html:131 +#: core/templates/shipped_order_created_email.html:140 +#: core/templates/shipped_order_delivered_email.html:140 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(config.EMAIL_HOST_USER)s." +msgstr "" +"Herhangi bir sorunuz varsa, %(config.EMAIL_HOST_USER)s adresinden destek " +"ekibimizle iletişime geçmekten çekinmeyin." + +#: core/templates/digital_order_created_email.html:133 +#, python-format +msgid "best regards,
the %(config.PROJECT_NAME)s team" +msgstr "Saygılarımla,
the %(config.PROJECT_NAME)s team" + +#: core/templates/digital_order_created_email.html:139 +#: core/templates/digital_order_delivered_email.html:171 +#: core/templates/promocode_granted_email.html:114 +msgid "all rights reserved" +msgstr "Tüm hakları saklıdır" + +#: core/templates/digital_order_delivered_email.html:99 +msgid "order delivered" +msgstr "Sipariş Teslim Edildi" + +#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Merhaba %(user_first_name)s," + +#: core/templates/digital_order_delivered_email.html:101 +#, python-format +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:" + +#: core/templates/digital_order_delivered_email.html:128 +msgid "" +"additional\n" +" information" +msgstr "" +"ilave\n" +" BİLGİ" + +#: core/templates/digital_order_delivered_email.html:137 +#: core/templates/json_table_widget.html:6 +msgid "value" +msgstr "Değer" + +#: core/templates/digital_order_delivered_email.html:163 +#: core/templates/promocode_granted_email.html:106 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" +"Herhangi bir sorunuz varsa, %(contact_email)s adresinden destek ekibimizle " +"iletişime geçmekten çekinmeyin." + +#: core/templates/digital_order_delivered_email.html:165 +#: core/templates/promocode_granted_email.html:108 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Saygılarımla,
the %(project_name)s team" + +#: core/templates/json_table_widget.html:5 +msgid "key" +msgstr "Anahtar" + +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Promosyon kodu verildi" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Bizimle kaldığınız için teşekkür ederiz! Size bir promosyon kodu verdik\n" +" için" + +#: core/templates/shipped_order_created_email.html:101 +#: core/templates/shipped_order_delivered_email.html:101 +msgid "" +"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 " +"memnuniyet duyuyoruz. Siparişinizin detayları aşağıdadır:" + +#: core/templates/shipped_order_created_email.html:123 +#: core/templates/shipped_order_delivered_email.html:123 +msgid "shipping price" +msgstr "Nakliye fiyatı" + +#: core/templates/shipped_order_created_email.html:133 +#: core/templates/shipped_order_delivered_email.html:133 +msgid "your order will be delivered to the following address:" +msgstr "Siparişiniz aşağıdaki adrese teslim edilecektir:" + +#: core/templates/shipped_order_created_email.html:142 +#: core/templates/shipped_order_delivered_email.html:142 +#, python-format +msgid "best regards,
The %(config.PROJECT_NAME)s team" +msgstr "Saygılarımla,
The %(config.PROJECT_NAME)s team" + +#: core/templates/shipped_order_created_email.html:147 +#: core/templates/shipped_order_delivered_email.html:147 +msgid "" +"all rights\n" +" reserved" +msgstr "" +"Tüm hakları\n" +" ayrılmış" + +#: core/utils/caching.py:41 +msgid "both data and timeout are required" +msgstr "Hem veri hem de zaman aşımı gereklidir" + +#: core/utils/caching.py:43 +msgid "invalid timeout value, it must be between 0 and 216000 seconds" +msgstr "Geçersiz zaman aşımı değeri, 0 ile 216000 saniye arasında olmalıdır" + +#: core/utils/emailing.py:25 +#, python-brace-format +msgid "{config.PROJECT_NAME} | contact us initiated" +msgstr "{config.PROJECT_NAME} | bi̇zi̇mle i̇leti̇şi̇me geçi̇n" + +#: core/utils/emailing.py:64 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order confirmation" +msgstr "{config.PROJECT_NAME} | Sipariş Onayı" + +#: core/utils/emailing.py:99 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order delivered" +msgstr "{config.PROJECT_NAME} | Sipariş Teslim Edildi" + +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | verilen promosyon kodu" + +#: core/utils/messages.py:3 +msgid "you do not have permission to perform this action." +msgstr "Bu eylemi gerçekleştirmek için izniniz yok." + +#: core/utils/nominatim.py:8 +msgid "NOMINATIM_URL must be configured." +msgstr "NOMINATIM_URL parametresi yapılandırılmalıdır!" + +#: core/validators.py:16 +#, python-brace-format +msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" +msgstr "Resim boyutları w{max_width} x h{max_height} pikseli geçmemelidir!" + +#: core/validators.py:22 +msgid "invalid phone number format" +msgstr "Geçersiz telefon numarası biçimi" + +#: core/views.py:481 +msgid "you can only download the digital asset once" +msgstr "Dijital varlığı yalnızca bir kez indirebilirsiniz" + +#: core/views.py:539 +msgid "favicon not found" +msgstr "favicon bulunamadı" + +#: core/viewsets.py:1319 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Coğrafi kodlama hatası: {e}" diff --git a/core/locale/vi_VN/LC_MESSAGES/django.mo b/core/locale/vi_VN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..53aa17b43c2eccdf533378498f43dad6a2844982 GIT binary patch literal 68120 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 literal 0 HcmV?d00001 diff --git a/core/locale/vi_VN/LC_MESSAGES/django.po b/core/locale/vi_VN/LC_MESSAGES/django.po new file mode 100644 index 00000000..1fa3f7b6 --- /dev/null +++ b/core/locale/vi_VN/LC_MESSAGES/django.po @@ -0,0 +1,2620 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: vi-vn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: core/abstract.py:11 +msgid "unique id" +msgstr "ID duy nhất" + +#: core/abstract.py:12 +msgid "unique id is used to surely identify any database object" +msgstr "" +"Mã định danh duy nhất (Unique ID) được sử dụng để xác định chính xác bất kỳ " +"đối tượng cơ sở dữ liệu nào." + +#: core/abstract.py:19 +msgid "is active" +msgstr "Đang hoạt động" + +#: core/abstract.py:20 +msgid "" +"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." + +#: core/abstract.py:22 core/choices.py:18 +msgid "created" +msgstr "Được tạo ra" + +#: core/abstract.py:22 +msgid "when the object first appeared on the database" +msgstr "Khi đối tượng lần đầu tiên xuất hiện trong cơ sở dữ liệu" + +#: core/abstract.py:23 +msgid "modified" +msgstr "Đã sửa đổi" + +#: core/abstract.py:23 +msgid "when the object was last modified" +msgstr "Khi đối tượng được chỉnh sửa lần cuối" + +#: core/admin.py:63 +msgid "translations" +msgstr "Dịch thuật" + +#: core/admin.py:67 +msgid "general" +msgstr "Tổng quát" + +#: core/admin.py:69 +msgid "relations" +msgstr "Quan hệ" + +#: core/admin.py:87 +msgid "metadata" +msgstr "Siêu dữ liệu" + +#: core/admin.py:94 +msgid "timestamps" +msgstr "Dấu thời gian" + +#: core/admin.py:109 +#, python-format +msgid "activate selected %(verbose_name_plural)s" +msgstr "Kích hoạt %(verbose_name_plural)s đã chọn" + +#: core/admin.py:114 +msgid "selected items have been activated." +msgstr "Các mục đã được chọn đã được kích hoạt!" + +#: core/admin.py:120 +#, python-format +msgid "deactivate selected %(verbose_name_plural)s" +msgstr "Vô hiệu hóa các mục đã chọn %(verbose_name_plural)s" + +#: core/admin.py:125 +msgid "selected items have been deactivated." +msgstr "Các mục đã chọn đã bị vô hiệu hóa!" + +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 +msgid "attribute value" +msgstr "Giá trị thuộc tính" + +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 +msgid "attribute values" +msgstr "Giá trị thuộc tính" + +#: core/admin.py:146 +msgid "image" +msgstr "Hình ảnh" + +#: core/admin.py:147 core/graphene/object_types.py:501 +msgid "images" +msgstr "Hình ảnh" + +#: core/admin.py:155 core/models.py:457 +msgid "stock" +msgstr "Cổ phiếu" + +#: core/admin.py:156 core/graphene/object_types.py:663 +msgid "stocks" +msgstr "Cổ phiếu" + +#: core/admin.py:166 core/models.py:1735 +msgid "order product" +msgstr "Đặt hàng sản phẩm" + +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 +msgid "order products" +msgstr "Đặt hàng sản phẩm" + +#: core/admin.py:180 core/admin.py:181 +msgid "children" +msgstr "Trẻ em" + +#: core/admin.py:566 +msgid "Config" +msgstr "Cấu hình" + +#: core/apps.py:8 +msgid "core" +msgstr "Lõi" + +#: core/choices.py:4 core/choices.py:20 +msgid "finished" +msgstr "Hoàn thành" + +#: core/choices.py:5 core/choices.py:19 +msgid "delivering" +msgstr "Giao hàng" + +#: core/choices.py:6 +msgid "delivered" +msgstr "Đã giao" + +#: core/choices.py:7 +msgid "canceled" +msgstr "Đã hủy" + +#: core/choices.py:8 core/choices.py:16 core/choices.py:24 +msgid "failed" +msgstr "Thất bại" + +#: core/choices.py:9 core/choices.py:15 +msgid "pending" +msgstr "Đang chờ xử lý" + +#: core/choices.py:10 +msgid "accepted" +msgstr "Được chấp nhận" + +#: core/choices.py:11 +msgid "money returned" +msgstr "Tiền được hoàn lại" + +#: core/choices.py:17 +msgid "payment" +msgstr "Thanh toán" + +#: core/choices.py:21 +msgid "momental" +msgstr "Momental" + +#: core/choices.py:24 +msgid "successful" +msgstr "Thành công" + +#: core/docs/drf/views.py:17 core/graphene/mutations.py:36 +msgid "cache I/O" +msgstr "Bộ nhớ đệm I/O" + +#: core/docs/drf/views.py:19 +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 "" +"Chỉ sử dụng khóa để đọc dữ liệu được phép từ bộ nhớ đệm. Sử dụng khóa, dữ " +"liệu và thời gian chờ kèm theo xác thực để ghi dữ liệu vào bộ nhớ đệm." + +#: core/docs/drf/views.py:32 +msgid "get a list of supported languages" +msgstr "Xem danh sách các ngôn ngữ được hỗ trợ" + +#: core/docs/drf/views.py:41 +msgid "get application's exposable parameters" +msgstr "Lấy các tham số có thể truy cập của ứng dụng" + +#: core/docs/drf/views.py:48 +msgid "send a message to the support team" +msgstr "Gửi tin nhắn cho đội ngũ hỗ trợ" + +#: core/docs/drf/views.py:59 core/graphene/mutations.py:55 +msgid "request a CORSed URL" +msgstr "Yêu cầu URL CORSed. Chỉ cho phép https." + +#: core/docs/drf/views.py:85 +msgid "global search endpoint to query across project's tables" +msgstr "Điểm cuối tìm kiếm toàn cầu để tra cứu qua các bảng của dự án" + +#: core/docs/drf/views.py:91 +msgid "purchase an order as a business" +msgstr "Mua hàng với tư cách là doanh nghiệp" + +#: core/docs/drf/views.py:98 +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`." + +#: core/docs/drf/viewsets.py:44 +msgid "list all attribute groups (simple view)" +msgstr "Danh sách tất cả các nhóm thuộc tính (chế độ xem đơn giản)" + +#: core/docs/drf/viewsets.py:48 +msgid "retrieve a single attribute group (detailed view)" +msgstr "Lấy một nhóm thuộc tính duy nhất (chế độ xem chi tiết)" + +#: core/docs/drf/viewsets.py:52 +msgid "create an attribute group" +msgstr "Tạo nhóm thuộc tính" + +#: core/docs/drf/viewsets.py:56 +msgid "delete an attribute group" +msgstr "Xóa nhóm thuộc tính" + +#: core/docs/drf/viewsets.py:60 +msgid "rewrite an existing attribute group saving non-editables" +msgstr "" +"Viết lại nhóm thuộc tính hiện có và giữ nguyên các thuộc tính không thể " +"chỉnh sửa." + +#: core/docs/drf/viewsets.py:64 +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." + +#: core/docs/drf/viewsets.py:71 +msgid "list all attributes (simple view)" +msgstr "Danh sách tất cả các thuộc tính (chế độ xem đơn giản)" + +#: core/docs/drf/viewsets.py:75 +msgid "retrieve a single attribute (detailed view)" +msgstr "Lấy một thuộc tính duy nhất (chế độ xem chi tiết)" + +#: core/docs/drf/viewsets.py:79 +msgid "create an attribute" +msgstr "Tạo một thuộc tính" + +#: core/docs/drf/viewsets.py:83 +msgid "delete an attribute" +msgstr "Xóa một thuộc tính" + +#: core/docs/drf/viewsets.py:87 +msgid "rewrite an existing attribute saving non-editables" +msgstr "" +"Viết lại một thuộc tính hiện có để lưu trữ các trường không thể chỉnh sửa." + +#: core/docs/drf/viewsets.py:91 +msgid "rewrite some fields of an existing attribute saving non-editables" +msgstr "" +"Cập nhật một số trường của một thuộc tính hiện có, giữ nguyên các trường " +"không thể chỉnh sửa." + +#: core/docs/drf/viewsets.py:98 +msgid "list all attribute values (simple view)" +msgstr "Danh sách tất cả các giá trị thuộc tính (chế độ xem đơn giản)" + +#: core/docs/drf/viewsets.py:102 +msgid "retrieve a single attribute value (detailed view)" +msgstr "Lấy giá trị của một thuộc tính duy nhất (chế độ xem chi tiết)" + +#: core/docs/drf/viewsets.py:106 +msgid "create an attribute value" +msgstr "Tạo giá trị thuộc tính" + +#: core/docs/drf/viewsets.py:110 +msgid "delete an attribute value" +msgstr "Xóa giá trị của một thuộc tính" + +#: core/docs/drf/viewsets.py:114 +msgid "rewrite an existing attribute value saving non-editables" +msgstr "" +"Cập nhật giá trị của một thuộc tính hiện có mà không thay đổi các trường " +"không thể chỉnh sửa." + +#: core/docs/drf/viewsets.py:118 +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." + +#: core/docs/drf/viewsets.py:125 core/docs/drf/viewsets.py:126 +msgid "list all categories (simple view)" +msgstr "Danh sách tất cả các danh mục (chế độ xem đơn giản)" + +#: core/docs/drf/viewsets.py:130 core/docs/drf/viewsets.py:131 +msgid "retrieve a single category (detailed view)" +msgstr "Lấy một danh mục duy nhất (chế độ xem chi tiết)" + +#: core/docs/drf/viewsets.py:135 core/docs/drf/viewsets.py:136 +msgid "create a category" +msgstr "Tạo một danh mục" + +#: core/docs/drf/viewsets.py:140 core/docs/drf/viewsets.py:141 +msgid "delete a category" +msgstr "Xóa một danh mục" + +#: core/docs/drf/viewsets.py:145 core/docs/drf/viewsets.py:146 +msgid "rewrite an existing category saving non-editables" +msgstr "" +"Viết lại một danh mục hiện có mà không thay đổi các trường không thể chỉnh " +"sửa." + +#: core/docs/drf/viewsets.py:150 core/docs/drf/viewsets.py:151 +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." + +#: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 +#: core/graphene/object_types.py:117 core/graphene/object_types.py:207 +#: core/graphene/object_types.py:509 +msgid "SEO Meta snapshot" +msgstr "SEO Meta snapshot" + +#: core/docs/drf/viewsets.py:156 +msgid "returns a snapshot of the category's SEO meta data" +msgstr "Trả về bản sao dữ liệu meta SEO của danh mục." + +#: core/docs/drf/viewsets.py:161 +msgid "Category UUID or slug" +msgstr "Mã định danh duy nhất (UUID) hoặc tên gọi (slug) của danh mục" + +#: core/docs/drf/viewsets.py:174 +msgid "list all orders (simple view)" +msgstr "Danh sách tất cả các danh mục (chế độ xem đơn giản)" + +#: core/docs/drf/viewsets.py:175 +msgid "for non-staff users, only their own orders are returned." +msgstr "" +"Đối với người dùng không phải nhân viên, chỉ các đơn hàng của chính họ được " +"hiển thị." + +#: core/docs/drf/viewsets.py:181 +msgid "" +"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." + +#: core/docs/drf/viewsets.py:188 +msgid "Filter orders with buy_time >= this ISO 8601 datetime" +msgstr "Lọc các đơn hàng có thời gian mua >= thời gian ISO 8601 này" + +#: core/docs/drf/viewsets.py:193 +msgid "Filter orders with buy_time <= this ISO 8601 datetime" +msgstr "Lọc các đơn hàng có thời gian mua <= thời gian ISO 8601 này" + +#: core/docs/drf/viewsets.py:198 +msgid "Filter by exact order UUID" +msgstr "Lọc theo UUID chính xác" + +#: core/docs/drf/viewsets.py:203 +msgid "Filter by exact human-readable order ID" +msgstr "Lọc theo ID đơn hàng chính xác có thể đọc được bởi con người" + +#: core/docs/drf/viewsets.py:208 +msgid "Filter by user's email (case-insensitive exact match)" +msgstr "" +"Lọc theo địa chỉ email của người dùng (khớp chính xác không phân biệt chữ " +"hoa chữ thường)" + +#: core/docs/drf/viewsets.py:213 +msgid "Filter by user's UUID" +msgstr "Lọc theo UUID của người dùng" + +#: core/docs/drf/viewsets.py:218 +msgid "Filter by order status (case-insensitive substring match)" +msgstr "" +"Lọc theo trạng thái đơn hàng (so khớp chuỗi con không phân biệt chữ hoa chữ " +"thường)" + +#: core/docs/drf/viewsets.py:224 +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')." +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 " +"xếp theo thứ tự giảm dần (ví dụ: '-buy_time')." + +#: core/docs/drf/viewsets.py:233 +msgid "retrieve a single order (detailed view)" +msgstr "Lấy một danh mục duy nhất (chế độ xem chi tiết)" + +#: core/docs/drf/viewsets.py:237 +msgid "create an order" +msgstr "Tạo một thuộc tính" + +#: core/docs/drf/viewsets.py:238 +msgid "doesn't work for non-staff users." +msgstr "Không áp dụng cho người dùng không phải nhân viên." + +#: core/docs/drf/viewsets.py:242 +msgid "delete an order" +msgstr "Xóa một thuộc tính" + +#: core/docs/drf/viewsets.py:246 +msgid "rewrite an existing order saving non-editables" +msgstr "" +"Viết lại một danh mục hiện có mà không thay đổi các trường không thể chỉnh " +"sửa." + +#: core/docs/drf/viewsets.py:250 +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." + +#: core/docs/drf/viewsets.py:254 +msgid "purchase an order" +msgstr "Giá mua tại thời điểm đặt hàng" + +#: core/docs/drf/viewsets.py:256 +msgid "" +"finalizes the order purchase. if `force_balance` is used, the purchase is " +"completed using the user's balance; if `force_payment` is used, a " +"transaction is initiated." +msgstr "" +"Hoàn tất việc mua hàng. Nếu sử dụng `force_balance`, việc mua hàng sẽ được " +"hoàn tất bằng số dư của người dùng; nếu sử dụng `force_payment`, một giao " +"dịch sẽ được khởi tạo." + +#: core/docs/drf/viewsets.py:268 core/graphene/mutations.py:324 +msgid "purchase an order without account creation" +msgstr "Đặt hàng mà không cần tạo tài khoản" + +#: core/docs/drf/viewsets.py:269 +msgid "finalizes the order purchase for a non-registered user." +msgstr "Hoàn tất đơn đặt hàng cho người dùng chưa đăng ký." + +#: core/docs/drf/viewsets.py:277 +msgid "add product to order" +msgstr "Thêm sản phẩm vào đơn hàng" + +#: core/docs/drf/viewsets.py:278 +msgid "" +"adds a product to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Thêm sản phẩm vào đơn hàng bằng cách sử dụng `product_uuid` và `attributes` " +"được cung cấp." + +#: core/docs/drf/viewsets.py:283 +msgid "add a list of products to order, quantities will not count" +msgstr "Thêm danh sách sản phẩm vào đơn hàng, số lượng sẽ không được tính." + +#: core/docs/drf/viewsets.py:284 +msgid "" +"adds a list of products to an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Thêm danh sách sản phẩm vào đơn hàng bằng cách sử dụng `product_uuid` và " +"`attributes` được cung cấp." + +#: core/docs/drf/viewsets.py:289 +msgid "remove product from order" +msgstr "Xóa sản phẩm khỏi đơn hàng" + +#: core/docs/drf/viewsets.py:290 +msgid "" +"removes a product from an order using the provided `product_uuid` and " +"`attributes`." +msgstr "" +"Xóa một sản phẩm khỏi đơn hàng bằng cách sử dụng `product_uuid` và " +"`attributes` được cung cấp." + +#: core/docs/drf/viewsets.py:295 +msgid "remove product from order, quantities will not count" +msgstr "Xóa sản phẩm khỏi đơn hàng, số lượng sẽ không được tính." + +#: core/docs/drf/viewsets.py:296 +msgid "" +"removes a list of products from an order using the provided `product_uuid` " +"and `attributes`" +msgstr "" +"Xóa danh sách sản phẩm khỏi đơn hàng bằng cách sử dụng `product_uuid` và " +"`attributes` được cung cấp." + +#: core/docs/drf/viewsets.py:304 +msgid "list all wishlists (simple view)" +msgstr "Danh sách tất cả các thuộc tính (chế độ xem đơn giản)" + +#: core/docs/drf/viewsets.py:305 +msgid "for non-staff users, only their own wishlists are returned." +msgstr "" +"Đối với người dùng không phải nhân viên, chỉ danh sách mong muốn của chính " +"họ được hiển thị." + +#: core/docs/drf/viewsets.py:309 +msgid "retrieve a single wishlist (detailed view)" +msgstr "Lấy một thuộc tính duy nhất (chế độ xem chi tiết)" + +#: core/docs/drf/viewsets.py:313 +msgid "create an wishlist" +msgstr "Tạo một thuộc tính" + +#: core/docs/drf/viewsets.py:314 +msgid "Doesn't work for non-staff users." +msgstr "Không áp dụng cho người dùng không phải nhân viên." + +#: core/docs/drf/viewsets.py:318 +msgid "delete an wishlist" +msgstr "Xóa một thuộc tính" + +#: core/docs/drf/viewsets.py:322 +msgid "rewrite an existing wishlist saving non-editables" +msgstr "" +"Viết lại một thuộc tính hiện có để lưu trữ các trường không thể chỉnh sửa." + +#: core/docs/drf/viewsets.py:326 +msgid "rewrite some fields of an existing wishlist saving non-editables" +msgstr "" +"Cập nhật một số trường của một thuộc tính hiện có, giữ nguyên các trường " +"không thể chỉnh sửa." + +#: core/docs/drf/viewsets.py:330 +msgid "add product to wishlist" +msgstr "Thêm sản phẩm vào đơn hàng" + +#: core/docs/drf/viewsets.py:331 +msgid "adds a product to an wishlist using the provided `product_uuid`" +msgstr "" +"Thêm sản phẩm vào danh sách mong muốn bằng cách sử dụng `product_uuid` được " +"cung cấp." + +#: core/docs/drf/viewsets.py:336 +msgid "remove product from wishlist" +msgstr "Xóa sản phẩm khỏi danh sách mong muốn" + +#: core/docs/drf/viewsets.py:337 +msgid "removes a product from an wishlist using the provided `product_uuid`" +msgstr "" +"Xóa một sản phẩm khỏi danh sách mong muốn bằng cách sử dụng `product_uuid` " +"được cung cấp." + +#: core/docs/drf/viewsets.py:342 +msgid "add many products to wishlist" +msgstr "Thêm nhiều sản phẩm vào danh sách mong muốn" + +#: core/docs/drf/viewsets.py:343 +msgid "adds many products to an wishlist using the provided `product_uuids`" +msgstr "" +"Thêm nhiều sản phẩm vào danh sách mong muốn bằng cách sử dụng các " +"`product_uuids` được cung cấp." + +#: core/docs/drf/viewsets.py:348 +msgid "remove many products from wishlist" +msgstr "Xóa sản phẩm khỏi đơn hàng" + +#: core/docs/drf/viewsets.py:349 +msgid "" +"removes many products from an wishlist using the provided `product_uuids`" +msgstr "" +"Xóa nhiều sản phẩm khỏi danh sách mong muốn bằng cách sử dụng các " +"`product_uuids` được cung cấp." + +#: core/docs/drf/viewsets.py:356 +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" +"• **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" +"`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`" + +#: core/docs/drf/viewsets.py:372 core/docs/drf/viewsets.py:373 +msgid "list all products (simple view)" +msgstr "Danh sách tất cả sản phẩm (chế độ xem đơn giản)" + +#: core/docs/drf/viewsets.py:378 +msgid "(exact) Product UUID" +msgstr "(chính xác) Mã định danh duy nhất của sản phẩm (UUID)" + +#: core/docs/drf/viewsets.py:384 +msgid "(icontains) Product name" +msgstr "(icontains) Tên sản phẩm" + +#: core/docs/drf/viewsets.py:390 +msgid "(list) Category names, case-insensitive" +msgstr "(danh sách) Tên danh mục, không phân biệt chữ hoa chữ thường" + +#: core/docs/drf/viewsets.py:396 +msgid "(exact) Category UUID" +msgstr "(chính xác) Mã định danh duy nhất (UUID) của danh mục" + +#: core/docs/drf/viewsets.py:402 +msgid "(list) Tag names, case-insensitive" +msgstr "(danh sách) Tên thẻ, không phân biệt chữ hoa chữ thường" + +#: core/docs/drf/viewsets.py:408 +msgid "(gte) Minimum stock price" +msgstr "(gte) Giá cổ phiếu tối thiểu" + +#: core/docs/drf/viewsets.py:414 +msgid "(lte) Maximum stock price" +msgstr "(lte) Giá cổ phiếu tối đa" + +#: core/docs/drf/viewsets.py:420 +msgid "(exact) Only active products" +msgstr "(chính xác) Chỉ các sản phẩm đang hoạt động" + +#: core/docs/drf/viewsets.py:426 +msgid "(iexact) Brand name" +msgstr "(iexact) Tên thương hiệu" + +#: core/docs/drf/viewsets.py:438 +msgid "(gt) Minimum stock quantity" +msgstr "(gt) Số lượng hàng tồn kho tối thiểu" + +#: core/docs/drf/viewsets.py:444 +msgid "(exact) Digital vs. physical" +msgstr "(chính xác) Số hóa so với vật lý" + +#: core/docs/drf/viewsets.py:451 +msgid "" +"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" + +#: core/docs/drf/viewsets.py:465 core/docs/drf/viewsets.py:466 +msgid "retrieve a single product (detailed view)" +msgstr "Lấy thông tin chi tiết của một sản phẩm (xem chi tiết)" + +#: core/docs/drf/viewsets.py:471 core/docs/drf/viewsets.py:495 +#: core/docs/drf/viewsets.py:511 core/docs/drf/viewsets.py:527 +#: core/docs/drf/viewsets.py:543 core/docs/drf/viewsets.py:559 +msgid "Product UUID or slug" +msgstr "Mã định danh duy nhất (UUID) hoặc Slug của sản phẩm" + +#: core/docs/drf/viewsets.py:481 core/docs/drf/viewsets.py:482 +msgid "create a product" +msgstr "Tạo sản phẩm" + +#: core/docs/drf/viewsets.py:489 core/docs/drf/viewsets.py:490 +msgid "rewrite an existing product, preserving non-editable fields" +msgstr "" +"Viết lại một sản phẩm hiện có, giữ nguyên các trường không thể chỉnh sửa." + +#: core/docs/drf/viewsets.py:505 core/docs/drf/viewsets.py:506 +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." + +#: core/docs/drf/viewsets.py:521 core/docs/drf/viewsets.py:522 +msgid "delete a product" +msgstr "Xóa sản phẩm" + +#: core/docs/drf/viewsets.py:537 core/docs/drf/viewsets.py:538 +msgid "lists all permitted feedbacks for a product" +msgstr "Danh sách tất cả các phản hồi được phép cho một sản phẩm" + +#: core/docs/drf/viewsets.py:554 +msgid "returns a snapshot of the product's SEO meta data" +msgstr "Trả về bản sao lưu dữ liệu meta SEO của sản phẩm." + +#: core/docs/drf/viewsets.py:572 +msgid "list all addresses" +msgstr "Danh sách tất cả các địa chỉ" + +#: core/docs/drf/viewsets.py:579 +msgid "retrieve a single address" +msgstr "Lấy một địa chỉ duy nhất" + +#: core/docs/drf/viewsets.py:586 +msgid "create a new address" +msgstr "Tạo một địa chỉ mới" + +#: core/docs/drf/viewsets.py:594 +msgid "delete an address" +msgstr "Xóa địa chỉ" + +#: core/docs/drf/viewsets.py:601 +msgid "update an entire address" +msgstr "Cập nhật toàn bộ địa chỉ" + +#: core/docs/drf/viewsets.py:609 +msgid "partially update an address" +msgstr "Cập nhật một phần địa chỉ" + +#: core/docs/drf/viewsets.py:617 +msgid "autocomplete address suggestions" +msgstr "Tự động hoàn thành địa chỉ nhập liệu" + +#: core/docs/drf/viewsets.py:622 +msgid "raw data query string, please append with data from geo-IP endpoint" +msgstr "" +"Dãy truy vấn dữ liệu thô, vui lòng bổ sung dữ liệu từ điểm cuối geo-IP." + +#: core/docs/drf/viewsets.py:628 +msgid "limit the results amount, 1 < limit < 10, default: 5" +msgstr "Giới hạn số lượng kết quả, 1 < giới hạn < 10, mặc định: 5" + +#: core/docs/drf/viewsets.py:641 +msgid "list all feedbacks (simple view)" +msgstr "Danh sách tất cả phản hồi (chế độ xem đơn giản)" + +#: core/docs/drf/viewsets.py:645 +msgid "retrieve a single feedback (detailed view)" +msgstr "Lấy một phản hồi duy nhất (chế độ xem chi tiết)" + +#: core/docs/drf/viewsets.py:649 +msgid "create a feedback" +msgstr "Tạo phản hồi" + +#: core/docs/drf/viewsets.py:653 +msgid "delete a feedback" +msgstr "Xóa phản hồi" + +#: core/docs/drf/viewsets.py:657 +msgid "rewrite an existing feedback saving non-editables" +msgstr "Viết lại phản hồi hiện có để lưu các trường không thể chỉnh sửa." + +#: core/docs/drf/viewsets.py:661 +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." + +#: core/docs/drf/viewsets.py:668 +msgid "list all order–product relations (simple view)" +msgstr "" +"Danh sách tất cả các mối quan hệ giữa đơn hàng và sản phẩm (cách xem đơn " +"giản)" + +#: core/docs/drf/viewsets.py:675 +msgid "retrieve a single order–product relation (detailed view)" +msgstr "" +"Lấy thông tin về mối quan hệ giữa đơn hàng và sản phẩm (chế độ xem chi tiết)" + +#: core/docs/drf/viewsets.py:682 +msgid "create a new order–product relation" +msgstr "Tạo mối quan hệ mới giữa đơn hàng và sản phẩm" + +#: core/docs/drf/viewsets.py:689 +msgid "replace an existing order–product relation" +msgstr "Thay thế mối quan hệ giữa đơn hàng và sản phẩm hiện có" + +#: core/docs/drf/viewsets.py:696 +msgid "partially update an existing order–product relation" +msgstr "Cập nhật một phần mối quan hệ giữa đơn hàng và sản phẩm hiện có" + +#: core/docs/drf/viewsets.py:703 +msgid "delete an order–product relation" +msgstr "Xóa mối quan hệ giữa đơn hàng và sản phẩm" + +#: core/docs/drf/viewsets.py:710 +msgid "add or remove feedback on an order–product relation" +msgstr "Thêm hoặc xóa phản hồi về mối quan hệ giữa đơn hàng và sản phẩm" + +#: core/elasticsearch/__init__.py:105 +msgid "no search term provided." +msgstr "Không có từ khóa tìm kiếm được cung cấp." + +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 +msgid "UUID" +msgstr "UUID" + +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 +msgid "Name" +msgstr "Tên" + +#: core/filters.py:66 core/filters.py:562 +msgid "Categories" +msgstr "Các danh mục" + +#: core/filters.py:68 +msgid "Categories Slugs" +msgstr "Thể loại Tiêu đề" + +#: core/filters.py:69 core/filters.py:437 +msgid "Tags" +msgstr "Thẻ" + +#: core/filters.py:70 +msgid "Min Price" +msgstr "Giá tối thiểu" + +#: core/filters.py:71 +msgid "Max Price" +msgstr "Giá tối đa" + +#: core/filters.py:72 +msgid "Is Active" +msgstr "Đang hoạt động" + +#: core/filters.py:73 +msgid "Brand" +msgstr "Thương hiệu" + +#: core/filters.py:74 +msgid "Attributes" +msgstr "Thuộc tính" + +#: core/filters.py:75 +msgid "Quantity" +msgstr "Số lượng" + +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 +msgid "Slug" +msgstr "Sên" + +#: core/filters.py:77 +msgid "Is Digital" +msgstr "Is Digital" + +#: core/filters.py:78 +msgid "Include sub-categories" +msgstr "Bao gồm các danh mục con" + +#: core/filters.py:81 +msgid "Include personal ordered" +msgstr "Gồm các sản phẩm đặt hàng cá nhân" + +#: core/filters.py:83 core/models.py:538 +msgid "SKU" +msgstr "Mã sản phẩm" + +#: core/filters.py:166 +msgid "there must be a category_uuid to use include_subcategories flag" +msgstr "Phải có trường category_uuid để sử dụng cờ include_subcategories." + +#: core/filters.py:356 +msgid "Search (ID, product name or part number)" +msgstr "Tìm kiếm (ID, tên sản phẩm hoặc số hiệu linh kiện)" + +#: core/filters.py:359 +msgid "Bought after (inclusive)" +msgstr "Được mua sau (bao gồm)" + +#: core/filters.py:360 +msgid "Bought before (inclusive)" +msgstr "Đã mua trước đó (bao gồm)" + +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 +msgid "User email" +msgstr "Địa chỉ email của người dùng" + +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 +msgid "User UUID" +msgstr "UUID người dùng" + +#: core/filters.py:365 +msgid "Status" +msgstr "Trạng thái" + +#: core/filters.py:369 +msgid "Human Readable ID" +msgstr "Mã định danh dễ đọc cho con người" + +#: core/filters.py:430 +msgid "Parent" +msgstr "Cha mẹ" + +#: core/filters.py:434 +msgid "Whole category(has at least 1 product or not)" +msgstr "Toàn bộ danh mục (có ít nhất 1 sản phẩm hoặc không)" + +#: core/filters.py:438 +msgid "Level" +msgstr "Cấp độ" + +#: core/filters.py:598 +msgid "Product UUID" +msgstr "Mã định danh duy nhất của sản phẩm (UUID)" + +#: core/graphene/mutations.py:39 +msgid "key to look for in or set into the cache" +msgstr "Khóa để tìm kiếm trong hoặc đặt vào bộ nhớ đệm" + +#: core/graphene/mutations.py:40 +msgid "data to store in cache" +msgstr "Dữ liệu cần lưu trữ trong bộ nhớ cache" + +#: core/graphene/mutations.py:43 +msgid "timeout in seconds to set the data for into the cache" +msgstr "Thời gian chờ (timeout) tính bằng giây để lưu dữ liệu vào bộ nhớ đệm." + +#: core/graphene/mutations.py:46 +msgid "cached data" +msgstr "Dữ liệu được lưu trữ trong bộ nhớ đệm" + +#: core/graphene/mutations.py:60 +msgid "camelized JSON data from the requested URL" +msgstr "" +"Dữ liệu JSON đã được chuyển đổi sang định dạng JSON từ URL được yêu cầu." + +#: core/graphene/mutations.py:65 core/views.py:360 +msgid "only URLs starting with http(s):// are allowed" +msgstr "Chỉ các URL bắt đầu bằng http(s):// mới được phép." + +#: core/graphene/mutations.py:80 +msgid "add a product to the order" +msgstr "Thêm sản phẩm vào đơn hàng" + +#: core/graphene/mutations.py:101 core/graphene/mutations.py:127 +#: core/graphene/mutations.py:232 core/graphene/mutations.py:279 +#, python-brace-format +msgid "order {order_uuid} not found" +msgstr "Lệnh {order_uuid} không tìm thấy!" + +#: core/graphene/mutations.py:106 core/graphene/mutations.py:153 +msgid "remove a product from the order" +msgstr "Xóa sản phẩm khỏi đơn hàng" + +#: core/graphene/mutations.py:132 +msgid "remove all products from the order" +msgstr "Xóa tất cả sản phẩm khỏi đơn hàng." + +#: core/graphene/mutations.py:175 +msgid "buy an order" +msgstr "Đặt hàng" + +#: core/graphene/mutations.py:204 core/graphene/mutations.py:257 +msgid "please provide either order_uuid or order_hr_id - mutually exclusive" +msgstr "" +"Vui lòng cung cấp một trong hai trường order_uuid hoặc order_hr_id - hai " +"trường này là tương hỗ!" + +#: core/graphene/mutations.py:229 core/graphene/mutations.py:486 +#: core/graphene/mutations.py:527 core/viewsets.py:821 +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}" + +#: core/graphene/mutations.py:237 +msgid "perform an action on a list of products in the order" +msgstr "Thực hiện một hành động trên danh sách sản phẩm theo thứ tự." + +#: core/graphene/mutations.py:242 +msgid "remove/add" +msgstr "Xóa/Thêm" + +#: core/graphene/mutations.py:274 core/graphene/mutations.py:314 +msgid "action must be either add or remove" +msgstr "Hành động phải là \"thêm\" hoặc \"xóa\"!" + +#: core/graphene/mutations.py:284 +msgid "perform an action on a list of products in the wishlist" +msgstr "" +"Thực hiện một hành động trên danh sách sản phẩm trong danh sách mong muốn." + +#: core/graphene/mutations.py:302 +msgid "please provide wishlist_uuid value" +msgstr "Vui lòng cung cấp giá trị `wishlist_uuid`." + +#: core/graphene/mutations.py:319 core/graphene/mutations.py:392 +#: core/graphene/mutations.py:419 core/graphene/mutations.py:446 +#: core/graphene/mutations.py:489 +#, python-brace-format +msgid "wishlist {wishlist_uuid} not found" +msgstr "Danh sách mong muốn {wishlist_uuid} không tìm thấy!" + +#: core/graphene/mutations.py:370 +msgid "add a product to the wishlist" +msgstr "Thêm sản phẩm vào đơn hàng" + +#: core/graphene/mutations.py:397 +msgid "remove a product from the wishlist" +msgstr "Xóa sản phẩm khỏi đơn hàng" + +#: core/graphene/mutations.py:424 +msgid "remove all products from the wishlist" +msgstr "Xóa sản phẩm khỏi đơn hàng" + +#: core/graphene/mutations.py:451 +msgid "buy all products from the wishlist" +msgstr "Xóa sản phẩm khỏi đơn hàng" + +#: core/graphene/mutations.py:494 +msgid "buy a product" +msgstr "Đặt hàng" + +#: core/graphene/mutations.py:500 +msgid "" +"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" + +#: core/graphene/mutations.py:532 +msgid "add or delete a feedback for orderproduct" +msgstr "Thêm hoặc xóa phản hồi cho sản phẩm đặt hàng" + +#: core/graphene/mutations.py:555 +msgid "action must be either `add` or `remove`" +msgstr "Hành động phải là `thêm` hoặc `xóa`!" + +#: core/graphene/mutations.py:558 +#, python-brace-format +msgid "order product {order_product_uuid} not found" +msgstr "Sản phẩm {order_product_uuid} không tìm thấy!" + +#: core/graphene/mutations.py:621 +msgid "original address string provided by the user" +msgstr "Dòng địa chỉ gốc do người dùng cung cấp" + +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 +#: core/viewsets.py:824 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} không tồn tại: {uuid}!" + +#: core/graphene/mutations.py:668 +msgid "limit must be between 1 and 10" +msgstr "Giới hạn phải nằm trong khoảng từ 1 đến 10." + +#: core/graphene/mutations.py:713 +msgid "elasticsearch - works like a charm" +msgstr "ElasticSearch - hoạt động rất tốt." + +#: core/graphene/object_types.py:82 core/graphene/object_types.py:397 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 +msgid "attributes" +msgstr "Thuộc tính" + +#: core/graphene/object_types.py:95 +msgid "grouped attributes" +msgstr "Các thuộc tính được nhóm lại" + +#: core/graphene/object_types.py:102 +msgid "groups of attributes" +msgstr "Nhóm thuộc tính" + +#: core/graphene/object_types.py:116 core/graphene/object_types.py:193 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 +msgid "categories" +msgstr "Các danh mục" + +#: core/graphene/object_types.py:124 core/models.py:395 +msgid "brands" +msgstr "Thương hiệu" + +#: core/graphene/object_types.py:195 +msgid "category image url" +msgstr "Các danh mục" + +#: core/graphene/object_types.py:196 core/graphene/object_types.py:344 +#: core/models.py:249 +msgid "markup percentage" +msgstr "Tỷ lệ phần trăm đánh dấu" + +#: core/graphene/object_types.py:199 +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." + +#: core/graphene/object_types.py:203 +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." + +#: core/graphene/object_types.py:205 +msgid "tags for this category" +msgstr "Thẻ cho danh mục này" + +#: core/graphene/object_types.py:206 +msgid "products in this category" +msgstr "Sản phẩm trong danh mục này" + +#: core/graphene/object_types.py:351 core/models.py:155 +msgid "vendors" +msgstr "Nhà cung cấp" + +#: core/graphene/object_types.py:355 +msgid "Latitude (Y coordinate)" +msgstr "Vĩ độ (tọa độ Y)" + +#: core/graphene/object_types.py:356 +msgid "Longitude (X coordinate)" +msgstr "Kinh độ (tọa độ X)" + +#: core/graphene/object_types.py:385 +msgid "comment" +msgstr "Làm thế nào" + +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 +msgid "rating value from 1 to 10, inclusive, or 0 if not set." +msgstr "" +"Giá trị đánh giá từ 1 đến 10, bao gồm cả 1 và 10, hoặc 0 nếu không được " +"thiết lập." + +#: core/graphene/object_types.py:393 +msgid "represents feedback from a user." +msgstr "Đại diện cho phản hồi từ người dùng." + +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 +msgid "notifications" +msgstr "Thông báo" + +#: core/graphene/object_types.py:399 +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ó)." + +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "Phản hồi" + +#: core/graphene/object_types.py:434 +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" + +#: core/graphene/object_types.py:436 core/models.py:1198 +msgid "billing address" +msgstr "Địa chỉ thanh toán" + +#: core/graphene/object_types.py:439 +msgid "" +"shipping address for this order, leave blank if same as billing address or " +"if not applicable" +msgstr "" +"Địa chỉ giao hàng cho đơn hàng này, để trống nếu trùng với địa chỉ thanh " +"toán hoặc nếu không áp dụng." + +#: core/graphene/object_types.py:441 +msgid "total price of this order" +msgstr "Tổng giá trị của đơn hàng này" + +#: core/graphene/object_types.py:442 +msgid "total quantity of products in order" +msgstr "Tổng số lượng sản phẩm trong đơn hàng" + +#: core/graphene/object_types.py:443 +msgid "are all products in the order digital" +msgstr "" +"Tất cả các sản phẩm trong đơn hàng có phải là sản phẩm kỹ thuật số không?" + +#: core/graphene/object_types.py:446 +msgid "transactions for this order" +msgstr "Giao dịch cho đơn hàng này" + +#: core/graphene/object_types.py:465 core/models.py:1262 +msgid "orders" +msgstr "Đơn hàng" + +#: core/graphene/object_types.py:486 +msgid "image url" +msgstr "URL hình ảnh" + +#: core/graphene/object_types.py:493 +msgid "product's images" +msgstr "Hình ảnh sản phẩm" + +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 +msgid "category" +msgstr "Thể loại" + +#: core/graphene/object_types.py:502 core/models.py:1939 +msgid "feedbacks" +msgstr "Phản hồi" + +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 +msgid "brand" +msgstr "Thương hiệu" + +#: core/graphene/object_types.py:504 core/models.py:101 +msgid "attribute groups" +msgstr "Nhóm thuộc tính" + +#: core/graphene/object_types.py:505 +#: core/templates/digital_order_created_email.html:111 +#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/shipped_order_created_email.html:109 +#: core/templates/shipped_order_delivered_email.html:109 +msgid "price" +msgstr "Giá" + +#: core/graphene/object_types.py:506 +#: core/templates/digital_order_created_email.html:110 +#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/shipped_order_created_email.html:108 +#: core/templates/shipped_order_delivered_email.html:108 +msgid "quantity" +msgstr "Số lượng" + +#: core/graphene/object_types.py:507 +msgid "number of feedbacks" +msgstr "Số lượng phản hồi" + +#: core/graphene/object_types.py:508 +msgid "only available for personal orders" +msgstr "Sản phẩm chỉ dành cho đơn đặt hàng cá nhân." + +#: core/graphene/object_types.py:534 core/models.py:548 +msgid "products" +msgstr "Sản phẩm" + +#: core/graphene/object_types.py:634 +msgid "promocodes" +msgstr "Mã khuyến mãi" + +#: core/graphene/object_types.py:644 +msgid "products on sale" +msgstr "Sản phẩm đang khuyến mãi" + +#: core/graphene/object_types.py:651 core/models.py:843 +msgid "promotions" +msgstr "Khuyến mãi" + +#: core/graphene/object_types.py:655 core/models.py:154 +msgid "vendor" +msgstr "Nhà cung cấp" + +#: core/graphene/object_types.py:656 core/models.py:547 +#: core/templates/digital_order_created_email.html:109 +#: core/templates/digital_order_delivered_email.html:107 +#: core/templates/shipped_order_created_email.html:107 +#: core/templates/shipped_order_delivered_email.html:107 +msgid "product" +msgstr "Sản phẩm" + +#: core/graphene/object_types.py:667 core/models.py:868 +msgid "wishlisted products" +msgstr "Sản phẩm đã thêm vào danh sách mong muốn" + +#: core/graphene/object_types.py:673 core/models.py:885 +msgid "wishlists" +msgstr "Danh sách mong muốn" + +#: core/graphene/object_types.py:677 +msgid "tagged products" +msgstr "Sản phẩm được gắn thẻ" + +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 +msgid "product tags" +msgstr "Thẻ sản phẩm" + +#: core/graphene/object_types.py:688 +msgid "tagged categories" +msgstr "Các danh mục được gắn thẻ" + +#: core/graphene/object_types.py:695 +msgid "categories tags" +msgstr "Thẻ của các danh mục" + +#: core/graphene/object_types.py:699 +msgid "project name" +msgstr "Tên dự án" + +#: core/graphene/object_types.py:700 +msgid "company email" +msgstr "Email công ty" + +#: core/graphene/object_types.py:701 +msgid "company name" +msgstr "Tên công ty" + +#: core/graphene/object_types.py:702 +msgid "company address" +msgstr "Địa chỉ công ty" + +#: core/graphene/object_types.py:703 +msgid "company phone number" +msgstr "Số điện thoại của công ty" + +#: core/graphene/object_types.py:704 +msgid "email from, sometimes it must be used instead of host user value" +msgstr "" +"'email from', đôi khi phải sử dụng thay cho giá trị người dùng máy chủ." + +#: core/graphene/object_types.py:705 +msgid "email host user" +msgstr "Người dùng máy chủ email" + +#: core/graphene/object_types.py:706 +msgid "maximum amount for payment" +msgstr "Số tiền tối đa cho thanh toán" + +#: core/graphene/object_types.py:707 +msgid "minimum amount for payment" +msgstr "Số tiền tối thiểu để thanh toán" + +#: core/graphene/object_types.py:708 +msgid "analytics data" +msgstr "Dữ liệu phân tích" + +#: core/graphene/object_types.py:709 +msgid "advertisement data" +msgstr "Dữ liệu quảng cáo" + +#: core/graphene/object_types.py:712 +msgid "company configuration" +msgstr "Cấu hình" + +#: core/graphene/object_types.py:716 +msgid "language code" +msgstr "Mã ngôn ngữ" + +#: core/graphene/object_types.py:717 +msgid "language name" +msgstr "Tên ngôn ngữ" + +#: core/graphene/object_types.py:718 +msgid "language flag, if exists :)" +msgstr "Cờ ngôn ngữ, nếu có :)" + +#: core/graphene/object_types.py:721 +msgid "supported languages" +msgstr "Xem danh sách các ngôn ngữ được hỗ trợ" + +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 +msgid "products search results" +msgstr "Kết quả tìm kiếm sản phẩm" + +#: core/graphene/object_types.py:755 +msgid "posts search results" +msgstr "Kết quả tìm kiếm sản phẩm" + +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +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." + +#: core/models.py:86 +msgid "parent of this group" +msgstr "Cha mẹ của nhóm này" + +#: core/models.py:87 +msgid "parent attribute group" +msgstr "Nhóm thuộc tính cha" + +#: core/models.py:91 core/models.py:92 +msgid "attribute group's name" +msgstr "Tên nhóm thuộc tính" + +#: core/models.py:100 core/models.py:628 +msgid "attribute group" +msgstr "Nhóm thuộc tính" + +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"Đại diện cho một thực thể nhà cung cấp có khả năng lưu trữ thông tin về các " +"nhà cung cấp bên ngoài và các yêu cầu tương tác của họ. Lớp Vendor được sử " +"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 " +"nhà cung cấp bên thứ ba." + +#: core/models.py:119 +msgid "stores credentials and endpoints required for vendor communication" +msgstr "" +"Lưu trữ thông tin đăng nhập và các điểm cuối cần thiết cho việc giao tiếp " +"API của nhà cung cấp." + +#: core/models.py:120 +msgid "authentication info" +msgstr "Thông tin xác thực" + +#: core/models.py:125 +msgid "define the markup for products retrieved from this vendor" +msgstr "" +"Xác định định dạng đánh dấu cho các sản phẩm được lấy từ nhà cung cấp này." + +#: core/models.py:126 +msgid "vendor markup percentage" +msgstr "Tỷ lệ chiết khấu của nhà cung cấp" + +#: core/models.py:130 +msgid "name of this vendor" +msgstr "Tên của nhà cung cấp này" + +#: core/models.py:131 +msgid "vendor name" +msgstr "Tên nhà cung cấp" + +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"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ị." + +#: core/models.py:175 core/models.py:206 +msgid "internal tag identifier for the product tag" +msgstr "Mã định danh thẻ nội bộ cho thẻ sản phẩm" + +#: core/models.py:176 core/models.py:207 +msgid "tag name" +msgstr "Tên ngày" + +#: core/models.py:180 core/models.py:211 +msgid "user-friendly name for the product tag" +msgstr "Tên thân thiện với người dùng cho thẻ sản phẩm" + +#: core/models.py:181 core/models.py:212 +msgid "tag display name" +msgstr "Hiển thị tên thẻ" + +#: core/models.py:189 +msgid "product tag" +msgstr "Thẻ sản phẩm" + +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 " +"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." + +#: core/models.py:220 +msgid "category tag" +msgstr "Thẻ danh mục" + +#: core/models.py:221 core/models.py:293 +msgid "category tags" +msgstr "Thẻ danh mục" + +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"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 " +"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, cũng như gán các thuộc tính như hình ảnh, thẻ hoặc ưu tiên." + +#: core/models.py:240 +msgid "upload an image representing this category" +msgstr "Tải lên một hình ảnh đại diện cho danh mục này." + +#: core/models.py:243 +msgid "category image" +msgstr "Hình ảnh danh mục" + +#: core/models.py:248 +msgid "define a markup percentage for products in this category" +msgstr "" +"Xác định tỷ lệ phần trăm chiết khấu cho các sản phẩm trong danh mục này." + +#: core/models.py:257 +msgid "parent of this category to form a hierarchical structure" +msgstr "Cha của danh mục này để tạo cấu trúc phân cấp." + +#: core/models.py:258 +msgid "parent category" +msgstr "Danh mục cha" + +#: core/models.py:263 +msgid "category name" +msgstr "Tên danh mục" + +#: core/models.py:264 +msgid "provide a name for this category" +msgstr "Đặt tên cho danh mục này." + +#: core/models.py:271 +msgid "add a detailed description for this category" +msgstr "Thêm mô tả chi tiết cho danh mục này." + +#: core/models.py:272 +msgid "category description" +msgstr "Mô tả danh mục" + +#: core/models.py:292 +msgid "tags that help describe or group this category" +msgstr "Thẻ giúp mô tả hoặc phân loại danh mục này" + +#: core/models.py:299 core/models.py:387 +msgid "priority" +msgstr "Ưu tiên" + +#: core/models.py:340 +msgid "name of this brand" +msgstr "Tên của thương hiệu này" + +#: core/models.py:341 +msgid "brand name" +msgstr "Tên thương hiệu" + +#: core/models.py:348 +msgid "upload a logo representing this brand" +msgstr "Tải lên logo đại diện cho thương hiệu này." + +#: core/models.py:350 +msgid "brand small image" +msgstr "Hình ảnh nhỏ của thương hiệu" + +#: core/models.py:356 +msgid "upload a big logo representing this brand" +msgstr "Tải lên một logo lớn đại diện cho thương hiệu này." + +#: core/models.py:358 +msgid "brand big image" +msgstr "Hình ảnh thương hiệu lớn" + +#: core/models.py:363 +msgid "add a detailed description of the brand" +msgstr "Thêm mô tả chi tiết về thương hiệu" + +#: core/models.py:364 +msgid "brand description" +msgstr "Mô tả thương hiệu" + +#: core/models.py:369 +msgid "optional categories that this brand is associated with" +msgstr "Các danh mục tùy chọn mà thương hiệu này liên kết với" + +#: core/models.py:370 +msgid "associated categories" +msgstr "Các danh mục" + +#: core/models.py:400 +msgid "" +"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 "" +"Đại diện cho lượng hàng tồn kho của một sản phẩm được quản lý trong hệ " +"thống. Lớp này cung cấp chi tiết về mối quan hệ giữa nhà cung cấp, sản phẩm " +"và thông tin tồn kho của chúng, cũng như các thuộc tính liên quan đến hàng " +"tồn kho như giá, giá mua, số lượng, SKU và tài sản kỹ thuật số. Nó là một " +"phần của hệ thống quản lý hàng tồn kho để cho phép theo dõi và đánh giá các " +"sản phẩm có sẵn từ các nhà cung cấp khác nhau." + +#: core/models.py:412 +msgid "the vendor supplying this product stock" +msgstr "Nhà cung cấp cung cấp hàng tồn kho cho sản phẩm này." + +#: core/models.py:413 +msgid "associated vendor" +msgstr "Nhà cung cấp liên kết" + +#: core/models.py:417 +msgid "final price to the customer after markups" +msgstr "Giá cuối cùng cho khách hàng sau khi cộng thêm chi phí." + +#: core/models.py:418 +msgid "selling price" +msgstr "Giá bán" + +#: core/models.py:423 +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" + +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 +msgid "associated product" +msgstr "Sản phẩm liên quan" + +#: core/models.py:431 +msgid "the price paid to the vendor for this product" +msgstr "Giá thanh toán cho nhà cung cấp cho sản phẩm này" + +#: core/models.py:432 +msgid "vendor purchase price" +msgstr "Giá mua của nhà cung cấp" + +#: core/models.py:436 +msgid "available quantity of the product in stock" +msgstr "Số lượng sản phẩm hiện có trong kho" + +#: core/models.py:437 +msgid "quantity in stock" +msgstr "Số lượng hàng tồn kho" + +#: core/models.py:441 +msgid "vendor-assigned SKU for identifying the product" +msgstr "Mã SKU do nhà cung cấp gán để nhận dạng sản phẩm" + +#: core/models.py:442 +msgid "vendor sku" +msgstr "Mã SKU của nhà cung cấp" + +#: core/models.py:448 +msgid "digital file associated with this stock if applicable" +msgstr "Tệp tin kỹ thuật số liên quan đến cổ phiếu này (nếu có)" + +#: core/models.py:449 +msgid "digital file" +msgstr "Tệp tin kỹ thuật số" + +#: core/models.py:458 +msgid "stock entries" +msgstr "Nhập kho" + +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"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 " +"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." + +#: core/models.py:476 +msgid "category this product belongs to" +msgstr "Danh mục mà sản phẩm này thuộc về" + +#: core/models.py:485 +msgid "optionally associate this product with a brand" +msgstr "Tùy chọn: Kết hợp sản phẩm này với một thương hiệu" + +#: core/models.py:491 +msgid "tags that help describe or group this product" +msgstr "Thẻ giúp mô tả hoặc phân loại sản phẩm này" + +#: core/models.py:496 +msgid "indicates whether this product is digitally delivered" +msgstr "" +"Cho biết sản phẩm này có được phân phối dưới dạng kỹ thuật số hay không." + +#: core/models.py:497 +msgid "is product digital" +msgstr "Sản phẩm có phải là sản phẩm số không?" + +#: core/models.py:503 +msgid "provide a clear identifying name for the product" +msgstr "Cung cấp một tên gọi rõ ràng để nhận diện sản phẩm." + +#: core/models.py:504 +msgid "product name" +msgstr "Tên sản phẩm" + +#: core/models.py:509 core/models.py:831 +msgid "add a detailed description of the product" +msgstr "Thêm mô tả chi tiết về sản phẩm" + +#: core/models.py:510 +msgid "product description" +msgstr "Mô tả sản phẩm" + +#: core/models.py:517 +msgid "part number for this product" +msgstr "Số hiệu sản phẩm cho sản phẩm này" + +#: core/models.py:518 +msgid "part number" +msgstr "Số hiệu linh kiện" + +#: core/models.py:537 +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" + +#: core/models.py:607 +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 " +"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, " +"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." + +#: core/models.py:619 +msgid "category of this attribute" +msgstr "Loại của thuộc tính này" + +#: core/models.py:627 +msgid "group of this attribute" +msgstr "Nhóm có thuộc tính này" + +#: core/models.py:633 +msgid "string" +msgstr "Dây" + +#: core/models.py:634 +msgid "integer" +msgstr "Chính trực" + +#: core/models.py:635 +msgid "float" +msgstr "Nổi" + +#: core/models.py:636 +msgid "boolean" +msgstr "Boolean" + +#: core/models.py:637 +msgid "array" +msgstr "Mảng" + +#: core/models.py:638 +msgid "object" +msgstr "Đối tượng" + +#: core/models.py:640 +msgid "type of the attribute's value" +msgstr "Loại giá trị của thuộc tính" + +#: core/models.py:641 +msgid "value type" +msgstr "Kiểu giá trị" + +#: core/models.py:646 +msgid "name of this attribute" +msgstr "Tên của thuộc tính này" + +#: core/models.py:647 +msgid "attribute's name" +msgstr "Tên thuộc tính" + +#: core/models.py:653 +msgid "is filterable" +msgstr "có thể lọc được" + +#: core/models.py:654 +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." + +#: core/models.py:665 core/models.py:700 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Thuộc tính" + +#: core/models.py:699 +msgid "attribute of this value" +msgstr "Thuộc tính của giá trị này" + +#: core/models.py:707 +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" + +#: core/models.py:713 +msgid "the specific value for this attribute" +msgstr "Giá trị cụ thể cho thuộc tính này" + +#: core/models.py:747 +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." + +#: core/models.py:748 +msgid "image alt text" +msgstr "Nội dung thay thế cho hình ảnh" + +#: core/models.py:751 +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." + +#: core/models.py:752 core/models.py:777 +msgid "product image" +msgstr "Hình ảnh sản phẩm" + +#: core/models.py:758 +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." + +#: core/models.py:759 +msgid "display priority" +msgstr "Ưu tiên hiển thị" + +#: core/models.py:764 +msgid "the product that this image represents" +msgstr "Sản phẩm mà hình ảnh này đại diện" + +#: core/models.py:778 +msgid "product images" +msgstr "Hình ảnh sản phẩm" + +#: core/models.py:819 +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" + +#: core/models.py:820 +msgid "discount percentage" +msgstr "Tỷ lệ giảm giá" + +#: core/models.py:825 +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." + +#: core/models.py:826 +msgid "promotion name" +msgstr "Tên chương trình khuyến mãi" + +#: core/models.py:832 +msgid "promotion description" +msgstr "Mô tả chương trình khuyến mãi" + +#: core/models.py:837 +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." + +#: core/models.py:838 +msgid "included products" +msgstr "Các sản phẩm được bao gồm" + +#: core/models.py:842 +msgid "promotion" +msgstr "Khuyến mãi" + +#: core/models.py:867 +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" + +#: core/models.py:875 +msgid "user who owns this wishlist" +msgstr "Người dùng sở hữu danh sách mong muốn này" + +#: core/models.py:876 +msgid "wishlist owner" +msgstr "Chủ sở hữu Danh sách mong muốn" + +#: core/models.py:884 +msgid "wishlist" +msgstr "Danh sách mong muốn" + +#: core/models.py:951 +msgid "documentary" +msgstr "Phim tài liệu" + +#: core/models.py:952 +msgid "documentaries" +msgstr "Phim tài liệu" + +#: core/models.py:962 +msgid "unresolved" +msgstr "Chưa được giải quyết" + +#: core/models.py:1008 +msgid "address line for the customer" +msgstr "Địa chỉ của khách hàng" + +#: core/models.py:1009 +msgid "address line" +msgstr "Dòng địa chỉ" + +#: core/models.py:1011 +msgid "street" +msgstr "Phố" + +#: core/models.py:1012 +msgid "district" +msgstr "Quận" + +#: core/models.py:1013 +msgid "city" +msgstr "Thành phố" + +#: core/models.py:1014 +msgid "region" +msgstr "Khu vực" + +#: core/models.py:1015 +msgid "postal code" +msgstr "Mã bưu chính" + +#: core/models.py:1016 +msgid "country" +msgstr "Quốc gia" + +#: core/models.py:1023 +msgid "geolocation point: (longitude, latitude)" +msgstr "Điểm định vị địa lý (Kinh độ, Vĩ độ)" + +#: core/models.py:1026 +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" + +#: core/models.py:1031 +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ý" + +#: core/models.py:1039 +msgid "address" +msgstr "Địa chỉ" + +#: core/models.py:1040 +msgid "addresses" +msgstr "Địa chỉ" + +#: core/models.py:1085 +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á." + +#: core/models.py:1086 +msgid "promo code identifier" +msgstr "Mã khuyến mãi" + +#: core/models.py:1093 +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." + +#: core/models.py:1094 +msgid "fixed discount amount" +msgstr "Số tiền giảm giá cố định" + +#: core/models.py:1100 +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." + +#: core/models.py:1101 +msgid "percentage discount" +msgstr "Giảm giá theo phần trăm" + +#: core/models.py:1106 +msgid "timestamp when the promocode expires" +msgstr "Thời gian hết hạn của mã khuyến mãi" + +#: core/models.py:1107 +msgid "end validity time" +msgstr "Thời hạn hiệu lực kết thúc" + +#: core/models.py:1112 +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" + +#: core/models.py:1113 +msgid "start validity time" +msgstr "Thời gian bắt đầu có hiệu lực" + +#: core/models.py:1118 +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." + +#: core/models.py:1119 +msgid "usage timestamp" +msgstr "Dấu thời gian sử dụng" + +#: core/models.py:1124 +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ó)." + +#: core/models.py:1125 +msgid "assigned user" +msgstr "Người dùng được chỉ định" + +#: core/models.py:1132 +msgid "promo code" +msgstr "Mã khuyến mãi" + +#: core/models.py:1133 +msgid "promo codes" +msgstr "Mã khuyến mãi" + +#: core/models.py:1140 +msgid "" +"only one type of discount should be defined (amount or percent), but not " +"both or neither." +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." + +#: core/models.py:1155 +msgid "promocode already used" +msgstr "Mã khuyến mãi đã được sử dụng." + +#: core/models.py:1171 +#, 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}!" + +#: core/models.py:1180 +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 " +"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 " +"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." + +#: core/models.py:1197 +msgid "the billing address used for this order" +msgstr "Địa chỉ thanh toán được sử dụng cho đơn hàng này" + +#: core/models.py:1205 +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." + +#: core/models.py:1206 +msgid "applied promo code" +msgstr "Đã áp dụng mã khuyến mãi" + +#: core/models.py:1214 +msgid "the shipping address used for this order" +msgstr "Địa chỉ giao hàng được sử dụng cho đơn hàng này" + +#: core/models.py:1215 +msgid "shipping address" +msgstr "Địa chỉ giao hàng" + +#: core/models.py:1221 +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ó" + +#: core/models.py:1222 +msgid "order status" +msgstr "Tình trạng đơn hàng" + +#: core/models.py:1227 core/models.py:1686 +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." + +#: core/models.py:1233 +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" + +#: core/models.py:1239 +msgid "the user who placed the order" +msgstr "Người dùng đã đặt đơn hàng" + +#: core/models.py:1240 +msgid "user" +msgstr "Người dùng" + +#: core/models.py:1246 +msgid "the timestamp when the order was finalized" +msgstr "Thời gian ghi nhận khi đơn hàng được hoàn tất" + +#: core/models.py:1247 +msgid "buy time" +msgstr "Mua thời gian" + +#: core/models.py:1254 +msgid "a human-readable identifier for the order" +msgstr "Một định danh dễ đọc cho đơn hàng" + +#: core/models.py:1255 +msgid "human readable id" +msgstr "ID dễ đọc cho con người" + +#: core/models.py:1261 +msgid "order" +msgstr "Đặt hàng" + +#: core/models.py:1282 +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!" + +#: core/models.py:1316 +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ý." + +#: core/models.py:1321 +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." + +#: core/models.py:1338 +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." + +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 +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ý." + +#: core/models.py:1381 +#, 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}>!" + +#: core/models.py:1413 +msgid "promocode does not exist" +msgstr "Mã khuyến mãi không tồn tại" + +#: core/models.py:1419 +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!" + +#: core/models.py:1438 +msgid "address does not exist" +msgstr "Địa chỉ không tồn tại" + +#: core/models.py:1459 core/models.py:1528 +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." + +#: core/models.py:1462 core/models.py:1524 +msgid "invalid force value" +msgstr "Giá trị lực không hợp lệ" + +#: core/models.py:1468 core/models.py:1531 +msgid "you cannot purchase an empty order!" +msgstr "Bạn không thể đặt hàng trống!" + +#: core/models.py:1487 +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!" + +#: core/models.py:1501 +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ư!" + +#: core/models.py:1506 +msgid "insufficient funds to complete the order" +msgstr "Không đủ số tiền để hoàn tất đơn hàng." + +#: core/models.py:1540 +msgid "" +"you cannot buy without registration, please provide the following " +"information: customer name, customer email, customer phone number" +msgstr "" +"Bạn không thể mua hàng mà không đăng ký. Vui lòng cung cấp các thông tin " +"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." + +#: core/models.py:1549 +#, python-brace-format +msgid "" +"invalid payment method: {payment_method} from {available_payment_methods}" +msgstr "" +"Phương thức thanh toán không hợp lệ: {payment_method} từ " +"{available_payment_methods}!" + +#: core/models.py:1674 +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." + +#: core/models.py:1675 +msgid "purchase price at order time" +msgstr "Giá mua tại thời điểm đặt hàng" + +#: core/models.py:1680 +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" + +#: core/models.py:1681 +msgid "internal comments" +msgstr "Nhận xét nội bộ" + +#: core/models.py:1687 +msgid "user notifications" +msgstr "Thông báo cho người dùng" + +#: core/models.py:1692 +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" + +#: core/models.py:1693 +msgid "ordered product attributes" +msgstr "Thuộc tính sản phẩm đã đặt hàng" + +#: core/models.py:1698 +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." + +#: core/models.py:1699 +msgid "parent order" +msgstr "Đơn đặt hàng của phụ huynh" + +#: core/models.py:1708 +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" + +#: core/models.py:1715 +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" + +#: core/models.py:1716 +msgid "product quantity" +msgstr "Số lượng sản phẩm" + +#: core/models.py:1723 +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" + +#: core/models.py:1724 +msgid "product line status" +msgstr "Tình trạng dòng sản phẩm" + +#: core/models.py:1784 +msgid "order product must have an order" +msgstr "Sản phẩm đặt hàng phải có đơn hàng liên quan!" + +#: core/models.py:1786 +#, python-brace-format +msgid "wrong action specified for feedback: {action}" +msgstr "Hành động sai được chỉ định cho phản hồi: {action}!" + +#: core/models.py:1800 +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." + +#: core/models.py:1806 +msgid "name" +msgstr "Tên" + +#: core/models.py:1807 +msgid "URL of the integration" +msgstr "Đường dẫn URL của tích hợp" + +#: core/models.py:1808 +msgid "authentication credentials" +msgstr "Thông tin xác thực" + +#: core/models.py:1822 +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." + +#: core/models.py:1826 +msgid "CRM" +msgstr "Hệ thống Quản lý Quan hệ Khách hàng" + +#: core/models.py:1827 +msgid "CRMs" +msgstr "Hệ thống Quản lý Quan hệ Khách hàng (CR" + +#: core/models.py:1839 +msgid "order CRM link" +msgstr "Liên kết CRM của đơn hàng" + +#: core/models.py:1840 +msgid "orders CRM links" +msgstr "Liên kết CRM của đơn hàng" + +#: core/models.py:1874 +msgid "download" +msgstr "Tải xuống" + +#: core/models.py:1875 +msgid "downloads" +msgstr "Tải xuống" + +#: core/models.py:1883 +msgid "you can not download a digital asset for a non-finished order" +msgstr "" +"Bạn không thể tải xuống tài sản kỹ thuật số cho một đơn hàng chưa hoàn " +"thành." + +#: core/models.py:1913 +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" + +#: core/models.py:1914 +msgid "feedback comments" +msgstr "Phản hồi" + +#: core/models.py:1921 +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." + +#: core/models.py:1922 +msgid "related order product" +msgstr "Sản phẩm liên quan đến đơn hàng" + +#: core/models.py:1927 +msgid "user-assigned rating for the product" +msgstr "Đánh giá do người dùng gán cho sản phẩm" + +#: core/models.py:1928 +msgid "product rating" +msgstr "Đánh giá sản phẩm" + +#: core/serializers/utility.py:87 +msgid "" +"you must provide a comment, rating, and order product uuid to add feedback." +msgstr "" +"Bạn phải cung cấp bình luận, đánh giá và mã UUID của sản phẩm để thêm phản " +"hồi." + +#: core/signals.py:65 +msgid "error during promocode creation: {e!s}" +msgstr "Lỗi xảy ra trong quá trình tạo mã khuyến mãi: {e!s}" + +#: core/sitemaps.py:17 +msgid "Home" +msgstr "Trang chủ" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "Liên hệ với chúng tôi" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "Giới thiệu về chúng tôi" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "Thông tin thanh toán" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "Giao hàng" + +#: core/templates/digital_order_created_email.html:7 +#: core/templates/digital_order_created_email.html:100 +#: core/templates/digital_order_delivered_email.html:6 +#: core/templates/shipped_order_created_email.html:7 +#: core/templates/shipped_order_created_email.html:99 +#: core/templates/shipped_order_delivered_email.html:7 +#: core/templates/shipped_order_delivered_email.html:99 +msgid "order confirmation" +msgstr "Xác nhận đơn hàng" + +#: core/templates/digital_order_created_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 +#: core/templates/promocode_granted_email.html:94 +#: core/templates/shipped_order_created_email.html:94 +#: core/templates/shipped_order_delivered_email.html:94 +msgid "logo" +msgstr "Biểu trưng" + +#: core/templates/digital_order_created_email.html:101 +#: core/templates/shipped_order_created_email.html:100 +#: core/templates/shipped_order_delivered_email.html:100 +#, python-format +msgid "hello %(order.user.first_name)s," +msgstr "Xin chào %(order.user.first_name)s," + +#: core/templates/digital_order_created_email.html:102 +#, 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" +" 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 " +"rằng đơn hàng của quý khách đã được tiếp nhận và đang được xử lý. Dưới đây " +"là chi tiết đơn hàng của quý khách:" + +#: core/templates/digital_order_created_email.html:112 +#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/shipped_order_created_email.html:110 +#: core/templates/shipped_order_delivered_email.html:110 +msgid "total" +msgstr "Tổng cộng" + +#: core/templates/digital_order_created_email.html:125 +#: core/templates/digital_order_delivered_email.html:157 +#: core/templates/shipped_order_created_email.html:127 +#: core/templates/shipped_order_delivered_email.html:127 +msgid "total price" +msgstr "Giá tổng cộng" + +#: core/templates/digital_order_created_email.html:131 +#: core/templates/shipped_order_created_email.html:140 +#: core/templates/shipped_order_delivered_email.html:140 +#, python-format +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." + +#: core/templates/digital_order_created_email.html:133 +#, python-format +msgid "best regards,
the %(config.PROJECT_NAME)s team" +msgstr "Trân trọng,
Đội ngũ %(config.PROJECT_NAME)s" + +#: core/templates/digital_order_created_email.html:139 +#: core/templates/digital_order_delivered_email.html:171 +#: core/templates/promocode_granted_email.html:114 +msgid "all rights reserved" +msgstr "Tất cả các quyền được bảo lưu." + +#: core/templates/digital_order_delivered_email.html:99 +msgid "order delivered" +msgstr "Đơn hàng đã được giao" + +#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Xin chào %(user_first_name)s," + +#: core/templates/digital_order_delivered_email.html:101 +#, python-format +msgid "" +"we have successfully processed your order №%(order_uuid)s! below are the\n" +" details of your order:" +msgstr "" +"Chúng tôi đã xử lý thành công đơn hàng của quý khách số №%(order_uuid)s! " +"Dưới đây là chi tiết đơn hàng của quý khách:" + +#: core/templates/digital_order_delivered_email.html:128 +msgid "" +"additional\n" +" information" +msgstr "Thông tin bổ sung" + +#: core/templates/digital_order_delivered_email.html:137 +#: core/templates/json_table_widget.html:6 +msgid "value" +msgstr "Giá trị" + +#: core/templates/digital_order_delivered_email.html:163 +#: core/templates/promocode_granted_email.html:106 +#, python-format +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." + +#: core/templates/digital_order_delivered_email.html:165 +#: core/templates/promocode_granted_email.html:108 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Trân trọng,
Đội ngũ %(project_name)s" + +#: core/templates/json_table_widget.html:5 +msgid "key" +msgstr "Chìa khóa" + +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Mã khuyến mãi được cấp" + +#: core/templates/promocode_granted_email.html:101 +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" + +#: core/templates/shipped_order_created_email.html:101 +#: core/templates/shipped_order_delivered_email.html:101 +msgid "" +"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 " +"quý khách. Dưới đây là chi tiết đơn hàng của quý khách:" + +#: core/templates/shipped_order_created_email.html:123 +#: core/templates/shipped_order_delivered_email.html:123 +msgid "shipping price" +msgstr "Giá vận chuyển" + +#: core/templates/shipped_order_created_email.html:133 +#: core/templates/shipped_order_delivered_email.html:133 +msgid "your order will be delivered to the following address:" +msgstr "Đơn hàng của quý khách sẽ được giao đến địa chỉ sau:" + +#: core/templates/shipped_order_created_email.html:142 +#: core/templates/shipped_order_delivered_email.html:142 +#, python-format +msgid "best regards,
The %(config.PROJECT_NAME)s team" +msgstr "Trân trọng,
Đội ngũ %(config.PROJECT_NAME)s" + +#: core/templates/shipped_order_created_email.html:147 +#: core/templates/shipped_order_delivered_email.html:147 +msgid "" +"all rights\n" +" reserved" +msgstr "Tất cả các quyền được bảo lưu." + +#: core/utils/caching.py:41 +msgid "both data and timeout are required" +msgstr "Cả dữ liệu và thời gian chờ đều là bắt buộc." + +#: core/utils/caching.py:43 +msgid "invalid timeout value, it must be between 0 and 216000 seconds" +msgstr "" +"Giá trị thời gian chờ không hợp lệ, nó phải nằm trong khoảng từ 0 đến " +"216.000 giây." + +#: core/utils/emailing.py:25 +#, python-brace-format +msgid "{config.PROJECT_NAME} | contact us initiated" +msgstr "{config.PROJECT_NAME} | Liên hệ với chúng tôi đã được khởi tạo" + +#: core/utils/emailing.py:64 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order confirmation" +msgstr "{config.PROJECT_NAME} | Xác nhận đơn hàng" + +#: core/utils/emailing.py:99 +#, python-brace-format +msgid "{config.PROJECT_NAME} | order delivered" +msgstr "{config.PROJECT_NAME} | Đơn hàng đã được giao" + +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | mã khuyến mãi được cấp" + +#: core/utils/messages.py:3 +msgid "you do not have permission to perform this action." +msgstr "Bạn không có quyền thực hiện hành động này." + +#: core/utils/nominatim.py:8 +msgid "NOMINATIM_URL must be configured." +msgstr "Tham số NOMINATIM_URL phải được cấu hình!" + +#: core/validators.py:16 +#, python-brace-format +msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" +msgstr "" +"Kích thước hình ảnh không được vượt quá w{max_width} x h{max_height} pixel!" + +#: core/validators.py:22 +msgid "invalid phone number format" +msgstr "Định dạng số điện thoại không hợp lệ" + +#: core/views.py:481 +msgid "you can only download the digital asset once" +msgstr "Bạn chỉ có thể tải xuống tài sản kỹ thuật số một lần." + +#: core/views.py:539 +msgid "favicon not found" +msgstr "Biểu tượng trang web không tìm thấy" + +#: core/viewsets.py:1319 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Lỗi địa chỉ địa lý: {e}" diff --git a/core/locale/zh_Hans/LC_MESSAGES/django.mo b/core/locale/zh_Hans/LC_MESSAGES/django.mo index 48e7c3db1353d46adb11a616ef01174693b9fa70..d6e812dae8223999c4b849d3dc38f5f9b18508a5 100644 GIT binary patch delta 18939 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 O^3}x^A1&+I>;D08*IIA@ delta 11647 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 T*ZUU9X|g^tFz2bQ(G~v(_|&!m diff --git a/core/locale/zh_Hans/LC_MESSAGES/django.po b/core/locale/zh_Hans/LC_MESSAGES/django.po index 4eaa7a51..f8f07efc 100644 --- a/core/locale/zh_Hans/LC_MESSAGES/django.po +++ b/core/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:52+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -85,12 +85,12 @@ msgstr "停用选定的 %(verbose_name_plural)s" msgid "selected items have been deactivated." msgstr "选定项目已停用!" -#: core/admin.py:137 core/graphene/object_types.py:598 -#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 +#: core/admin.py:137 core/graphene/object_types.py:609 +#: core/graphene/object_types.py:616 core/models.py:712 core/models.py:720 msgid "attribute value" msgstr "属性值" -#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:721 msgid "attribute values" msgstr "属性值" @@ -98,23 +98,23 @@ msgstr "属性值" msgid "image" msgstr "图片" -#: core/admin.py:147 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:501 msgid "images" msgstr "图片" -#: core/admin.py:155 core/models.py:578 +#: core/admin.py:155 core/models.py:457 msgid "stock" msgstr "库存" -#: core/admin.py:156 core/graphene/object_types.py:652 +#: core/admin.py:156 core/graphene/object_types.py:663 msgid "stocks" msgstr "股票" -#: core/admin.py:166 core/models.py:1900 +#: core/admin.py:166 core/models.py:1735 msgid "order product" msgstr "订购产品" -#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 +#: core/admin.py:167 core/graphene/object_types.py:416 core/models.py:1736 msgid "order products" msgstr "订购产品" @@ -316,7 +316,7 @@ msgstr "重写现有类别的某些字段,保存不可编辑内容" #: core/docs/drf/viewsets.py:155 core/docs/drf/viewsets.py:553 #: core/graphene/object_types.py:117 core/graphene/object_types.py:207 -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:509 msgid "SEO Meta snapshot" msgstr "搜索引擎优化元快照" @@ -731,117 +731,117 @@ msgstr "添加或删除订单与产品关系中的反馈信息" msgid "no search term provided." msgstr "未提供搜索条件。" -#: core/filters.py:63 core/filters.py:509 core/filters.py:538 +#: core/filters.py:64 core/filters.py:594 core/filters.py:623 msgid "UUID" msgstr "UUID" -#: core/filters.py:64 core/filters.py:375 core/filters.py:475 +#: core/filters.py:65 core/filters.py:429 core/filters.py:560 msgid "Name" msgstr "名称" -#: core/filters.py:65 core/filters.py:477 +#: core/filters.py:66 core/filters.py:562 msgid "Categories" msgstr "类别" -#: core/filters.py:67 +#: core/filters.py:68 msgid "Categories Slugs" msgstr "类别 蛞蝓" -#: core/filters.py:68 core/filters.py:383 +#: core/filters.py:69 core/filters.py:437 msgid "Tags" msgstr "标签" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Min Price" msgstr "最低价格" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Max Price" msgstr "最高价格" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Is Active" msgstr "处于活动状态" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Brand" msgstr "品牌" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Attributes" msgstr "属性" -#: core/filters.py:74 +#: core/filters.py:75 msgid "Quantity" msgstr "数量" -#: core/filters.py:75 core/filters.py:377 core/filters.py:476 -#: core/models.py:396 core/models.py:490 core/models.py:681 +#: core/filters.py:76 core/filters.py:431 core/filters.py:561 +#: core/models.py:287 core/models.py:381 core/models.py:534 msgid "Slug" msgstr "蛞蝓" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Is Digital" msgstr "是数字" -#: core/filters.py:77 +#: core/filters.py:78 msgid "Include sub-categories" msgstr "包括子类别" -#: core/filters.py:80 +#: core/filters.py:81 msgid "Include personal ordered" msgstr "包括个人订购的产品" -#: core/filters.py:82 core/models.py:685 +#: core/filters.py:83 core/models.py:538 msgid "SKU" msgstr "商品编号" -#: core/filters.py:164 +#: core/filters.py:166 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "必须有 category_uuid 才能使用 include_subcategories 标志" -#: core/filters.py:302 +#: core/filters.py:356 msgid "Search (ID, product name or part number)" msgstr "搜索(ID、产品名称或零件编号)" -#: core/filters.py:305 +#: core/filters.py:359 msgid "Bought after (inclusive)" msgstr "之后购买(含)" -#: core/filters.py:306 +#: core/filters.py:360 msgid "Bought before (inclusive)" msgstr "之前购买(含)" -#: core/filters.py:309 core/filters.py:356 core/filters.py:540 +#: core/filters.py:363 core/filters.py:410 core/filters.py:625 msgid "User email" msgstr "用户电子邮件" -#: core/filters.py:310 core/filters.py:357 core/filters.py:518 -#: core/filters.py:539 +#: core/filters.py:364 core/filters.py:411 core/filters.py:603 +#: core/filters.py:624 msgid "User UUID" msgstr "用户 UUID" -#: core/filters.py:311 +#: core/filters.py:365 msgid "Status" msgstr "现状" -#: core/filters.py:315 +#: core/filters.py:369 msgid "Human Readable ID" msgstr "人可读 ID" -#: core/filters.py:376 +#: core/filters.py:430 msgid "Parent" msgstr "家长" -#: core/filters.py:380 +#: core/filters.py:434 msgid "Whole category(has at least 1 product or not)" msgstr "整个类别(是否至少有 1 个产品)" -#: core/filters.py:384 +#: core/filters.py:438 msgid "Level" msgstr "级别" -#: core/filters.py:513 +#: core/filters.py:598 msgid "Product UUID" msgstr "产品 UUID" @@ -970,8 +970,8 @@ msgstr "未找到订购产品 {order_product_uuid}!" msgid "original address string provided by the user" msgstr "用户提供的原始地址字符串" -#: core/graphene/mutations.py:655 core/models.py:1051 core/models.py:1064 -#: core/models.py:1513 core/models.py:1542 core/models.py:1567 +#: core/graphene/mutations.py:655 core/models.py:896 core/models.py:909 +#: core/models.py:1348 core/models.py:1377 core/models.py:1402 #: core/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" @@ -986,8 +986,8 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - 工作起来得心应手" #: core/graphene/object_types.py:82 core/graphene/object_types.py:397 -#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 -#: core/models.py:1967 +#: core/graphene/object_types.py:444 core/models.py:666 core/models.py:1234 +#: core/models.py:1809 msgid "attributes" msgstr "属性" @@ -1000,11 +1000,11 @@ msgid "groups of attributes" msgstr "属性组" #: core/graphene/object_types.py:116 core/graphene/object_types.py:193 -#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 +#: core/graphene/object_types.py:224 core/models.py:312 core/models.py:620 msgid "categories" msgstr "类别" -#: core/graphene/object_types.py:124 core/models.py:504 +#: core/graphene/object_types.py:124 core/models.py:395 msgid "brands" msgstr "品牌" @@ -1013,7 +1013,7 @@ msgid "category image url" msgstr "类别" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:358 +#: core/models.py:249 msgid "markup percentage" msgstr "加价百分比" @@ -1034,7 +1034,7 @@ msgstr "此类别的标签" msgid "products in this category" msgstr "该类别中的产品" -#: core/graphene/object_types.py:351 core/models.py:191 +#: core/graphene/object_types.py:351 core/models.py:155 msgid "vendors" msgstr "供应商" @@ -1050,7 +1050,7 @@ msgstr "经度(X 坐标)" msgid "comment" msgstr "如何" -#: core/graphene/object_types.py:386 +#: core/graphene/object_types.py:386 core/graphene/object_types.py:510 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "评级值从 1 到 10(包括 10),如果未设置,则为 0。" @@ -1058,8 +1058,8 @@ msgstr "评级值从 1 到 10(包括 10),如果未设置,则为 0。" msgid "represents feedback from a user." msgstr "代表用户的反馈意见。" -#: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1393 +#: core/graphene/object_types.py:398 core/graphene/object_types.py:445 +#: core/models.py:1228 msgid "notifications" msgstr "通知" @@ -1067,65 +1067,69 @@ msgstr "通知" msgid "download url for this order product if applicable" msgstr "此订单产品的下载网址(如适用" -#: core/graphene/object_types.py:428 +#: core/graphene/object_types.py:400 core/models.py:1938 +msgid "feedback" +msgstr "反馈意见" + +#: core/graphene/object_types.py:434 msgid "a list of order products in this order" msgstr "该订单中的订单产品列表" -#: core/graphene/object_types.py:430 core/models.py:1363 +#: core/graphene/object_types.py:436 core/models.py:1198 msgid "billing address" msgstr "账单地址" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:439 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "此订单的送货地址,如果与账单地址相同或不适用,请留空" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:441 msgid "total price of this order" msgstr "订单总价" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:442 msgid "total quantity of products in order" msgstr "订单中产品的总数量" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:443 msgid "are all products in the order digital" msgstr "订单中的所有产品都是数字产品吗?" -#: core/graphene/object_types.py:440 +#: core/graphene/object_types.py:446 msgid "transactions for this order" msgstr "此订单的交易" -#: core/graphene/object_types.py:459 core/models.py:1427 +#: core/graphene/object_types.py:465 core/models.py:1262 msgid "orders" msgstr "订单" -#: core/graphene/object_types.py:480 +#: core/graphene/object_types.py:486 msgid "image url" msgstr "图片 URL" -#: core/graphene/object_types.py:487 +#: core/graphene/object_types.py:493 msgid "product's images" msgstr "产品图片" -#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 +#: core/graphene/object_types.py:500 core/models.py:311 core/models.py:477 msgid "category" msgstr "类别" -#: core/graphene/object_types.py:496 core/models.py:2097 +#: core/graphene/object_types.py:502 core/models.py:1939 msgid "feedbacks" msgstr "反馈意见" -#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 +#: core/graphene/object_types.py:503 core/models.py:394 core/models.py:486 msgid "brand" msgstr "品牌" -#: core/graphene/object_types.py:498 core/models.py:118 +#: core/graphene/object_types.py:504 core/models.py:101 msgid "attribute groups" msgstr "属性组" -#: core/graphene/object_types.py:499 +#: core/graphene/object_types.py:505 #: core/templates/digital_order_created_email.html:111 #: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 @@ -1133,7 +1137,7 @@ msgstr "属性组" msgid "price" msgstr "价格" -#: core/graphene/object_types.py:500 +#: core/graphene/object_types.py:506 #: core/templates/digital_order_created_email.html:110 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 @@ -1141,35 +1145,35 @@ msgstr "价格" msgid "quantity" msgstr "数量" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:507 msgid "number of feedbacks" msgstr "反馈数量" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:508 msgid "only available for personal orders" msgstr "仅限个人订购的产品" -#: core/graphene/object_types.py:526 core/models.py:695 +#: core/graphene/object_types.py:534 core/models.py:548 msgid "products" msgstr "产品" -#: core/graphene/object_types.py:623 +#: core/graphene/object_types.py:634 msgid "promocodes" msgstr "促销代码" -#: core/graphene/object_types.py:633 +#: core/graphene/object_types.py:644 msgid "products on sale" msgstr "销售产品" -#: core/graphene/object_types.py:640 core/models.py:998 +#: core/graphene/object_types.py:651 core/models.py:843 msgid "promotions" msgstr "促销活动" -#: core/graphene/object_types.py:644 core/models.py:190 +#: core/graphene/object_types.py:655 core/models.py:154 msgid "vendor" msgstr "供应商" -#: core/graphene/object_types.py:645 core/models.py:694 +#: core/graphene/object_types.py:656 core/models.py:547 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1177,931 +1181,1036 @@ msgstr "供应商" msgid "product" msgstr "产品" -#: core/graphene/object_types.py:656 core/models.py:1023 +#: core/graphene/object_types.py:667 core/models.py:868 msgid "wishlisted products" msgstr "心愿单上的产品" -#: core/graphene/object_types.py:662 core/models.py:1040 +#: core/graphene/object_types.py:673 core/models.py:885 msgid "wishlists" msgstr "愿望清单" -#: core/graphene/object_types.py:666 +#: core/graphene/object_types.py:677 msgid "tagged products" msgstr "标签产品" -#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 +#: core/graphene/object_types.py:684 core/models.py:190 core/models.py:492 msgid "product tags" msgstr "产品标签" -#: core/graphene/object_types.py:677 +#: core/graphene/object_types.py:688 msgid "tagged categories" msgstr "标签类别" -#: core/graphene/object_types.py:684 +#: core/graphene/object_types.py:695 msgid "categories tags" msgstr "类别标签" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:699 msgid "project name" msgstr "项目名称" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:700 msgid "company email" msgstr "公司电子邮件" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:701 msgid "company name" msgstr "公司名称" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:702 msgid "company address" msgstr "公司地址" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:703 msgid "company phone number" msgstr "公司电话号码" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:704 msgid "email from, sometimes it must be used instead of host user value" msgstr "电子邮件来自\",有时必须使用它来代替主机用户值" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:705 msgid "email host user" msgstr "电子邮件主机用户" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:706 msgid "maximum amount for payment" msgstr "最高付款额" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:707 msgid "minimum amount for payment" msgstr "最低付款额" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:708 msgid "analytics data" msgstr "分析数据" -#: core/graphene/object_types.py:698 +#: core/graphene/object_types.py:709 msgid "advertisement data" msgstr "广告数据" -#: core/graphene/object_types.py:701 +#: core/graphene/object_types.py:712 msgid "company configuration" msgstr "配置" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:716 msgid "language code" msgstr "语言代码" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:717 msgid "language name" msgstr "语言名称" -#: core/graphene/object_types.py:707 +#: core/graphene/object_types.py:718 msgid "language flag, if exists :)" msgstr "语言标志(如果有):)" -#: core/graphene/object_types.py:710 +#: core/graphene/object_types.py:721 msgid "supported languages" msgstr "获取支持的语言列表" -#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:752 core/graphene/object_types.py:753 +#: core/graphene/object_types.py:754 msgid "products search results" msgstr "产品搜索结果" -#: core/graphene/object_types.py:744 +#: core/graphene/object_types.py:755 msgid "posts search results" msgstr "产品搜索结果" -#: core/models.py:103 +#: core/models.py:70 +msgid "" +"Represents a group of attributes, which can be hierarchical. This class is " +"used to manage and organize attribute groups. An attribute group can have a " +"parent group, forming a hierarchical structure. This can be useful for " +"categorizing and managing attributes more effectively in acomplex system." +msgstr "" +"代表一组属性,可以是分层的。该类用于管理和组织属性组。一个属性组可以有一个父组,从而形成一个层次结构。这有助于在复杂的系统中更有效地分类和管理属性。" + +#: core/models.py:86 msgid "parent of this group" msgstr "本组家长" -#: core/models.py:104 +#: core/models.py:87 msgid "parent attribute group" msgstr "父属性组" -#: core/models.py:108 core/models.py:109 +#: core/models.py:91 core/models.py:92 msgid "attribute group's name" msgstr "属性组名称" -#: core/models.py:117 core/models.py:793 +#: core/models.py:100 core/models.py:628 msgid "attribute group" msgstr "属性组" -#: core/models.py:155 +#: core/models.py:106 +msgid "" +"Represents a vendor entity capable of storing information about external " +"vendors and their interaction requirements. The Vendor class is used to " +"define and manage information related to an external vendor. It stores the " +"vendor's name, authentication details required for communication, and the " +"percentage markup applied to products retrieved from the vendor. This model " +"also maintains additional metadata and constraints, making it suitable for " +"use in systems that interact with third-party vendors." +msgstr "" +"代表一个供应商实体,能够存储有关外部供应商及其交互要求的信息。供应商类用于定义和管理与外部供应商相关的信息。它存储供应商的名称、通信所需的身份验证详细信息,以及从供应商处检索产品时所应用的百分比标记。该模型还维护附加的元数据和约束,使其适用于与第三方供应商交互的系统。" + +#: core/models.py:119 msgid "stores credentials and endpoints required for vendor communication" msgstr "存储供应商应用程序接口通信所需的凭证和端点" -#: core/models.py:156 +#: core/models.py:120 msgid "authentication info" msgstr "认证信息" -#: core/models.py:161 +#: core/models.py:125 msgid "define the markup for products retrieved from this vendor" msgstr "定义从该供应商获取的产品的标记" -#: core/models.py:162 +#: core/models.py:126 msgid "vendor markup percentage" msgstr "供应商加价百分比" -#: core/models.py:166 +#: core/models.py:130 msgid "name of this vendor" msgstr "供应商名称" -#: core/models.py:167 +#: core/models.py:131 msgid "vendor name" msgstr "供应商名称" -#: core/models.py:220 core/models.py:258 +#: core/models.py:163 +msgid "" +"Represents a product tag used for classifying or identifying products. The " +"ProductTag class is designed to uniquely identify and classify products " +"through a combination of an internal tag identifier and a user-friendly " +"display name. It supports operations exported through mixins and provides " +"metadata customization for administrative purposes." +msgstr "" +"代表用于分类或识别产品的产品标签。ProductTag " +"类旨在通过内部标签标识符和用户友好显示名称的组合,对产品进行唯一标识和分类。它支持通过混合功能导出的操作,并为管理目的提供元数据定制功能。" + +#: core/models.py:175 core/models.py:206 msgid "internal tag identifier for the product tag" msgstr "产品标签的内部标签标识符" -#: core/models.py:221 core/models.py:259 +#: core/models.py:176 core/models.py:207 msgid "tag name" msgstr "标签名称" -#: core/models.py:225 core/models.py:263 +#: core/models.py:180 core/models.py:211 msgid "user-friendly name for the product tag" msgstr "方便用户使用的产品标签名称" -#: core/models.py:226 core/models.py:264 +#: core/models.py:181 core/models.py:212 msgid "tag display name" msgstr "标签显示名称" -#: core/models.py:234 +#: core/models.py:189 msgid "product tag" msgstr "产品标签" -#: core/models.py:272 +#: core/models.py:195 +msgid "" +"Represents a category tag used for products. This class models a category " +"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 "代表用于产品的类别标签。该类是类别标签的模型,可用于关联和分类产品。它包括内部标签标识符和用户友好显示名称的属性。" + +#: core/models.py:220 msgid "category tag" msgstr "类别标签" -#: core/models.py:273 core/models.py:402 +#: core/models.py:221 core/models.py:293 msgid "category tags" msgstr "类别标签" -#: core/models.py:349 +#: core/models.py:226 +msgid "" +"Represents a category entity to organize and group related items in a " +"hierarchical structure. Categories may have hierarchical relationships with " +"other categories, supporting parent-child relationships. The class includes " +"fields for metadata and visual representation, which serve as a foundation " +"for category-related features. This class is typically used to define and " +"manage product categories or other similar groupings within an application, " +"allowing users or administrators to specify the name, description, and " +"hierarchy of categories, as well as assign attributes like images, tags, or " +"priority." +msgstr "" +"代表类别实体,用于在分层结构中组织和分组相关项目。类别可与其他类别建立层次关系,支持父子关系。该类包括元数据和可视化表示字段,是类别相关功能的基础。该类通常用于定义和管理应用程序中的产品类别或其他类似分组,允许用户或管理员指定类别的名称、描述和层次结构,以及分配图像、标记或优先级等属性。" + +#: core/models.py:240 msgid "upload an image representing this category" msgstr "上传代表该类别的图片" -#: core/models.py:352 +#: core/models.py:243 msgid "category image" msgstr "类别 图像" -#: core/models.py:357 +#: core/models.py:248 msgid "define a markup percentage for products in this category" msgstr "定义该类别产品的加价百分比" -#: core/models.py:366 +#: core/models.py:257 msgid "parent of this category to form a hierarchical structure" msgstr "该类别的父类别,形成等级结构" -#: core/models.py:367 +#: core/models.py:258 msgid "parent category" msgstr "父类" -#: core/models.py:372 +#: core/models.py:263 msgid "category name" msgstr "类别名称" -#: core/models.py:373 +#: core/models.py:264 msgid "provide a name for this category" msgstr "提供该类别的名称" -#: core/models.py:380 +#: core/models.py:271 msgid "add a detailed description for this category" msgstr "为该类别添加详细说明" -#: core/models.py:381 +#: core/models.py:272 msgid "category description" msgstr "类别说明" -#: core/models.py:401 +#: core/models.py:292 msgid "tags that help describe or group this category" msgstr "有助于描述或归类该类别的标签" -#: core/models.py:408 core/models.py:496 +#: core/models.py:299 core/models.py:387 msgid "priority" msgstr "优先权" -#: core/models.py:449 +#: core/models.py:340 msgid "name of this brand" msgstr "品牌名称" -#: core/models.py:450 +#: core/models.py:341 msgid "brand name" msgstr "品牌名称" -#: core/models.py:457 +#: core/models.py:348 msgid "upload a logo representing this brand" msgstr "上传代表该品牌的徽标" -#: core/models.py:459 +#: core/models.py:350 msgid "brand small image" msgstr "品牌小形象" -#: core/models.py:465 +#: core/models.py:356 msgid "upload a big logo representing this brand" msgstr "上传代表该品牌的大徽标" -#: core/models.py:467 +#: core/models.py:358 msgid "brand big image" msgstr "品牌大形象" -#: core/models.py:472 +#: core/models.py:363 msgid "add a detailed description of the brand" msgstr "添加品牌的详细描述" -#: core/models.py:473 +#: core/models.py:364 msgid "brand description" msgstr "品牌描述" -#: core/models.py:478 +#: core/models.py:369 msgid "optional categories that this brand is associated with" msgstr "与该品牌相关的可选类别" -#: core/models.py:479 +#: core/models.py:370 msgid "associated categories" msgstr "类别" -#: core/models.py:533 +#: core/models.py:400 +msgid "" +"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 " +"和数字资产。它是库存管理系统的一部分,用于跟踪和评估不同供应商提供的产品。" + +#: core/models.py:412 msgid "the vendor supplying this product stock" msgstr "提供该产品库存的供应商" -#: core/models.py:534 +#: core/models.py:413 msgid "associated vendor" msgstr "相关供应商" -#: core/models.py:538 +#: core/models.py:417 msgid "final price to the customer after markups" msgstr "加价后给客户的最终价格" -#: core/models.py:539 +#: core/models.py:418 msgid "selling price" msgstr "销售价格" -#: core/models.py:544 +#: core/models.py:423 msgid "the product associated with this stock entry" msgstr "与该库存条目相关的产品" -#: core/models.py:545 core/models.py:863 core/models.py:920 -#: core/models.py:1874 +#: core/models.py:424 core/models.py:708 core/models.py:765 +#: core/models.py:1709 msgid "associated product" msgstr "相关产品" -#: core/models.py:552 +#: core/models.py:431 msgid "the price paid to the vendor for this product" msgstr "为该产品支付给供应商的价格" -#: core/models.py:553 +#: core/models.py:432 msgid "vendor purchase price" msgstr "供应商购买价格" -#: core/models.py:557 +#: core/models.py:436 msgid "available quantity of the product in stock" msgstr "产品的可用库存量" -#: core/models.py:558 +#: core/models.py:437 msgid "quantity in stock" msgstr "库存数量" -#: core/models.py:562 +#: core/models.py:441 msgid "vendor-assigned SKU for identifying the product" msgstr "供应商指定的 SKU,用于识别产品" -#: core/models.py:563 +#: core/models.py:442 msgid "vendor sku" msgstr "供应商 SKU" -#: core/models.py:569 +#: core/models.py:448 msgid "digital file associated with this stock if applicable" msgstr "与该库存相关的数字文件(如适用" -#: core/models.py:570 +#: core/models.py:449 msgid "digital file" msgstr "数字文件" -#: core/models.py:579 +#: core/models.py:458 msgid "stock entries" msgstr "库存条目" -#: core/models.py:623 +#: core/models.py:463 +msgid "" +"Represents a product with attributes such as category, brand, tags, digital " +"status, name, description, part number, and slug. Provides related utility " +"properties to retrieve ratings, feedback counts, price, quantity, and total " +"orders. Designed for use in a system that handles e-commerce or inventory " +"management. This class interacts with related models (such as Category, " +"Brand, and ProductTag) and manages caching for frequently accessed " +"properties to improve performance. It is used to define and manipulate " +"product data and its associated information within an application." +msgstr "" +"代表产品的属性,如类别、品牌、标签、数字状态、名称、描述、零件编号和标签。提供相关的实用属性,以检索评级、反馈计数、价格、数量和订单总数。设计用于处理电子商务或库存管理的系统。该类可与相关模型(如类别、品牌和" +" ProductTag)交互,并对频繁访问的属性进行缓存管理,以提高性能。它用于在应用程序中定义和操作产品数据及其相关信息。" + +#: core/models.py:476 msgid "category this product belongs to" msgstr "该产品所属类别" -#: core/models.py:632 +#: core/models.py:485 msgid "optionally associate this product with a brand" msgstr "可选择将该产品与某个品牌联系起来" -#: core/models.py:638 +#: core/models.py:491 msgid "tags that help describe or group this product" msgstr "有助于描述或归类该产品的标签" -#: core/models.py:643 +#: core/models.py:496 msgid "indicates whether this product is digitally delivered" msgstr "表示该产品是否以数字方式交付" -#: core/models.py:644 +#: core/models.py:497 msgid "is product digital" msgstr "产品是否数字化" -#: core/models.py:650 +#: core/models.py:503 msgid "provide a clear identifying name for the product" msgstr "为产品提供一个明确的标识名称" -#: core/models.py:651 +#: core/models.py:504 msgid "product name" msgstr "产品名称" -#: core/models.py:656 core/models.py:986 +#: core/models.py:509 core/models.py:831 msgid "add a detailed description of the product" msgstr "添加产品的详细描述" -#: core/models.py:657 +#: core/models.py:510 msgid "product description" msgstr "产品说明" -#: core/models.py:664 +#: core/models.py:517 msgid "part number for this product" msgstr "该产品的零件编号" -#: core/models.py:665 +#: core/models.py:518 msgid "part number" msgstr "部件编号" -#: core/models.py:684 +#: core/models.py:537 msgid "stock keeping unit for this product" msgstr "该产品的库存单位" -#: core/models.py:784 +#: core/models.py:607 +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 " +"for dynamic and flexible data structuring." +msgstr "" +"代表系统中的一个属性。该类用于定义和管理属性,属性是可与其他实体关联的自定义数据块。属性有相关的类别、组、值类型和名称。该模型支持多种类型的值,包括字符串、整数、浮点数、布尔值、数组和对象。这样就可以实现动态、灵活的数据结构。" + +#: core/models.py:619 msgid "category of this attribute" msgstr "该属性的类别" -#: core/models.py:792 +#: core/models.py:627 msgid "group of this attribute" msgstr "该属性的组" -#: core/models.py:798 +#: core/models.py:633 msgid "string" msgstr "字符串" -#: core/models.py:799 +#: core/models.py:634 msgid "integer" msgstr "整数" -#: core/models.py:800 +#: core/models.py:635 msgid "float" msgstr "浮动" -#: core/models.py:801 +#: core/models.py:636 msgid "boolean" msgstr "布尔型" -#: core/models.py:802 +#: core/models.py:637 msgid "array" msgstr "阵列" -#: core/models.py:803 +#: core/models.py:638 msgid "object" msgstr "对象" -#: core/models.py:805 +#: core/models.py:640 msgid "type of the attribute's value" msgstr "属性值的类型" -#: core/models.py:806 +#: core/models.py:641 msgid "value type" msgstr "价值类型" -#: core/models.py:811 +#: core/models.py:646 msgid "name of this attribute" msgstr "该属性的名称" -#: core/models.py:812 +#: core/models.py:647 msgid "attribute's name" msgstr "属性名称" -#: core/models.py:820 core/models.py:855 +#: core/models.py:653 +msgid "is filterable" +msgstr "可过滤" + +#: core/models.py:654 +msgid "designates whether this attribute can be used for filtering or not" +msgstr "指定该属性是否可用于筛选" + +#: core/models.py:665 core/models.py:700 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "属性" -#: core/models.py:854 +#: core/models.py:699 msgid "attribute of this value" msgstr "该值的属性" -#: core/models.py:862 +#: core/models.py:707 msgid "the specific product associated with this attribute's value" msgstr "与该属性值相关的特定产品" -#: core/models.py:868 +#: core/models.py:713 msgid "the specific value for this attribute" msgstr "该属性的具体值" -#: core/models.py:902 +#: core/models.py:747 msgid "provide alternative text for the image for accessibility" msgstr "为图像提供替代文字,以便于访问" -#: core/models.py:903 +#: core/models.py:748 msgid "image alt text" msgstr "图片 alt 文本" -#: core/models.py:906 +#: core/models.py:751 msgid "upload the image file for this product" msgstr "上传该产品的图片文件" -#: core/models.py:907 core/models.py:932 +#: core/models.py:752 core/models.py:777 msgid "product image" msgstr "产品图片" -#: core/models.py:913 +#: core/models.py:758 msgid "determines the order in which images are displayed" msgstr "确定图像的显示顺序" -#: core/models.py:914 +#: core/models.py:759 msgid "display priority" msgstr "显示优先级" -#: core/models.py:919 +#: core/models.py:764 msgid "the product that this image represents" msgstr "该图片所代表的产品" -#: core/models.py:933 +#: core/models.py:778 msgid "product images" msgstr "产品图片" -#: core/models.py:974 +#: core/models.py:819 msgid "percentage discount for the selected products" msgstr "所选产品的折扣百分比" -#: core/models.py:975 +#: core/models.py:820 msgid "discount percentage" msgstr "折扣百分比" -#: core/models.py:980 +#: core/models.py:825 msgid "provide a unique name for this promotion" msgstr "为该促销活动提供一个独特的名称" -#: core/models.py:981 +#: core/models.py:826 msgid "promotion name" msgstr "推广名称" -#: core/models.py:987 +#: core/models.py:832 msgid "promotion description" msgstr "促销说明" -#: core/models.py:992 +#: core/models.py:837 msgid "select which products are included in this promotion" msgstr "选择促销活动包括哪些产品" -#: core/models.py:993 +#: core/models.py:838 msgid "included products" msgstr "包括产品" -#: core/models.py:997 +#: core/models.py:842 msgid "promotion" msgstr "促销活动" -#: core/models.py:1022 +#: core/models.py:867 msgid "products that the user has marked as wanted" msgstr "用户标记为想要的产品" -#: core/models.py:1030 +#: core/models.py:875 msgid "user who owns this wishlist" msgstr "拥有此愿望清单的用户" -#: core/models.py:1031 +#: core/models.py:876 msgid "wishlist owner" msgstr "心愿单所有者" -#: core/models.py:1039 +#: core/models.py:884 msgid "wishlist" msgstr "愿望清单" -#: core/models.py:1106 +#: core/models.py:951 msgid "documentary" msgstr "纪录片" -#: core/models.py:1107 +#: core/models.py:952 msgid "documentaries" msgstr "纪录片" -#: core/models.py:1117 +#: core/models.py:962 msgid "unresolved" msgstr "未解决" -#: core/models.py:1163 +#: core/models.py:1008 msgid "address line for the customer" msgstr "客户地址栏" -#: core/models.py:1164 +#: core/models.py:1009 msgid "address line" msgstr "地址栏" -#: core/models.py:1166 +#: core/models.py:1011 msgid "street" msgstr "街道" -#: core/models.py:1167 +#: core/models.py:1012 msgid "district" msgstr "地区" -#: core/models.py:1168 +#: core/models.py:1013 msgid "city" msgstr "城市" -#: core/models.py:1169 +#: core/models.py:1014 msgid "region" msgstr "地区" -#: core/models.py:1170 +#: core/models.py:1015 msgid "postal code" msgstr "邮政编码" -#: core/models.py:1171 +#: core/models.py:1016 msgid "country" msgstr "国家" -#: core/models.py:1178 +#: core/models.py:1023 msgid "geolocation point: (longitude, latitude)" msgstr "地理位置点(经度、纬度)" -#: core/models.py:1181 +#: core/models.py:1026 msgid "full JSON response from geocoder for this address" msgstr "地理编码器对此地址的完整 JSON 响应" -#: core/models.py:1186 +#: core/models.py:1031 msgid "stored JSON response from the geocoding service" msgstr "存储的来自地理编码服务的 JSON 响应" -#: core/models.py:1194 +#: core/models.py:1039 msgid "address" msgstr "地址" -#: core/models.py:1195 +#: core/models.py:1040 msgid "addresses" msgstr "地址" -#: core/models.py:1240 +#: core/models.py:1085 msgid "unique code used by a user to redeem a discount" msgstr "用户用于兑换折扣的唯一代码" -#: core/models.py:1241 +#: core/models.py:1086 msgid "promo code identifier" msgstr "促销代码标识符" -#: core/models.py:1248 +#: core/models.py:1093 msgid "fixed discount amount applied if percent is not used" msgstr "如果不使用百分比,则使用固定折扣额" -#: core/models.py:1249 +#: core/models.py:1094 msgid "fixed discount amount" msgstr "固定折扣额" -#: core/models.py:1255 +#: core/models.py:1100 msgid "percentage discount applied if fixed amount is not used" msgstr "未使用固定金额时适用的折扣百分比" -#: core/models.py:1256 +#: core/models.py:1101 msgid "percentage discount" msgstr "折扣百分比" -#: core/models.py:1261 +#: core/models.py:1106 msgid "timestamp when the promocode expires" msgstr "促销代码过期的时间戳" -#: core/models.py:1262 +#: core/models.py:1107 msgid "end validity time" msgstr "结束有效时间" -#: core/models.py:1267 +#: core/models.py:1112 msgid "timestamp from which this promocode is valid" msgstr "该促销代码有效的时间戳" -#: core/models.py:1268 +#: core/models.py:1113 msgid "start validity time" msgstr "开始有效时间" -#: core/models.py:1273 +#: core/models.py:1118 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "使用促销代码的时间戳,如果尚未使用,则留空" -#: core/models.py:1274 +#: core/models.py:1119 msgid "usage timestamp" msgstr "使用时间戳" -#: core/models.py:1279 +#: core/models.py:1124 msgid "user assigned to this promocode if applicable" msgstr "分配给此促销代码的用户(如适用" -#: core/models.py:1280 +#: core/models.py:1125 msgid "assigned user" msgstr "指定用户" -#: core/models.py:1287 +#: core/models.py:1132 msgid "promo code" msgstr "促销代码" -#: core/models.py:1288 +#: core/models.py:1133 msgid "promo codes" msgstr "促销代码" -#: core/models.py:1295 +#: core/models.py:1140 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。" -#: core/models.py:1310 +#: core/models.py:1155 msgid "promocode already used" msgstr "促销代码已被使用" -#: core/models.py:1326 +#: core/models.py:1171 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "促销代码 {self.uuid} 的折扣类型无效!" -#: core/models.py:1362 +#: core/models.py:1180 +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 " +"set, and shipping or billing details updated. Equally, functionality " +"supports managing the products in the order lifecycle." +msgstr "" +"代表用户下达的订单。该类在应用程序中模拟订单,包括订单的各种属性,如账单和发货信息、状态、关联用户、通知和相关操作。订单可以有关联的产品,可以应用促销活动,设置地址,更新发货或账单详情。同样,该功能还支持在订单生命周期中管理产品。" + +#: core/models.py:1197 msgid "the billing address used for this order" msgstr "该订单使用的账单地址" -#: core/models.py:1370 +#: core/models.py:1205 msgid "optional promo code applied to this order" msgstr "此订单可选择使用促销代码" -#: core/models.py:1371 +#: core/models.py:1206 msgid "applied promo code" msgstr "应用促销代码" -#: core/models.py:1379 +#: core/models.py:1214 msgid "the shipping address used for this order" msgstr "该订单使用的送货地址" -#: core/models.py:1380 +#: core/models.py:1215 msgid "shipping address" msgstr "送货地址" -#: core/models.py:1386 +#: core/models.py:1221 msgid "current status of the order in its lifecycle" msgstr "订单在其生命周期中的当前状态" -#: core/models.py:1387 +#: core/models.py:1222 msgid "order status" msgstr "订单状态" -#: core/models.py:1392 core/models.py:1851 +#: core/models.py:1227 core/models.py:1686 msgid "json structure of notifications to display to users" msgstr "向用户显示的通知的 JSON 结构,在管理用户界面中使用表格视图" -#: core/models.py:1398 +#: core/models.py:1233 msgid "json representation of order attributes for this order" msgstr "该订单属性的 JSON 表示形式" -#: core/models.py:1404 +#: core/models.py:1239 msgid "the user who placed the order" msgstr "下订单的用户" -#: core/models.py:1405 +#: core/models.py:1240 msgid "user" msgstr "用户" -#: core/models.py:1411 +#: core/models.py:1246 msgid "the timestamp when the order was finalized" msgstr "订单确定的时间戳" -#: core/models.py:1412 +#: core/models.py:1247 msgid "buy time" msgstr "购买时间" -#: core/models.py:1419 +#: core/models.py:1254 msgid "a human-readable identifier for the order" msgstr "订单的人工可读标识符" -#: core/models.py:1420 +#: core/models.py:1255 msgid "human readable id" msgstr "人类可读 ID" -#: core/models.py:1426 +#: core/models.py:1261 msgid "order" msgstr "订购" -#: core/models.py:1447 +#: core/models.py:1282 msgid "a user must have only one pending order at a time" msgstr "用户每次只能有一个挂单!" -#: core/models.py:1481 +#: core/models.py:1316 msgid "you cannot add products to an order that is not a pending one" msgstr "您不能向非待处理订单添加产品" -#: core/models.py:1486 +#: core/models.py:1321 msgid "you cannot add inactive products to order" msgstr "您不能在订单中添加非活动产品" -#: core/models.py:1503 +#: core/models.py:1338 msgid "you cannot add more products than available in stock" msgstr "添加的产品数量不能超过现有库存" -#: core/models.py:1525 core/models.py:1550 core/models.py:1558 +#: core/models.py:1360 core/models.py:1385 core/models.py:1393 msgid "you cannot remove products from an order that is not a pending one" msgstr "您不能从非待处理订单中删除产品" -#: core/models.py:1546 +#: core/models.py:1381 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "查询 <{query}> 时,{name} 不存在!" -#: core/models.py:1578 +#: core/models.py:1413 msgid "promocode does not exist" msgstr "促销代码不存在" -#: core/models.py:1584 +#: core/models.py:1419 msgid "you can only buy physical products with shipping address specified" msgstr "您只能购买指定送货地址的实物产品!" -#: core/models.py:1603 +#: core/models.py:1438 msgid "address does not exist" msgstr "地址不存在" -#: core/models.py:1624 core/models.py:1693 +#: core/models.py:1459 core/models.py:1528 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "您现在无法购买,请稍后再试。" -#: core/models.py:1627 core/models.py:1689 +#: core/models.py:1462 core/models.py:1524 msgid "invalid force value" msgstr "力值无效" -#: core/models.py:1633 core/models.py:1696 +#: core/models.py:1468 core/models.py:1531 msgid "you cannot purchase an empty order!" msgstr "您不能购买空单!" -#: core/models.py:1652 +#: core/models.py:1487 msgid "you cannot buy an order without a user" msgstr "没有用户就无法购买订单!" -#: core/models.py:1666 +#: core/models.py:1501 msgid "a user without a balance cannot buy with balance" msgstr "没有余额的用户不能使用余额购买!" -#: core/models.py:1671 +#: core/models.py:1506 msgid "insufficient funds to complete the order" msgstr "资金不足,无法完成订单" -#: core/models.py:1705 +#: core/models.py:1540 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "未经注册不能购买,请提供以下信息:客户姓名、客户电子邮件、客户电话号码" -#: core/models.py:1714 +#: core/models.py:1549 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "付款方式无效:来自 {available_payment_methods} 的 {payment_method} !" -#: core/models.py:1839 +#: core/models.py:1674 msgid "the price paid by the customer for this product at purchase time" msgstr "客户购买该产品时支付的价格" -#: core/models.py:1840 +#: core/models.py:1675 msgid "purchase price at order time" msgstr "订购时的购买价格" -#: core/models.py:1845 +#: core/models.py:1680 msgid "internal comments for admins about this ordered product" msgstr "管理员对该订购产品的内部评论" -#: core/models.py:1846 +#: core/models.py:1681 msgid "internal comments" msgstr "内部意见" -#: core/models.py:1852 +#: core/models.py:1687 msgid "user notifications" msgstr "用户通知" -#: core/models.py:1857 +#: core/models.py:1692 msgid "json representation of this item's attributes" msgstr "该项属性的 JSON 表示形式" -#: core/models.py:1858 +#: core/models.py:1693 msgid "ordered product attributes" msgstr "有序的产品属性" -#: core/models.py:1863 +#: core/models.py:1698 msgid "reference to the parent order that contains this product" msgstr "对包含该产品的父订单的引用" -#: core/models.py:1864 +#: core/models.py:1699 msgid "parent order" msgstr "父顺序" -#: core/models.py:1873 +#: core/models.py:1708 msgid "the specific product associated with this order line" msgstr "与该订单项目相关的具体产品" -#: core/models.py:1880 +#: core/models.py:1715 msgid "quantity of this specific product in the order" msgstr "订单中该特定产品的数量" -#: core/models.py:1881 +#: core/models.py:1716 msgid "product quantity" msgstr "产品数量" -#: core/models.py:1888 +#: core/models.py:1723 msgid "current status of this product in the order" msgstr "订单中该产品的当前状态" -#: core/models.py:1889 +#: core/models.py:1724 msgid "product line status" msgstr "产品系列状态" -#: core/models.py:1949 +#: core/models.py:1784 msgid "order product must have an order" msgstr "订单产品必须有相关的订单!" -#: core/models.py:1951 +#: core/models.py:1786 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "为反馈指定了错误的操作:{action}!" -#: core/models.py:1959 +#: core/models.py:1800 msgid "you cannot feedback an order which is not received" msgstr "您不能反馈未收到的订单" -#: core/models.py:1964 +#: core/models.py:1806 msgid "name" msgstr "名称" -#: core/models.py:1965 +#: core/models.py:1807 msgid "URL of the integration" msgstr "集成的 URL" -#: core/models.py:1966 +#: core/models.py:1808 msgid "authentication credentials" msgstr "认证证书" -#: core/models.py:1980 +#: core/models.py:1822 msgid "you can only have one default CRM provider" msgstr "只能有一个默认 CRM 提供商" -#: core/models.py:1984 +#: core/models.py:1826 msgid "CRM" msgstr "客户关系管理" -#: core/models.py:1985 +#: core/models.py:1827 msgid "CRMs" msgstr "客户关系管理" -#: core/models.py:1997 +#: core/models.py:1839 msgid "order CRM link" msgstr "订单的客户关系管理链接" -#: core/models.py:1998 +#: core/models.py:1840 msgid "orders CRM links" msgstr "订单的客户关系管理链接" -#: core/models.py:2032 +#: core/models.py:1874 msgid "download" msgstr "下载" -#: core/models.py:2033 +#: core/models.py:1875 msgid "downloads" msgstr "下载" -#: core/models.py:2041 +#: core/models.py:1883 msgid "you can not download a digital asset for a non-finished order" msgstr "您无法下载未完成订单的数字资产" -#: core/models.py:2071 +#: core/models.py:1913 msgid "user-provided comments about their experience with the product" msgstr "用户提供的产品使用体验评论" -#: core/models.py:2072 +#: core/models.py:1914 msgid "feedback comments" msgstr "反馈意见" -#: core/models.py:2079 +#: core/models.py:1921 msgid "" "references the specific product in an order that this feedback is about" msgstr "引用该反馈意见涉及的订单中的具体产品" -#: core/models.py:2080 +#: core/models.py:1922 msgid "related order product" msgstr "相关订购产品" -#: core/models.py:2085 +#: core/models.py:1927 msgid "user-assigned rating for the product" msgstr "用户对产品的评分" -#: core/models.py:2086 +#: core/models.py:1928 msgid "product rating" msgstr "产品评级" -#: core/models.py:2096 -msgid "feedback" -msgstr "反馈意见" - #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." @@ -2111,6 +2220,26 @@ msgstr "您必须提供评论、评级和订单产品 uuid 才能添加反馈。 msgid "error during promocode creation: {e!s}" msgstr "创建促销代码时出错:{e!s}" +#: core/sitemaps.py:17 +msgid "Home" +msgstr "首页" + +#: core/sitemaps.py:22 +msgid "Contact Us" +msgstr "联系我们" + +#: core/sitemaps.py:27 +msgid "About Us" +msgstr "关于我们" + +#: core/sitemaps.py:32 +msgid "Payment Information" +msgstr "付款信息" + +#: core/sitemaps.py:41 +msgid "Delivery" +msgstr "送货" + #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 #: core/templates/digital_order_delivered_email.html:6 diff --git a/core/management/commands/__init__.py b/core/management/commands/__init__.py index 524885a7..91990fd1 100644 --- a/core/management/commands/__init__.py +++ b/core/management/commands/__init__.py @@ -5,3 +5,38 @@ class RootDirectory: def __init__(self): self.label = "root" self.path = settings.BASE_DIR / "evibes" + + +# Mapping from Django locale codes to DeepL API codes +DEEPL_TARGET_LANGUAGES_MAPPING = { + "ar-ar": "AR", + "cs-cz": "CS", + "da-dk": "DA", + "de-de": "DE", + "en-gb": "EN-GB", + "en-us": "EN-US", + "es-es": "ES", + "fa-ir": "unsupported", + "fr-fr": "FR", + "he-il": "HE", + "hi-in": "unsupported", + "hr-hr": "unsupported", + "id-id": "ID", + "it-it": "IT", + "ja-jp": "JA", + "kk-kz": "unsupported", + "ko-kr": "KO", + "nl-nl": "NL", + "no-no": "NB", + "pl-pl": "PL", + "pt-br": "PT-BR", + "ro-ro": "RO", + "ru-ru": "RU", + "sv-se": "SV", + "th-th": "TH", + "tr-tr": "TR", + "vi-vn": "VI", + "zh-hans": "ZH-HANS", +} + +TRANSLATABLE_APPS = ["core", "vibes_auth", "blog", "payments", "root"] diff --git a/core/management/commands/check_translated.py b/core/management/commands/check_translated.py index b7a4683a..3137fe36 100644 --- a/core/management/commands/check_translated.py +++ b/core/management/commands/check_translated.py @@ -5,9 +5,10 @@ from tempfile import NamedTemporaryFile import polib from django.apps import apps +from django.conf import settings from django.core.management.base import BaseCommand, CommandError -from core.management.commands import RootDirectory +from core.management.commands import RootDirectory, TRANSLATABLE_APPS # Patterns to identify placeholders PLACEHOLDER_REGEXES = [ @@ -93,13 +94,19 @@ class Command(BaseCommand): def handle(self, *args, **options) -> None: langs: list[str] = options["target_languages"] + if "ALL" in langs: + langs = list(dict(settings.LANGUAGES).keys()) apps_to_scan: set[str] = set(options["target_apps"]) + if "ALL" in apps_to_scan: + apps_to_scan = set(TRANSLATABLE_APPS) root_path: str = options.get("root_path") or "/app/" configs = list(apps.get_app_configs()) # noinspection PyTypeChecker configs.append(RootDirectory()) # type: ignore [arg-type] + errors = 0 + for app_conf in configs: if app_conf.label not in apps_to_scan: continue @@ -143,6 +150,7 @@ class Command(BaseCommand): if app_issues: self.stdout.write(f"→ App: {app_conf.label}") for line in app_issues: + errors += 1 self.stdout.write(line) self.stdout.write("") else: @@ -151,3 +159,5 @@ class Command(BaseCommand): self.stdout.write("") self.stdout.write(self.style.SUCCESS("Done scanning.")) + if errors: + exit(1) diff --git a/core/management/commands/deepl_translate.py b/core/management/commands/deepl_translate.py index 70f4c9f1..b7075ae2 100644 --- a/core/management/commands/deepl_translate.py +++ b/core/management/commands/deepl_translate.py @@ -7,29 +7,7 @@ import requests from django.apps import apps from django.core.management.base import BaseCommand, CommandError -from core.management.commands import RootDirectory - -# Mapping from Django locale codes to DeepL API codes -DEEPL_TARGET_LANGUAGES_MAPPING = { - "en-gb": "EN-GB", - "ar-ar": "AR", - "cs-cz": "CS", - "da-dk": "DA", - "de-de": "DE", - "en-us": "EN-US", - "es-es": "ES", - "fr-fr": "FR", - "hi-in": "unsupported", - "it-it": "IT", - "ja-jp": "JA", - "kk-kz": "unsupported", - "nl-nl": "NL", - "pl-pl": "PL", - "pt-br": "PT-BR", - "ro-ro": "RO", - "ru-ru": "RU", - "zh-hans": "ZH-HANS", -} +from core.management.commands import RootDirectory, DEEPL_TARGET_LANGUAGES_MAPPING, TRANSLATABLE_APPS # Patterns to identify placeholders PLACEHOLDER_REGEXES = [ @@ -107,7 +85,7 @@ class Command(BaseCommand): action="append", required=True, metavar="LANG", - help="Locale code for translation, e.g. de-DE, fr-FR.", + help="Locale code for translation, e.g. de-DE, fr-FR. Use ALL to translate all languages.", ) parser.add_argument( "-a", @@ -116,12 +94,20 @@ class Command(BaseCommand): action="append", required=True, metavar="APP", - help="App label for translation, e.g. core, payments.", + help="App label for translation, e.g. core, payments. Use ALL to translate all apps.", ) def handle(self, *args, **options) -> None: target_langs = options["target_languages"] + if "ALL" in target_langs: + target_langs = DEEPL_TARGET_LANGUAGES_MAPPING.keys() target_apps = set(options["target_apps"]) + if "ALL" in target_apps: + target_apps = { + app_conf.label + for app_conf in list(apps.get_app_configs()) + [RootDirectory()] + if app_conf.label in TRANSLATABLE_APPS + } auth_key = os.environ.get("DEEPL_AUTH_KEY") if not auth_key: raise CommandError("DEEPL_AUTH_KEY not set") diff --git a/core/management/commands/translate_fields.py b/core/management/commands/translate_fields.py index 53538b4f..2b0093df 100644 --- a/core/management/commands/translate_fields.py +++ b/core/management/commands/translate_fields.py @@ -5,28 +5,9 @@ import requests from django.core.management.base import BaseCommand, CommandError from django.db import transaction -DEEPL_API_URL = "https://api.deepl.com/v2/translate" +from core.management.commands import DEEPL_TARGET_LANGUAGES_MAPPING -DEEPL_TARGET_LANGUAGES_MAPPING = { - "en-gb": "EN-GB", - "ar-ar": "AR", - "cs-cz": "CS", - "da-dk": "DA", - "de-de": "DE", - "en-us": "EN-US", - "es-es": "ES", - "fr-fr": "FR", - "hi-in": "unsupported", - "it-it": "IT", - "ja-jp": "JA", - "kk-kz": "unsupported", - "nl-nl": "NL", - "pl-pl": "PL", - "pt-br": "PT-BR", - "ro-ro": "RO", - "ru-ru": "RU", - "zh-hans": "ZH-HANS", -} +DEEPL_API_URL = "https://api.deepl.com/v2/translate" class Command(BaseCommand): diff --git a/core/migrations/0042_attribute_name_fa_ir_attribute_name_he_il_and_more.py b/core/migrations/0042_attribute_name_fa_ir_attribute_name_he_il_and_more.py new file mode 100644 index 00000000..e03ede17 --- /dev/null +++ b/core/migrations/0042_attribute_name_fa_ir_attribute_name_he_il_and_more.py @@ -0,0 +1,1262 @@ +# Generated by Django 5.2 on 2025-09-19 11:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("core", "0041_alter_customerrelationshipmanagementprovider_options"), + ] + + operations = [ + migrations.AddField( + model_name="attribute", + name="name_fa_ir", + field=models.CharField( + help_text="name of this attribute", + max_length=255, + null=True, + unique=True, + verbose_name="attribute's name", + ), + ), + migrations.AddField( + model_name="attribute", + name="name_he_il", + field=models.CharField( + help_text="name of this attribute", + max_length=255, + null=True, + unique=True, + verbose_name="attribute's name", + ), + ), + migrations.AddField( + model_name="attribute", + name="name_hr_hr", + field=models.CharField( + help_text="name of this attribute", + max_length=255, + null=True, + unique=True, + verbose_name="attribute's name", + ), + ), + migrations.AddField( + model_name="attribute", + name="name_id_id", + field=models.CharField( + help_text="name of this attribute", + max_length=255, + null=True, + unique=True, + verbose_name="attribute's name", + ), + ), + migrations.AddField( + model_name="attribute", + name="name_ko_kr", + field=models.CharField( + help_text="name of this attribute", + max_length=255, + null=True, + unique=True, + verbose_name="attribute's name", + ), + ), + migrations.AddField( + model_name="attribute", + name="name_no_no", + field=models.CharField( + help_text="name of this attribute", + max_length=255, + null=True, + unique=True, + verbose_name="attribute's name", + ), + ), + migrations.AddField( + model_name="attribute", + name="name_sv_se", + field=models.CharField( + help_text="name of this attribute", + max_length=255, + null=True, + unique=True, + verbose_name="attribute's name", + ), + ), + migrations.AddField( + model_name="attribute", + name="name_th_th", + field=models.CharField( + help_text="name of this attribute", + max_length=255, + null=True, + unique=True, + verbose_name="attribute's name", + ), + ), + migrations.AddField( + model_name="attribute", + name="name_tr_tr", + field=models.CharField( + help_text="name of this attribute", + max_length=255, + null=True, + unique=True, + verbose_name="attribute's name", + ), + ), + migrations.AddField( + model_name="attribute", + name="name_vi_vn", + field=models.CharField( + help_text="name of this attribute", + max_length=255, + null=True, + unique=True, + verbose_name="attribute's name", + ), + ), + migrations.AddField( + model_name="attributegroup", + name="name_fa_ir", + field=models.CharField( + help_text="attribute group's name", + max_length=255, + null=True, + unique=True, + verbose_name="attribute group's name", + ), + ), + migrations.AddField( + model_name="attributegroup", + name="name_he_il", + field=models.CharField( + help_text="attribute group's name", + max_length=255, + null=True, + unique=True, + verbose_name="attribute group's name", + ), + ), + migrations.AddField( + model_name="attributegroup", + name="name_hr_hr", + field=models.CharField( + help_text="attribute group's name", + max_length=255, + null=True, + unique=True, + verbose_name="attribute group's name", + ), + ), + migrations.AddField( + model_name="attributegroup", + name="name_id_id", + field=models.CharField( + help_text="attribute group's name", + max_length=255, + null=True, + unique=True, + verbose_name="attribute group's name", + ), + ), + migrations.AddField( + model_name="attributegroup", + name="name_ko_kr", + field=models.CharField( + help_text="attribute group's name", + max_length=255, + null=True, + unique=True, + verbose_name="attribute group's name", + ), + ), + migrations.AddField( + model_name="attributegroup", + name="name_no_no", + field=models.CharField( + help_text="attribute group's name", + max_length=255, + null=True, + unique=True, + verbose_name="attribute group's name", + ), + ), + migrations.AddField( + model_name="attributegroup", + name="name_sv_se", + field=models.CharField( + help_text="attribute group's name", + max_length=255, + null=True, + unique=True, + verbose_name="attribute group's name", + ), + ), + migrations.AddField( + model_name="attributegroup", + name="name_th_th", + field=models.CharField( + help_text="attribute group's name", + max_length=255, + null=True, + unique=True, + verbose_name="attribute group's name", + ), + ), + migrations.AddField( + model_name="attributegroup", + name="name_tr_tr", + field=models.CharField( + help_text="attribute group's name", + max_length=255, + null=True, + unique=True, + verbose_name="attribute group's name", + ), + ), + migrations.AddField( + model_name="attributegroup", + name="name_vi_vn", + field=models.CharField( + help_text="attribute group's name", + max_length=255, + null=True, + unique=True, + verbose_name="attribute group's name", + ), + ), + migrations.AddField( + model_name="attributevalue", + name="value_fa_ir", + field=models.TextField( + help_text="the specific value for this attribute", + null=True, + verbose_name="attribute value", + ), + ), + migrations.AddField( + model_name="attributevalue", + name="value_he_il", + field=models.TextField( + help_text="the specific value for this attribute", + null=True, + verbose_name="attribute value", + ), + ), + migrations.AddField( + model_name="attributevalue", + name="value_hr_hr", + field=models.TextField( + help_text="the specific value for this attribute", + null=True, + verbose_name="attribute value", + ), + ), + migrations.AddField( + model_name="attributevalue", + name="value_id_id", + field=models.TextField( + help_text="the specific value for this attribute", + null=True, + verbose_name="attribute value", + ), + ), + migrations.AddField( + model_name="attributevalue", + name="value_ko_kr", + field=models.TextField( + help_text="the specific value for this attribute", + null=True, + verbose_name="attribute value", + ), + ), + migrations.AddField( + model_name="attributevalue", + name="value_no_no", + field=models.TextField( + help_text="the specific value for this attribute", + null=True, + verbose_name="attribute value", + ), + ), + migrations.AddField( + model_name="attributevalue", + name="value_sv_se", + field=models.TextField( + help_text="the specific value for this attribute", + null=True, + verbose_name="attribute value", + ), + ), + migrations.AddField( + model_name="attributevalue", + name="value_th_th", + field=models.TextField( + help_text="the specific value for this attribute", + null=True, + verbose_name="attribute value", + ), + ), + migrations.AddField( + model_name="attributevalue", + name="value_tr_tr", + field=models.TextField( + help_text="the specific value for this attribute", + null=True, + verbose_name="attribute value", + ), + ), + migrations.AddField( + model_name="attributevalue", + name="value_vi_vn", + field=models.TextField( + help_text="the specific value for this attribute", + null=True, + verbose_name="attribute value", + ), + ), + migrations.AddField( + model_name="brand", + name="description_fa_ir", + field=models.TextField( + blank=True, + help_text="add a detailed description of the brand", + null=True, + verbose_name="brand description", + ), + ), + migrations.AddField( + model_name="brand", + name="description_he_il", + field=models.TextField( + blank=True, + help_text="add a detailed description of the brand", + null=True, + verbose_name="brand description", + ), + ), + migrations.AddField( + model_name="brand", + name="description_hr_hr", + field=models.TextField( + blank=True, + help_text="add a detailed description of the brand", + null=True, + verbose_name="brand description", + ), + ), + migrations.AddField( + model_name="brand", + name="description_id_id", + field=models.TextField( + blank=True, + help_text="add a detailed description of the brand", + null=True, + verbose_name="brand description", + ), + ), + migrations.AddField( + model_name="brand", + name="description_ko_kr", + field=models.TextField( + blank=True, + help_text="add a detailed description of the brand", + null=True, + verbose_name="brand description", + ), + ), + migrations.AddField( + model_name="brand", + name="description_no_no", + field=models.TextField( + blank=True, + help_text="add a detailed description of the brand", + null=True, + verbose_name="brand description", + ), + ), + migrations.AddField( + model_name="brand", + name="description_sv_se", + field=models.TextField( + blank=True, + help_text="add a detailed description of the brand", + null=True, + verbose_name="brand description", + ), + ), + migrations.AddField( + model_name="brand", + name="description_th_th", + field=models.TextField( + blank=True, + help_text="add a detailed description of the brand", + null=True, + verbose_name="brand description", + ), + ), + migrations.AddField( + model_name="brand", + name="description_tr_tr", + field=models.TextField( + blank=True, + help_text="add a detailed description of the brand", + null=True, + verbose_name="brand description", + ), + ), + migrations.AddField( + model_name="brand", + name="description_vi_vn", + field=models.TextField( + blank=True, + help_text="add a detailed description of the brand", + null=True, + verbose_name="brand description", + ), + ), + migrations.AddField( + model_name="category", + name="description_fa_ir", + field=models.TextField( + blank=True, + help_text="add a detailed description for this category", + null=True, + verbose_name="category description", + ), + ), + migrations.AddField( + model_name="category", + name="description_he_il", + field=models.TextField( + blank=True, + help_text="add a detailed description for this category", + null=True, + verbose_name="category description", + ), + ), + migrations.AddField( + model_name="category", + name="description_hr_hr", + field=models.TextField( + blank=True, + help_text="add a detailed description for this category", + null=True, + verbose_name="category description", + ), + ), + migrations.AddField( + model_name="category", + name="description_id_id", + field=models.TextField( + blank=True, + help_text="add a detailed description for this category", + null=True, + verbose_name="category description", + ), + ), + migrations.AddField( + model_name="category", + name="description_ko_kr", + field=models.TextField( + blank=True, + help_text="add a detailed description for this category", + null=True, + verbose_name="category description", + ), + ), + migrations.AddField( + model_name="category", + name="description_no_no", + field=models.TextField( + blank=True, + help_text="add a detailed description for this category", + null=True, + verbose_name="category description", + ), + ), + migrations.AddField( + model_name="category", + name="description_sv_se", + field=models.TextField( + blank=True, + help_text="add a detailed description for this category", + null=True, + verbose_name="category description", + ), + ), + migrations.AddField( + model_name="category", + name="description_th_th", + field=models.TextField( + blank=True, + help_text="add a detailed description for this category", + null=True, + verbose_name="category description", + ), + ), + migrations.AddField( + model_name="category", + name="description_tr_tr", + field=models.TextField( + blank=True, + help_text="add a detailed description for this category", + null=True, + verbose_name="category description", + ), + ), + migrations.AddField( + model_name="category", + name="description_vi_vn", + field=models.TextField( + blank=True, + help_text="add a detailed description for this category", + null=True, + verbose_name="category description", + ), + ), + migrations.AddField( + model_name="category", + name="name_fa_ir", + field=models.CharField( + help_text="provide a name for this category", + max_length=255, + null=True, + unique=True, + verbose_name="category name", + ), + ), + migrations.AddField( + model_name="category", + name="name_he_il", + field=models.CharField( + help_text="provide a name for this category", + max_length=255, + null=True, + unique=True, + verbose_name="category name", + ), + ), + migrations.AddField( + model_name="category", + name="name_hr_hr", + field=models.CharField( + help_text="provide a name for this category", + max_length=255, + null=True, + unique=True, + verbose_name="category name", + ), + ), + migrations.AddField( + model_name="category", + name="name_id_id", + field=models.CharField( + help_text="provide a name for this category", + max_length=255, + null=True, + unique=True, + verbose_name="category name", + ), + ), + migrations.AddField( + model_name="category", + name="name_ko_kr", + field=models.CharField( + help_text="provide a name for this category", + max_length=255, + null=True, + unique=True, + verbose_name="category name", + ), + ), + migrations.AddField( + model_name="category", + name="name_no_no", + field=models.CharField( + help_text="provide a name for this category", + max_length=255, + null=True, + unique=True, + verbose_name="category name", + ), + ), + migrations.AddField( + model_name="category", + name="name_sv_se", + field=models.CharField( + help_text="provide a name for this category", + max_length=255, + null=True, + unique=True, + verbose_name="category name", + ), + ), + migrations.AddField( + model_name="category", + name="name_th_th", + field=models.CharField( + help_text="provide a name for this category", + max_length=255, + null=True, + unique=True, + verbose_name="category name", + ), + ), + migrations.AddField( + model_name="category", + name="name_tr_tr", + field=models.CharField( + help_text="provide a name for this category", + max_length=255, + null=True, + unique=True, + verbose_name="category name", + ), + ), + migrations.AddField( + model_name="category", + name="name_vi_vn", + field=models.CharField( + help_text="provide a name for this category", + max_length=255, + null=True, + unique=True, + verbose_name="category name", + ), + ), + migrations.AddField( + model_name="categorytag", + name="name_fa_ir", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="categorytag", + name="name_he_il", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="categorytag", + name="name_hr_hr", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="categorytag", + name="name_id_id", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="categorytag", + name="name_ko_kr", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="categorytag", + name="name_no_no", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="categorytag", + name="name_sv_se", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="categorytag", + name="name_th_th", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="categorytag", + name="name_tr_tr", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="categorytag", + name="name_vi_vn", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="product", + name="description_fa_ir", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="product description", + ), + ), + migrations.AddField( + model_name="product", + name="description_he_il", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="product description", + ), + ), + migrations.AddField( + model_name="product", + name="description_hr_hr", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="product description", + ), + ), + migrations.AddField( + model_name="product", + name="description_id_id", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="product description", + ), + ), + migrations.AddField( + model_name="product", + name="description_ko_kr", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="product description", + ), + ), + migrations.AddField( + model_name="product", + name="description_no_no", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="product description", + ), + ), + migrations.AddField( + model_name="product", + name="description_sv_se", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="product description", + ), + ), + migrations.AddField( + model_name="product", + name="description_th_th", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="product description", + ), + ), + migrations.AddField( + model_name="product", + name="description_tr_tr", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="product description", + ), + ), + migrations.AddField( + model_name="product", + name="description_vi_vn", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="product description", + ), + ), + migrations.AddField( + model_name="product", + name="name_fa_ir", + field=models.CharField( + help_text="provide a clear identifying name for the product", + max_length=255, + null=True, + verbose_name="product name", + ), + ), + migrations.AddField( + model_name="product", + name="name_he_il", + field=models.CharField( + help_text="provide a clear identifying name for the product", + max_length=255, + null=True, + verbose_name="product name", + ), + ), + migrations.AddField( + model_name="product", + name="name_hr_hr", + field=models.CharField( + help_text="provide a clear identifying name for the product", + max_length=255, + null=True, + verbose_name="product name", + ), + ), + migrations.AddField( + model_name="product", + name="name_id_id", + field=models.CharField( + help_text="provide a clear identifying name for the product", + max_length=255, + null=True, + verbose_name="product name", + ), + ), + migrations.AddField( + model_name="product", + name="name_ko_kr", + field=models.CharField( + help_text="provide a clear identifying name for the product", + max_length=255, + null=True, + verbose_name="product name", + ), + ), + migrations.AddField( + model_name="product", + name="name_no_no", + field=models.CharField( + help_text="provide a clear identifying name for the product", + max_length=255, + null=True, + verbose_name="product name", + ), + ), + migrations.AddField( + model_name="product", + name="name_sv_se", + field=models.CharField( + help_text="provide a clear identifying name for the product", + max_length=255, + null=True, + verbose_name="product name", + ), + ), + migrations.AddField( + model_name="product", + name="name_th_th", + field=models.CharField( + help_text="provide a clear identifying name for the product", + max_length=255, + null=True, + verbose_name="product name", + ), + ), + migrations.AddField( + model_name="product", + name="name_tr_tr", + field=models.CharField( + help_text="provide a clear identifying name for the product", + max_length=255, + null=True, + verbose_name="product name", + ), + ), + migrations.AddField( + model_name="product", + name="name_vi_vn", + field=models.CharField( + help_text="provide a clear identifying name for the product", + max_length=255, + null=True, + verbose_name="product name", + ), + ), + migrations.AddField( + model_name="producttag", + name="name_fa_ir", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="producttag", + name="name_he_il", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="producttag", + name="name_hr_hr", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="producttag", + name="name_id_id", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="producttag", + name="name_ko_kr", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="producttag", + name="name_no_no", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="producttag", + name="name_sv_se", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="producttag", + name="name_th_th", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="producttag", + name="name_tr_tr", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="producttag", + name="name_vi_vn", + field=models.CharField( + help_text="user-friendly name for the product tag", + max_length=255, + null=True, + unique=True, + verbose_name="tag display name", + ), + ), + migrations.AddField( + model_name="promotion", + name="description_fa_ir", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="promotion description", + ), + ), + migrations.AddField( + model_name="promotion", + name="description_he_il", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="promotion description", + ), + ), + migrations.AddField( + model_name="promotion", + name="description_hr_hr", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="promotion description", + ), + ), + migrations.AddField( + model_name="promotion", + name="description_id_id", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="promotion description", + ), + ), + migrations.AddField( + model_name="promotion", + name="description_ko_kr", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="promotion description", + ), + ), + migrations.AddField( + model_name="promotion", + name="description_no_no", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="promotion description", + ), + ), + migrations.AddField( + model_name="promotion", + name="description_sv_se", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="promotion description", + ), + ), + migrations.AddField( + model_name="promotion", + name="description_th_th", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="promotion description", + ), + ), + migrations.AddField( + model_name="promotion", + name="description_tr_tr", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="promotion description", + ), + ), + migrations.AddField( + model_name="promotion", + name="description_vi_vn", + field=models.TextField( + blank=True, + help_text="add a detailed description of the product", + null=True, + verbose_name="promotion description", + ), + ), + migrations.AddField( + model_name="promotion", + name="name_fa_ir", + field=models.CharField( + help_text="provide a unique name for this promotion", + max_length=256, + null=True, + unique=True, + verbose_name="promotion name", + ), + ), + migrations.AddField( + model_name="promotion", + name="name_he_il", + field=models.CharField( + help_text="provide a unique name for this promotion", + max_length=256, + null=True, + unique=True, + verbose_name="promotion name", + ), + ), + migrations.AddField( + model_name="promotion", + name="name_hr_hr", + field=models.CharField( + help_text="provide a unique name for this promotion", + max_length=256, + null=True, + unique=True, + verbose_name="promotion name", + ), + ), + migrations.AddField( + model_name="promotion", + name="name_id_id", + field=models.CharField( + help_text="provide a unique name for this promotion", + max_length=256, + null=True, + unique=True, + verbose_name="promotion name", + ), + ), + migrations.AddField( + model_name="promotion", + name="name_ko_kr", + field=models.CharField( + help_text="provide a unique name for this promotion", + max_length=256, + null=True, + unique=True, + verbose_name="promotion name", + ), + ), + migrations.AddField( + model_name="promotion", + name="name_no_no", + field=models.CharField( + help_text="provide a unique name for this promotion", + max_length=256, + null=True, + unique=True, + verbose_name="promotion name", + ), + ), + migrations.AddField( + model_name="promotion", + name="name_sv_se", + field=models.CharField( + help_text="provide a unique name for this promotion", + max_length=256, + null=True, + unique=True, + verbose_name="promotion name", + ), + ), + migrations.AddField( + model_name="promotion", + name="name_th_th", + field=models.CharField( + help_text="provide a unique name for this promotion", + max_length=256, + null=True, + unique=True, + verbose_name="promotion name", + ), + ), + migrations.AddField( + model_name="promotion", + name="name_tr_tr", + field=models.CharField( + help_text="provide a unique name for this promotion", + max_length=256, + null=True, + unique=True, + verbose_name="promotion name", + ), + ), + migrations.AddField( + model_name="promotion", + name="name_vi_vn", + field=models.CharField( + help_text="provide a unique name for this promotion", + max_length=256, + null=True, + unique=True, + verbose_name="promotion name", + ), + ), + ] diff --git a/core/models.py b/core/models.py index 2b8c0349..e5e2303f 100644 --- a/core/models.py +++ b/core/models.py @@ -66,29 +66,12 @@ logger = logging.getLogger("django") class AttributeGroup(ExportModelOperationsMixin("attribute_group"), NiceModel): # type: ignore [misc, django-manager-missing] - """ - Represents a group of attributes, which can be hierarchical. - - This class is used to manage and organize attribute groups. An attribute - group can have a parent group, forming a hierarchical structure. This can - be useful for categorizing and managing attributes more effectively in a - complex system. - - Attributes: - parent (Self): A foreign key referencing the parent of this group. It - can be null or blank if the group does not have a parent. The parent - group organizes the hierarchical structure. - name (str): The unique name of the attribute group. It is limited to a - maximum of 255 characters. - is_publicly_visible (bool): Indicates if the attribute group is visible - publicly. - - Meta: - verbose_name: A human-readable name for the class, set to 'attribute - group'. - verbose_name_plural: A human-readable plural name for the class, set to - 'attribute groups'. - """ + __doc__ = _( + "Represents a group of attributes, which can be hierarchical." + " This class is used to manage and organize attribute groups." + " An attribute group can have a parent group, forming a hierarchical structure." + " This can be useful for categorizing and managing attributes more effectively in acomplex system." + ) is_publicly_visible = True attributes: QuerySet["Attribute"] @@ -119,33 +102,14 @@ class AttributeGroup(ExportModelOperationsMixin("attribute_group"), NiceModel): class Vendor(ExportModelOperationsMixin("vendor"), NiceModel): # type: ignore [misc, django-manager-missing] - """ - Represents a vendor entity capable of storing information about external vendors and - their interaction requirements. - - The Vendor class is used to define and manage information related to an external vendor. - It stores the vendor's name, authentication details required for communication, - and the percentage markup applied to products retrieved from the vendor. This model also - maintains additional metadata and constraints, making it suitable for use in systems - that interact with third-party vendors. - - Attributes: - authentication (dict): Credentials and endpoint information required for vendor - communication, stored in a JSON field. - markup_percent (int): The markup percentage applied to products sent by this - vendor. Must be an integer between 0 and 100 inclusive. - name (str): The unique name of the vendor, with a maximum length of 255 - characters. - - Meta: - verbose_name (str): Singular name of the vendor entity ("vendor"). - verbose_name_plural (str): Plural name of the vendor entities ("vendors"). - indexes (list): List of database indexes applied to this model, including a - GIN index on the 'authentication' field. - - Returns: - str: The vendor's name when the instance is represented as a string. - """ + __doc__ = _( + "Represents a vendor entity capable of storing information about external vendors and their interaction requirements." + " The Vendor class is used to define and manage information related to an external vendor." + " It stores the vendor's name, authentication details required for communication," + " and the percentage markup applied to products retrieved from the vendor." + " This model also maintains additional metadata and constraints," + " making it suitable for use in systems that interact with third-party vendors." + ) is_publicly_visible = False @@ -195,21 +159,12 @@ class Vendor(ExportModelOperationsMixin("vendor"), NiceModel): # type: ignore [ class ProductTag(ExportModelOperationsMixin("product_tag"), NiceModel): # type: ignore [misc, django-manager-missing] - """ - Represents a product tag used for classifying or identifying products. - - The ProductTag class is designed to uniquely identify and classify products - through a combination of an internal tag identifier and a user-friendly - display name. It supports operations exported through mixins and provides - metadata customization for administrative purposes. - - Attributes: - is_publicly_visible: A boolean indicating whether the tag is publicly - visible. - tag_name: Internal tag identifier for the product tag. - name: User-friendly name for the product tag. - - """ + __doc__ = _( + "Represents a product tag used for classifying or identifying products." + " The ProductTag class is designed to uniquely identify and classify products through a combination" + " of an internal tag identifier and a user-friendly display name." + " It supports operations exported through mixins and provides metadata customization for administrative purposes." + ) is_publicly_visible = True @@ -236,18 +191,11 @@ class ProductTag(ExportModelOperationsMixin("product_tag"), NiceModel): # type: class CategoryTag(ExportModelOperationsMixin("category_tag"), NiceModel): # type: ignore [misc, django-manager-missing] - """ - Represents a category tag used for products. - - This class models a category tag that can be used to associate and classify products. - It includes attributes for an internal tag identifier and a user-friendly display name. - - Attributes: - is_publicly_visible (bool): Indicates if the category tag is publicly visible. - tag_name (str): Internal tag identifier for the product tag. - name (str): User-friendly name for the product tag. - - """ + __doc__ = _( + "Represents a category tag used for products." + " This class models a category tag that can be used to associate and classify products." + " It includes attributes for an internal tag identifier and a user-friendly display name." + ) is_publicly_visible = True @@ -274,72 +222,15 @@ class CategoryTag(ExportModelOperationsMixin("category_tag"), NiceModel): # typ class Category(ExportModelOperationsMixin("category"), NiceModel, MPTTModel): # type: ignore [misc, django-manager-missing] - """ - Represents a category entity to organize and group related items in a hierarchical - structure. Categories may have hierarchical relationships with other categories, - supporting parent-child relationships. The class includes fields for metadata and - visual representation, which serve as a foundation for category-related features. - - This class is typically used to define and manage product categories or other similar - groupings within an application, allowing users or administrators to specify the - name, description, and hierarchy of categories, as well as assign attributes like - images, tags, or priority. - - Attributes - ---------- - is_publicly_visible - A flag indicating whether the category is visible to the public. - - image : ImageField - Represents an optional image associated with the category. The image is used - to visually represent the category. - - markup_percent - Specifies the markup percentage for products in this category. It is validated - to ensure values fall between 0 and 100. - - parent - Represents the parent category in a hierarchical structure. This forms category - relationships to enable nesting. - - name - The name of the category, which also must be unique. This serves as the primary - identifier for the category. - - description - An optional detailed description explaining the purpose or details of the category. - - slug - A unique, auto-generated field created from the category's name and parent name, - suitable for use in URLs and identifying the category. - - tags - Optional tags used to group or describe the category better. - - priority - Represents the priority of the category, which could be used for sorting or - rendering purposes. - - Methods - ------- - __str__() - Returns the name of the category as its string representation. - - get_tree_depth() - Computes the depth of the category in the hierarchical structure. It determines - the maximum depth of its descendants or returns zero if the category is a leaf. - - ------------ - verbose_name - Specifies the singular human-readable name for the category model. - - verbose_name_plural - Specifies the plural human-readable name for the category model. - - ordering : list - Defines the default ordering for category instances, based on their hierarchical - structure. - """ + __doc__ = _( + "Represents a category entity to organize and group related items in a hierarchical structure." + " Categories may have hierarchical relationships with other categories, supporting parent-child relationships." + " The class includes fields for metadata and visual representation," + " which serve as a foundation for category-related features." + " This class is typically used to define and manage product categories or other similar groupings within an application," + " allowing users or administrators to specify the name, description, and hierarchy of categories," + " as well as assign attributes like images, tags, or priority." + ) is_publicly_visible = True @@ -505,25 +396,13 @@ class Brand(ExportModelOperationsMixin("brand"), NiceModel): # type: ignore [mi class Stock(ExportModelOperationsMixin("stock"), NiceModel): # type: ignore [misc, django-manager-missing] - """ - 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. - - Attributes: - is_publicly_visible (bool): Indicates if the stock is publicly visible. Defaults to False. - vendor (ForeignKey): The vendor supplying this product stock. - price (float): The final price to the customer after markups. - product (ForeignKey): The product associated with this stock entry. - purchase_price (float): The price paid to the vendor for this product. - quantity (int): Available quantity of the product in stock. - sku (str): Vendor-assigned SKU for identifying the product. - digital_asset (FileField): Digital file associated with this stock if applicable. - """ + __doc__ = _( + "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." + ) is_publicly_visible = False @@ -580,40 +459,14 @@ class Stock(ExportModelOperationsMixin("stock"), NiceModel): # type: ignore [mi class Product(ExportModelOperationsMixin("product"), NiceModel): # type: ignore [misc, django-manager-missing] - """ - Represents a product with attributes such as category, brand, tags, digital status, name, - description, part number, and slug. Provides related utility properties to retrieve - ratings, feedback counts, price, quantity, and total orders. Designed for use in a - system that handles e-commerce or inventory management. - - This class interacts with related models (such as Category, Brand, and ProductTag) and - manages caching for frequently accessed properties to improve performance. It is used - to define and manipulate product data and its associated information within - an application. - - Attributes: - is_publicly_visible (bool): Indicates whether the product is visible to the public. - category (Category): The category this product belongs to. - brand (Brand, optional): Optionally associates this product with a brand. - tags (ProductTag): Tags that help describe or group this product. - is_digital (bool): Indicates whether this product is digitally delivered. - name (str): The identifying name for the product. - description (str, optional): A detailed description of the product. - partnumber (str): The unique part number for this product. - slug (str, optional): Auto-generated unique slug for the product. - - Meta: - verbose_name (str): The singular name of the product model. - verbose_name_plural (str): The plural name of the product model. - - Properties: - rating (float): The average rating of the product, rounded to 2 decimal places. - feedbacks_count (int): The total number of feedback entries associated with the product. - price (float): The highest price of the product based on its stock, rounded to 2 decimal - places. - quantity (int): The total available quantity of the product across all its stocks. - total_orders (int): Counts the total orders made for the product in relevant statuses. - """ + __doc__ = _( + "Represents a product with attributes such as category, brand, tags, digital status, name, description, part number, and slug." + " Provides related utility properties to retrieve ratings, feedback counts, price, quantity, and total orders." + " Designed for use in a system that handles e-commerce or inventory management." + " This class interacts with related models (such as Category, Brand, and ProductTag) and manages caching" + " for frequently accessed properties to improve performance. It is used to define and manipulate product data and" + " its associated information within an application." + ) is_publicly_visible = True @@ -750,32 +603,14 @@ class Product(ExportModelOperationsMixin("product"), NiceModel): # type: ignore class Attribute(ExportModelOperationsMixin("attribute"), NiceModel): # type: ignore [misc, django-manager-missing] - """ - 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 for dynamic and flexible data - structuring. - - Attributes: - is_publicly_visible (bool): Denotes whether the attribute is publicly - visible. Defaults to True. - - categories (ManyToManyField): Categories to which this attribute - belongs. It is a many-to-many relationship with the `Category` model. - - group (ForeignKey): The group to which this attribute belongs. It is - a ForeignKey relation to the `AttributeGroup` model. - - value_type (CharField): The type of the attribute's value. Options - include string, integer, float, boolean, array, or object. - - name (CharField): The unique name of the attribute. - """ - + __doc__ = _( + "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 for dynamic and flexible data structuring." + ) is_publicly_visible = True categories = ManyToManyField( @@ -813,10 +648,20 @@ class Attribute(ExportModelOperationsMixin("attribute"), NiceModel): # type: ig unique=True, ) + is_filterable = BooleanField( + default=True, + verbose_name=_("is filterable"), + help_text=_("designates whether this attribute can be used for filtering or not"), + ) + def __str__(self): return self.name class Meta: + unique_together = ( + "name", + "group", + ) verbose_name = _("attribute") verbose_name_plural = _("attributes") @@ -1331,25 +1176,15 @@ class PromoCode(ExportModelOperationsMixin("promocode"), NiceModel): # type: ig class Order(ExportModelOperationsMixin("order"), NiceModel): # type: ignore [misc, django-manager-missing] - """ - 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 set, and shipping or billing - details updated. Equally, functionality supports managing the products in the order lifecycle. - - Attributes: - billing_address (Address): The billing address used for the order. - promo_code (PromoCode): An optional promo code applied to the order. - shipping_address (Address): The shipping address used for the order. - status (str): The current status of the order (e.g., PENDING, COMPLETED). - notifications (dict): JSON structure dictating notifications for the user. - attributes (dict): JSON representation of additional order-specific attributes. - user (User): The user who placed the order. - buy_time (datetime): Timestamp when the order was finalized. - human_readable_id (str): A unique human-readable identifier for the order. - """ + __doc__ = _( + "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 set," + " and shipping or billing details updated." + " Equally, functionality supports managing the products in the order lifecycle." + ) is_publicly_visible = False diff --git a/core/static/flags/fa-ir.png b/core/static/flags/fa-ir.png new file mode 100644 index 0000000000000000000000000000000000000000..edce631c302188c60442a0aac433e8edf6c09fee GIT binary patch literal 297 zcmV+^0oMMBP){*bX~Y}sM)mRL_}D%ZtFM#E zo%FDpm literal 0 HcmV?d00001 diff --git a/core/static/flags/he-il.png b/core/static/flags/he-il.png new file mode 100644 index 0000000000000000000000000000000000000000..242d659814cfbf6768d0046bf28f9177118f9be8 GIT binary patch literal 224 zcmV<603ZK}P)|0000pP)t-s064gg zrr_S?_I8umK4{7J`Ta_9&Hw-Zzs>Dhe$gRP!4E^cV};bFx#lxp#=_6;z|HNiv_7{0 z003x7L_t(I%k7g<4!|G?Ls5Z>I^F$Gy9+FXWd1DK`)*2sln{i%!Wx9WKzNxqcQlI$ zEA#0JC7E^AZkFWPk;~BI;8EBaof`oVYT3&;6##U?ca)IhEQ2E%<68q*%xmvw{wi#$ a!YvoorWc*5J#<6>0000$1MBnX!mFc`Ou%|EsJ2Utj;^Ba10f7WQ3hf|fMI%X>E-`_ zFj2BI3y`wPl~+$kGEjLops4iNc-0?u+jx^lh z-FcuplOz-pQ3|BH2b08nE(keSX{tC6LKG|F8u1zy3t$%rLi>GfJ-8s0>&Db4_&5ZC_<4F7?kzWxo*CTF0a usHcl#h{WaO1c{ggQ5l1lLkANQm>6EA8=jAT5oSd8r3JMw;8ray_jEsyxKtOqUd9Sapyu7@GgoGVKk{}=;n3$NaF-iIM z_r%1+IyySW#>R<>iDYDCUS3{saB$E^Q~BiP3{Rx;$;`*r>i+%x5fKrUm6f5Pp&=n5 zXo$SouDQ(R$f&!pzS^I;+ri;NC;$KfDoI2^R5;7ElUa9yFc5{A zkc2=$QCrF)D&W3VyYK)1XBE=OX%pr6VDC$EhVO8bnH$6SKUt<;GcCO~ymNYLt>;|n zAZrKI{qs}PrL2urZcjMD}0j<6#%NQZ_ zm{i^lr@3N|`N$`3xk*<@Xq5_cpK|4tmS>0MGTkDnZ7R$?y+N$JayLe`;>w(zX!`U( zb=C-N8m99ku@)?5XxRXcA0$`m<+%Zz!)z@%fY%0a0I-l4z{d%wy0!5JwOYfYx0Zbz z^lR|*Xdmmz)Z|wcGvbew$>as2nV7XXzX#}#-^Hw5nyEpvBhC)#nM@3s9>%rk?#nd# uY94)pwLBWE@brXxdcx0tGiSfTi|HFou@c^9+vDE=00003>q37?2~woC2VL++-S&T5WulvR_E0+ae)FBu3ZWTK5$nu)KtaKZC@#M9cT=L Mr>mdKI;Vst0Jw)Y)&Kwi literal 0 HcmV?d00001 diff --git a/core/static/flags/sv-se.png b/core/static/flags/sv-se.png new file mode 100644 index 0000000000000000000000000000000000000000..193d58dc9546b2069d0e574005e593bde7bea7db GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<`#0(_uwzYf%Qk(%kA+8KTlmDG&sPFd_U){6> zC@AIW;us=vIXNLAVaBWj49r{7+72;#`s}h2V(|Q|y#My}HReE744$rjF6*2UngAa| B9lrno literal 0 HcmV?d00001 diff --git a/core/static/flags/th-th.png b/core/static/flags/th-th.png new file mode 100644 index 0000000000000000000000000000000000000000..b43f2b4f390462f5f10a0d36858edfe2ae73a4fb GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<~#0(^h>s0>&DV_kI5LaC-uceZPXWFNH`TAqg z!g;fS;tHNFjv*44lQ~+M*_zIT7998>&&Of>lEI^pZ<4;p2OEay8RebD<_rgbY8gCT L{an^LB{Ts5URWU0 literal 0 HcmV?d00001 diff --git a/core/static/flags/tr-tr.png b/core/static/flags/tr-tr.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa010aa50b835b28b10530b5cb1fc4e205d74e2 GIT binary patch literal 279 zcmV+y0qFjTP)`c8pl%_Kxv$r&?wcO_ dhdXm8egNX51#^dANc{i+002ovPDHLkV1i6Adj7+p7^Q%&r?b;-|eNGfkE4X#S<2Bv@J;bW~NwT_)Lqf?dc1#LfeFd2hj%%G8h>W*74p|nLaZO PXdQ#6tDnm{r-UW|QKC;J literal 0 HcmV?d00001 diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.po b/evibes/locale/ar_AR/LC_MESSAGES/django.po index c68b386a..847e1d83 100644 --- a/evibes/locale/ar_AR/LC_MESSAGES/django.po +++ b/evibes/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/cs_CZ/LC_MESSAGES/django.po b/evibes/locale/cs_CZ/LC_MESSAGES/django.po index 1d800542..5fc1528b 100644 --- a/evibes/locale/cs_CZ/LC_MESSAGES/django.po +++ b/evibes/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/da_DK/LC_MESSAGES/django.po b/evibes/locale/da_DK/LC_MESSAGES/django.po index 00229b0f..b32d67ba 100644 --- a/evibes/locale/da_DK/LC_MESSAGES/django.po +++ b/evibes/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/de_DE/LC_MESSAGES/django.po b/evibes/locale/de_DE/LC_MESSAGES/django.po index 18881b39..c04068ad 100644 --- a/evibes/locale/de_DE/LC_MESSAGES/django.po +++ b/evibes/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/en_GB/LC_MESSAGES/django.po b/evibes/locale/en_GB/LC_MESSAGES/django.po index 224ca112..0fee5853 100644 --- a/evibes/locale/en_GB/LC_MESSAGES/django.po +++ b/evibes/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/en_US/LC_MESSAGES/django.po b/evibes/locale/en_US/LC_MESSAGES/django.po index 7dbb8d46..0f3e9ddc 100644 --- a/evibes/locale/en_US/LC_MESSAGES/django.po +++ b/evibes/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/es_ES/LC_MESSAGES/django.po b/evibes/locale/es_ES/LC_MESSAGES/django.po index 711a36f6..6c68d1c7 100644 --- a/evibes/locale/es_ES/LC_MESSAGES/django.po +++ b/evibes/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/fa_IR/LC_MESSAGES/django.mo b/evibes/locale/fa_IR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c5906d1cd061dff54de8b533942893de34efc9e GIT binary patch literal 337 zcmYL@Jx{|h5Qd9j%E-dP;DHUUz!pqFHI3Uw*h!U-O0b#M1fyU_j*H-j@b~yFTo(FD zk8Zg4bkFbc(a#8TfSe*{$RTop42h8wT;AXuI{#UD_pUbq(k-mD?~SvRtk~?4EjU^8 zqD=EFDs<<30NFQY3lF=dhsseBt#T;zrx|V_Q9)Dk#909{hlG)3PGx%joM$`|st-_k zW&2hI=P8-jLXeC}P9|KkR7_ct6ud0&v1*&0YBW?@eNZA;wx|b_i4fD)jGb@x9W;=s z, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: evibes/settings/constance.py:22 +msgid "Name of the project" +msgstr "" + +#: evibes/settings/constance.py:23 +msgid "Frontend domain name" +msgstr "" + +#: evibes/settings/constance.py:24 +msgid "Base domain name" +msgstr "" + +#: evibes/settings/constance.py:25 +msgid "Name of the company" +msgstr "" + +#: evibes/settings/constance.py:26 +msgid "Address of the company" +msgstr "" + +#: evibes/settings/constance.py:27 +msgid "Phone number of the company" +msgstr "" + +#: evibes/settings/constance.py:28 +msgid "SMTP host" +msgstr "" + +#: evibes/settings/constance.py:29 +msgid "SMTP port" +msgstr "" + +#: evibes/settings/constance.py:30 +msgid "Use TLS (0=No, 1=Yes)" +msgstr "" + +#: evibes/settings/constance.py:31 +msgid "Use SSL (0=No, 1=Yes)" +msgstr "" + +#: evibes/settings/constance.py:32 +msgid "SMTP username" +msgstr "" + +#: evibes/settings/constance.py:33 +msgid "SMTP password" +msgstr "" + +#: evibes/settings/constance.py:34 +msgid "Mail from option" +msgstr "" + +#: evibes/settings/constance.py:35 +msgid "Payment gateway URL" +msgstr "" + +#: evibes/settings/constance.py:36 +msgid "Payment gateway token" +msgstr "" + +#: evibes/settings/constance.py:37 +msgid "Payment gateway minimum amount" +msgstr "" + +#: evibes/settings/constance.py:38 +msgid "Payment gateway maximum amount" +msgstr "" + +#: evibes/settings/constance.py:39 +msgid "Exchange rate API key" +msgstr "" + +#: evibes/settings/constance.py:40 +msgid "OpenStreetMap Nominatim API URL" +msgstr "" + +#: evibes/settings/constance.py:41 +msgid "OpenAI API Key" +msgstr "" + +#: evibes/settings/constance.py:42 +msgid "Abstract API Key" +msgstr "" + +#: evibes/settings/constance.py:43 +msgid "HTTP Proxy" +msgstr "" + +#: evibes/settings/constance.py:44 +msgid "Disable buy functionality" +msgstr "" + +#: evibes/settings/constance.py:47 +msgid "An entity for storing advertisiment data" +msgstr "" + +#: evibes/settings/constance.py:49 +msgid "An entity for storing analytics data" +msgstr "" + +#: evibes/settings/constance.py:55 +msgid "General Options" +msgstr "" + +#: evibes/settings/constance.py:63 +msgid "Email Options" +msgstr "" + +#: evibes/settings/constance.py:72 +msgid "Payment Gateway Options" +msgstr "" + +#: evibes/settings/constance.py:79 +msgid "Features Options" +msgstr "" + +#: evibes/settings/constance.py:86 +msgid "SEO Options" +msgstr "" + +#: evibes/settings/jazzmin.py:20 +msgid "Home" +msgstr "" + +#: evibes/settings/jazzmin.py:21 +msgid "Storefront" +msgstr "" + +#: evibes/settings/jazzmin.py:24 +msgid "GraphQL Docs" +msgstr "" + +#: evibes/settings/jazzmin.py:29 +msgid "Platform REST Docs" +msgstr "" + +#: evibes/settings/jazzmin.py:34 +msgid "B2B REST Docs" +msgstr "" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "" diff --git a/evibes/locale/fr_FR/LC_MESSAGES/django.po b/evibes/locale/fr_FR/LC_MESSAGES/django.po index 15f50a74..a429896c 100644 --- a/evibes/locale/fr_FR/LC_MESSAGES/django.po +++ b/evibes/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/he_IL/LC_MESSAGES/django.mo b/evibes/locale/he_IL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..39b85b16b8cd6950938919b489d70f300dee0a97 GIT binary patch literal 2883 zcma)-U2IfE6vs!!uf zg4d$;Kfz})|0mktyn(UJnC}Fi1e4%n;5%Rpd=JDwHikcRUk!W)oQ(K6_ypz);8yT5 z_&oS?wEsK!D&{vMZh5fn{~-7h)^p${@C3LK{1|)`{1l`-&P4MI(fn(W;`$zZ7`y_K z4p$@o3VsO9Zh{oY`!J$>J#Y{BNyKkJ%Hult0(b-L0XIIv*cLDe?f}c+E8s^U`I(L8 zmqCjAD)=<`3-}Ot1KbP#4U(P~k|94Sko+74$q6loJigne?K8RyDms z^+cJBo}>*8sx1x5m2_e0u|WHxqIo($%-@wwmabNP83bI7b3Gw>MLC{uvFvi`YFjt? zxbk_Rm2bN>E~+P`ukFBgu*s`Ji@O=RqTbYYC1@M<_4e^XrdZ+wsuHk15lCKDj<8+s z3P-X5I}l@a$;TRS*KjM^RyYsmECZuD&v~>Gu*_s-Lbx@_eW9hv-~=)lltMRQfGz7N0no{LfeknFBe8wUNnu8L&)cpXm&DKU9Uy!>up!p z95HD-4TlRyHC)}fsMKJ@HsU(ydlDsM%GkuTcxEl1lPeK4%r= zN%X98tpVtnyux3Xwk4xXmxD{2!&os#ojM+Mt zuQ$-})*xyaB)RLEX^`qY#M`f_T`u32;)&gdVl12wm%^2B#&jko)0kcgXIXd_tJC4> zaD|6w!Wq0Qhi6#W!saxs&4p7~UBu)(4;PH>LfGOsy=+#`-GeO-n1eGE#Uh@wxWRla z@Y!JSbdFPK@PU`puxQc45YMG{U`yCq2rq_TVTa!43{Aw#bQ$ar^OQ+x85U%P-7kTu z?crQk@^di15H7d#rK^_koWH~Q72Hkka9MYh7jgMK#dw?3vxqK=Z+*Ja*N7S6rjZLW zd>P9 zEsV3fe9`WZX{6!`9fLb`!dfrkdltps(R$SmvXSkg5f=rYZ;Js!Hmd(UoM@pcEu1hN z)2ZjG2i!hox`+(WwzmgLZ3vM_%vrdl{xWt(>&}m$t67aaII)Biv*ye)LbyZY;VVkA zPoWAkoIakEE%o#~>ersPOfOG$=B9A-@UQ}-OOescYVXlv3wps9{U+Kr;b{xs)~*$N GR@uMLnh2Tz literal 0 HcmV?d00001 diff --git a/evibes/locale/he_IL/LC_MESSAGES/django.po b/evibes/locale/he_IL/LC_MESSAGES/django.po new file mode 100644 index 00000000..863a04fa --- /dev/null +++ b/evibes/locale/he_IL/LC_MESSAGES/django.po @@ -0,0 +1,158 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: he-il\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: evibes/settings/constance.py:22 +msgid "Name of the project" +msgstr "שם הפרויקט" + +#: evibes/settings/constance.py:23 +msgid "Frontend domain name" +msgstr "שם תחום קדמי" + +#: evibes/settings/constance.py:24 +msgid "Base domain name" +msgstr "שם תחום בסיסי" + +#: evibes/settings/constance.py:25 +msgid "Name of the company" +msgstr "שם החברה" + +#: evibes/settings/constance.py:26 +msgid "Address of the company" +msgstr "כתובת החברה" + +#: evibes/settings/constance.py:27 +msgid "Phone number of the company" +msgstr "מספר הטלפון של החברה" + +#: evibes/settings/constance.py:28 +msgid "SMTP host" +msgstr "מארח SMTP" + +#: evibes/settings/constance.py:29 +msgid "SMTP port" +msgstr "יציאת SMTP" + +#: evibes/settings/constance.py:30 +msgid "Use TLS (0=No, 1=Yes)" +msgstr "השתמש ב-TLS" + +#: evibes/settings/constance.py:31 +msgid "Use SSL (0=No, 1=Yes)" +msgstr "השתמש ב-SSL" + +#: evibes/settings/constance.py:32 +msgid "SMTP username" +msgstr "שם משתמש SMTP" + +#: evibes/settings/constance.py:33 +msgid "SMTP password" +msgstr "סיסמת SMTP" + +#: evibes/settings/constance.py:34 +msgid "Mail from option" +msgstr "כתובת השולח של הודעות הדוא\"ל" + +#: evibes/settings/constance.py:35 +msgid "Payment gateway URL" +msgstr "כתובת URL של שער התשלומים" + +#: evibes/settings/constance.py:36 +msgid "Payment gateway token" +msgstr "אסימון שער תשלום" + +#: evibes/settings/constance.py:37 +msgid "Payment gateway minimum amount" +msgstr "סכום מינימום לשער תשלום" + +#: evibes/settings/constance.py:38 +msgid "Payment gateway maximum amount" +msgstr "סכום מקסימלי בשער התשלומים" + +#: evibes/settings/constance.py:39 +msgid "Exchange rate API key" +msgstr "מפתח API לשער החליפין" + +#: evibes/settings/constance.py:40 +msgid "OpenStreetMap Nominatim API URL" +msgstr "כתובת ה-API של OpenStreetMap Nominatim" + +#: evibes/settings/constance.py:41 +msgid "OpenAI API Key" +msgstr "מפתח API של OpenAI" + +#: evibes/settings/constance.py:42 +msgid "Abstract API Key" +msgstr "מפתח API מופשט" + +#: evibes/settings/constance.py:43 +msgid "HTTP Proxy" +msgstr "פרוקסי HTTP" + +#: evibes/settings/constance.py:44 +msgid "Disable buy functionality" +msgstr "השבת פונקציונליות הרכישה" + +#: evibes/settings/constance.py:47 +msgid "An entity for storing advertisiment data" +msgstr "ישות לאחסון נתוני פרסום" + +#: evibes/settings/constance.py:49 +msgid "An entity for storing analytics data" +msgstr "ישות לאחסון נתוני ניתוח" + +#: evibes/settings/constance.py:55 +msgid "General Options" +msgstr "אפשרויות כלליות" + +#: evibes/settings/constance.py:63 +msgid "Email Options" +msgstr "אפשרויות דוא\"ל" + +#: evibes/settings/constance.py:72 +msgid "Payment Gateway Options" +msgstr "אפשרויות שער תשלום" + +#: evibes/settings/constance.py:79 +msgid "Features Options" +msgstr "אפשרויות תכונות" + +#: evibes/settings/constance.py:86 +msgid "SEO Options" +msgstr "אפשרויות SEO" + +#: evibes/settings/jazzmin.py:20 +msgid "Home" +msgstr "בית" + +#: evibes/settings/jazzmin.py:21 +msgid "Storefront" +msgstr "חנות" + +#: evibes/settings/jazzmin.py:24 +msgid "GraphQL Docs" +msgstr "מסמכי GraphQL" + +#: evibes/settings/jazzmin.py:29 +msgid "Platform REST Docs" +msgstr "מסמכי REST של הפלטפורמה" + +#: evibes/settings/jazzmin.py:34 +msgid "B2B REST Docs" +msgstr "מסמכי REST B2B" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "תמיכה" diff --git a/evibes/locale/hi_IN/LC_MESSAGES/django.po b/evibes/locale/hi_IN/LC_MESSAGES/django.po index 528602cd..66c86399 100644 --- a/evibes/locale/hi_IN/LC_MESSAGES/django.po +++ b/evibes/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/hr_HR/LC_MESSAGES/django.mo b/evibes/locale/hr_HR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c5906d1cd061dff54de8b533942893de34efc9e GIT binary patch literal 337 zcmYL@Jx{|h5Qd9j%E-dP;DHUUz!pqFHI3Uw*h!U-O0b#M1fyU_j*H-j@b~yFTo(FD zk8Zg4bkFbc(a#8TfSe*{$RTop42h8wT;AXuI{#UD_pUbq(k-mD?~SvRtk~?4EjU^8 zqD=EFDs<<30NFQY3lF=dhsseBt#T;zrx|V_Q9)Dk#909{hlG)3PGx%joM$`|st-_k zW&2hI=P8-jLXeC}P9|KkR7_ct6ud0&v1*&0YBW?@eNZA;wx|b_i4fD)jGb@x9W;=s z, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: evibes/settings/constance.py:22 +msgid "Name of the project" +msgstr "" + +#: evibes/settings/constance.py:23 +msgid "Frontend domain name" +msgstr "" + +#: evibes/settings/constance.py:24 +msgid "Base domain name" +msgstr "" + +#: evibes/settings/constance.py:25 +msgid "Name of the company" +msgstr "" + +#: evibes/settings/constance.py:26 +msgid "Address of the company" +msgstr "" + +#: evibes/settings/constance.py:27 +msgid "Phone number of the company" +msgstr "" + +#: evibes/settings/constance.py:28 +msgid "SMTP host" +msgstr "" + +#: evibes/settings/constance.py:29 +msgid "SMTP port" +msgstr "" + +#: evibes/settings/constance.py:30 +msgid "Use TLS (0=No, 1=Yes)" +msgstr "" + +#: evibes/settings/constance.py:31 +msgid "Use SSL (0=No, 1=Yes)" +msgstr "" + +#: evibes/settings/constance.py:32 +msgid "SMTP username" +msgstr "" + +#: evibes/settings/constance.py:33 +msgid "SMTP password" +msgstr "" + +#: evibes/settings/constance.py:34 +msgid "Mail from option" +msgstr "" + +#: evibes/settings/constance.py:35 +msgid "Payment gateway URL" +msgstr "" + +#: evibes/settings/constance.py:36 +msgid "Payment gateway token" +msgstr "" + +#: evibes/settings/constance.py:37 +msgid "Payment gateway minimum amount" +msgstr "" + +#: evibes/settings/constance.py:38 +msgid "Payment gateway maximum amount" +msgstr "" + +#: evibes/settings/constance.py:39 +msgid "Exchange rate API key" +msgstr "" + +#: evibes/settings/constance.py:40 +msgid "OpenStreetMap Nominatim API URL" +msgstr "" + +#: evibes/settings/constance.py:41 +msgid "OpenAI API Key" +msgstr "" + +#: evibes/settings/constance.py:42 +msgid "Abstract API Key" +msgstr "" + +#: evibes/settings/constance.py:43 +msgid "HTTP Proxy" +msgstr "" + +#: evibes/settings/constance.py:44 +msgid "Disable buy functionality" +msgstr "" + +#: evibes/settings/constance.py:47 +msgid "An entity for storing advertisiment data" +msgstr "" + +#: evibes/settings/constance.py:49 +msgid "An entity for storing analytics data" +msgstr "" + +#: evibes/settings/constance.py:55 +msgid "General Options" +msgstr "" + +#: evibes/settings/constance.py:63 +msgid "Email Options" +msgstr "" + +#: evibes/settings/constance.py:72 +msgid "Payment Gateway Options" +msgstr "" + +#: evibes/settings/constance.py:79 +msgid "Features Options" +msgstr "" + +#: evibes/settings/constance.py:86 +msgid "SEO Options" +msgstr "" + +#: evibes/settings/jazzmin.py:20 +msgid "Home" +msgstr "" + +#: evibes/settings/jazzmin.py:21 +msgid "Storefront" +msgstr "" + +#: evibes/settings/jazzmin.py:24 +msgid "GraphQL Docs" +msgstr "" + +#: evibes/settings/jazzmin.py:29 +msgid "Platform REST Docs" +msgstr "" + +#: evibes/settings/jazzmin.py:34 +msgid "B2B REST Docs" +msgstr "" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "" diff --git a/evibes/locale/id_ID/LC_MESSAGES/django.mo b/evibes/locale/id_ID/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b85a517a46e1b065a1aad069db3a56d66cf1ca1a GIT binary patch literal 2565 zcmai#NsJps6ov~3n^^)OVF_CWh?FRF@C-_nI1GwC<8hpf$Hq$_5|^^Ord{do>Q+~E zGM0cN2gHfxhC~G7hLmF@E+C{FI3R90A;cjPT#z_|A|d|Q-S#+9mXh0_tLk;t|6aX% z{%yy$&l%cYJkQ}-xr?zwU~o6S(2n23*kfQ7d=l(}`#=T00)7HM0$u{i?lSlcc%>Ns z8{CEdf5rUHZH(W`z{fHE4vdIr!I!}Iz`fv?U>2WZ{tCDU<9~v*e(8Z+=Pr=?2f(Mn!yxHvgA}hb zAn8^hUS%mr@qNFT|FoF@8l?R$f)uA8K#J4vAnE@HBz@blIO$jfX}^BK5TtcK1Yyd) z0P$hp;EQxzEc)Mr6wjYP((@}w_E$mD`B%YzL4=8MJhUG*N-;W1(nsz29J6nVBjqId zL3_}8)F?ir0Y^M*2tV76=RQ2-*UNaOjr^sYoHj_wa+mUs&YT*Z5&2IIshZ^q#fyBR z{G*(rMlqpAK2jdD>d@Fkj4ZEqn*5ZUu&V1O(ik3Xa66WK6os+S7}i{BtL%htLuaDx*S7a#vV!D?=@UiB%($8`TzTyj$<}`ARf0tR{@)ZWIcoxfY>hE6Rvr zAo(!GcBvj&72$ns&gw7-K0! zEfcY|RwEJd_^q{E(TRS)!#hc|IbkOv2x`%;8%Y%MDBGH?L*|Vknjedk=&T%B){dpF zHfO=5ZqFuC+Lnm z=tW5}o*J2CXWT;yNrV(qdube#!2oH{>#gy9<)!uL)gLb`ES-^Ne>U7->)kkvfD+F-qXn!mB!Uhh|z`^Q%Y z-8x2^-Gj^R)|+@ud#UiG)0ZNw@U`lCV^D3>?`U7)P^sKftJ$h=IkW&jmb2`ImPrh; zR&LtY;sAH$7)SOeM%tx8f7Lm%Wk;GfWa8BIC~|R4EBwe%*-|G+k?_tc&d^l2j= zT0F+{pG*5R-?PLQ_8%*;Q@C|1OUt}K_^cX;P*@(zBsF3zgl2WB2f}bslg?|Wc5ImLlJGh|vuRKapdtRzVK2*0Nz&`_9Nqw9*oNi!>jvqB*_8WzP{SQUp Bh35bO literal 0 HcmV?d00001 diff --git a/evibes/locale/id_ID/LC_MESSAGES/django.po b/evibes/locale/id_ID/LC_MESSAGES/django.po new file mode 100644 index 00000000..6d2b11c5 --- /dev/null +++ b/evibes/locale/id_ID/LC_MESSAGES/django.po @@ -0,0 +1,158 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: id-id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: evibes/settings/constance.py:22 +msgid "Name of the project" +msgstr "Nama proyek" + +#: evibes/settings/constance.py:23 +msgid "Frontend domain name" +msgstr "Nama domain bagian depan" + +#: evibes/settings/constance.py:24 +msgid "Base domain name" +msgstr "Nama domain dasar" + +#: evibes/settings/constance.py:25 +msgid "Name of the company" +msgstr "Nama perusahaan" + +#: evibes/settings/constance.py:26 +msgid "Address of the company" +msgstr "Alamat perusahaan" + +#: evibes/settings/constance.py:27 +msgid "Phone number of the company" +msgstr "Nomor telepon perusahaan" + +#: evibes/settings/constance.py:28 +msgid "SMTP host" +msgstr "Host SMTP" + +#: evibes/settings/constance.py:29 +msgid "SMTP port" +msgstr "Port SMTP" + +#: evibes/settings/constance.py:30 +msgid "Use TLS (0=No, 1=Yes)" +msgstr "Gunakan TLS" + +#: evibes/settings/constance.py:31 +msgid "Use SSL (0=No, 1=Yes)" +msgstr "Gunakan SSL" + +#: evibes/settings/constance.py:32 +msgid "SMTP username" +msgstr "Nama pengguna SMTP" + +#: evibes/settings/constance.py:33 +msgid "SMTP password" +msgstr "Kata sandi SMTP" + +#: evibes/settings/constance.py:34 +msgid "Mail from option" +msgstr "Alamat pengirim email" + +#: evibes/settings/constance.py:35 +msgid "Payment gateway URL" +msgstr "URL gateway pembayaran" + +#: evibes/settings/constance.py:36 +msgid "Payment gateway token" +msgstr "Token gateway pembayaran" + +#: evibes/settings/constance.py:37 +msgid "Payment gateway minimum amount" +msgstr "Jumlah minimum gateway pembayaran" + +#: evibes/settings/constance.py:38 +msgid "Payment gateway maximum amount" +msgstr "Jumlah maksimum gateway pembayaran" + +#: evibes/settings/constance.py:39 +msgid "Exchange rate API key" +msgstr "Kunci API nilai tukar" + +#: evibes/settings/constance.py:40 +msgid "OpenStreetMap Nominatim API URL" +msgstr "URL API OpenStreetMap Nominatim" + +#: evibes/settings/constance.py:41 +msgid "OpenAI API Key" +msgstr "Kunci API OpenAI" + +#: evibes/settings/constance.py:42 +msgid "Abstract API Key" +msgstr "Kunci API Abstrak" + +#: evibes/settings/constance.py:43 +msgid "HTTP Proxy" +msgstr "Proksi HTTP" + +#: evibes/settings/constance.py:44 +msgid "Disable buy functionality" +msgstr "Menonaktifkan fungsionalitas beli" + +#: evibes/settings/constance.py:47 +msgid "An entity for storing advertisiment data" +msgstr "Entitas untuk menyimpan data iklan" + +#: evibes/settings/constance.py:49 +msgid "An entity for storing analytics data" +msgstr "Entitas untuk menyimpan data analitik" + +#: evibes/settings/constance.py:55 +msgid "General Options" +msgstr "Opsi Umum" + +#: evibes/settings/constance.py:63 +msgid "Email Options" +msgstr "Opsi Email" + +#: evibes/settings/constance.py:72 +msgid "Payment Gateway Options" +msgstr "Opsi Gerbang Pembayaran" + +#: evibes/settings/constance.py:79 +msgid "Features Options" +msgstr "Opsi Fitur" + +#: evibes/settings/constance.py:86 +msgid "SEO Options" +msgstr "Opsi SEO" + +#: evibes/settings/jazzmin.py:20 +msgid "Home" +msgstr "Beranda" + +#: evibes/settings/jazzmin.py:21 +msgid "Storefront" +msgstr "Etalase" + +#: evibes/settings/jazzmin.py:24 +msgid "GraphQL Docs" +msgstr "Dokumen GraphQL" + +#: evibes/settings/jazzmin.py:29 +msgid "Platform REST Docs" +msgstr "Dokumen SISA Platform" + +#: evibes/settings/jazzmin.py:34 +msgid "B2B REST Docs" +msgstr "Dokumen SISA B2B" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Dukungan" diff --git a/evibes/locale/it_IT/LC_MESSAGES/django.po b/evibes/locale/it_IT/LC_MESSAGES/django.po index 7783ea4a..5bd93a13 100644 --- a/evibes/locale/it_IT/LC_MESSAGES/django.po +++ b/evibes/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/ja_JP/LC_MESSAGES/django.po b/evibes/locale/ja_JP/LC_MESSAGES/django.po index 17b84887..4a9ff6a8 100644 --- a/evibes/locale/ja_JP/LC_MESSAGES/django.po +++ b/evibes/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/kk_KZ/LC_MESSAGES/django.po b/evibes/locale/kk_KZ/LC_MESSAGES/django.po index 528602cd..66c86399 100644 --- a/evibes/locale/kk_KZ/LC_MESSAGES/django.po +++ b/evibes/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/ko_KR/LC_MESSAGES/django.mo b/evibes/locale/ko_KR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..341093273177b26910519ceb4382b32271326e6e GIT binary patch literal 2635 zcma)+TWl0n7{`x_qV$;D_M7;O8LeT?HQp zzxCFC1s}%z4^O^)31iDKuLti3{op;|D_|Y?I*1<|z>CgHf)9bC9;d+jFfV~C!E@lF z;5VN97w~D!uX|i^yK8>~_ypEN;4*L+yc>KEybGKJDUQ51Kkm(ELGtSha4C2dq&!^n z_!IaRa&{dgzutfnos$Hg1G64WAjSI?NdA5gt^j`nDbD-uboZ|WX@3LA!A;)$ZBIVz z@m&xpWxK(rz`Y>tI}1|2E`#LHHIV%H0VKVp2$t;DgR8+-kn$x!lIK9$e;lN`T>>fo zuR%KRJMcm9XOQyuJ4kv0=fc&<#zF8$1y1=C6t|7DyyCq3c{7 zin51=nOlI1vmZf=(eDS;SCN z>(o@m5K7`NHoAl&H2KC^U7DO3dacLxXmczU=3z}89b=nSIMhp42Q@X#RmU{zgPV&} zv~Vq>sqcum!9p3K1iEX0x1c%*kXI;@KvT)gq{_ zC%yHBy4AI`Jeo>p(_BugS;eRwRTHO_e-j((uuxcdNL2(^vgrY#Ee$(8edDF z`ofo`#+EmQzSdce^+Xphqdb&isXHNU5t@#M@blo7?zUi*ztrGs@YO{GohtR}$y7pW z%O-UxruunZI3z{HR`jf@NFB(hpEvoMnkC;lsc{|mt@k%?c;46O^VRjpx*^3hS+cI~;hWk+eX&4$thKX062wY(q@g|3`!cpE$*i0dQcTEcKko_jb@d0j zg8!-S=fkQrtkv~)_XckS)QC9Ro$iG%V;MMWh*9Ik%n1G~8#%gP(}mH}AM2FX-_RqU z2ZbgDmAIO~-_+0752TE`@JJR7FLk1Zx}Pf!h zyVIBUju~bjp0ak#a_iG8)~+cwfANF)3ngyuEnCwU?OfSBafMr@aqH*_`#`~*%yaAG zyuGK4A2ToItlaefQmx$y=4{2v71?~HY+k5vb6?IpleeZT9LCI(IW|8xYo40nB%VCM z&C5CaP|?bLW*^Ek(jZ;9Q<$@M7MOjgU=>f-!tnM~h54NMN!gyPz+LmB;@>UdAhTSk zo>jddJolU{!p0HDrma0iSejU1-YgfbJtgbterp>0-K$*sn&m;Ig2k zTZI`rKVePIK*c;cOYc*2+}v3)&sEGF1$%0|c5lp|FI%M|pFclE6+uKtPUEBM`AwvB ziCCo^yz~^zsd4+@Zl}<5MNE+63G2Wy_D^E;!6NZu\n" +"Language-Team: LANGUAGE \n" +"Language: ko-kr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: evibes/settings/constance.py:22 +msgid "Name of the project" +msgstr "프로젝트 이름" + +#: evibes/settings/constance.py:23 +msgid "Frontend domain name" +msgstr "프런트엔드 도메인 이름" + +#: evibes/settings/constance.py:24 +msgid "Base domain name" +msgstr "기본 도메인 이름" + +#: evibes/settings/constance.py:25 +msgid "Name of the company" +msgstr "회사 이름" + +#: evibes/settings/constance.py:26 +msgid "Address of the company" +msgstr "회사 주소" + +#: evibes/settings/constance.py:27 +msgid "Phone number of the company" +msgstr "회사 전화번호" + +#: evibes/settings/constance.py:28 +msgid "SMTP host" +msgstr "SMTP 호스트" + +#: evibes/settings/constance.py:29 +msgid "SMTP port" +msgstr "SMTP 포트" + +#: evibes/settings/constance.py:30 +msgid "Use TLS (0=No, 1=Yes)" +msgstr "TLS 사용" + +#: evibes/settings/constance.py:31 +msgid "Use SSL (0=No, 1=Yes)" +msgstr "SSL 사용" + +#: evibes/settings/constance.py:32 +msgid "SMTP username" +msgstr "SMTP 사용자 이름" + +#: evibes/settings/constance.py:33 +msgid "SMTP password" +msgstr "SMTP 비밀번호" + +#: evibes/settings/constance.py:34 +msgid "Mail from option" +msgstr "이메일 발신자의 주소" + +#: evibes/settings/constance.py:35 +msgid "Payment gateway URL" +msgstr "결제 게이트웨이 URL" + +#: evibes/settings/constance.py:36 +msgid "Payment gateway token" +msgstr "결제 게이트웨이 토큰" + +#: evibes/settings/constance.py:37 +msgid "Payment gateway minimum amount" +msgstr "결제 대행사 최소 금액" + +#: evibes/settings/constance.py:38 +msgid "Payment gateway maximum amount" +msgstr "전자결제 대행사 최대 금액" + +#: evibes/settings/constance.py:39 +msgid "Exchange rate API key" +msgstr "환율 API 키" + +#: evibes/settings/constance.py:40 +msgid "OpenStreetMap Nominatim API URL" +msgstr "오픈스트리트맵 노미나팀 API URL" + +#: evibes/settings/constance.py:41 +msgid "OpenAI API Key" +msgstr "OpenAI API 키" + +#: evibes/settings/constance.py:42 +msgid "Abstract API Key" +msgstr "추상 API 키" + +#: evibes/settings/constance.py:43 +msgid "HTTP Proxy" +msgstr "HTTP 프록시" + +#: evibes/settings/constance.py:44 +msgid "Disable buy functionality" +msgstr "구매 기능 비활성화" + +#: evibes/settings/constance.py:47 +msgid "An entity for storing advertisiment data" +msgstr "광고 데이터를 저장하는 엔티티" + +#: evibes/settings/constance.py:49 +msgid "An entity for storing analytics data" +msgstr "분석 데이터를 저장하는 엔티티" + +#: evibes/settings/constance.py:55 +msgid "General Options" +msgstr "일반 옵션" + +#: evibes/settings/constance.py:63 +msgid "Email Options" +msgstr "이메일 옵션" + +#: evibes/settings/constance.py:72 +msgid "Payment Gateway Options" +msgstr "결제 게이트웨이 옵션" + +#: evibes/settings/constance.py:79 +msgid "Features Options" +msgstr "기능 옵션" + +#: evibes/settings/constance.py:86 +msgid "SEO Options" +msgstr "SEO 옵션" + +#: evibes/settings/jazzmin.py:20 +msgid "Home" +msgstr "홈" + +#: evibes/settings/jazzmin.py:21 +msgid "Storefront" +msgstr "스토어 프론트" + +#: evibes/settings/jazzmin.py:24 +msgid "GraphQL Docs" +msgstr "GraphQL 문서" + +#: evibes/settings/jazzmin.py:29 +msgid "Platform REST Docs" +msgstr "플랫폼 REST 문서" + +#: evibes/settings/jazzmin.py:34 +msgid "B2B REST Docs" +msgstr "B2B REST 문서" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "지원" diff --git a/evibes/locale/nl_NL/LC_MESSAGES/django.po b/evibes/locale/nl_NL/LC_MESSAGES/django.po index a6e2f4da..74998b7a 100644 --- a/evibes/locale/nl_NL/LC_MESSAGES/django.po +++ b/evibes/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/no_NO/LC_MESSAGES/django.mo b/evibes/locale/no_NO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..30a56d7f36837684e9f6eb6c9c45cd8529aeda5d GIT binary patch literal 2665 zcmai#O>7%Q6vwBud>IO~6bj{Q3aQizHaJ18T9=gCiIWE6*!ZIbsRzdP#M$ib%xY)W zjV}l;91tf22W}Oj2P7npM4S*&j}Yi2oa}9k;Y)l=W|C_RY+DZ{Ga# z%lwlj0zXHjxZ^3)Pt03j!TE^eN zi^$n^km7m^MznqeQl8!eUjV-ZDUNF(#q}#le*OiL{l5DcI|NRF6whlJFMzb42FdON zko@@!M2PGQ(5(+rKCgka{?8!U{{d2-b|J{a;9>9ya2}ijFM>4xeUSFQ0#cs718Lq* zAg%W|h(ER$o6~t61gSp-(!SFm*_{Cq603sPnqA2F4u~`{j)(l9MkPjPN&8THW{C0c zKD<#)(z+B2ofkDM<@TibM-AzB{@(*WkB4F!HOe2=j~O8n^3`cXSjBg<-{|vc4Vg zHJxx{b>gcY7u~*0tZ)1XA9+_;aXUjL!h!WWW@uEJE%AD}(c}xdV^~QT$-6odzT!$m zk}dc~v_r|;DYi>h$NC!cu{kTlDCE_cMhq)&cGiXJNuCHRT?7FlSd_x1h+%BDm}q6C z>fW%&l2kGgJ8LZ^B3^%UW$4klX0yg?iQXKra~cj+XxFtwM_jwD*(%(;IYpCWaiTY5 z$FgcHRdIQoTk~_G-}J_=J0BvusHi@;@}$P>e$6b1u0wC#xnO7 z3u7+nq?`40l8vWEChm+IC?ScI!qr9^$7Ik#88jLz{Ahk|RloH8<(av+r8(w?n=6f* zhjBcVVsE+YotKG0K@@oT{Bo(>;IB;Qr}MeGq*c9&>G@r+l=h6*)CHcaRlU0Gqh_`8 z7Ld;ZpUux6_wpyanG-yJvT*#=i}{&+KDQ!_^_q!L27&7Yi!W8{98amWT0PHSov*Go zi}TI1i>-PYBg^&a`D*11rm0>kdeUo35f%7KadoLxTq^&seSs_ODV?h zSH19M5W`t3H|@)Dh`Vx{qxusg?Odz5=$+iLBcIn~;+0iLcX3S%{AAm=xmuW_;Jrnh zp}}sk>zcXQ(|q_kcU1AibA0C5>0BlYfs+MKZEppE3|T{lCJ?c-1{a@1Lb5W+!n(9h z6++P)szRR&rEozdb&ZpS+Z#d{jC3|5Rq(nxNa-HPgtWnjXy6hmsYG9~1t|jSLw0zu zvAq===tE#OhWa2aD|<0&P=uIER||Fw$~FqYx!D(CYDJJHhAn23v08C*%EEX*9&cZv zo9_gKInj_Ir0IqoGVPf3n-s)@3Xp3KDdBElM@>cnIf1#8qD+S6qHjxNhmIu^1_mv0PW|UYMFbG`G%{@&BGb2?T^Y*C z9c`MVEw`TDl%ZVH3W^iq3@A5dRAh|)K}@97Er7zePK794<*IkXF_7?h^bg62jz\n" +"Language-Team: LANGUAGE \n" +"Language: no-no\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: evibes/settings/constance.py:22 +msgid "Name of the project" +msgstr "Prosjektets navn" + +#: evibes/settings/constance.py:23 +msgid "Frontend domain name" +msgstr "Domenenavn på frontend" + +#: evibes/settings/constance.py:24 +msgid "Base domain name" +msgstr "Basis domenenavn" + +#: evibes/settings/constance.py:25 +msgid "Name of the company" +msgstr "Selskapets navn" + +#: evibes/settings/constance.py:26 +msgid "Address of the company" +msgstr "Selskapets adresse" + +#: evibes/settings/constance.py:27 +msgid "Phone number of the company" +msgstr "Telefonnummer til selskapet" + +#: evibes/settings/constance.py:28 +msgid "SMTP host" +msgstr "SMTP-vert" + +#: evibes/settings/constance.py:29 +msgid "SMTP port" +msgstr "SMTP-port" + +#: evibes/settings/constance.py:30 +msgid "Use TLS (0=No, 1=Yes)" +msgstr "Bruk TLS" + +#: evibes/settings/constance.py:31 +msgid "Use SSL (0=No, 1=Yes)" +msgstr "Bruk SSL" + +#: evibes/settings/constance.py:32 +msgid "SMTP username" +msgstr "SMTP-brukernavn" + +#: evibes/settings/constance.py:33 +msgid "SMTP password" +msgstr "SMTP-passord" + +#: evibes/settings/constance.py:34 +msgid "Mail from option" +msgstr "Adressen til avsenderen av e-posten" + +#: evibes/settings/constance.py:35 +msgid "Payment gateway URL" +msgstr "URL til betalingsgateway" + +#: evibes/settings/constance.py:36 +msgid "Payment gateway token" +msgstr "Token for betalingsgateway" + +#: evibes/settings/constance.py:37 +msgid "Payment gateway minimum amount" +msgstr "Minimumsbeløp for betalingsgateway" + +#: evibes/settings/constance.py:38 +msgid "Payment gateway maximum amount" +msgstr "Maksimumsbeløp for betalingsgateway" + +#: evibes/settings/constance.py:39 +msgid "Exchange rate API key" +msgstr "API-nøkkel for valutakurs" + +#: evibes/settings/constance.py:40 +msgid "OpenStreetMap Nominatim API URL" +msgstr "OpenStreetMap Nominatim API URL" + +#: evibes/settings/constance.py:41 +msgid "OpenAI API Key" +msgstr "OpenAI API-nøkkel" + +#: evibes/settings/constance.py:42 +msgid "Abstract API Key" +msgstr "Abstrakt API-nøkkel" + +#: evibes/settings/constance.py:43 +msgid "HTTP Proxy" +msgstr "HTTP-proxy" + +#: evibes/settings/constance.py:44 +msgid "Disable buy functionality" +msgstr "Deaktiver kjøpsfunksjonalitet" + +#: evibes/settings/constance.py:47 +msgid "An entity for storing advertisiment data" +msgstr "En enhet for lagring av annonseringsdata" + +#: evibes/settings/constance.py:49 +msgid "An entity for storing analytics data" +msgstr "En enhet for lagring av analysedata" + +#: evibes/settings/constance.py:55 +msgid "General Options" +msgstr "Generelle alternativer" + +#: evibes/settings/constance.py:63 +msgid "Email Options" +msgstr "E-postalternativer" + +#: evibes/settings/constance.py:72 +msgid "Payment Gateway Options" +msgstr "Alternativer for betalingsgateway" + +#: evibes/settings/constance.py:79 +msgid "Features Options" +msgstr "Funksjoner Alternativer" + +#: evibes/settings/constance.py:86 +msgid "SEO Options" +msgstr "SEO-alternativer" + +#: evibes/settings/jazzmin.py:20 +msgid "Home" +msgstr "Hjem" + +#: evibes/settings/jazzmin.py:21 +msgid "Storefront" +msgstr "Utstillingsvindu" + +#: evibes/settings/jazzmin.py:24 +msgid "GraphQL Docs" +msgstr "GraphQL-dokumenter" + +#: evibes/settings/jazzmin.py:29 +msgid "Platform REST Docs" +msgstr "REST-dokumenter for plattformen" + +#: evibes/settings/jazzmin.py:34 +msgid "B2B REST Docs" +msgstr "B2B REST-dokumenter" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Støtte" diff --git a/evibes/locale/pl_PL/LC_MESSAGES/django.po b/evibes/locale/pl_PL/LC_MESSAGES/django.po index ffdcb25f..f7f9e523 100644 --- a/evibes/locale/pl_PL/LC_MESSAGES/django.po +++ b/evibes/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/pt_BR/LC_MESSAGES/django.po b/evibes/locale/pt_BR/LC_MESSAGES/django.po index ea76ca7e..2160ea5c 100644 --- a/evibes/locale/pt_BR/LC_MESSAGES/django.po +++ b/evibes/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/ro_RO/LC_MESSAGES/django.po b/evibes/locale/ro_RO/LC_MESSAGES/django.po index 09e38a5f..21d34ced 100644 --- a/evibes/locale/ro_RO/LC_MESSAGES/django.po +++ b/evibes/locale/ro_RO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.po b/evibes/locale/ru_RU/LC_MESSAGES/django.po index af7a4908..d15a5990 100644 --- a/evibes/locale/ru_RU/LC_MESSAGES/django.po +++ b/evibes/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/locale/sv_SE/LC_MESSAGES/django.mo b/evibes/locale/sv_SE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..adb353b337d063d4f8317fa0bcd9ba02ea0ddc68 GIT binary patch literal 2672 zcmai!O>7%Q7={N3e}+;h1xopwLJO_R7AGiG>k?Euu~S1F8{27%#AWQAIE!~@Rx{%? zzQ73%h!X?_-Aub$2LI|$FwNl0V?XK-KQreN%k7wrd%=fqNZ~LY` zV;D#9JdJ1J4#sA|@J@VToV|;&hruHFIM@V_f&q9K`~=(seh-q}Rq#ph*KGYC@G;D9 zWc&N47~7Be5pXY903QV30CV645FggT7oFDw9|bouehfZ@`DO4q@H_Ac@aJs*Z}3^n zuV*}XcY6P6@F}dZ$a|w2k>6-DoA;_mhn&U9pvmf zNPb>~5uG1`$H4c&7r?KT%((OXC6?MA+oMaAG$@CBmT#x;8Z`&6Iev+-ma$-L z&H&d9RM!O>|HtL545N_OV_LDSywP0~swcS-P9_ob5kW-?H$V(yvx?EmN#);k$D&ly zh{;)tM#O7xEu|ivYquM`Vf4n3ozrlrMz^jS9dVsp&6eTj&J=B5i;aF)b{(t7QWdM? zV!o`SKnWK_$^J@ni8aJ9$>bv9xg>_;2uAC@Y<;`!Xe|;OK{SZCi1a|Y z@loULK;3HF>AqB~v8I*eY7lj#*%@9V6b`kIwiT{bu8&=8)sV6^Z5>N~#lqT4+W6T_ zn{0hxrAcbsLJLWx6t1=gaZCm)XoFU3i670+E$f$mygWVkwzS8R<@Qo*=Q7GeDfX(q zcU~HchA8mz`D&@$;;){_pUCH$l1}w%wiozbY0$G?TNik)QTLj19X+d+w}5;W_)LCg z*2|ytrcd(xslx2($P;fwVq$5UEauAk?x&DWRP#rgKx%1X10 zm1^_Ee7*KM{-$~Z(UV?Vim1Ssipz^D#l`Y%?F-zldsgOZ)mnKH&@|$hPr4Vr3}ZO! z;pl#2rJGx6SG-dbJMwu|8n3Ln+Q(~J;HNr)%QeCQ8s4j*hPJ>}oJ{T9 z%o(2koI9%cp*cQ%>`X3`g?=Ino*H)hGGvvlO(Pvba~3Z?i3BT?Dy&JzSFy)K(Mwff zoeQP#f=Zg&L>6vg31vuaMylZXx<8=zfRq8cuysXAWl0(ot18iV0aQou{?=v;b-*-L z2kBTbbktrjNIjBXOdSbr%YsOk*SD^0$gn>!mQ}I?(C?E!vxVeRx-k7i(x*@mTo95w zN^mj0ie=IN=Y4g4# zvt&L|lu=!7Cn}S;(qK9$VyLJxnKm%U$!=SvoyJs&L~2ARct?ghj#({G){SPnozy0U z*>zKfa#brRPlQS&d7_p|+l`U*Otfc`XXuZ&tqvqS9%`GZju&oiBI_d&LMvn<;3d!wSSx literal 0 HcmV?d00001 diff --git a/evibes/locale/sv_SE/LC_MESSAGES/django.po b/evibes/locale/sv_SE/LC_MESSAGES/django.po new file mode 100644 index 00000000..e75c982d --- /dev/null +++ b/evibes/locale/sv_SE/LC_MESSAGES/django.po @@ -0,0 +1,158 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: sv-se\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: evibes/settings/constance.py:22 +msgid "Name of the project" +msgstr "Projektets namn" + +#: evibes/settings/constance.py:23 +msgid "Frontend domain name" +msgstr "Domännamn för frontend" + +#: evibes/settings/constance.py:24 +msgid "Base domain name" +msgstr "Basdomänens namn" + +#: evibes/settings/constance.py:25 +msgid "Name of the company" +msgstr "Företagets namn" + +#: evibes/settings/constance.py:26 +msgid "Address of the company" +msgstr "Företagets adress" + +#: evibes/settings/constance.py:27 +msgid "Phone number of the company" +msgstr "Telefonnummer till företaget" + +#: evibes/settings/constance.py:28 +msgid "SMTP host" +msgstr "SMTP-värd" + +#: evibes/settings/constance.py:29 +msgid "SMTP port" +msgstr "SMTP-port" + +#: evibes/settings/constance.py:30 +msgid "Use TLS (0=No, 1=Yes)" +msgstr "Använd TLS" + +#: evibes/settings/constance.py:31 +msgid "Use SSL (0=No, 1=Yes)" +msgstr "Använd SSL" + +#: evibes/settings/constance.py:32 +msgid "SMTP username" +msgstr "SMTP-användarnamn" + +#: evibes/settings/constance.py:33 +msgid "SMTP password" +msgstr "SMTP-lösenord" + +#: evibes/settings/constance.py:34 +msgid "Mail from option" +msgstr "Adressen till e-postmeddelandets avsändare" + +#: evibes/settings/constance.py:35 +msgid "Payment gateway URL" +msgstr "URL för betalningsgateway" + +#: evibes/settings/constance.py:36 +msgid "Payment gateway token" +msgstr "Token för betalningsgateway" + +#: evibes/settings/constance.py:37 +msgid "Payment gateway minimum amount" +msgstr "Minsta belopp för betalningsgateway" + +#: evibes/settings/constance.py:38 +msgid "Payment gateway maximum amount" +msgstr "Betalningsgatewayens maximala belopp" + +#: evibes/settings/constance.py:39 +msgid "Exchange rate API key" +msgstr "API-nyckel för växelkurs" + +#: evibes/settings/constance.py:40 +msgid "OpenStreetMap Nominatim API URL" +msgstr "OpenStreetMap Nominatim API URL" + +#: evibes/settings/constance.py:41 +msgid "OpenAI API Key" +msgstr "OpenAI API-nyckel" + +#: evibes/settings/constance.py:42 +msgid "Abstract API Key" +msgstr "Abstrakt API-nyckel" + +#: evibes/settings/constance.py:43 +msgid "HTTP Proxy" +msgstr "HTTP-proxy" + +#: evibes/settings/constance.py:44 +msgid "Disable buy functionality" +msgstr "Inaktivera köpfunktionalitet" + +#: evibes/settings/constance.py:47 +msgid "An entity for storing advertisiment data" +msgstr "En enhet för lagring av annonseringsdata" + +#: evibes/settings/constance.py:49 +msgid "An entity for storing analytics data" +msgstr "En enhet för lagring av analysdata" + +#: evibes/settings/constance.py:55 +msgid "General Options" +msgstr "Allmänna alternativ" + +#: evibes/settings/constance.py:63 +msgid "Email Options" +msgstr "Alternativ för e-post" + +#: evibes/settings/constance.py:72 +msgid "Payment Gateway Options" +msgstr "Alternativ för betalningsgateway" + +#: evibes/settings/constance.py:79 +msgid "Features Options" +msgstr "Funktioner Alternativ" + +#: evibes/settings/constance.py:86 +msgid "SEO Options" +msgstr "SEO-alternativ" + +#: evibes/settings/jazzmin.py:20 +msgid "Home" +msgstr "Hem" + +#: evibes/settings/jazzmin.py:21 +msgid "Storefront" +msgstr "Skyltfönster" + +#: evibes/settings/jazzmin.py:24 +msgid "GraphQL Docs" +msgstr "GraphQL-dokument" + +#: evibes/settings/jazzmin.py:29 +msgid "Platform REST Docs" +msgstr "Plattform REST-dokument" + +#: evibes/settings/jazzmin.py:34 +msgid "B2B REST Docs" +msgstr "B2B REST-dokument" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Stöd" diff --git a/evibes/locale/th_TH/LC_MESSAGES/django.mo b/evibes/locale/th_TH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..9b387aa752ac48743841bded77158e393303c2f5 GIT binary patch literal 3673 zcmb`JNo*Tc7=VWz!d~{Wy#f_2;Nr9twQd8=;-rDZ4zW`};xdURj;TFk&5R+rR4r6M zOAZKHN(zFqRE4m$(25z3APxv2ZXD4ZkT`*mI3gjw|IOHOLsP^uiu28T?|=XPp8dnJ zv-cZ3EBV~Or|%5ISP!db@{ecBS%z^L?1opvQMd|L;BD|lcrpA8iriQ5I{1Au|0}$T z@gK?hm1i5qm5f)yOJN3H1RsDM@L|ZGG0s2HSB6)>>4dZJ62^z%&G2J*4g4-y{|Vm2 z`1gd%&x!4Cgx52lhs)r0cp=;YFMxZY#IY|Kzm<$Xfa2HZ@I3exlstT!@JILrQvh%VHmEJ2C;9e4-)60U&1z}4_Fg3ZAU?1g)v`1LJxWS$~yh4Tr2gPR#|CMnVvGf?XG zGQ1JKpNzkTw=(_#UJK8pIAZsD$du8Q@IgqL48=#*<&hR+TGvs=qPP9IoPpSuK9HK> zs(uJb_YNg)J)~dfCeMR|n|4DA; zk(|pz*>paP?s3m|%?V$1j|{2@tr?@cRB|oPQ_iIFrz|z$)as_qw5=@LulO@+(s7mN zJ8s1;E3@>3<@yz`Qe#n-Oy68e&^D_xer3Xog?iTZsL^bpsQR1<&*(8dOO>3OS+SLE z)-0p1;+f-BON}=$*RUu2io<@48(D;^Dqoiw&&WY1_RczC*)b#q;=#VjD&ge`I5YLn5Oe=!s zd^wqKmu=3~%;`$4QB!8kY1n>CRcpCopKjTAwp+F_GUeEovKzH=%UvAaNY(VIeXXr< zg>1g%Vqut+O*x)#=(oD*c~3fSDH%C#GT-nlSJ${e3t6NTR|}1LT?EExgF<0Qtx9+0 zoV&g_)YQ0vyD*Q7f}Ezz19_R5t~ zs;5!*Qbi}DI!5xTQR@kM*0EE4B z@pZjKAiTezch0flRh^-ITAwx@J}p`#;8u3t&`DuPMrO4Qa)g$ax6e0Ke~8BYTKb5# zd{`EwI*9V0V(rvbJdE7pVv7KJ*{%bY+Or*#Y{5(3<62W_ah&Zz6p(+iK!CJKy!p6V z$^|x^COz}bz96u;O-O;%cBy!1zGKOr5NBRJRb`S3-q3fuF2UQnsp5=~wi6gwu%;WH z=yx%D`rdv`cRL=&Zd04Z>1_*Dl7rThPD1-~^TbHU#Qmmgt(yx^{!*w!o@-dXXbip> zR1`EPzcIgQ+kTD#QcU48nvVKBxG(e(NhjVGJq?kA`E_R_z}7WT-wM-c|-6>c7cIWs7g z3;)#Zqxen0>BH(rx@Kf=R>>~{cHkVYb2VV@HJw$A&NWvt)Y8AdIZ3xQ?@+eLx5}O< qd^)}rn=)-@R@{@TLOQaoXR$|5VVJ`gzjIw7v7o6i)HdSBhVds7SZgH! literal 0 HcmV?d00001 diff --git a/evibes/locale/th_TH/LC_MESSAGES/django.po b/evibes/locale/th_TH/LC_MESSAGES/django.po new file mode 100644 index 00000000..14f25e54 --- /dev/null +++ b/evibes/locale/th_TH/LC_MESSAGES/django.po @@ -0,0 +1,158 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: th-th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: evibes/settings/constance.py:22 +msgid "Name of the project" +msgstr "ชื่อของโครงการ" + +#: evibes/settings/constance.py:23 +msgid "Frontend domain name" +msgstr "ชื่อโดเมนส่วนหน้า" + +#: evibes/settings/constance.py:24 +msgid "Base domain name" +msgstr "ชื่อโดเมนพื้นฐาน" + +#: evibes/settings/constance.py:25 +msgid "Name of the company" +msgstr "ชื่อบริษัท" + +#: evibes/settings/constance.py:26 +msgid "Address of the company" +msgstr "ที่อยู่ของบริษัท" + +#: evibes/settings/constance.py:27 +msgid "Phone number of the company" +msgstr "หมายเลขโทรศัพท์ของบริษัท" + +#: evibes/settings/constance.py:28 +msgid "SMTP host" +msgstr "โฮสต์ SMTP" + +#: evibes/settings/constance.py:29 +msgid "SMTP port" +msgstr "พอร์ต SMTP" + +#: evibes/settings/constance.py:30 +msgid "Use TLS (0=No, 1=Yes)" +msgstr "ใช้ TLS" + +#: evibes/settings/constance.py:31 +msgid "Use SSL (0=No, 1=Yes)" +msgstr "ใช้ SSL" + +#: evibes/settings/constance.py:32 +msgid "SMTP username" +msgstr "ชื่อผู้ใช้ SMTP" + +#: evibes/settings/constance.py:33 +msgid "SMTP password" +msgstr "รหัสผ่าน SMTP" + +#: evibes/settings/constance.py:34 +msgid "Mail from option" +msgstr "ที่อยู่ของผู้ส่งอีเมล" + +#: evibes/settings/constance.py:35 +msgid "Payment gateway URL" +msgstr "URL ของเกตเวย์การชำระเงิน" + +#: evibes/settings/constance.py:36 +msgid "Payment gateway token" +msgstr "โทเค็นเกตเวย์การชำระเงิน" + +#: evibes/settings/constance.py:37 +msgid "Payment gateway minimum amount" +msgstr "จำนวนเงินขั้นต่ำของเกตเวย์การชำระเงิน" + +#: evibes/settings/constance.py:38 +msgid "Payment gateway maximum amount" +msgstr "จำนวนเงินสูงสุดของเกตเวย์การชำระเงิน" + +#: evibes/settings/constance.py:39 +msgid "Exchange rate API key" +msgstr "คีย์ API อัตราแลกเปลี่ยน" + +#: evibes/settings/constance.py:40 +msgid "OpenStreetMap Nominatim API URL" +msgstr "URL ของ API OpenStreetMap Nominatim" + +#: evibes/settings/constance.py:41 +msgid "OpenAI API Key" +msgstr "คีย์ API ของ OpenAI" + +#: evibes/settings/constance.py:42 +msgid "Abstract API Key" +msgstr "คีย์ API แบบนามธรรม" + +#: evibes/settings/constance.py:43 +msgid "HTTP Proxy" +msgstr "HTTP พร็อกซี" + +#: evibes/settings/constance.py:44 +msgid "Disable buy functionality" +msgstr "ปิดการใช้งานฟังก์ชันการซื้อ" + +#: evibes/settings/constance.py:47 +msgid "An entity for storing advertisiment data" +msgstr "หน่วยงานสำหรับเก็บข้อมูลโฆษณา" + +#: evibes/settings/constance.py:49 +msgid "An entity for storing analytics data" +msgstr "หน่วยงานสำหรับเก็บข้อมูลการวิเคราะห์" + +#: evibes/settings/constance.py:55 +msgid "General Options" +msgstr "ตัวเลือกทั่วไป" + +#: evibes/settings/constance.py:63 +msgid "Email Options" +msgstr "ตัวเลือกอีเมล" + +#: evibes/settings/constance.py:72 +msgid "Payment Gateway Options" +msgstr "ตัวเลือกเกตเวย์การชำระเงิน" + +#: evibes/settings/constance.py:79 +msgid "Features Options" +msgstr "คุณสมบัติ ตัวเลือก" + +#: evibes/settings/constance.py:86 +msgid "SEO Options" +msgstr "ตัวเลือก SEO" + +#: evibes/settings/jazzmin.py:20 +msgid "Home" +msgstr "หน้าแรก" + +#: evibes/settings/jazzmin.py:21 +msgid "Storefront" +msgstr "หน้าร้าน" + +#: evibes/settings/jazzmin.py:24 +msgid "GraphQL Docs" +msgstr "เอกสาร GraphQL" + +#: evibes/settings/jazzmin.py:29 +msgid "Platform REST Docs" +msgstr "เอกสาร REST ของแพลตฟอร์ม" + +#: evibes/settings/jazzmin.py:34 +msgid "B2B REST Docs" +msgstr "เอกสาร B2B REST" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "การสนับสนุน" diff --git a/evibes/locale/tr_TR/LC_MESSAGES/django.mo b/evibes/locale/tr_TR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..60d2afc9c0b9bd4e858e49565fdb20659b67c6a6 GIT binary patch literal 2705 zcmai#O>7%Q6vqczz6=y7<*R&6fr=K`-~_cwU4rT)jvI($*LDI(a2VSYXV~3YYj!q` zE5U^W5^zFLi3_Q?^Z=sDrAQTAuyaC)8xj)Ygwz9@AEP1HD`Eg>h;RWA}r3@L{kD9sw2j9QYY{FZex3dRyRQ;BSfi z8u$>_|0eqf_A+(=>%-uEU=F+od>zbyZ-V%+2EORLHuxa8p72v}AJ!MZr@>3$BjB&e z{#EcPtgk0Lc-!Fq6X4^Jm%;s@3*HTW0Nw?D43Zz8C+n}1^|v6|bp^Zw+yW^Mza;z% zdX_d7^_UrXfd&OtoJK#JQ8NdCMFJ^)4uKLRO^UxH-M zC6H2d1tfoe1Su|mfaJ&DAjSC~@ELF)oFxCpLAs{|J`1)%+W!Qk{C@|M-p>iIg5=L0 zTuS#J0O|Y}z(>K!M1BUm9qV>N4U%4z@Iw$`VjS}jCJnNmY^FTYcyfT@H~CLC(fyP& z$`=hB6~_=M9u9<`9mFIX$RF};dr;iT=j{QP;@YLUBO7TP#w34epj6`+P#%z`IIk3A z8WaN>2x}Z)mT!dCh^FQF$~=EVc3HmFGBON#u)^)CNWi`-}>&S0Nv)jFjCoFRBrxI5yl!qqPN(k9%5Ly=h>WDBr8<@H0TL=Emo~C{Y|#@l`^ihcu57d2*s+>^@PvS0+ffT z6>lNr5DAy7-bE-jl;LZ_c>PTmje%Za-zBTrZ13`#I>+6} zMDcqlh7R}6pOc=aNG<&c>z&s;>Rn8kLCwV5p)+bHY4cNkrLZO@*wYTHn9_z*|M^zZ#FAKD_urCYFkA! IYE7fnf8X5U$N&HU literal 0 HcmV?d00001 diff --git a/evibes/locale/tr_TR/LC_MESSAGES/django.po b/evibes/locale/tr_TR/LC_MESSAGES/django.po new file mode 100644 index 00000000..2c892f8c --- /dev/null +++ b/evibes/locale/tr_TR/LC_MESSAGES/django.po @@ -0,0 +1,158 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-06-16 08:59+0100\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: LANGUAGE \n" +"Language: tr-tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: evibes/settings/constance.py:22 +msgid "Name of the project" +msgstr "Projenin adı" + +#: evibes/settings/constance.py:23 +msgid "Frontend domain name" +msgstr "Ön uç alan adı" + +#: evibes/settings/constance.py:24 +msgid "Base domain name" +msgstr "Temel alan adı" + +#: evibes/settings/constance.py:25 +msgid "Name of the company" +msgstr "Şirketin adı" + +#: evibes/settings/constance.py:26 +msgid "Address of the company" +msgstr "Şirketin adresi" + +#: evibes/settings/constance.py:27 +msgid "Phone number of the company" +msgstr "Şirketin telefon numarası" + +#: evibes/settings/constance.py:28 +msgid "SMTP host" +msgstr "SMTP ana bilgisayarı" + +#: evibes/settings/constance.py:29 +msgid "SMTP port" +msgstr "SMTP bağlantı noktası" + +#: evibes/settings/constance.py:30 +msgid "Use TLS (0=No, 1=Yes)" +msgstr "TLS kullanın" + +#: evibes/settings/constance.py:31 +msgid "Use SSL (0=No, 1=Yes)" +msgstr "SSL kullanın" + +#: evibes/settings/constance.py:32 +msgid "SMTP username" +msgstr "SMTP kullanıcı adı" + +#: evibes/settings/constance.py:33 +msgid "SMTP password" +msgstr "SMTP şifresi" + +#: evibes/settings/constance.py:34 +msgid "Mail from option" +msgstr "E-posta göndericisinin adresi" + +#: evibes/settings/constance.py:35 +msgid "Payment gateway URL" +msgstr "Ödeme ağ geçidi URL'si" + +#: evibes/settings/constance.py:36 +msgid "Payment gateway token" +msgstr "Ödeme ağ geçidi belirteci" + +#: evibes/settings/constance.py:37 +msgid "Payment gateway minimum amount" +msgstr "Ödeme ağ geçidi minimum tutarı" + +#: evibes/settings/constance.py:38 +msgid "Payment gateway maximum amount" +msgstr "Ödeme ağ geçidi maksimum tutarı" + +#: evibes/settings/constance.py:39 +msgid "Exchange rate API key" +msgstr "Döviz kuru API anahtarı" + +#: evibes/settings/constance.py:40 +msgid "OpenStreetMap Nominatim API URL" +msgstr "OpenStreetMap Nominatim API URL'si" + +#: evibes/settings/constance.py:41 +msgid "OpenAI API Key" +msgstr "OpenAI API Anahtarı" + +#: evibes/settings/constance.py:42 +msgid "Abstract API Key" +msgstr "Soyut API Anahtarı" + +#: evibes/settings/constance.py:43 +msgid "HTTP Proxy" +msgstr "HTTP Proxy" + +#: evibes/settings/constance.py:44 +msgid "Disable buy functionality" +msgstr "Satın alma işlevini devre dışı bırakın" + +#: evibes/settings/constance.py:47 +msgid "An entity for storing advertisiment data" +msgstr "Reklam verilerini depolamak için bir varlık" + +#: evibes/settings/constance.py:49 +msgid "An entity for storing analytics data" +msgstr "Analitik verileri depolamak için bir varlık" + +#: evibes/settings/constance.py:55 +msgid "General Options" +msgstr "Genel Seçenekler" + +#: evibes/settings/constance.py:63 +msgid "Email Options" +msgstr "E-posta Seçenekleri" + +#: evibes/settings/constance.py:72 +msgid "Payment Gateway Options" +msgstr "Ödeme Geçidi Seçenekleri" + +#: evibes/settings/constance.py:79 +msgid "Features Options" +msgstr "Özellikler Seçenekler" + +#: evibes/settings/constance.py:86 +msgid "SEO Options" +msgstr "SEO Seçenekleri" + +#: evibes/settings/jazzmin.py:20 +msgid "Home" +msgstr "Ev" + +#: evibes/settings/jazzmin.py:21 +msgid "Storefront" +msgstr "Vitrin" + +#: evibes/settings/jazzmin.py:24 +msgid "GraphQL Docs" +msgstr "GraphQL Dokümanları" + +#: evibes/settings/jazzmin.py:29 +msgid "Platform REST Docs" +msgstr "Platform REST Dokümanları" + +#: evibes/settings/jazzmin.py:34 +msgid "B2B REST Docs" +msgstr "B2B REST Dokümanları" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Destek" diff --git a/evibes/locale/vi_VN/LC_MESSAGES/django.mo b/evibes/locale/vi_VN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..969ce4bedce60b67cdb7f204d0b0734e3a2ebbbf GIT binary patch literal 2910 zcmbW1U1(fI6vwApzoNBT>qqO?saj328#gH}?beiTl1&<$&91wfs-O>(ySKa7?wz~d zJ2%a~2vVWc53phpEke>#O4ZPo7D}@q=(c@P@j>uOghjzO5y7W|_&>8Zo20D@4!Qfw z%$zxMzUKV2YWZP-u^!(;_y(5=u?ei)fFFz z*ML7n>%W8dV*XdOzk0b4t1({>t^^a{9pH0d2lxVrKQVzH)>i`W0jDCq1Kx@GH25fZ z3cMfuF53SUd<63=5!c?-x_>M9Al5VBDsV4&JNPt1+D?v{v^n98Ia>=fxVyx9|uo>eDBxbR`3rn4sL+b2f$ZA zmYa0dl^+2ig9gLB9V_kk2i{gt->PlGq5c{Pu`rAi`vPTnF;t660KQ9(g?6 zLi?BR;hJPWIA>5{2J2_tNO5~0{3c#EgOA~3ALa+=i)(Uzz-3drTz4EZ9_#V3{X9^r zCI?(sNSlc#*Ax$~WgbX_iHk^11lpIDret=6cG)$NEEat`2*}$*x@?o>xmBsKtjJc{ z(KXuR`4ni+cT|aFankm+6F4q5sVKGlCqX4EHSJhIOQ^rMpK_^ufd)M*5dAW+spz@V zQKY16i$N!l6BU~#LR=RrOFJIU<8qOLP=zv8UI|2M$|_4$vdNd)HXiJS2Sc{hA$(|y z4f&qZwkj^UW7t-KzgiJcw{O7pFIe9tA%TrI|6=G7ru zyjJzSS8Yp+Ox0G&k#=x-n%BN<>$I%WnCCi5YR5JE+qU-h+Dc^0p0Y`W?u6}M?OwJbHFEDRN?bmbX`7f& zBV=VS(8Byzl|iu2^NZ2U^P}}Juzi!`JW9w$NMUL|tX5fI9A%Ktk5Xs6Z_L~9)pSqa zOLov@mJ6f#tCx`;4smRx7~5_80SY2Psof*}sXT4$j(5j9ayDy?rGt`FjP-}5AXe}a z)RE1^a`q%@)>E-T#4|y?@!n0b_~uy8W{Ph~Y})#CyeA&-7?pvJ6?~}zIPUpSKAg!B zzW(vC%x-#iATw4-4it6_jptHW8Oe1IWYXJlOqD`evSS5Xx(OOhjt!3|hg1J4pP)%6 zHmN$&Bk9zFLp|_gz*H}6sa0XDwx{$n)e7FqHbV9Lfvx+-3q!Fj3vz7p9@~$ll;sui zOcS(a!qFYsN{E7w4Izg?f>hN^gTCHv)cUutQ_;FU>gn3nAqtJNF6rjnDNVb|jkA&~ zR9t+oS$|vN)@J=6Sjy%5Eo{ymgOJsj@&2cZYPoS#k#5Xdo{lzMKc=b}1NtMcc zXO%k9e7Yd{sUjCEZzw7?>xV3{yK#<;NJz$GcJrh~>f(MF=!O!j)2f7n7iuO1@1i4e zHxlgtAz=0MRB{?KgtLbn`0h1k92}Wt1B{}{#x#s=t5{+OT$z=K(&f|5`Vni%O;$NH zcQ3dX^($ez6mi26T&##C?mn?JSH{jLW2(gJKXKUWS+)&vXlJoCGnqx2&QN1UEpo5b z%$BM~CoJUfF{! z4$Ccm5Z9KX*;l6G@Ul?$*M\n" +"Language-Team: LANGUAGE \n" +"Language: vi-vn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: evibes/settings/constance.py:22 +msgid "Name of the project" +msgstr "Tên của dự án" + +#: evibes/settings/constance.py:23 +msgid "Frontend domain name" +msgstr "Tên miền phía trước" + +#: evibes/settings/constance.py:24 +msgid "Base domain name" +msgstr "Tên miền gốc" + +#: evibes/settings/constance.py:25 +msgid "Name of the company" +msgstr "Tên công ty" + +#: evibes/settings/constance.py:26 +msgid "Address of the company" +msgstr "Địa chỉ của công ty" + +#: evibes/settings/constance.py:27 +msgid "Phone number of the company" +msgstr "Số điện thoại của công ty" + +#: evibes/settings/constance.py:28 +msgid "SMTP host" +msgstr "Máy chủ SMTP" + +#: evibes/settings/constance.py:29 +msgid "SMTP port" +msgstr "Cổng SMTP" + +#: evibes/settings/constance.py:30 +msgid "Use TLS (0=No, 1=Yes)" +msgstr "Sử dụng TLS" + +#: evibes/settings/constance.py:31 +msgid "Use SSL (0=No, 1=Yes)" +msgstr "Sử dụng SSL" + +#: evibes/settings/constance.py:32 +msgid "SMTP username" +msgstr "Tên người dùng SMTP" + +#: evibes/settings/constance.py:33 +msgid "SMTP password" +msgstr "Mật khẩu SMTP" + +#: evibes/settings/constance.py:34 +msgid "Mail from option" +msgstr "Địa chỉ email của người gửi" + +#: evibes/settings/constance.py:35 +msgid "Payment gateway URL" +msgstr "Đường dẫn URL cổng thanh toán" + +#: evibes/settings/constance.py:36 +msgid "Payment gateway token" +msgstr "Token cổng thanh toán" + +#: evibes/settings/constance.py:37 +msgid "Payment gateway minimum amount" +msgstr "Số tiền tối thiểu cho cổng thanh toán" + +#: evibes/settings/constance.py:38 +msgid "Payment gateway maximum amount" +msgstr "Giới hạn số tiền tối đa qua cổng thanh toán" + +#: evibes/settings/constance.py:39 +msgid "Exchange rate API key" +msgstr "Khóa API tỷ giá hối đoái" + +#: evibes/settings/constance.py:40 +msgid "OpenStreetMap Nominatim API URL" +msgstr "Địa chỉ URL API Nominatim của OpenStreetMap" + +#: evibes/settings/constance.py:41 +msgid "OpenAI API Key" +msgstr "Khóa API OpenAI" + +#: evibes/settings/constance.py:42 +msgid "Abstract API Key" +msgstr "Tóm tắt Khóa API" + +#: evibes/settings/constance.py:43 +msgid "HTTP Proxy" +msgstr "Proxy HTTP" + +#: evibes/settings/constance.py:44 +msgid "Disable buy functionality" +msgstr "Vô hiệu hóa chức năng mua hàng" + +#: evibes/settings/constance.py:47 +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:49 +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:55 +msgid "General Options" +msgstr "Tùy chọn chung" + +#: evibes/settings/constance.py:63 +msgid "Email Options" +msgstr "Tùy chọn email" + +#: evibes/settings/constance.py:72 +msgid "Payment Gateway Options" +msgstr "Các tùy chọn cổng thanh toán" + +#: evibes/settings/constance.py:79 +msgid "Features Options" +msgstr "Tính năng và tùy chọn" + +#: evibes/settings/constance.py:86 +msgid "SEO Options" +msgstr "Các tùy chọn SEO" + +#: evibes/settings/jazzmin.py:20 +msgid "Home" +msgstr "Trang chủ" + +#: evibes/settings/jazzmin.py:21 +msgid "Storefront" +msgstr "Mặt tiền cửa hàng" + +#: evibes/settings/jazzmin.py:24 +msgid "GraphQL Docs" +msgstr "Tài liệu GraphQL" + +#: evibes/settings/jazzmin.py:29 +msgid "Platform REST Docs" +msgstr "Tài liệu REST của nền tảng" + +#: evibes/settings/jazzmin.py:34 +msgid "B2B REST Docs" +msgstr "Tài liệu REST cho doanh nghiệp (B2B)" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Hỗ trợ" diff --git a/evibes/locale/zh_Hans/LC_MESSAGES/django.po b/evibes/locale/zh_Hans/LC_MESSAGES/django.po index b25f1cf4..e6cc815f 100644 --- a/evibes/locale/zh_Hans/LC_MESSAGES/django.po +++ b/evibes/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/evibes/settings/base.py b/evibes/settings/base.py index 1194b73d..d95d84d2 100644 --- a/evibes/settings/base.py +++ b/evibes/settings/base.py @@ -189,23 +189,33 @@ TEMPLATES: list[dict] = [ USE_I18N: bool = True LANGUAGES: tuple[tuple[str, str], ...] = ( - ("en-gb", "English (British)"), ("ar-ar", "العربية"), ("cs-cz", "Česky"), ("da-dk", "Dansk"), ("de-de", "Deutsch"), + ("en-gb", "English (British)"), ("en-us", "English (American)"), ("es-es", "Español"), + ("fa-ir", "فارسی"), ("fr-fr", "Français"), + ("he-il", "עברית"), ("hi-in", "हिंदी"), + ("hr-hr", "Hrvatski"), + ("id-id", "Bahasa Indonesia"), ("it-it", "Italiano"), ("ja-jp", "日本語"), ("kk-kz", "Қазақ"), + ("ko-kr", "한국어"), ("nl-nl", "Nederlands"), + ("no-no", "Norsk"), ("pl-pl", "Polska"), ("pt-br", "Português"), ("ro-ro", "Română"), ("ru-ru", "Русский"), + ("sv-se", "Svenska"), + ("th-th", "ไทย"), + ("tr-tr", "Türkçe"), + ("vi-vn", "Tiếng Việt"), ("zh-hans", "简体中文"), ) diff --git a/payments/locale/ar_AR/LC_MESSAGES/django.po b/payments/locale/ar_AR/LC_MESSAGES/django.po index ad06a16a..f4eec084 100644 --- a/payments/locale/ar_AR/LC_MESSAGES/django.po +++ b/payments/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/cs_CZ/LC_MESSAGES/django.po b/payments/locale/cs_CZ/LC_MESSAGES/django.po index faba4faf..43e25a6c 100644 --- a/payments/locale/cs_CZ/LC_MESSAGES/django.po +++ b/payments/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/da_DK/LC_MESSAGES/django.po b/payments/locale/da_DK/LC_MESSAGES/django.po index 71b184aa..cbb57010 100644 --- a/payments/locale/da_DK/LC_MESSAGES/django.po +++ b/payments/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/de_DE/LC_MESSAGES/django.po b/payments/locale/de_DE/LC_MESSAGES/django.po index c6cba6d8..5ff3d30c 100644 --- a/payments/locale/de_DE/LC_MESSAGES/django.po +++ b/payments/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/en_GB/LC_MESSAGES/django.po b/payments/locale/en_GB/LC_MESSAGES/django.po index 84cd8668..3fe595a5 100644 --- a/payments/locale/en_GB/LC_MESSAGES/django.po +++ b/payments/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/en_US/LC_MESSAGES/django.po b/payments/locale/en_US/LC_MESSAGES/django.po index def84e14..999ef8c9 100644 --- a/payments/locale/en_US/LC_MESSAGES/django.po +++ b/payments/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/es_ES/LC_MESSAGES/django.po b/payments/locale/es_ES/LC_MESSAGES/django.po index 77450b0e..874a9b72 100644 --- a/payments/locale/es_ES/LC_MESSAGES/django.po +++ b/payments/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/fa_IR/LC_MESSAGES/django.mo b/payments/locale/fa_IR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c5906d1cd061dff54de8b533942893de34efc9e GIT binary patch literal 337 zcmYL@Jx{|h5Qd9j%E-dP;DHUUz!pqFHI3Uw*h!U-O0b#M1fyU_j*H-j@b~yFTo(FD zk8Zg4bkFbc(a#8TfSe*{$RTop42h8wT;AXuI{#UD_pUbq(k-mD?~SvRtk~?4EjU^8 zqD=EFDs<<30NFQY3lF=dhsseBt#T;zrx|V_Q9)Dk#909{hlG)3PGx%joM$`|st-_k zW&2hI=P8-jLXeC}P9|KkR7_ct6ud0&v1*&0YBW?@eNZA;wx|b_i4fD)jGb@x9W;=s z, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: payments/admin.py:15 payments/models.py:41 +msgid "transaction" +msgstr "" + +#: payments/admin.py:16 payments/models.py:42 +msgid "transactions" +msgstr "" + +#: payments/apps.py:8 +msgid "payments" +msgstr "" + +#: payments/choices.py:3 +msgid "deposit" +msgstr "" + +#: payments/choices.py:3 +msgid "withdraw" +msgstr "" + +#: payments/docs/drf/views.py:10 +msgid "deposit to balance" +msgstr "" + +#: payments/docs/drf/views.py:11 +msgid "deposit some money to balance" +msgstr "" + +#: payments/models.py:19 +msgid "order to process after paid" +msgstr "" + +#: payments/models.py:22 +msgid "processing details" +msgstr "" + +#: payments/models.py:37 +#, python-brace-format +msgid "" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" +msgstr "" + +#: payments/models.py:59 +msgid "balance" +msgstr "" + +#: payments/models.py:60 +msgid "balances" +msgstr "" + +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 +msgid "balance deposit" +msgstr "" + +#: payments/templates/balance_deposit_email.html:88 +msgid "logo" +msgstr "" + +#: payments/templates/balance_deposit_email.html:94 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "" + +#: payments/templates/balance_deposit_email.html:95 +#, python-format +msgid "" +"we have successfully credited your account with %(amount)s. your current\n" +" balance is %(balance)s." +msgstr "" + +#: payments/templates/balance_deposit_email.html:98 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" + +#: payments/templates/balance_deposit_email.html:100 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "" + +#: payments/templates/balance_deposit_email.html:106 +msgid "all rights reserved" +msgstr "" + +#: payments/utils/__init__.py:8 +msgid "a provider to get rates from is required" +msgstr "" + +#: payments/utils/__init__.py:15 +#, python-brace-format +msgid "couldn't find provider {provider}" +msgstr "" + +#: payments/utils/emailing.py:31 +#, python-brace-format +msgid "{config.PROJECT_NAME} | balance deposit" +msgstr "" diff --git a/payments/locale/fr_FR/LC_MESSAGES/django.po b/payments/locale/fr_FR/LC_MESSAGES/django.po index fd1d3ff3..97a257a4 100644 --- a/payments/locale/fr_FR/LC_MESSAGES/django.po +++ b/payments/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/he_IL/LC_MESSAGES/django.mo b/payments/locale/he_IL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..df51fc6f393fa0ca5ef748bb3e82af42e3495eb9 GIT binary patch literal 2457 zcma)+U2has7{`x-3hOKQmY~K5lZGOlvMnLvLJ8Ztg*EK9S+-Sf+)Q`R?vBpREOX8j zo5DBnVoP_a#Zp=%P|zEr-kJCTyfrxqiQaf^;z#iR%+9uj06Oi=Z_b(L^?%NuKlkqJ z2wZRCejE4ixZlP7)l+!j+V!*${oro!Rd5)54jczx2J_%9@H6mzumh69YX8`XTi6?d645Rfo#79J`er~&VavyFM#jC=@NJtWc%;I1K`hK z8MXfbeu#1USs@6V2VVkLK<@9mc>Ej4{oMzLz#S+$0UiZY;3<%`nFqO#MX&_^0CL_v zcpL)vfgFDvd>xzu@h`r>!vi(Qb^irk0RI6w&&=+we*L20 zah~lLuM66Zu041nR8#{`aL!k7vxd*$ehoJyjMfGaFY<#go0@??>r`Yw+NYY-6xdoS zss?_897Tb=5ITXZ2-|fjaB6kUb4muYn47U(+bhc+sUn-ca&&L3#Eeu3C~J05Q3EGt zf|I%~sjnX?KbK`)^6Z8@s7On@AmzN5vP)GbP`%6p!l}}nA5z_(m1KK!bRk5=j_;`fs!HiX1}Qmu+4rbAd=-S9(CQzL}bRY#NKq277qt~#~B$@KYLCSNR_P8Tzu zq|cXf*?cxPmAh;`)*$_9WUxJj5*KAxA{Cao}cj39T`jxCKCnh(?DA}RdXuVXjoHL(N9rga>6ReS%)30kMJu< z(QtD3sFfVDjwC60BsKiOp(L)vSzBqV$jjl{+7A%?^hAMhk51($rs>4kM823FE1nvk zDr7K|EewuL)uREoT2G*lzQ$Eo`|((lp!5gIypJR!`QSu`8wE}3<6%iJNeioZ3}Av~7NJ#&N1 zin(JJ%nD(26Q;|sTQ=8)`G)7(<|-0fafUib~p|_sZ>a8`lX~ zH{UWA%`!L7JwSyx*b-V?fZ>fzSJUoVEyFIFzY8ah^vHt>agbw~1z$1OSg=-Pes6$N zL?Uy=>-_mvPpB10zX~Ua!5%9-PiDb-#L*N5yJ9+A-c>lQb<4X6Z!UYWTkDe9;N^@f z6`QY|1S@+B!hg-(x3S`}qrmGrRD))lQt{_#j?5D5V9DXz2-o637(D)b`rijwoTG*6 zv8THGZ6j6y!`sNX#7#yE)LWi4*7jz!2wNu@ta(dsuyvawKv1qb+PBeautDp=Qw!l& UAymg)d+fP|VBP(MKyd=`FS-AJZ2$lO literal 0 HcmV?d00001 diff --git a/payments/locale/he_IL/LC_MESSAGES/django.po b/payments/locale/he_IL/LC_MESSAGES/django.po new file mode 100644 index 00000000..1f807c5b --- /dev/null +++ b/payments/locale/he_IL/LC_MESSAGES/django.po @@ -0,0 +1,119 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: he-il\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: payments/admin.py:15 payments/models.py:41 +msgid "transaction" +msgstr "עסקה" + +#: payments/admin.py:16 payments/models.py:42 +msgid "transactions" +msgstr "עסקאות" + +#: payments/apps.py:8 +msgid "payments" +msgstr "תשלומים" + +#: payments/choices.py:3 +msgid "deposit" +msgstr "הפקדה" + +#: payments/choices.py:3 +msgid "withdraw" +msgstr "למשוך" + +#: payments/docs/drf/views.py:10 +msgid "deposit to balance" +msgstr "הפקדה לאיזון" + +#: payments/docs/drf/views.py:11 +msgid "deposit some money to balance" +msgstr "הפקד סכום כסף כדי לאזן את החשבון" + +#: payments/models.py:19 +msgid "order to process after paid" +msgstr "הזמנה לעיבוד לאחר תשלום" + +#: payments/models.py:22 +msgid "processing details" +msgstr "פרטי העיבוד" + +#: payments/models.py:37 +#, python-brace-format +msgid "" +"transaction amount must fit into " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +msgstr "" +"סכום העסקה חייב להתאים " +"ל-{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" + +#: payments/models.py:59 +msgid "balance" +msgstr "מאזניים" + +#: payments/models.py:60 +msgid "balances" +msgstr "מאזניים" + +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 +msgid "balance deposit" +msgstr "פיקדונות מאזניים" + +#: payments/templates/balance_deposit_email.html:88 +msgid "logo" +msgstr "לוגו" + +#: payments/templates/balance_deposit_email.html:94 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "שלום %(user_first_name)s," + +#: payments/templates/balance_deposit_email.html:95 +#, python-format +msgid "" +"we have successfully credited your account with %(amount)s. your current\n" +" balance is %(balance)s." +msgstr "" +"הזכרנו בהצלחה את חשבונך עם %(amount)s. היתרה הנוכחית שלך היא %(balance)s." + +#: payments/templates/balance_deposit_email.html:98 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "אם יש לך שאלות, אל תהסס לפנות לתמיכה שלנו ב-%(contact_email)s." + +#: payments/templates/balance_deposit_email.html:100 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "בברכה,
צוות %(project_name)s" + +#: payments/templates/balance_deposit_email.html:106 +msgid "all rights reserved" +msgstr "כל הזכויות שמורות" + +#: payments/utils/__init__.py:8 +msgid "a provider to get rates from is required" +msgstr "נדרש ספק ממנו ניתן לקבל תעריפים" + +#: payments/utils/__init__.py:15 +#, python-brace-format +msgid "couldn't find provider {provider}" +msgstr "לא ניתן למצוא את הספק {provider}" + +#: payments/utils/emailing.py:31 +#, python-brace-format +msgid "{config.PROJECT_NAME} | balance deposit" +msgstr "{config.PROJECT_NAME} | הפקדת יתרה" diff --git a/payments/locale/hi_IN/LC_MESSAGES/django.po b/payments/locale/hi_IN/LC_MESSAGES/django.po index ba3d92b9..aa94407c 100644 --- a/payments/locale/hi_IN/LC_MESSAGES/django.po +++ b/payments/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/payments/locale/hr_HR/LC_MESSAGES/django.mo b/payments/locale/hr_HR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c5906d1cd061dff54de8b533942893de34efc9e GIT binary patch literal 337 zcmYL@Jx{|h5Qd9j%E-dP;DHUUz!pqFHI3Uw*h!U-O0b#M1fyU_j*H-j@b~yFTo(FD zk8Zg4bkFbc(a#8TfSe*{$RTop42h8wT;AXuI{#UD_pUbq(k-mD?~SvRtk~?4EjU^8 zqD=EFDs<<30NFQY3lF=dhsseBt#T;zrx|V_Q9)Dk#909{hlG)3PGx%joM$`|st-_k zW&2hI=P8-jLXeC}P9|KkR7_ct6ud0&v1*&0YBW?@eNZA;wx|b_i4fD)jGb@x9W;=s z, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: payments/admin.py:15 payments/models.py:41 +msgid "transaction" +msgstr "" + +#: payments/admin.py:16 payments/models.py:42 +msgid "transactions" +msgstr "" + +#: payments/apps.py:8 +msgid "payments" +msgstr "" + +#: payments/choices.py:3 +msgid "deposit" +msgstr "" + +#: payments/choices.py:3 +msgid "withdraw" +msgstr "" + +#: payments/docs/drf/views.py:10 +msgid "deposit to balance" +msgstr "" + +#: payments/docs/drf/views.py:11 +msgid "deposit some money to balance" +msgstr "" + +#: payments/models.py:19 +msgid "order to process after paid" +msgstr "" + +#: payments/models.py:22 +msgid "processing details" +msgstr "" + +#: payments/models.py:37 +#, python-brace-format +msgid "" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" +msgstr "" + +#: payments/models.py:59 +msgid "balance" +msgstr "" + +#: payments/models.py:60 +msgid "balances" +msgstr "" + +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 +msgid "balance deposit" +msgstr "" + +#: payments/templates/balance_deposit_email.html:88 +msgid "logo" +msgstr "" + +#: payments/templates/balance_deposit_email.html:94 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "" + +#: payments/templates/balance_deposit_email.html:95 +#, python-format +msgid "" +"we have successfully credited your account with %(amount)s. your current\n" +" balance is %(balance)s." +msgstr "" + +#: payments/templates/balance_deposit_email.html:98 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" + +#: payments/templates/balance_deposit_email.html:100 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "" + +#: payments/templates/balance_deposit_email.html:106 +msgid "all rights reserved" +msgstr "" + +#: payments/utils/__init__.py:8 +msgid "a provider to get rates from is required" +msgstr "" + +#: payments/utils/__init__.py:15 +#, python-brace-format +msgid "couldn't find provider {provider}" +msgstr "" + +#: payments/utils/emailing.py:31 +#, python-brace-format +msgid "{config.PROJECT_NAME} | balance deposit" +msgstr "" diff --git a/payments/locale/id_ID/LC_MESSAGES/django.mo b/payments/locale/id_ID/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..fb16bb25e6581dacf8e0b0493532f2d2f931b962 GIT binary patch literal 2429 zcmbW1%WoT16vhWA(3)2%ZwlhHQfNXmshbE+!AU)%!@X z+DiNZtdM{mVvAr`SRhqm!N0%?36|`T*s$ljV>?a-4H6?=|9tP<$9KMa=KOZ-&}SZ= zSJ2)-`x)&mv`-$v51zx1dfqg61bhLU2cHC2!RNpxco_T;d1|X zX#W*lK)?FLP`?G;x-Y?Jz;D1K;1A$Q@F#Ev{2g?u}6zAjYInRIXv5yJ){-0ne^8V(F)R*|-O zo+(3YN_4<8H9cCiBNCSJjGpu2EXur0jm$=5fzX<`Yv6v)GW2pDBqBB18@-ch1XB%` zYtJZ7H8eoo{{O^DW>Z6nh1FeYNT$$x8)tWAG`Cs3-l#R(J8RW;?OOHvPNUweH?|vh z{fADdeo#!22OI<#_@mxq=hshbPg)w05=F7x1{O8>!B(HJ$xHjr4ZPG zhK+8}W!=>DsN-C7JBEsHd3%~$8|$^@_D-|fsNJPIZ($V)S5Tq(^8CAg`K-TCrt(5% z{=L&>Jf$nFjo)_H5wpn@HecIl5!%vrbK@#qSl(#1tIO^8SGQX=jMQ6m%Nvc0Se8bX zBjLA^?-g2V)!X&0OH^yFU2*)cWfg*08I~ILMr{(;S%kBUVD$x~6^P;O4=g-sd@8Wby zCl=}K%=wbHB6Fc)+vk*Wkq(dvOfe5Q#Q@U4_6dm`a?Zw0F|1_Q+Y*UoBvPLOnH#21 z#`xB48c8e(;f_CqcNqmnCLN4$idFC!du(wWW?p+Tj^dM04`SKOl997uqiI!^+IM>@!snBV;6q zx-a3HGN?Gr=`7tSB1Pqm?BuAZXFG*AF0|10@gFYqIgv2#zz^wPD$f;Hc{YVE?uVTV zp+t?*sPxDW;Q|e12luBi3(n&YB3vm-52Pl=RE!i^&wVYu^`Sk(s)PaDtFmr4Z5awh zp?2?!{oiG1a^Phb`A}*{s2*z>yGxDwMHzA-F+3W&JUV`V87k6e_*OH!GI_9x#g#rd bpEyL$x$3sBIw50_+{iMi\n" +"Language-Team: BRITISH ENGLISH \n" +"Language: id-id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: payments/admin.py:15 payments/models.py:41 +msgid "transaction" +msgstr "Transaksi" + +#: payments/admin.py:16 payments/models.py:42 +msgid "transactions" +msgstr "Transaksi" + +#: payments/apps.py:8 +msgid "payments" +msgstr "Pembayaran" + +#: payments/choices.py:3 +msgid "deposit" +msgstr "Deposit" + +#: payments/choices.py:3 +msgid "withdraw" +msgstr "Menarik diri" + +#: payments/docs/drf/views.py:10 +msgid "deposit to balance" +msgstr "Setoran ke saldo" + +#: payments/docs/drf/views.py:11 +msgid "deposit some money to balance" +msgstr "Menyetor sejumlah uang untuk menyeimbangkan" + +#: payments/models.py:19 +msgid "order to process after paid" +msgstr "Pesanan akan diproses setelah dibayar" + +#: payments/models.py:22 +msgid "processing details" +msgstr "Detail pemrosesan" + +#: payments/models.py:37 +#, python-brace-format +msgid "" +"transaction amount must fit into " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +msgstr "" +"Jumlah transaksi harus sesuai dengan " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" + +#: payments/models.py:59 +msgid "balance" +msgstr "Keseimbangan" + +#: payments/models.py:60 +msgid "balances" +msgstr "Timbangan" + +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 +msgid "balance deposit" +msgstr "Setoran Saldo" + +#: payments/templates/balance_deposit_email.html:88 +msgid "logo" +msgstr "Logo" + +#: payments/templates/balance_deposit_email.html:94 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Halo %(user_first_name)s," + +#: payments/templates/balance_deposit_email.html:95 +#, python-format +msgid "" +"we have successfully credited your account with %(amount)s. your current\n" +" balance is %(balance)s." +msgstr "" +"Kami telah berhasil mengkreditkan akun Anda dengan %(amount)s. Saldo Anda saat ini\n" +" saldo Anda saat ini adalah %(balance)s." + +#: payments/templates/balance_deposit_email.html:98 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" +"Jika Anda memiliki pertanyaan, jangan ragu untuk menghubungi tim dukungan kami di\n" +" %(contact_email)s." + +#: payments/templates/balance_deposit_email.html:100 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Salam hormat, tim %(project_name)s" + +#: payments/templates/balance_deposit_email.html:106 +msgid "all rights reserved" +msgstr "Semua hak cipta dilindungi undang-undang" + +#: payments/utils/__init__.py:8 +msgid "a provider to get rates from is required" +msgstr "Diperlukan penyedia layanan untuk mendapatkan tarif" + +#: payments/utils/__init__.py:15 +#, python-brace-format +msgid "couldn't find provider {provider}" +msgstr "Tidak dapat menemukan penyedia {provider}" + +#: payments/utils/emailing.py:31 +#, python-brace-format +msgid "{config.PROJECT_NAME} | balance deposit" +msgstr "{config.PROJECT_NAME} | Setoran Saldo" diff --git a/payments/locale/it_IT/LC_MESSAGES/django.po b/payments/locale/it_IT/LC_MESSAGES/django.po index d9ec00dd..8f25ed54 100644 --- a/payments/locale/it_IT/LC_MESSAGES/django.po +++ b/payments/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/ja_JP/LC_MESSAGES/django.po b/payments/locale/ja_JP/LC_MESSAGES/django.po index 54b5c373..81577006 100644 --- a/payments/locale/ja_JP/LC_MESSAGES/django.po +++ b/payments/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/kk_KZ/LC_MESSAGES/django.po b/payments/locale/kk_KZ/LC_MESSAGES/django.po index ba3d92b9..aa94407c 100644 --- a/payments/locale/kk_KZ/LC_MESSAGES/django.po +++ b/payments/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/payments/locale/ko_KR/LC_MESSAGES/django.mo b/payments/locale/ko_KR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..66259bff971db3b3ebd52a89f53fcc2f3c7a4365 GIT binary patch literal 2391 zcmbu9TW=dh6vqc>p*6QsZW0%9iinz)tm~vgR8CXj1g99)N#r_(z7RI{*x7cy>+U5b zYAd-YsRE5e1a)JziRFsYQj~`@Nz*(8_yoN1ganT~c*kD>@gIAgM9_u@MxOoc%$}KZ z&VP>QkKNmf4DDs~*U*1Oe*=B$5j@a#Jjz%rxD$LH>;Rttd%e*fww!d=)$g%Kc_QXsIW~#1}rDaDPIcIZg6m!F>t{N%cB&B)Yv^A$Ww%IVZ zu_4c@R@!bmJZv3tMmV*!!sRKRa)t~w$M@Ofa5cwLrmLroy$)qGBfSySxn_75SaWxu zWScooIn&@{GW2FF&99rLM!2qVzSzht#ci9^ zj05%as+MMXbu7mX$7cRF&B#Jj2g_~dSgK(o21K{{oz$G^8V==LNS)Cf(hS6V4!$#5 zHaHMD8ISfQhmJ;)(T^f0hvKomSbQ*kL3yY_y93$gTYWR6iA>>Ek}vlSuL$}yIEUF znqdkI^eYKIs>ub)`}h}xsUy_!juL8D4u&XnFx>I(+aa{TG1YdIq&yB?bxaGJAMH;N zdiP*o{|P$W)8Chj^d#Tw9ZW}2Q} zZYfbCWu{SMVLCLdIe`J)wNzc{HLaW-CL>=T+Fc!;)OhV`HE2&4weRZ;Fmdflb#+qA zjgz-dmnXf;H-pUk;d}3!3RPF8yj%0+EiH@L z3KQikqIkmxiSh(CWuj6L*H&3|VOo4XzrI8L{`lA3QJX3--*tJ~`)-ZI!cQ_BF9IE|MVJHT=|_*RAUlwPH!k%v1G#rB*7Ece^ZBkmSNYqbp8&6Gdq|zKRSV ze6LhjE+Ug!ah617TFfmYwMj9%=H0>D)m2fMg%sj;fuM|-nfHseT=GHkxQjQ$T;cy;F7@0XFG{4ihDuqlk*3G{1)20*2~{\n" +"Language-Team: BRITISH ENGLISH \n" +"Language: ko-kr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: payments/admin.py:15 payments/models.py:41 +msgid "transaction" +msgstr "거래" + +#: payments/admin.py:16 payments/models.py:42 +msgid "transactions" +msgstr "거래" + +#: payments/apps.py:8 +msgid "payments" +msgstr "결제" + +#: payments/choices.py:3 +msgid "deposit" +msgstr "입금" + +#: payments/choices.py:3 +msgid "withdraw" +msgstr "철회" + +#: payments/docs/drf/views.py:10 +msgid "deposit to balance" +msgstr "잔액 입금" + +#: payments/docs/drf/views.py:11 +msgid "deposit some money to balance" +msgstr "잔액을 입금하여 균형 맞추기" + +#: payments/models.py:19 +msgid "order to process after paid" +msgstr "결제 후 처리할 주문" + +#: payments/models.py:22 +msgid "processing details" +msgstr "처리 세부 정보" + +#: payments/models.py:37 +#, python-brace-format +msgid "" +"transaction amount must fit into " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +msgstr "" +"거래 금액은 {config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}에 " +"맞아야 합니다." + +#: payments/models.py:59 +msgid "balance" +msgstr "잔액" + +#: payments/models.py:60 +msgid "balances" +msgstr "저울" + +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 +msgid "balance deposit" +msgstr "잔액 입금" + +#: payments/templates/balance_deposit_email.html:88 +msgid "logo" +msgstr "로고" + +#: payments/templates/balance_deposit_email.html:94 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "안녕하세요 %(user_first_name)s," + +#: payments/templates/balance_deposit_email.html:95 +#, python-format +msgid "" +"we have successfully credited your account with %(amount)s. your current\n" +" balance is %(balance)s." +msgstr "" +"귀하의 계정에 %(amount)s가 성공적으로 적립되었습니다. 현재\n" +" 잔액은 %(balance)s입니다." + +#: payments/templates/balance_deposit_email.html:98 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" +"궁금한 점이 있으면 언제든지 다음 주소로 지원팀에 문의하세요.\n" +" %(contact_email)s." + +#: payments/templates/balance_deposit_email.html:100 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "감사합니다,
%(project_name)s 팀" + +#: payments/templates/balance_deposit_email.html:106 +msgid "all rights reserved" +msgstr "모든 권리 보유" + +#: payments/utils/__init__.py:8 +msgid "a provider to get rates from is required" +msgstr "요금을 받을 공급업체가 필요합니다." + +#: payments/utils/__init__.py:15 +#, python-brace-format +msgid "couldn't find provider {provider}" +msgstr "공급자를 찾을 수 없습니다 {provider}." + +#: payments/utils/emailing.py:31 +#, python-brace-format +msgid "{config.PROJECT_NAME} | balance deposit" +msgstr "{config.PROJECT_NAME} | 잔액 입금" diff --git a/payments/locale/nl_NL/LC_MESSAGES/django.po b/payments/locale/nl_NL/LC_MESSAGES/django.po index ea842371..ea8c8fa2 100644 --- a/payments/locale/nl_NL/LC_MESSAGES/django.po +++ b/payments/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/no_NO/LC_MESSAGES/django.mo b/payments/locale/no_NO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a7b49033997f1099ac4ddcfa5013f1af4f2ee1a7 GIT binary patch literal 2373 zcmbu9&2Jk;7{;g2LTf$>8dK45V5ISHcRlmYv(NkP`}?tj zUownWFyFwukNFnn=LhhEariOD=D;K13*Z9yB)9?|1#948@DuP9n1Cn1yI@%N9rz~r zBX|t_6?_f+15Clgk27`4{O?6byPk1D^%I0I`JK1M}c6_zrj<4DtR1XTSs46m-mjL3a_{1~}ln76j zd*P^UO-j;{6*n_!Ma;NTWM$Iv;h7V*k7rG;xNeCFDHc8Bq@Ub7))Wo_MZ#_D<}Wtw zCEpP=GlwH@h?d{dJQXJ$dBIcGGMS3?tf#ir@t&w#6M1*oB>I@-Oe!cfTI>Yr6D^Z} zryg~LQU=FnkiFHG)=f^HXR=K@CZi7T3*vf*Ze~y{jdt_Y7DB-WAwu+)(Vn+Fnaq;Q zdOc%3ai61o#?0J!)0RlNR3}}YDU%px?AUC)SxY!ayzSwBkIR_#_)aRccWnHh)Co-W z*zTCOTsvrhy6J1;smZjbG=tS`=}Btny@j*eGRd!%u2;*o#@3Zmqx@0n`c}14t5i3t zccMowD1AI!Fnxq$+hSyq%UVHlJ5y?hS||(YMI0Qo#9PQ9bZkrCf!8BdcakMF{gJDG~ zZ&sGd>vS$($QN>T)T#AR)g>~Hma@b}4O67t+GIa|wMJ>V@xjVQy^JT7dVYDedI{Tf zlJP`D4b*#)mg<#8W&J9ZYgeuX{@1o5X%lIat5&Mzz4tnc*I7n!!rZ8_(}QL&KJ{mM zic5WgS{-hk@QWLbmFWE5x*)wRY*f}Q6Qjn8biOHlZcSyDt7yg8)Zw(=@YXFZT%ghA z;+&=vi*)wng&ez#PSLfZk5(ZxDO@0EJov%VV3*pMJuC6K;RE8Vq?AAx@E+|$gj#PK z+Y}w6V$YUB3vq(2a}^uZu6Erlj@hQ@dR9ek^@Y|-Ce*e9XtV2#Xj+DejPv~T%E65+#9>j|W%gIYcE=Xio(Fh;WOs=AKC=T5O zO`-=cTsqiQ^MuHF+83&8QheUSU^u25dP>&|>JN7Jx=L@byYE->FKy*oXe+BWwj%UI za$T+n{vsbLq{j!#o9H46sb)*#3t>YJxw?Trv1z;>D}-jl+U8w%1FdH2+BJn5{Lq8< zcrP?8=fu!L`TyHZe)=3p+mu5WQDLFQpxFkq47@|RQi{5m?l70}Ob>SZgRjwJVzIA% b!z6}`{G-J*tO#|3EH`;qJhIU|RHT0ce^ZrX literal 0 HcmV?d00001 diff --git a/payments/locale/no_NO/LC_MESSAGES/django.po b/payments/locale/no_NO/LC_MESSAGES/django.po new file mode 100644 index 00000000..f08dd74e --- /dev/null +++ b/payments/locale/no_NO/LC_MESSAGES/django.po @@ -0,0 +1,122 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: no-no\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: payments/admin.py:15 payments/models.py:41 +msgid "transaction" +msgstr "Transaksjon" + +#: payments/admin.py:16 payments/models.py:42 +msgid "transactions" +msgstr "Transaksjoner" + +#: payments/apps.py:8 +msgid "payments" +msgstr "Betalinger" + +#: payments/choices.py:3 +msgid "deposit" +msgstr "Innskudd" + +#: payments/choices.py:3 +msgid "withdraw" +msgstr "Trekke tilbake" + +#: payments/docs/drf/views.py:10 +msgid "deposit to balance" +msgstr "Innskudd til saldo" + +#: payments/docs/drf/views.py:11 +msgid "deposit some money to balance" +msgstr "Sett inn litt penger for å balansere" + +#: payments/models.py:19 +msgid "order to process after paid" +msgstr "Ordre som skal behandles etter betaling" + +#: payments/models.py:22 +msgid "processing details" +msgstr "Detaljer om behandlingen" + +#: payments/models.py:37 +#, python-brace-format +msgid "" +"transaction amount must fit into " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +msgstr "" +"Transaksjonsbeløpet må passe inn i " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}." + +#: payments/models.py:59 +msgid "balance" +msgstr "Balanse" + +#: payments/models.py:60 +msgid "balances" +msgstr "Vekt" + +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 +msgid "balance deposit" +msgstr "Saldo innskudd" + +#: payments/templates/balance_deposit_email.html:88 +msgid "logo" +msgstr "Logo" + +#: payments/templates/balance_deposit_email.html:94 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Hallo %(user_first_name)s," + +#: payments/templates/balance_deposit_email.html:95 +#, python-format +msgid "" +"we have successfully credited your account with %(amount)s. your current\n" +" balance is %(balance)s." +msgstr "" +"Vi har kreditert kontoen din med %(amount)s. Din nåværende\n" +" saldo er %(balance)s." + +#: payments/templates/balance_deposit_email.html:98 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" +"Hvis du har spørsmål, er du velkommen til å kontakte vår support på\n" +" %(contact_email)s." + +#: payments/templates/balance_deposit_email.html:100 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Med vennlig hilsen,
teamet %(project_name)s" + +#: payments/templates/balance_deposit_email.html:106 +msgid "all rights reserved" +msgstr "Alle rettigheter forbeholdt" + +#: payments/utils/__init__.py:8 +msgid "a provider to get rates from is required" +msgstr "Det kreves en leverandør å få priser fra" + +#: payments/utils/__init__.py:15 +#, python-brace-format +msgid "couldn't find provider {provider}" +msgstr "Fant ikke leverandøren {provider}." + +#: payments/utils/emailing.py:31 +#, python-brace-format +msgid "{config.PROJECT_NAME} | balance deposit" +msgstr "{config.PROJECT_NAME} | Saldo innskudd" diff --git a/payments/locale/pl_PL/LC_MESSAGES/django.po b/payments/locale/pl_PL/LC_MESSAGES/django.po index 542f69e2..d134bdad 100644 --- a/payments/locale/pl_PL/LC_MESSAGES/django.po +++ b/payments/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/pt_BR/LC_MESSAGES/django.po b/payments/locale/pt_BR/LC_MESSAGES/django.po index 27c74787..e2c07049 100644 --- a/payments/locale/pt_BR/LC_MESSAGES/django.po +++ b/payments/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/ro_RO/LC_MESSAGES/django.po b/payments/locale/ro_RO/LC_MESSAGES/django.po index e2377910..fc566f33 100644 --- a/payments/locale/ro_RO/LC_MESSAGES/django.po +++ b/payments/locale/ro_RO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/ru_RU/LC_MESSAGES/django.po b/payments/locale/ru_RU/LC_MESSAGES/django.po index 1a6aee6e..94c0c0f4 100644 --- a/payments/locale/ru_RU/LC_MESSAGES/django.po +++ b/payments/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/payments/locale/sv_SE/LC_MESSAGES/django.mo b/payments/locale/sv_SE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..16d3c7b3faef5f357cb9e2587a86dcc56278423d GIT binary patch literal 2392 zcmbW2O>Y}T7{`ZFAa$WYc`4#WJVh!^pqsj`5S80h*r}5mVmor2KrcjN?|41U?#^~* z*1>A?4SE70E*v<-7sLheazf(ZufVAiNO0#n@SnBa7-)mU%Dcar-Ff-Xf1Y{#+sUJ! zGhC-|zl!@8+^^%l`v@Mm=8iBn4;}-b0}J32;0pLOSO@38kHNRV06YzT3c7aRgRg-< zfhWOx;LG5jU_Gdkpwm-&e7v3z#E;#@<5}=C(2Y9;&x7BB3*hgQ_s1dL={yC#2o}JXz$&;4wn6;Z zJv^LWe}HbhBM{@fJOR4;o1g>>;8Wn2;2!uj_!u~UY&`EG=qz`hy7_Xr-TGluHXfR1 z`T=&rJ!USqFIaANxwT;^_QJTDdG!p+PK%rGdEBrt(+*^s92uuXtG@JwCaWkAmNd7* zP*OB2h-#Y2C24Fc?q-T>IwSmA1ZW zdxFl)W6GPNW4B`-i3LMe@Q8I(8v5~BOI;cJ2cm9I&*P5)3%7X3>VBI3ss<)(i5|>vW_r@c-O-HgiD_#d=QD)8aDYR;{c{w zbT`au9vf(Yy4f=ENTso*D23HsX-US=dmD3iWw5wjx>2jtTidIpR^`LejqO^sUaf7` z_PmESD1DSQn4Q9~T`{)Eq#Y-@n}*?lItUACh3_2H#5>qQ=-8FE2d~Gfu;}sEPO3E) zcBo;K9duE5W`0s}uDKC?&3D;-&CSO9mF3oUy;Q60(Vgkm-w(g_ad>%E-`f(}z_21! zwyNdI23=gtFXnSi#HqGk%>>f-%4uM{mMT(iz2P-QU%C$7HJpMX74n65y!-|4VxICB zi-mXJ&g06habvxf+m4W1r7`$wqe-~SoAt&PU0H6_TczdJdn=pG3f@$ki_4ALRdkDk zln26VA>NBrZdO~>jq6mYudX@%SGOXWzGpmCSkM{e9mBNq{iq;~12p8*J zbZLv;Xc&euXJwZ~4BOzLuMoY)wTz*PZHKPXeWBw6EQlK31}$A{_V3yd9TdcA&FA8Xlw=%zx;Sc|eX?Lyob7 zgf+4>{!1ib~ zG;mlCqKF&#hX0KFhxC7Eo|&1TVM}Hvb~TRz1XW_O-`r=S0v)#=0=5M)Y6QL74H1Yg9Wd8yc{HB5c literal 0 HcmV?d00001 diff --git a/payments/locale/sv_SE/LC_MESSAGES/django.po b/payments/locale/sv_SE/LC_MESSAGES/django.po new file mode 100644 index 00000000..73b24e60 --- /dev/null +++ b/payments/locale/sv_SE/LC_MESSAGES/django.po @@ -0,0 +1,122 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: sv-se\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: payments/admin.py:15 payments/models.py:41 +msgid "transaction" +msgstr "Transaktion" + +#: payments/admin.py:16 payments/models.py:42 +msgid "transactions" +msgstr "Transaktioner" + +#: payments/apps.py:8 +msgid "payments" +msgstr "Betalningar" + +#: payments/choices.py:3 +msgid "deposit" +msgstr "Insättning" + +#: payments/choices.py:3 +msgid "withdraw" +msgstr "Uttag" + +#: payments/docs/drf/views.py:10 +msgid "deposit to balance" +msgstr "Insättning till saldo" + +#: payments/docs/drf/views.py:11 +msgid "deposit some money to balance" +msgstr "Sätt in pengar på saldot" + +#: payments/models.py:19 +msgid "order to process after paid" +msgstr "Order att bearbeta efter betald" + +#: payments/models.py:22 +msgid "processing details" +msgstr "Bearbetning av detaljer" + +#: payments/models.py:37 +#, python-brace-format +msgid "" +"transaction amount must fit into " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +msgstr "" +"Transaktionsbeloppet måste rymmas inom " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" + +#: payments/models.py:59 +msgid "balance" +msgstr "Balans" + +#: payments/models.py:60 +msgid "balances" +msgstr "Vågskålar" + +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 +msgid "balance deposit" +msgstr "Saldo insättning" + +#: payments/templates/balance_deposit_email.html:88 +msgid "logo" +msgstr "Logotyp" + +#: payments/templates/balance_deposit_email.html:94 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Hej %(user_first_name)s," + +#: payments/templates/balance_deposit_email.html:95 +#, python-format +msgid "" +"we have successfully credited your account with %(amount)s. your current\n" +" balance is %(balance)s." +msgstr "" +"Vi har framgångsrikt krediterat ditt konto med %(amount)s. Ditt nuvarande\n" +" saldo är %(balance)s." + +#: payments/templates/balance_deposit_email.html:98 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" +"Om du har några frågor är du välkommen att kontakta vår support på\n" +" %(contact_email)s." + +#: payments/templates/balance_deposit_email.html:100 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Bästa hälsningar,
teamet %(project_name)s" + +#: payments/templates/balance_deposit_email.html:106 +msgid "all rights reserved" +msgstr "Alla rättigheter förbehållna" + +#: payments/utils/__init__.py:8 +msgid "a provider to get rates from is required" +msgstr "En leverantör att få priser från krävs" + +#: payments/utils/__init__.py:15 +#, python-brace-format +msgid "couldn't find provider {provider}" +msgstr "Kunde inte hitta leverantören {provider}" + +#: payments/utils/emailing.py:31 +#, python-brace-format +msgid "{config.PROJECT_NAME} | balance deposit" +msgstr "{config.PROJECT_NAME} | Saldo insättning" diff --git a/payments/locale/th_TH/LC_MESSAGES/django.mo b/payments/locale/th_TH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e2de71a335484b5a20bdac412dac2dc0220dc53c GIT binary patch literal 3167 zcmb`I-ES0C7{*6Mh4mZ!NL1qSgU~8d+7cBPik7;qt8CkpEy#_{bocD;nBAFWX13S> ziF`y5(F<+GiWdhq%>5Ym@tb&XEx*|?I=~g+DzF#49UKJj0f)im;2Yr6U=e&A z{18-jm%-KG_uxwK7w}>5Pp|?mzr`??fm7fk;9gMqI{_;DFTp#&OW-8<19&I+1e^AO z>p^AzEw~oE0_NcUD|n3e{@ddDA3??UZ}2H_8RV3oPH-pq9JmGi0DJ)a348(ky@9I< z(#QKw@GLkBDt~<|4C4Tp0ae~t!56{5K;@?=VHiiiAyBiW97flW|#Azgjl$5Z)LvDBqR*KAMb4Xa!ho?R>jYR;G56myeS*>ZBSi6Sqn zu5Sm;ci)(lJ`QEk^78(=&6D1ipd`hb4nn>ubHRjTRb;0x0%=u@oLejBowb1|*iQZ$ zsl82l`;Dge1`6M;NKtVeIjyKSxinYXrb@D0b_rX9_C&$<{AT2JhFuWTZcUV|DJd*x zTI{aD*mfO%ohV3IMg}RB_nhklRxS{3%@cmDT6MiZSV2Nu=UUUz*fb$4mR;`jyNt41 zbPd;Qh)rfW>HESe1gKxN?7UI6rYq73e50{uJ4Hkd*zOyFXE{C`VAnntR>iG3fvD7w zx?l&wcHq00*af@THQK)`lN!!W4E1MIJNtJ{WYWXw%y?$Mxuik=>)N0_gm3JTu|$3? zrzjU{lwP<7p!j>d~pO?k|F z)*hq9d2Hm>)IfG(xIdHHFZMM{-)g_nxV_AD-rONQAHk9$wIjVXwOwrJ>h9`JjM1lF zU}pTHoj14EioTh3lOi!XVvflvTWv63<|{~w-tOLK&F&s^L$~POknDZ_nQpGcHp>sp ztSU#@3S1B8LnC8?d+Ye{$PTf2U}QMkKahQCaC|JqOnR(qU?j7JZBDUf6{VS_-;-kN zSUQ{D{)$Kq4{cL;qisnMl+2)%$fPr=YkBpM&H&AcxMp^`3gGO8bm!nr7%jq2}4;khW}^;8sIiNepKu&yTShobNsz4~bs zeien6qwqi!UQ}b{;fpBzE~?{@y{uk{Ld+O5nAI~_9@Yj77J7in*E-}`P2!C9eo#*m z=0p^JqGsyHV>@`wL}3_(XAB)0s#rn(bIk`M2DrhpVIV~yS1zYai{;N_G~5GhFT#=42NgK^PBAlpny@o(n2Q0|j$ zil5e^&-|yIsD~V=zyN_roYWdMUEi$Y`Na=o)gwwFb>=&P+f42Q!cih z(a!^zq8D`GhvN&nh=~23ZfX5FER-CA@rOfv`0^xS5+gqO)4!;P2R?^bi(}e3tLNtx zT6G~L2yqq$EfJ!waT7`JG}` zp8_feZ0F|jn|B-#ia4AFN2B^7o%1oR6uXZ64}Vrmuv@&URH~V+GKl*V38)1p7&C~k z>!QX7wZasFuadgFAB6~vYIFcOVcG1|Myyy+eMU77!_!e)rL_OnfjLh+8m;-KDYRPn zrxV-ws915U#(koW7~TF5!xcXY6!UCr?G{5dP+JJp`gb+-SB00kCI4NQ;L\n" +"Language-Team: BRITISH ENGLISH \n" +"Language: th-th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: payments/admin.py:15 payments/models.py:41 +msgid "transaction" +msgstr "ธุรกรรม" + +#: payments/admin.py:16 payments/models.py:42 +msgid "transactions" +msgstr "ธุรกรรม" + +#: payments/apps.py:8 +msgid "payments" +msgstr "การชำระเงิน" + +#: payments/choices.py:3 +msgid "deposit" +msgstr "เงินฝาก" + +#: payments/choices.py:3 +msgid "withdraw" +msgstr "ถอน" + +#: payments/docs/drf/views.py:10 +msgid "deposit to balance" +msgstr "ฝากเงินเพื่อปรับยอด" + +#: payments/docs/drf/views.py:11 +msgid "deposit some money to balance" +msgstr "ฝากเงินเพื่อปรับยอด" + +#: payments/models.py:19 +msgid "order to process after paid" +msgstr "คำสั่งซื้อเพื่อดำเนินการหลังจากชำระเงินแล้ว" + +#: payments/models.py:22 +msgid "processing details" +msgstr "รายละเอียดการประมวลผล" + +#: payments/models.py:37 +#, python-brace-format +msgid "" +"transaction amount must fit into " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +msgstr "" +"จำนวนเงินต้องอยู่ในช่วง " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" + +#: payments/models.py:59 +msgid "balance" +msgstr "สมดุล" + +#: payments/models.py:60 +msgid "balances" +msgstr "สเกล" + +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 +msgid "balance deposit" +msgstr "เงินฝากสมดุล" + +#: payments/templates/balance_deposit_email.html:88 +msgid "logo" +msgstr "โลโก้" + +#: payments/templates/balance_deposit_email.html:94 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "สวัสดีครับ/ค่ะ %(user_first_name)s," + +#: payments/templates/balance_deposit_email.html:95 +#, python-format +msgid "" +"we have successfully credited your account with %(amount)s. your current\n" +" balance is %(balance)s." +msgstr "" +"เราได้ทำการเครดิตเงินเข้าบัญชีของคุณเรียบร้อยแล้วเป็นจำนวน %(amount)s " +"ยอดเงินคงเหลือปัจจุบันของคุณคือ %(balance)s" + +#: payments/templates/balance_deposit_email.html:98 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "หากคุณมีคำถามใด ๆ โปรดติดต่อทีมสนับสนุนของเราได้ที่ %(contact_email)s" + +#: payments/templates/balance_deposit_email.html:100 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "ขอแสดงความนับถือ
ทีมงาน %(project_name)s" + +#: payments/templates/balance_deposit_email.html:106 +msgid "all rights reserved" +msgstr "สงวนลิขสิทธิ์" + +#: payments/utils/__init__.py:8 +msgid "a provider to get rates from is required" +msgstr "จำเป็นต้องมีผู้ให้บริการเพื่อรับอัตราค่าบริการ" + +#: payments/utils/__init__.py:15 +#, python-brace-format +msgid "couldn't find provider {provider}" +msgstr "ไม่พบผู้ให้บริการ {provider}" + +#: payments/utils/emailing.py:31 +#, python-brace-format +msgid "{config.PROJECT_NAME} | balance deposit" +msgstr "{config.PROJECT_NAME} | ยอดเงินฝากคงเหลือ" diff --git a/payments/locale/tr_TR/LC_MESSAGES/django.mo b/payments/locale/tr_TR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f5f24f543e211bfe5d20c4f1cba71290a4daba69 GIT binary patch literal 2386 zcmbW2&2Jk;7{&)E(3IV`z^xL8IAff@L6yQd=#7qp8~7ke(-(pI2eLs;OC(0_apcU zcndrT{sz7T{t3q5{)ZUb2d;rHgV#Ve-&dgP{|)#U_ygDge+C~1U&Em5;0e(6{|-C~ z{sj8a{yXU5z4!=YFMOb^fH@3yULFF`#3sNHd=t!pUxOCh1fKv8W6)9XIOr^Q+MY*seO>&p zX)qtU5A*`;N%z=Q+`c$1t~jku$8+ul#d-BKs`Jpre+U&84zvLS4UUXcM<;7C5Sna4 zp|GU66^5ERiAfsL;z}yD2pEqd(lTsW*JgxXLtBGKT=^m+1)`G}X|s338p2>g5po@v ziL(uT&b9;{8OM?z2;Z(M9*bj!tl%;8lQas{QACdy1uQ-}yQ2;pY;6J@z? zDM>Y%w9`qnC2n)HM>#S+8nh~6E~8^+l0`|Futbl{Mr6J)hIrG${SKD_>+o(Ylr?Ph zO{x&4S`0VLYOV}4K;7=&#N#AYmf{pvH>D-1p!XWqZpv_Ssd%|ks@7K*iuKaF#mlRe zaVQA zNpCt&`RT&cTW{o1au>O=Ufpd+#BHK6`NCq2P-j=FiiH=QyRA=yN zW~R>2@aN39qOln|dF)J%&C4#w5r|^mCb_jK6*VM|2Jde~yxZ^j{T?n8E!vR`q-OQ4 zTQM@I9dV5h20!|}px@K%yilQFv%D?4f-ZB5wwSZJ(0pC8W!??@y}_6`;`g~fmUl1R zNTU>&3&$F?>jpWGeP5S0$rjuZ&ew7NG$+Ia1^u2H^?;~h6GT;nZt(`c`#o~OeN>?w zx{&BprR%f?^Z5kQ(pb?Z(UuJv%k@Z*jD(fj8xr?dD7H3Z(Z>GK)+V~BSahY@^PJq} zV!7xpmaQ)Xff>8J1Je+B+j50VQXwuZ7P)U6zANry&x}OCXdaD(^b literal 0 HcmV?d00001 diff --git a/payments/locale/tr_TR/LC_MESSAGES/django.po b/payments/locale/tr_TR/LC_MESSAGES/django.po new file mode 100644 index 00000000..9ced475d --- /dev/null +++ b/payments/locale/tr_TR/LC_MESSAGES/django.po @@ -0,0 +1,123 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: tr-tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: payments/admin.py:15 payments/models.py:41 +msgid "transaction" +msgstr "İşlem" + +#: payments/admin.py:16 payments/models.py:42 +msgid "transactions" +msgstr "İşlemler" + +#: payments/apps.py:8 +msgid "payments" +msgstr "Ödemeler" + +#: payments/choices.py:3 +msgid "deposit" +msgstr "Depozito" + +#: payments/choices.py:3 +msgid "withdraw" +msgstr "Geri Çekilme" + +#: payments/docs/drf/views.py:10 +msgid "deposit to balance" +msgstr "Bakiyeye yatırma" + +#: payments/docs/drf/views.py:11 +msgid "deposit some money to balance" +msgstr "Bakiye için biraz para yatırın" + +#: payments/models.py:19 +msgid "order to process after paid" +msgstr "Ödeme yapıldıktan sonra işleme alınacak sipariş" + +#: payments/models.py:22 +msgid "processing details" +msgstr "İşleme ayrıntıları" + +#: payments/models.py:37 +#, python-brace-format +msgid "" +"transaction amount must fit into " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +msgstr "" +"İşlem tutarı " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM} içine " +"sığmalıdır" + +#: payments/models.py:59 +msgid "balance" +msgstr "Denge" + +#: payments/models.py:60 +msgid "balances" +msgstr "Terazi" + +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 +msgid "balance deposit" +msgstr "Bakiye Yatırma" + +#: payments/templates/balance_deposit_email.html:88 +msgid "logo" +msgstr "Logo" + +#: payments/templates/balance_deposit_email.html:94 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Merhaba %(user_first_name)s," + +#: payments/templates/balance_deposit_email.html:95 +#, python-format +msgid "" +"we have successfully credited your account with %(amount)s. your current\n" +" balance is %(balance)s." +msgstr "" +"Hesabınıza başarılı bir şekilde %(amount)s yatırdık. Şu anki\n" +" denge %(balance)s." + +#: payments/templates/balance_deposit_email.html:98 +#, python-format +msgid "" +"if you have any questions, feel free to contact our support at\n" +" %(contact_email)s." +msgstr "" +"Herhangi bir sorunuz varsa, destek ekibimizle iletişime geçmekten çekinmeyin\n" +" %(contact_email)s." + +#: payments/templates/balance_deposit_email.html:100 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Saygılarımla,
the %(project_name)s team" + +#: payments/templates/balance_deposit_email.html:106 +msgid "all rights reserved" +msgstr "Tüm hakları saklıdır" + +#: payments/utils/__init__.py:8 +msgid "a provider to get rates from is required" +msgstr "Fiyat almak için bir sağlayıcı gereklidir" + +#: payments/utils/__init__.py:15 +#, python-brace-format +msgid "couldn't find provider {provider}" +msgstr "Sağlayıcı bulunamadı {provider}" + +#: payments/utils/emailing.py:31 +#, python-brace-format +msgid "{config.PROJECT_NAME} | balance deposit" +msgstr "{config.PROJECT_NAME} | Bakiye Yatırma" diff --git a/payments/locale/vi_VN/LC_MESSAGES/django.mo b/payments/locale/vi_VN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a44ecb8397d9361d5e19237b20ecb6ac23247e67 GIT binary patch literal 2557 zcmb`H?~fBj7{^CNh58HeSE8s7CWJe^E#)o>DID>xma|HGm(oLc<7IC<-HvQ$%kFHU z0*QtfnD`4!j6q*;$3=+>$tn2eDj{aid+QrtnP{?qfG>UTcedNRDgocP$@H@`J2TJs z`99P6W7E1%8J;K5HlzKD_AJ^5ci;!l`a2mL05^b-fWzRu;6Csnumr9L-vplrZEy?t z38?2?1D^(e1UG@dflq>ef(>x}U5u>*Ti{dR2~h9%8K~#af%kz|!CCMIct7|Y7M%pQ zgL?jDa2xmoXhHk$U6p^uJyMl7U0YTO?Amm%zQZv$Q@IjvxHyg}y1E(stDXIxsT@!VpC+`&N?VgZ) zx5265O5WDeds=#5`-bY=aa@EAAbX}JJiixth>04t-GJ(5i<2qabTois;YxpqYMeW; zfpfjPKWH{xPm!robem`EK(c6tH%#FS`f294w#!^EF&mj#-1o_>DY)M> zMU^$pc7sdhv*eqQHcVAm?la|?(uW49>whP+;RaGsBY@R4p-4#RJ%QLYVW+3Y4j1#K z%FM)ACI80Q;hAEgR47gtPZ_tIFm@=O&>zBQ$9UHwKd`jqTHrWsvT!Vf;#KXSN2Y}e zLdP+o>hQX&3Q2drT7l;wvD+G!R8XI~tpiC%yQX)ndgd{ddvcSd z%2=-Q^1kVE9wUWvIyYI|i)GRdOq&}OocAn^mkX7`fmbPCn%J-TU(2%85=Kj=iiKi+ zEw3F&Cx^ocbB#*73C)ThSKFJ8DdcXl>Za#&H9B3{XY5*=r={1pXXK^jR&mC%v};zV z)RYr=reo}Ly@sD9*^ImX=Nz26v}eE?T-I$qKKMtcP=C1vsfzwDe_@ zmd{0<)8yd2O|#)VE)@~Zr&$F9N>5q9s(B0lw06{aS7Q3gV$@l%XcnJba#j|DG|Pn- zr5^ZB+U!8oIY-r%MN%SOU`L%RBA&r2o}Q2~{AlU=TJes<8K}5Uz8N4%>{vHt9XDqwh#OQ7ryA|m_HT{?5>LIV|jd7;qf^-YjUGLyu_K$0^94@IO^eu13)opu*#{Zqa E0YaQX%K!iX literal 0 HcmV?d00001 diff --git a/payments/locale/vi_VN/LC_MESSAGES/django.po b/payments/locale/vi_VN/LC_MESSAGES/django.po new file mode 100644 index 00000000..d329baa0 --- /dev/null +++ b/payments/locale/vi_VN/LC_MESSAGES/django.po @@ -0,0 +1,122 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: vi-vn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: payments/admin.py:15 payments/models.py:41 +msgid "transaction" +msgstr "Giao dịch" + +#: payments/admin.py:16 payments/models.py:42 +msgid "transactions" +msgstr "Giao dịch" + +#: payments/apps.py:8 +msgid "payments" +msgstr "Thanh toán" + +#: payments/choices.py:3 +msgid "deposit" +msgstr "Tiền gửi" + +#: payments/choices.py:3 +msgid "withdraw" +msgstr "Rút tiền" + +#: payments/docs/drf/views.py:10 +msgid "deposit to balance" +msgstr "Gửi tiền vào tài khoản" + +#: payments/docs/drf/views.py:11 +msgid "deposit some money to balance" +msgstr "Gửi một số tiền để cân bằng." + +#: payments/models.py:19 +msgid "order to process after paid" +msgstr "Đơn hàng sẽ được xử lý sau khi thanh toán." + +#: payments/models.py:22 +msgid "processing details" +msgstr "Chi tiết xử lý" + +#: payments/models.py:37 +#, python-brace-format +msgid "" +"transaction amount must fit into " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +msgstr "" +"Số tiền giao dịch phải nằm trong khoảng " +"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" + +#: payments/models.py:59 +msgid "balance" +msgstr "Cân bằng" + +#: payments/models.py:60 +msgid "balances" +msgstr "Cân" + +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 +msgid "balance deposit" +msgstr "Số dư tiền gửi" + +#: payments/templates/balance_deposit_email.html:88 +msgid "logo" +msgstr "Biểu trưng" + +#: payments/templates/balance_deposit_email.html:94 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Xin chào %(user_first_name)s," + +#: payments/templates/balance_deposit_email.html:95 +#, python-format +msgid "" +"we have successfully credited your account with %(amount)s. your current\n" +" balance is %(balance)s." +msgstr "" +"Chúng tôi đã thành công trong việc nạp tiền vào tài khoản của bạn với số " +"tiền %(amount)s. Số dư hiện tại của bạn là %(balance)s." + +#: payments/templates/balance_deposit_email.html:98 +#, python-format +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." + +#: payments/templates/balance_deposit_email.html:100 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Trân trọng,
Đội ngũ %(project_name)s" + +#: payments/templates/balance_deposit_email.html:106 +msgid "all rights reserved" +msgstr "Tất cả các quyền được bảo lưu." + +#: payments/utils/__init__.py:8 +msgid "a provider to get rates from is required" +msgstr "Cần có nhà cung cấp để lấy báo giá." + +#: payments/utils/__init__.py:15 +#, python-brace-format +msgid "couldn't find provider {provider}" +msgstr "Không thể tìm thấy nhà cung cấp {provider}" + +#: payments/utils/emailing.py:31 +#, python-brace-format +msgid "{config.PROJECT_NAME} | balance deposit" +msgstr "{config.PROJECT_NAME} | Số dư tiền gửi" diff --git a/payments/locale/zh_Hans/LC_MESSAGES/django.po b/payments/locale/zh_Hans/LC_MESSAGES/django.po index 14846970..1412729c 100644 --- a/payments/locale/zh_Hans/LC_MESSAGES/django.po +++ b/payments/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+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/scripts/Windows/compile-messages.ps1 b/scripts/Windows/compile-messages.ps1 index c80b9c9a..36023957 100644 --- a/scripts/Windows/compile-messages.ps1 +++ b/scripts/Windows/compile-messages.ps1 @@ -13,14 +13,14 @@ if (-not (Test-Path '.env')) } Write-Host "Checking placeholders in PO files..." -ForegroundColor Magenta -docker compose exec app poetry run python manage.py check_translated -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 payments -a vibes_auth -a blog -a root +docker compose exec app poetry run python manage.py check_translated -l ALL -a ALL if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } Write-Host "PO files have no placeholder issues!" -ForegroundColor Green Write-Host "Compiling PO files into MO files..." -ForegroundColor Magenta -docker compose exec app poetry run python manage.py compilemessages -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 +docker compose exec app poetry run python manage.py compilemessages -l ar_AR -l cs_CZ -l da_DK -l de_DE -l en_GB -l en_US -l es_ES -l fa_IR -l fr_FR -l he_IL -l hi_IN -l hr_HR -l id_ID -l it_IT -l ja_JP -l kk_KZ -l ko_KR -l nl_NL -l no_NO -l pl_PL -l pt_BR -l ro_RO -l ru_RU -l sv_SE -l th_TH -l tr_TR -l vi_VN -l zh_Hans if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } diff --git a/scripts/Windows/make-messages.ps1 b/scripts/Windows/make-messages.ps1 index c7ca8997..f79dc3f9 100644 --- a/scripts/Windows/make-messages.ps1 +++ b/scripts/Windows/make-messages.ps1 @@ -20,7 +20,7 @@ if ($LASTEXITCODE -ne 0) { Write-Host "Old fuzzy entries removed successfully!" -ForegroundColor Green Write-Host "Updating PO files..." -ForegroundColor Magenta -docker compose exec app poetry run python manage.py makemessages -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 +docker compose exec app poetry run python manage.py makemessages -l ar_AR -l cs_CZ -l da_DK -l de_DE -l en_GB -l en_US -l es_ES -l fa_IR -l fr_FR -l he_IL -l hi_IN -l hr_HR -l id_ID -l it_IT -l ja_JP -l kk_KZ -l ko_KR -l nl_NL -l no_NO -l pl_PL -l pt_BR -l ro_RO -l ru_RU -l sv_SE -l th_TH -l tr_TR -l vi_VN -l zh_Hans if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } @@ -34,7 +34,7 @@ if ($LASTEXITCODE -ne 0) { Write-Host "New fuzzy entries fixed successfully!" -ForegroundColor Green Write-Host "Translating with DeepL..." -ForegroundColor Magenta -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 payments -a vibes_auth -a blog -a root +docker compose exec app poetry run python manage.py deepl_translate -l ALL -a ALL if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } diff --git a/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po b/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po index f431b68a..d48ae5af 100644 --- a/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -93,8 +93,8 @@ msgstr "حذف مستخدم" #: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "" -"إعادة تعيين كلمة مرور المستخدم عن طريق إرسال بريد إلكتروني لإعادة تعيين كلمة" -" المرور" +"إعادة تعيين كلمة مرور المستخدم عن طريق إرسال بريد إلكتروني لإعادة تعيين كلمة " +"المرور" #: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" @@ -168,8 +168,8 @@ msgstr "الرمز غير صالح!" #: vibes_auth/graphene/object_types.py:40 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)، بترتيب زمني عكسي." @@ -345,7 +345,8 @@ msgstr "مرحباً %(user_first_name)s," #: 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 "" "لقد تلقينا طلباً لإعادة تعيين كلمة المرور الخاصة بك. يرجى إعادة تعيين كلمة " diff --git a/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po b/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po index 2117d0d0..409a370c 100644 --- a/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po +++ b/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -166,8 +166,8 @@ msgstr "Token je neplatný!" #: vibes_auth/graphene/object_types.py:40 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í." @@ -344,7 +344,8 @@ msgstr "Ahoj %(user_first_name)s," #: 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é " @@ -364,7 +365,8 @@ 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:" #: vibes_auth/templates/user_reset_password_email.html:101 diff --git a/vibes_auth/locale/da_DK/LC_MESSAGES/django.po b/vibes_auth/locale/da_DK/LC_MESSAGES/django.po index 7171c35b..6ff950d9 100644 --- a/vibes_auth/locale/da_DK/LC_MESSAGES/django.po +++ b/vibes_auth/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -168,8 +168,8 @@ msgstr "Token er ugyldig!" #: vibes_auth/graphene/object_types.py:40 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." @@ -347,7 +347,8 @@ msgstr "Hej %(user_first_name)s," #: 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 " @@ -367,7 +368,8 @@ 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:" #: vibes_auth/templates/user_reset_password_email.html:101 diff --git a/vibes_auth/locale/de_DE/LC_MESSAGES/django.po b/vibes_auth/locale/de_DE/LC_MESSAGES/django.po index e0c57f6d..6705525d 100644 --- a/vibes_auth/locale/de_DE/LC_MESSAGES/django.po +++ b/vibes_auth/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -127,8 +127,8 @@ msgstr "" #: vibes_auth/graphene/mutations.py:41 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." #: vibes_auth/graphene/mutations.py:61 msgid "password too weak" @@ -172,8 +172,8 @@ msgstr "Token ist ungültig!" #: vibes_auth/graphene/object_types.py:40 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." @@ -353,7 +353,8 @@ msgstr "Hallo %(user_first_name)s," #: 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 " @@ -373,7 +374,8 @@ 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:" #: vibes_auth/templates/user_reset_password_email.html:101 @@ -381,8 +383,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." #: vibes_auth/templates/user_reset_password_email.html:103 #, python-format diff --git a/vibes_auth/locale/en_GB/LC_MESSAGES/django.po b/vibes_auth/locale/en_GB/LC_MESSAGES/django.po index a383a6bb..6d4f20cb 100644 --- a/vibes_auth/locale/en_GB/LC_MESSAGES/django.po +++ b/vibes_auth/locale/en_GB/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 Egor "fureunoir" Gorbunov # This file is distributed under the same license as the eVibes package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -170,8 +170,8 @@ msgstr "Token is invalid!" #: vibes_auth/graphene/object_types.py:40 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." @@ -348,7 +348,8 @@ msgstr "Hello %(user_first_name)s," #: 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 " diff --git a/vibes_auth/locale/en_US/LC_MESSAGES/django.po b/vibes_auth/locale/en_US/LC_MESSAGES/django.po index f63b0ab9..cf80e853 100644 --- a/vibes_auth/locale/en_US/LC_MESSAGES/django.po +++ b/vibes_auth/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -166,8 +166,8 @@ msgstr "Token is invalid!" #: vibes_auth/graphene/object_types.py:40 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." @@ -344,7 +344,8 @@ msgstr "Hello %(user_first_name)s," #: 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 " diff --git a/vibes_auth/locale/es_ES/LC_MESSAGES/django.po b/vibes_auth/locale/es_ES/LC_MESSAGES/django.po index c28040f5..286279eb 100644 --- a/vibes_auth/locale/es_ES/LC_MESSAGES/django.po +++ b/vibes_auth/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -169,8 +169,8 @@ msgstr "¡La ficha no es válida!" #: vibes_auth/graphene/object_types.py:40 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." @@ -294,8 +294,7 @@ msgstr "`attributes` debe ser un diccionario" #: vibes_auth/serializers.py:101 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" #: vibes_auth/serializers.py:121 #, python-brace-format @@ -348,7 +347,8 @@ msgstr "Hola %(user_first_name)s," #: 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, " diff --git a/vibes_auth/locale/fa_IR/LC_MESSAGES/django.mo b/vibes_auth/locale/fa_IR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c5906d1cd061dff54de8b533942893de34efc9e GIT binary patch literal 337 zcmYL@Jx{|h5Qd9j%E-dP;DHUUz!pqFHI3Uw*h!U-O0b#M1fyU_j*H-j@b~yFTo(FD zk8Zg4bkFbc(a#8TfSe*{$RTop42h8wT;AXuI{#UD_pUbq(k-mD?~SvRtk~?4EjU^8 zqD=EFDs<<30NFQY3lF=dhsseBt#T;zrx|V_Q9)Dk#909{hlG)3PGx%joM$`|st-_k zW&2hI=P8-jLXeC}P9|KkR7_ct6ud0&v1*&0YBW?@eNZA;wx|b_i4fD)jGb@x9W;=s z, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 +#: vibes_auth/graphene/object_types.py:46 +msgid "balance" +msgstr "" + +#: vibes_auth/admin.py:45 +msgid "order" +msgstr "" + +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 +msgid "orders" +msgstr "" + +#: vibes_auth/admin.py:56 +msgid "personal info" +msgstr "" + +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 +msgid "permissions" +msgstr "" + +#: vibes_auth/admin.py:73 +msgid "important dates" +msgstr "" + +#: vibes_auth/admin.py:74 +msgid "additional info" +msgstr "" + +#: vibes_auth/apps.py:8 +msgid "authentication" +msgstr "" + +#: vibes_auth/docs/drf/views.py:15 +msgid "obtain a token pair" +msgstr "" + +#: vibes_auth/docs/drf/views.py:16 +msgid "obtain a token pair (refresh and access) for authentication." +msgstr "" + +#: vibes_auth/docs/drf/views.py:35 +msgid "refresh a token pair" +msgstr "" + +#: vibes_auth/docs/drf/views.py:36 +msgid "refresh a token pair (refresh and access)." +msgstr "" + +#: vibes_auth/docs/drf/views.py:55 +msgid "verify a token" +msgstr "" + +#: vibes_auth/docs/drf/views.py:56 +msgid "Verify a token (refresh or access)." +msgstr "" + +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 +msgid "the token is valid" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:16 +msgid "create a new user" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:21 +msgid "retrieve a user's details" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:25 +msgid "update a user's details" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:30 +msgid "delete a user" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:34 +msgid "reset a user's password by sending a reset password email" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:39 +msgid "handle avatar upload for a user" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:54 +msgid "confirm a user's password reset" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:58 vibes_auth/graphene/mutations.py:311 +#: vibes_auth/serializers.py:105 vibes_auth/serializers.py:109 +#: vibes_auth/viewsets.py:114 +msgid "passwords do not match" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:63 +msgid "activate a user's account" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:67 +msgid "activation link is invalid or account already activated" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:72 +msgid "merge client-stored recently viewed products" +msgstr "" + +#: vibes_auth/graphene/mutations.py:41 +msgid "the user's b64-encoded uuid who referred the new user to us." +msgstr "" + +#: vibes_auth/graphene/mutations.py:61 +msgid "password too weak" +msgstr "" + +#: vibes_auth/graphene/mutations.py:107 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "" + +#: vibes_auth/graphene/mutations.py:117 +msgid "malformed email" +msgstr "" + +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 +#, python-brace-format +msgid "malformed phone number: {phone_number}" +msgstr "" + +#: vibes_auth/graphene/mutations.py:146 +#, python-brace-format +msgid "Invalid attribute format: {attribute_pair}" +msgstr "" + +#: vibes_auth/graphene/mutations.py:267 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 +msgid "activation link is invalid!" +msgstr "" + +#: vibes_auth/graphene/mutations.py:270 +msgid "account already activated..." +msgstr "" + +#: vibes_auth/graphene/mutations.py:277 vibes_auth/graphene/mutations.py:329 +msgid "something went wrong: {e!s}" +msgstr "" + +#: vibes_auth/graphene/mutations.py:318 vibes_auth/viewsets.py:125 +msgid "token is invalid!" +msgstr "" + +#: vibes_auth/graphene/object_types.py:40 +msgid "" +"the products this user has viewed most recently (max 48), in reverse‐" +"chronological order" +msgstr "" + +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 +msgid "groups" +msgstr "" + +#: vibes_auth/graphene/object_types.py:45 +msgid "wishlist" +msgstr "" + +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 +msgid "avatar" +msgstr "" + +#: vibes_auth/graphene/object_types.py:48 +msgid "attributes may be used to store custom data" +msgstr "" + +#: vibes_auth/graphene/object_types.py:49 +#, python-brace-format +msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" +msgstr "" + +#: vibes_auth/graphene/object_types.py:50 +msgid "address set" +msgstr "" + +#: vibes_auth/models.py:85 +msgid "email" +msgstr "" + +#: vibes_auth/models.py:85 +msgid "user email address" +msgstr "" + +#: vibes_auth/models.py:87 +msgid "phone_number" +msgstr "" + +#: vibes_auth/models.py:92 +msgid "user phone number" +msgstr "" + +#: vibes_auth/models.py:98 +msgid "first_name" +msgstr "" + +#: vibes_auth/models.py:99 +msgid "last_name" +msgstr "" + +#: vibes_auth/models.py:105 +msgid "user profile image" +msgstr "" + +#: vibes_auth/models.py:110 +msgid "is verified" +msgstr "" + +#: vibes_auth/models.py:111 +msgid "user verification status" +msgstr "" + +#: vibes_auth/models.py:114 +msgid "is_active" +msgstr "" + +#: vibes_auth/models.py:116 +msgid "unselect this instead of deleting accounts" +msgstr "" + +#: vibes_auth/models.py:119 +msgid "is_subscribed" +msgstr "" + +#: vibes_auth/models.py:119 +msgid "user's newsletter subscription status" +msgstr "" + +#: vibes_auth/models.py:122 +msgid "activation token" +msgstr "" + +#: vibes_auth/models.py:124 +msgid "attributes" +msgstr "" + +#: vibes_auth/models.py:158 +msgid "user" +msgstr "" + +#: vibes_auth/models.py:159 +msgid "users" +msgstr "" + +#: vibes_auth/models.py:179 +msgid "group" +msgstr "" + +#: vibes_auth/models.py:196 +msgid "outstanding token" +msgstr "" + +#: vibes_auth/models.py:197 +msgid "outstanding tokens" +msgstr "" + +#: vibes_auth/models.py:215 +msgid "blacklisted token" +msgstr "" + +#: vibes_auth/models.py:216 +msgid "blacklisted tokens" +msgstr "" + +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "" + +#: vibes_auth/serializers.py:121 +#, python-brace-format +msgid "malformed email: {email}" +msgstr "" + +#: vibes_auth/serializers.py:142 vibes_auth/serializers.py:164 +#: vibes_auth/serializers.py:186 vibes_auth/serializers.py:198 +msgid "no active account" +msgstr "" + +#: vibes_auth/serializers.py:174 +msgid "must set token_class attribute on class." +msgstr "" + +#: vibes_auth/serializers.py:246 +msgid "token_blacklisted" +msgstr "" + +#: vibes_auth/serializers.py:251 +msgid "invalid token" +msgstr "" + +#: vibes_auth/serializers.py:257 +msgid "no user uuid claim present in token" +msgstr "" + +#: vibes_auth/serializers.py:259 +msgid "user does not exist" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:7 +msgid "reset your password" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:85 +#: vibes_auth/templates/user_verification_email.html:85 +msgid "logo" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:90 +msgid "password reset confirmation" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:91 +#: vibes_auth/templates/user_verification_email.html:91 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:92 +msgid "" +"we have received a request to reset your password. please reset your " +"password\n" +" by clicking the button below:" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:95 +msgid "" +"reset\n" +" password" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:98 +#: vibes_auth/templates/user_verification_email.html:99 +msgid "" +"if the button above does not work, please copy and paste the following URL\n" +" into your web browser:" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:101 +msgid "" +"if you did not send this request, please ignore this\n" +" email." +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:103 +#, python-format +msgid "best regards,
The %(project_name)s team" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:109 +#: vibes_auth/templates/user_verification_email.html:108 +msgid "all rights reserved" +msgstr "" + +#: vibes_auth/templates/user_verification_email.html:7 +#: vibes_auth/templates/user_verification_email.html:90 +msgid "activate your account" +msgstr "" + +#: vibes_auth/templates/user_verification_email.html:92 +#, python-format +msgid "" +"thank you for signing up for %(project_name)s. please activate your account\n" +" by clicking the button below:" +msgstr "" + +#: vibes_auth/templates/user_verification_email.html:96 +msgid "" +"activate\n" +" account" +msgstr "" + +#: vibes_auth/templates/user_verification_email.html:102 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "" + +#: vibes_auth/utils/emailing.py:27 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Activate Account" +msgstr "" + +#: vibes_auth/utils/emailing.py:69 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Reset Password" +msgstr "" + +#: vibes_auth/validators.py:13 +msgid "" +"invalid phone number format. the number must be entered in the format: " +"\"+999999999\". up to 15 digits allowed." +msgstr "" + +#: vibes_auth/views.py:117 +msgid "the token is invalid" +msgstr "" + +#: vibes_auth/viewsets.py:129 +msgid "password reset successfully" +msgstr "" + +#: vibes_auth/viewsets.py:162 +msgid "account already activated!" +msgstr "" diff --git a/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po b/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po index 1ea1326a..75c420be 100644 --- a/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -172,11 +172,11 @@ msgstr "Le jeton n'est pas valide !" #: vibes_auth/graphene/object_types.py:40 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." #: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" @@ -328,8 +328,7 @@ msgstr "Jeton non valide" #: vibes_auth/serializers.py:257 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" #: vibes_auth/serializers.py:259 msgid "user does not exist" @@ -356,7 +355,8 @@ msgstr "Bonjour %(user_first_name)s," #: 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. " @@ -377,7 +377,8 @@ 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 :" #: vibes_auth/templates/user_reset_password_email.html:101 @@ -409,8 +410,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 :" #: vibes_auth/templates/user_verification_email.html:96 msgid "" diff --git a/vibes_auth/locale/he_IL/LC_MESSAGES/django.mo b/vibes_auth/locale/he_IL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..62f089d2da9d683ba4d10f116fbbf0169d26a69d GIT binary patch literal 9142 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 Cm3Bb@ literal 0 HcmV?d00001 diff --git a/vibes_auth/locale/he_IL/LC_MESSAGES/django.po b/vibes_auth/locale/he_IL/LC_MESSAGES/django.po new file mode 100644 index 00000000..2f222ef8 --- /dev/null +++ b/vibes_auth/locale/he_IL/LC_MESSAGES/django.po @@ -0,0 +1,435 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: he-il\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 +#: vibes_auth/graphene/object_types.py:46 +msgid "balance" +msgstr "מאזניים" + +#: vibes_auth/admin.py:45 +msgid "order" +msgstr "הזמנה" + +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 +msgid "orders" +msgstr "הזמנות" + +#: vibes_auth/admin.py:56 +msgid "personal info" +msgstr "מידע אישי" + +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 +msgid "permissions" +msgstr "הרשאות" + +#: vibes_auth/admin.py:73 +msgid "important dates" +msgstr "תאריכים חשובים" + +#: vibes_auth/admin.py:74 +msgid "additional info" +msgstr "מידע נוסף" + +#: vibes_auth/apps.py:8 +msgid "authentication" +msgstr "אימות" + +#: vibes_auth/docs/drf/views.py:15 +msgid "obtain a token pair" +msgstr "השג זוג אסימונים" + +#: vibes_auth/docs/drf/views.py:16 +msgid "obtain a token pair (refresh and access) for authentication." +msgstr "השג זוג אסימונים (רענון וגישה) לצורך אימות." + +#: vibes_auth/docs/drf/views.py:35 +msgid "refresh a token pair" +msgstr "רענן זוג אסימונים" + +#: vibes_auth/docs/drf/views.py:36 +msgid "refresh a token pair (refresh and access)." +msgstr "רענן זוג אסימונים (רענן וגש)." + +#: vibes_auth/docs/drf/views.py:55 +msgid "verify a token" +msgstr "אמת אסימון" + +#: vibes_auth/docs/drf/views.py:56 +msgid "Verify a token (refresh or access)." +msgstr "אמת אסימון (רענן או גש)." + +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 +msgid "the token is valid" +msgstr "האסימון תקף" + +#: vibes_auth/docs/drf/viewsets.py:16 +msgid "create a new user" +msgstr "צור משתמש חדש" + +#: vibes_auth/docs/drf/viewsets.py:21 +msgid "retrieve a user's details" +msgstr "איתור פרטי המשתמש" + +#: vibes_auth/docs/drf/viewsets.py:25 +msgid "update a user's details" +msgstr "עדכון פרטי המשתמש" + +#: vibes_auth/docs/drf/viewsets.py:30 +msgid "delete a user" +msgstr "מחיקת משתמש" + +#: vibes_auth/docs/drf/viewsets.py:34 +msgid "reset a user's password by sending a reset password email" +msgstr "אפס את סיסמת המשתמש על ידי שליחת דוא\"ל לאיפוס סיסמה" + +#: vibes_auth/docs/drf/viewsets.py:39 +msgid "handle avatar upload for a user" +msgstr "טיפול בהעלאת אווטאר עבור משתמש" + +#: vibes_auth/docs/drf/viewsets.py:54 +msgid "confirm a user's password reset" +msgstr "אשר את איפוס הסיסמה של המשתמש" + +#: vibes_auth/docs/drf/viewsets.py:58 vibes_auth/graphene/mutations.py:311 +#: vibes_auth/serializers.py:105 vibes_auth/serializers.py:109 +#: vibes_auth/viewsets.py:114 +msgid "passwords do not match" +msgstr "הסיסמאות אינן תואמות" + +#: vibes_auth/docs/drf/viewsets.py:63 +msgid "activate a user's account" +msgstr "הפעל חשבון משתמש" + +#: vibes_auth/docs/drf/viewsets.py:67 +msgid "activation link is invalid or account already activated" +msgstr "קישור ההפעלה אינו תקף או שהחשבון כבר הופעל" + +#: vibes_auth/docs/drf/viewsets.py:72 +msgid "merge client-stored recently viewed products" +msgstr "מיזוג מוצרים שנצפו לאחרונה המאוחסנים אצל הלקוח" + +#: vibes_auth/graphene/mutations.py:41 +msgid "the user's b64-encoded uuid who referred the new user to us." +msgstr "ה-uuid המקודד ב-b64 של המשתמש שהפנה אלינו את המשתמש החדש." + +#: vibes_auth/graphene/mutations.py:61 +msgid "password too weak" +msgstr "הסיסמה חלשה מדי" + +#: vibes_auth/graphene/mutations.py:107 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} אינו קיים: {uuid}!" + +#: vibes_auth/graphene/mutations.py:117 +msgid "malformed email" +msgstr "דוא\"ל פגום" + +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 +#, python-brace-format +msgid "malformed phone number: {phone_number}" +msgstr "מספר טלפון שגוי: {phone_number}!" + +#: vibes_auth/graphene/mutations.py:146 +#, python-brace-format +msgid "Invalid attribute format: {attribute_pair}" +msgstr "פורמט תכונה לא חוקי: {attribute_pair}!" + +#: vibes_auth/graphene/mutations.py:267 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 +msgid "activation link is invalid!" +msgstr "קישור ההפעלה אינו תקף!" + +#: vibes_auth/graphene/mutations.py:270 +msgid "account already activated..." +msgstr "החשבון כבר הופעל..." + +#: vibes_auth/graphene/mutations.py:277 vibes_auth/graphene/mutations.py:329 +msgid "something went wrong: {e!s}" +msgstr "משהו השתבש: {e!s}" + +#: vibes_auth/graphene/mutations.py:318 vibes_auth/viewsets.py:125 +msgid "token is invalid!" +msgstr "האסימון אינו חוקי!" + +#: vibes_auth/graphene/object_types.py:40 +msgid "" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" +msgstr "המוצרים שהמשתמש צפה בהם לאחרונה (מקסימום 48), בסדר כרונולוגי הפוך." + +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 +msgid "groups" +msgstr "קבוצות" + +#: vibes_auth/graphene/object_types.py:45 +msgid "wishlist" +msgstr "רשימת משאלות" + +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 +msgid "avatar" +msgstr "אוואטר" + +#: vibes_auth/graphene/object_types.py:48 +msgid "attributes may be used to store custom data" +msgstr "ניתן להשתמש בתכונות לאחסון נתונים מותאמים אישית" + +#: vibes_auth/graphene/object_types.py:49 +#, python-brace-format +msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" +msgstr "השפה היא אחת ה-{LANGUAGES} עם ברירת מחדל {LANGUAGE_CODE}" + +#: vibes_auth/graphene/object_types.py:50 +msgid "address set" +msgstr "כתובות" + +#: vibes_auth/models.py:85 +msgid "email" +msgstr "דוא\"ל" + +#: vibes_auth/models.py:85 +msgid "user email address" +msgstr "כתובת הדוא\"ל של המשתמש" + +#: vibes_auth/models.py:87 +msgid "phone_number" +msgstr "מספר טלפון" + +#: vibes_auth/models.py:92 +msgid "user phone number" +msgstr "מספר הטלפון של המשתמש" + +#: vibes_auth/models.py:98 +msgid "first_name" +msgstr "שם פרטי" + +#: vibes_auth/models.py:99 +msgid "last_name" +msgstr "שם משפחה" + +#: vibes_auth/models.py:105 +msgid "user profile image" +msgstr "תמונת פרופיל המשתמש" + +#: vibes_auth/models.py:110 +msgid "is verified" +msgstr "מאומת" + +#: vibes_auth/models.py:111 +msgid "user verification status" +msgstr "סטטוס אימות המשתמש" + +#: vibes_auth/models.py:114 +msgid "is_active" +msgstr "פעיל" + +#: vibes_auth/models.py:116 +msgid "unselect this instead of deleting accounts" +msgstr "בטל את הבחירה במקום למחוק חשבונות" + +#: vibes_auth/models.py:119 +msgid "is_subscribed" +msgstr "מנוי" + +#: vibes_auth/models.py:119 +msgid "user's newsletter subscription status" +msgstr "סטטוס המנוי לניוזלטר של המשתמש" + +#: vibes_auth/models.py:122 +msgid "activation token" +msgstr "אסימון הפעלה" + +#: vibes_auth/models.py:124 +msgid "attributes" +msgstr "תכונות" + +#: vibes_auth/models.py:158 +msgid "user" +msgstr "משתמש" + +#: vibes_auth/models.py:159 +msgid "users" +msgstr "משתמשים" + +#: vibes_auth/models.py:179 +msgid "group" +msgstr "קבוצה" + +#: vibes_auth/models.py:196 +msgid "outstanding token" +msgstr "אסימון יוצא מן הכלל" + +#: vibes_auth/models.py:197 +msgid "outstanding tokens" +msgstr "אסימונים מצטיינים" + +#: vibes_auth/models.py:215 +msgid "blacklisted token" +msgstr "אסימון ברשימה השחורה" + +#: vibes_auth/models.py:216 +msgid "blacklisted tokens" +msgstr "אסימונים ברשימה השחורה" + +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` חייב להיות מילון" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "יש צורך במזהה עסקי בעת רישום כעסק" + +#: vibes_auth/serializers.py:121 +#, python-brace-format +msgid "malformed email: {email}" +msgstr "דוא\"ל פגום: {email}" + +#: vibes_auth/serializers.py:142 vibes_auth/serializers.py:164 +#: vibes_auth/serializers.py:186 vibes_auth/serializers.py:198 +msgid "no active account" +msgstr "לא נמצא חשבון פעיל" + +#: vibes_auth/serializers.py:174 +msgid "must set token_class attribute on class." +msgstr "יש להגדיר את התכונה token_class בכיתה!" + +#: vibes_auth/serializers.py:246 +msgid "token_blacklisted" +msgstr "אסימון ברשימה השחורה" + +#: vibes_auth/serializers.py:251 +msgid "invalid token" +msgstr "אסימון לא חוקי" + +#: vibes_auth/serializers.py:257 +msgid "no user uuid claim present in token" +msgstr "אין תביעה uuid של משתמש נוכחת באסימון" + +#: vibes_auth/serializers.py:259 +msgid "user does not exist" +msgstr "המשתמש אינו קיים" + +#: vibes_auth/templates/user_reset_password_email.html:7 +msgid "reset your password" +msgstr "אפס את הסיסמה שלך" + +#: vibes_auth/templates/user_reset_password_email.html:85 +#: vibes_auth/templates/user_verification_email.html:85 +msgid "logo" +msgstr "לוגו" + +#: vibes_auth/templates/user_reset_password_email.html:90 +msgid "password reset confirmation" +msgstr "אישור איפוס סיסמה" + +#: vibes_auth/templates/user_reset_password_email.html:91 +#: vibes_auth/templates/user_verification_email.html:91 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "שלום %(user_first_name)s," + +#: vibes_auth/templates/user_reset_password_email.html:92 +msgid "" +"we have received a request to reset your password. please reset your password\n" +" by clicking the button below:" +msgstr "" +"קיבלנו בקשה לאיפוס הסיסמה שלך. אנא איפס את הסיסמה שלך על ידי לחיצה על הכפתור" +" שלהלן:" + +#: vibes_auth/templates/user_reset_password_email.html:95 +msgid "" +"reset\n" +" password" +msgstr "הפעל חשבון" + +#: vibes_auth/templates/user_reset_password_email.html:98 +#: vibes_auth/templates/user_verification_email.html:99 +msgid "" +"if the button above does not work, please copy and paste the following URL\n" +" into your web browser:" +msgstr "" +"אם הכפתור שלמעלה אינו פועל, אנא העתק והדבק את כתובת ה-URL הבאה בדפדפן " +"האינטרנט שלך:" + +#: vibes_auth/templates/user_reset_password_email.html:101 +msgid "" +"if you did not send this request, please ignore this\n" +" email." +msgstr "אם לא שלחת בקשה זו, אנא התעלם מהודעת דוא\"ל זו." + +#: vibes_auth/templates/user_reset_password_email.html:103 +#, python-format +msgid "best regards,
The %(project_name)s team" +msgstr "בברכה,
צוות %(project_name)s" + +#: vibes_auth/templates/user_reset_password_email.html:109 +#: vibes_auth/templates/user_verification_email.html:108 +msgid "all rights reserved" +msgstr "כל הזכויות שמורות" + +#: vibes_auth/templates/user_verification_email.html:7 +#: vibes_auth/templates/user_verification_email.html:90 +msgid "activate your account" +msgstr "הפעל את חשבונך" + +#: vibes_auth/templates/user_verification_email.html:92 +#, python-format +msgid "" +"thank you for signing up for %(project_name)s. please activate your account\n" +" by clicking the button below:" +msgstr "" +"תודה שנרשמת ל-%(project_name)s. אנא הפעל את חשבונך על ידי לחיצה על הכפתור " +"שלהלן:" + +#: vibes_auth/templates/user_verification_email.html:96 +msgid "" +"activate\n" +" account" +msgstr "הפעל חשבון" + +#: vibes_auth/templates/user_verification_email.html:102 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "בברכה,
צוות %(project_name)s" + +#: vibes_auth/utils/emailing.py:27 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Activate Account" +msgstr "{config.PROJECT_NAME} | הפעל חשבון" + +#: vibes_auth/utils/emailing.py:69 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Reset Password" +msgstr "{config.PROJECT_NAME} | איפוס סיסמה" + +#: vibes_auth/validators.py:13 +msgid "" +"invalid phone number format. the number must be entered in the format: " +"\"+999999999\". up to 15 digits allowed." +msgstr "" +"פורמט מספר טלפון לא חוקי. יש להזין את המספר בפורמט: \"+999999999\". מותר " +"להזין עד 15 ספרות." + +#: vibes_auth/views.py:117 +msgid "the token is invalid" +msgstr "האסימון אינו חוקי" + +#: vibes_auth/viewsets.py:129 +msgid "password reset successfully" +msgstr "הסיסמה אופסה בהצלחה!" + +#: vibes_auth/viewsets.py:162 +msgid "account already activated!" +msgstr "כבר הפעלת את החשבון..." diff --git a/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po b/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po index c6519b3e..a9f552c5 100644 --- a/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po +++ b/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/vibes_auth/locale/hr_HR/LC_MESSAGES/django.mo b/vibes_auth/locale/hr_HR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c5906d1cd061dff54de8b533942893de34efc9e GIT binary patch literal 337 zcmYL@Jx{|h5Qd9j%E-dP;DHUUz!pqFHI3Uw*h!U-O0b#M1fyU_j*H-j@b~yFTo(FD zk8Zg4bkFbc(a#8TfSe*{$RTop42h8wT;AXuI{#UD_pUbq(k-mD?~SvRtk~?4EjU^8 zqD=EFDs<<30NFQY3lF=dhsseBt#T;zrx|V_Q9)Dk#909{hlG)3PGx%joM$`|st-_k zW&2hI=P8-jLXeC}P9|KkR7_ct6ud0&v1*&0YBW?@eNZA;wx|b_i4fD)jGb@x9W;=s z, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 +#: vibes_auth/graphene/object_types.py:46 +msgid "balance" +msgstr "" + +#: vibes_auth/admin.py:45 +msgid "order" +msgstr "" + +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 +msgid "orders" +msgstr "" + +#: vibes_auth/admin.py:56 +msgid "personal info" +msgstr "" + +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 +msgid "permissions" +msgstr "" + +#: vibes_auth/admin.py:73 +msgid "important dates" +msgstr "" + +#: vibes_auth/admin.py:74 +msgid "additional info" +msgstr "" + +#: vibes_auth/apps.py:8 +msgid "authentication" +msgstr "" + +#: vibes_auth/docs/drf/views.py:15 +msgid "obtain a token pair" +msgstr "" + +#: vibes_auth/docs/drf/views.py:16 +msgid "obtain a token pair (refresh and access) for authentication." +msgstr "" + +#: vibes_auth/docs/drf/views.py:35 +msgid "refresh a token pair" +msgstr "" + +#: vibes_auth/docs/drf/views.py:36 +msgid "refresh a token pair (refresh and access)." +msgstr "" + +#: vibes_auth/docs/drf/views.py:55 +msgid "verify a token" +msgstr "" + +#: vibes_auth/docs/drf/views.py:56 +msgid "Verify a token (refresh or access)." +msgstr "" + +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 +msgid "the token is valid" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:16 +msgid "create a new user" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:21 +msgid "retrieve a user's details" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:25 +msgid "update a user's details" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:30 +msgid "delete a user" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:34 +msgid "reset a user's password by sending a reset password email" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:39 +msgid "handle avatar upload for a user" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:54 +msgid "confirm a user's password reset" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:58 vibes_auth/graphene/mutations.py:311 +#: vibes_auth/serializers.py:105 vibes_auth/serializers.py:109 +#: vibes_auth/viewsets.py:114 +msgid "passwords do not match" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:63 +msgid "activate a user's account" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:67 +msgid "activation link is invalid or account already activated" +msgstr "" + +#: vibes_auth/docs/drf/viewsets.py:72 +msgid "merge client-stored recently viewed products" +msgstr "" + +#: vibes_auth/graphene/mutations.py:41 +msgid "the user's b64-encoded uuid who referred the new user to us." +msgstr "" + +#: vibes_auth/graphene/mutations.py:61 +msgid "password too weak" +msgstr "" + +#: vibes_auth/graphene/mutations.py:107 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "" + +#: vibes_auth/graphene/mutations.py:117 +msgid "malformed email" +msgstr "" + +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 +#, python-brace-format +msgid "malformed phone number: {phone_number}" +msgstr "" + +#: vibes_auth/graphene/mutations.py:146 +#, python-brace-format +msgid "Invalid attribute format: {attribute_pair}" +msgstr "" + +#: vibes_auth/graphene/mutations.py:267 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 +msgid "activation link is invalid!" +msgstr "" + +#: vibes_auth/graphene/mutations.py:270 +msgid "account already activated..." +msgstr "" + +#: vibes_auth/graphene/mutations.py:277 vibes_auth/graphene/mutations.py:329 +msgid "something went wrong: {e!s}" +msgstr "" + +#: vibes_auth/graphene/mutations.py:318 vibes_auth/viewsets.py:125 +msgid "token is invalid!" +msgstr "" + +#: vibes_auth/graphene/object_types.py:40 +msgid "" +"the products this user has viewed most recently (max 48), in reverse‐" +"chronological order" +msgstr "" + +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 +msgid "groups" +msgstr "" + +#: vibes_auth/graphene/object_types.py:45 +msgid "wishlist" +msgstr "" + +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 +msgid "avatar" +msgstr "" + +#: vibes_auth/graphene/object_types.py:48 +msgid "attributes may be used to store custom data" +msgstr "" + +#: vibes_auth/graphene/object_types.py:49 +#, python-brace-format +msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" +msgstr "" + +#: vibes_auth/graphene/object_types.py:50 +msgid "address set" +msgstr "" + +#: vibes_auth/models.py:85 +msgid "email" +msgstr "" + +#: vibes_auth/models.py:85 +msgid "user email address" +msgstr "" + +#: vibes_auth/models.py:87 +msgid "phone_number" +msgstr "" + +#: vibes_auth/models.py:92 +msgid "user phone number" +msgstr "" + +#: vibes_auth/models.py:98 +msgid "first_name" +msgstr "" + +#: vibes_auth/models.py:99 +msgid "last_name" +msgstr "" + +#: vibes_auth/models.py:105 +msgid "user profile image" +msgstr "" + +#: vibes_auth/models.py:110 +msgid "is verified" +msgstr "" + +#: vibes_auth/models.py:111 +msgid "user verification status" +msgstr "" + +#: vibes_auth/models.py:114 +msgid "is_active" +msgstr "" + +#: vibes_auth/models.py:116 +msgid "unselect this instead of deleting accounts" +msgstr "" + +#: vibes_auth/models.py:119 +msgid "is_subscribed" +msgstr "" + +#: vibes_auth/models.py:119 +msgid "user's newsletter subscription status" +msgstr "" + +#: vibes_auth/models.py:122 +msgid "activation token" +msgstr "" + +#: vibes_auth/models.py:124 +msgid "attributes" +msgstr "" + +#: vibes_auth/models.py:158 +msgid "user" +msgstr "" + +#: vibes_auth/models.py:159 +msgid "users" +msgstr "" + +#: vibes_auth/models.py:179 +msgid "group" +msgstr "" + +#: vibes_auth/models.py:196 +msgid "outstanding token" +msgstr "" + +#: vibes_auth/models.py:197 +msgid "outstanding tokens" +msgstr "" + +#: vibes_auth/models.py:215 +msgid "blacklisted token" +msgstr "" + +#: vibes_auth/models.py:216 +msgid "blacklisted tokens" +msgstr "" + +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "" + +#: vibes_auth/serializers.py:121 +#, python-brace-format +msgid "malformed email: {email}" +msgstr "" + +#: vibes_auth/serializers.py:142 vibes_auth/serializers.py:164 +#: vibes_auth/serializers.py:186 vibes_auth/serializers.py:198 +msgid "no active account" +msgstr "" + +#: vibes_auth/serializers.py:174 +msgid "must set token_class attribute on class." +msgstr "" + +#: vibes_auth/serializers.py:246 +msgid "token_blacklisted" +msgstr "" + +#: vibes_auth/serializers.py:251 +msgid "invalid token" +msgstr "" + +#: vibes_auth/serializers.py:257 +msgid "no user uuid claim present in token" +msgstr "" + +#: vibes_auth/serializers.py:259 +msgid "user does not exist" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:7 +msgid "reset your password" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:85 +#: vibes_auth/templates/user_verification_email.html:85 +msgid "logo" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:90 +msgid "password reset confirmation" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:91 +#: vibes_auth/templates/user_verification_email.html:91 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:92 +msgid "" +"we have received a request to reset your password. please reset your " +"password\n" +" by clicking the button below:" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:95 +msgid "" +"reset\n" +" password" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:98 +#: vibes_auth/templates/user_verification_email.html:99 +msgid "" +"if the button above does not work, please copy and paste the following URL\n" +" into your web browser:" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:101 +msgid "" +"if you did not send this request, please ignore this\n" +" email." +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:103 +#, python-format +msgid "best regards,
The %(project_name)s team" +msgstr "" + +#: vibes_auth/templates/user_reset_password_email.html:109 +#: vibes_auth/templates/user_verification_email.html:108 +msgid "all rights reserved" +msgstr "" + +#: vibes_auth/templates/user_verification_email.html:7 +#: vibes_auth/templates/user_verification_email.html:90 +msgid "activate your account" +msgstr "" + +#: vibes_auth/templates/user_verification_email.html:92 +#, python-format +msgid "" +"thank you for signing up for %(project_name)s. please activate your account\n" +" by clicking the button below:" +msgstr "" + +#: vibes_auth/templates/user_verification_email.html:96 +msgid "" +"activate\n" +" account" +msgstr "" + +#: vibes_auth/templates/user_verification_email.html:102 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "" + +#: vibes_auth/utils/emailing.py:27 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Activate Account" +msgstr "" + +#: vibes_auth/utils/emailing.py:69 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Reset Password" +msgstr "" + +#: vibes_auth/validators.py:13 +msgid "" +"invalid phone number format. the number must be entered in the format: " +"\"+999999999\". up to 15 digits allowed." +msgstr "" + +#: vibes_auth/views.py:117 +msgid "the token is invalid" +msgstr "" + +#: vibes_auth/viewsets.py:129 +msgid "password reset successfully" +msgstr "" + +#: vibes_auth/viewsets.py:162 +msgid "account already activated!" +msgstr "" diff --git a/vibes_auth/locale/id_ID/LC_MESSAGES/django.mo b/vibes_auth/locale/id_ID/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2fcc5e817e13edef319c2a7c461c59e130fb86d6 GIT binary patch literal 8488 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 PeXI*nhlT1B-L(3Drb1PT literal 0 HcmV?d00001 diff --git a/vibes_auth/locale/id_ID/LC_MESSAGES/django.po b/vibes_auth/locale/id_ID/LC_MESSAGES/django.po new file mode 100644 index 00000000..4ec36330 --- /dev/null +++ b/vibes_auth/locale/id_ID/LC_MESSAGES/django.po @@ -0,0 +1,447 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: id-id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 +#: vibes_auth/graphene/object_types.py:46 +msgid "balance" +msgstr "Keseimbangan" + +#: vibes_auth/admin.py:45 +msgid "order" +msgstr "Pesan" + +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 +msgid "orders" +msgstr "Pesanan" + +#: vibes_auth/admin.py:56 +msgid "personal info" +msgstr "Informasi Pribadi" + +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 +msgid "permissions" +msgstr "Izin" + +#: vibes_auth/admin.py:73 +msgid "important dates" +msgstr "Tanggal-tanggal penting" + +#: vibes_auth/admin.py:74 +msgid "additional info" +msgstr "Informasi Tambahan" + +#: vibes_auth/apps.py:8 +msgid "authentication" +msgstr "Otentikasi" + +#: vibes_auth/docs/drf/views.py:15 +msgid "obtain a token pair" +msgstr "Dapatkan pasangan token" + +#: vibes_auth/docs/drf/views.py:16 +msgid "obtain a token pair (refresh and access) for authentication." +msgstr "Dapatkan pasangan token (penyegaran dan akses) untuk autentikasi." + +#: vibes_auth/docs/drf/views.py:35 +msgid "refresh a token pair" +msgstr "Menyegarkan pasangan token" + +#: vibes_auth/docs/drf/views.py:36 +msgid "refresh a token pair (refresh and access)." +msgstr "Menyegarkan pasangan token (menyegarkan dan mengakses)." + +#: vibes_auth/docs/drf/views.py:55 +msgid "verify a token" +msgstr "Verifikasi token" + +#: vibes_auth/docs/drf/views.py:56 +msgid "Verify a token (refresh or access)." +msgstr "Verifikasi token (penyegaran atau akses)." + +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 +msgid "the token is valid" +msgstr "Token tersebut valid" + +#: vibes_auth/docs/drf/viewsets.py:16 +msgid "create a new user" +msgstr "Membuat pengguna baru" + +#: vibes_auth/docs/drf/viewsets.py:21 +msgid "retrieve a user's details" +msgstr "Mengambil detail pengguna" + +#: vibes_auth/docs/drf/viewsets.py:25 +msgid "update a user's details" +msgstr "Memperbarui detail pengguna" + +#: vibes_auth/docs/drf/viewsets.py:30 +msgid "delete a user" +msgstr "Menghapus pengguna" + +#: vibes_auth/docs/drf/viewsets.py:34 +msgid "reset a user's password by sending a reset password email" +msgstr "" +"Atur ulang kata sandi pengguna dengan mengirim email pengaturan ulang kata " +"sandi" + +#: vibes_auth/docs/drf/viewsets.py:39 +msgid "handle avatar upload for a user" +msgstr "Menangani unggahan avatar untuk pengguna" + +#: vibes_auth/docs/drf/viewsets.py:54 +msgid "confirm a user's password reset" +msgstr "Mengonfirmasi pengaturan ulang kata sandi pengguna" + +#: vibes_auth/docs/drf/viewsets.py:58 vibes_auth/graphene/mutations.py:311 +#: vibes_auth/serializers.py:105 vibes_auth/serializers.py:109 +#: vibes_auth/viewsets.py:114 +msgid "passwords do not match" +msgstr "Kata sandi tidak cocok" + +#: vibes_auth/docs/drf/viewsets.py:63 +msgid "activate a user's account" +msgstr "Mengaktifkan akun pengguna" + +#: vibes_auth/docs/drf/viewsets.py:67 +msgid "activation link is invalid or account already activated" +msgstr "Tautan aktivasi tidak valid atau akun sudah diaktifkan" + +#: vibes_auth/docs/drf/viewsets.py:72 +msgid "merge client-stored recently viewed products" +msgstr "Menggabungkan produk yang baru saja dilihat yang disimpan klien" + +#: vibes_auth/graphene/mutations.py:41 +msgid "the user's b64-encoded uuid who referred the new user to us." +msgstr "" +"UID pengguna yang dikodekan b64 yang merujuk pengguna baru kepada kami." + +#: vibes_auth/graphene/mutations.py:61 +msgid "password too weak" +msgstr "Kata sandi terlalu lemah" + +#: vibes_auth/graphene/mutations.py:107 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} tidak ada: {uuid}!" + +#: vibes_auth/graphene/mutations.py:117 +msgid "malformed email" +msgstr "Email yang salah" + +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 +#, python-brace-format +msgid "malformed phone number: {phone_number}" +msgstr "Nomor telepon rusak: {phone_number}!" + +#: vibes_auth/graphene/mutations.py:146 +#, python-brace-format +msgid "Invalid attribute format: {attribute_pair}" +msgstr "Format atribut tidak valid: {attribute_pair}!" + +#: vibes_auth/graphene/mutations.py:267 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 +msgid "activation link is invalid!" +msgstr "Tautan aktivasi tidak valid!" + +#: vibes_auth/graphene/mutations.py:270 +msgid "account already activated..." +msgstr "Akun sudah diaktifkan..." + +#: vibes_auth/graphene/mutations.py:277 vibes_auth/graphene/mutations.py:329 +msgid "something went wrong: {e!s}" +msgstr "Ada yang tidak beres: {e!s}" + +#: vibes_auth/graphene/mutations.py:318 vibes_auth/viewsets.py:125 +msgid "token is invalid!" +msgstr "Token tidak valid!" + +#: vibes_auth/graphene/object_types.py:40 +msgid "" +"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." + +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 +msgid "groups" +msgstr "Grup" + +#: vibes_auth/graphene/object_types.py:45 +msgid "wishlist" +msgstr "Daftar keinginan" + +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 +msgid "avatar" +msgstr "Avatar" + +#: vibes_auth/graphene/object_types.py:48 +msgid "attributes may be used to store custom data" +msgstr "Atribut dapat digunakan untuk menyimpan data khusus" + +#: vibes_auth/graphene/object_types.py:49 +#, python-brace-format +msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" +msgstr "" +"Bahasa adalah salah satu dari {LANGUAGES} dengan default {LANGUAGE_CODE}" + +#: vibes_auth/graphene/object_types.py:50 +msgid "address set" +msgstr "Alamat" + +#: vibes_auth/models.py:85 +msgid "email" +msgstr "Email" + +#: vibes_auth/models.py:85 +msgid "user email address" +msgstr "Alamat email pengguna" + +#: vibes_auth/models.py:87 +msgid "phone_number" +msgstr "Nomor Telepon" + +#: vibes_auth/models.py:92 +msgid "user phone number" +msgstr "Nomor telepon pengguna" + +#: vibes_auth/models.py:98 +msgid "first_name" +msgstr "Nama depan" + +#: vibes_auth/models.py:99 +msgid "last_name" +msgstr "Nama belakang" + +#: vibes_auth/models.py:105 +msgid "user profile image" +msgstr "Gambar profil pengguna" + +#: vibes_auth/models.py:110 +msgid "is verified" +msgstr "Sudah diverifikasi" + +#: vibes_auth/models.py:111 +msgid "user verification status" +msgstr "Status verifikasi pengguna" + +#: vibes_auth/models.py:114 +msgid "is_active" +msgstr "Aktif" + +#: vibes_auth/models.py:116 +msgid "unselect this instead of deleting accounts" +msgstr "Batalkan pilihan ini alih-alih menghapus akun" + +#: vibes_auth/models.py:119 +msgid "is_subscribed" +msgstr "Sudah berlangganan" + +#: vibes_auth/models.py:119 +msgid "user's newsletter subscription status" +msgstr "Status berlangganan buletin pengguna" + +#: vibes_auth/models.py:122 +msgid "activation token" +msgstr "Token aktivasi" + +#: vibes_auth/models.py:124 +msgid "attributes" +msgstr "Atribut" + +#: vibes_auth/models.py:158 +msgid "user" +msgstr "Pengguna" + +#: vibes_auth/models.py:159 +msgid "users" +msgstr "Pengguna" + +#: vibes_auth/models.py:179 +msgid "group" +msgstr "Kelompok" + +#: vibes_auth/models.py:196 +msgid "outstanding token" +msgstr "Token yang luar biasa" + +#: vibes_auth/models.py:197 +msgid "outstanding tokens" +msgstr "Token yang beredar" + +#: vibes_auth/models.py:215 +msgid "blacklisted token" +msgstr "Token yang masuk daftar hitam" + +#: vibes_auth/models.py:216 +msgid "blacklisted tokens" +msgstr "Token yang masuk daftar hitam" + +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "Atribut `atribut` harus berupa sebuah kamus" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "Pengenal bisnis diperlukan saat mendaftar sebagai bisnis" + +#: vibes_auth/serializers.py:121 +#, python-brace-format +msgid "malformed email: {email}" +msgstr "email rusak: {email}" + +#: vibes_auth/serializers.py:142 vibes_auth/serializers.py:164 +#: vibes_auth/serializers.py:186 vibes_auth/serializers.py:198 +msgid "no active account" +msgstr "Tidak ditemukan akun aktif" + +#: vibes_auth/serializers.py:174 +msgid "must set token_class attribute on class." +msgstr "Harus menetapkan atribut token_class pada kelas!" + +#: vibes_auth/serializers.py:246 +msgid "token_blacklisted" +msgstr "Daftar hitam token" + +#: vibes_auth/serializers.py:251 +msgid "invalid token" +msgstr "Token tidak valid" + +#: vibes_auth/serializers.py:257 +msgid "no user uuid claim present in token" +msgstr "Tidak ada klaim uuid pengguna yang ada dalam token" + +#: vibes_auth/serializers.py:259 +msgid "user does not exist" +msgstr "Pengguna tidak ada" + +#: vibes_auth/templates/user_reset_password_email.html:7 +msgid "reset your password" +msgstr "Atur ulang kata sandi Anda" + +#: vibes_auth/templates/user_reset_password_email.html:85 +#: vibes_auth/templates/user_verification_email.html:85 +msgid "logo" +msgstr "Logo" + +#: vibes_auth/templates/user_reset_password_email.html:90 +msgid "password reset confirmation" +msgstr "Konfirmasi pengaturan ulang kata sandi" + +#: vibes_auth/templates/user_reset_password_email.html:91 +#: vibes_auth/templates/user_verification_email.html:91 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Halo %(user_first_name)s," + +#: vibes_auth/templates/user_reset_password_email.html:92 +msgid "" +"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:" + +#: vibes_auth/templates/user_reset_password_email.html:95 +msgid "" +"reset\n" +" password" +msgstr "" +"Aktifkan\n" +" akun" + +#: vibes_auth/templates/user_reset_password_email.html:98 +#: vibes_auth/templates/user_verification_email.html:99 +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" +" ke dalam peramban web Anda:" + +#: vibes_auth/templates/user_reset_password_email.html:101 +msgid "" +"if you did not send this request, please ignore this\n" +" email." +msgstr "" +"jika Anda tidak mengirimkan permintaan ini, harap abaikan\n" +" email." + +#: vibes_auth/templates/user_reset_password_email.html:103 +#, python-format +msgid "best regards,
The %(project_name)s team" +msgstr "Salam hormat, Tim %(project_name)s" + +#: vibes_auth/templates/user_reset_password_email.html:109 +#: vibes_auth/templates/user_verification_email.html:108 +msgid "all rights reserved" +msgstr "Semua hak cipta dilindungi undang-undang" + +#: vibes_auth/templates/user_verification_email.html:7 +#: vibes_auth/templates/user_verification_email.html:90 +msgid "activate your account" +msgstr "Aktifkan akun Anda" + +#: vibes_auth/templates/user_verification_email.html:92 +#, python-format +msgid "" +"thank you for signing up for %(project_name)s. please activate your account\n" +" by clicking the button below:" +msgstr "" +"Terima kasih telah mendaftar untuk %(project_name)s. Silakan aktifkan akun " +"Anda dengan mengklik tombol di bawah ini:" + +#: vibes_auth/templates/user_verification_email.html:96 +msgid "" +"activate\n" +" account" +msgstr "" +"Aktifkan\n" +" akun" + +#: vibes_auth/templates/user_verification_email.html:102 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Salam hormat, tim %(project_name)s" + +#: vibes_auth/utils/emailing.py:27 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Activate Account" +msgstr "{config.PROJECT_NAME} | Aktifkan Akun" + +#: vibes_auth/utils/emailing.py:69 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Reset Password" +msgstr "{config.PROJECT_NAME} | Atur Ulang Kata Sandi" + +#: vibes_auth/validators.py:13 +msgid "" +"invalid phone number format. the number must be entered in the format: " +"\"+999999999\". up to 15 digits allowed." +msgstr "" +"Format nomor telepon tidak valid. Nomor harus dimasukkan dalam format: " +"\"+999999999\". Maksimal 15 digit." + +#: vibes_auth/views.py:117 +msgid "the token is invalid" +msgstr "Token tidak valid" + +#: vibes_auth/viewsets.py:129 +msgid "password reset successfully" +msgstr "Kata sandi telah berhasil diatur ulang!" + +#: vibes_auth/viewsets.py:162 +msgid "account already activated!" +msgstr "Anda telah mengaktifkan akun..." diff --git a/vibes_auth/locale/it_IT/LC_MESSAGES/django.po b/vibes_auth/locale/it_IT/LC_MESSAGES/django.po index c716490c..1acd0b25 100644 --- a/vibes_auth/locale/it_IT/LC_MESSAGES/django.po +++ b/vibes_auth/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -169,8 +169,8 @@ msgstr "Il gettone non è valido!" #: vibes_auth/graphene/object_types.py:40 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." @@ -351,7 +351,8 @@ msgstr "Hello %(user_first_name)s," #: 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 " diff --git a/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po b/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po index b53f3856..4690c66d 100644 --- a/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -114,7 +114,9 @@ msgstr "ユーザーアカウントの有効化" #: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" -msgstr "アクティベーションリンクが無効であるか、アカウントがすでにアクティベーションされています。" +msgstr "" +"アクティベーションリンクが無効であるか、アカウントがすでにアクティベーション" +"されています。" #: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" @@ -166,8 +168,8 @@ msgstr "トークンが無効です!" #: vibes_auth/graphene/object_types.py:40 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件)を逆順に表示します。" #: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 @@ -342,9 +344,12 @@ msgstr "こんにちは %(user_first_name)s," #: 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 "" +"パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワー" +"ドをリセットしてください:" #: vibes_auth/templates/user_reset_password_email.html:95 msgid "" @@ -360,7 +365,8 @@ 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" " をウェブブラウザに貼り付けてください:" #: vibes_auth/templates/user_reset_password_email.html:101 @@ -391,7 +397,9 @@ 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にご登録いただきありがとうございます。下のボタンをクリックし" +"てアカウントを有効にしてください:" #: vibes_auth/templates/user_verification_email.html:96 msgid "" @@ -420,7 +428,9 @@ msgstr "{config.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桁まで入力可能です。" #: vibes_auth/views.py:117 msgid "the token is invalid" diff --git a/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po b/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po index c6519b3e..a9f552c5 100644 --- a/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po +++ b/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/vibes_auth/locale/ko_KR/LC_MESSAGES/django.mo b/vibes_auth/locale/ko_KR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..9e1f77d3da3f37d3a209cbc75137c1b79ae94449 GIT binary patch literal 8980 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 literal 0 HcmV?d00001 diff --git a/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po b/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po new file mode 100644 index 00000000..82415e7c --- /dev/null +++ b/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po @@ -0,0 +1,437 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: ko-kr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 +#: vibes_auth/graphene/object_types.py:46 +msgid "balance" +msgstr "잔액" + +#: vibes_auth/admin.py:45 +msgid "order" +msgstr "주문" + +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 +msgid "orders" +msgstr "주문" + +#: vibes_auth/admin.py:56 +msgid "personal info" +msgstr "개인 정보" + +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 +msgid "permissions" +msgstr "권한" + +#: vibes_auth/admin.py:73 +msgid "important dates" +msgstr "중요한 날짜" + +#: vibes_auth/admin.py:74 +msgid "additional info" +msgstr "추가 정보" + +#: vibes_auth/apps.py:8 +msgid "authentication" +msgstr "인증" + +#: vibes_auth/docs/drf/views.py:15 +msgid "obtain a token pair" +msgstr "토큰 쌍 얻기" + +#: vibes_auth/docs/drf/views.py:16 +msgid "obtain a token pair (refresh and access) for authentication." +msgstr "인증을 위한 토큰 쌍(새로 고침 및 액세스)을 얻습니다." + +#: vibes_auth/docs/drf/views.py:35 +msgid "refresh a token pair" +msgstr "토큰 쌍 새로 고침" + +#: vibes_auth/docs/drf/views.py:36 +msgid "refresh a token pair (refresh and access)." +msgstr "토큰 쌍을 새로 고칩니다(새로 고침 및 액세스)." + +#: vibes_auth/docs/drf/views.py:55 +msgid "verify a token" +msgstr "토큰 확인" + +#: vibes_auth/docs/drf/views.py:56 +msgid "Verify a token (refresh or access)." +msgstr "토큰을 확인합니다(새로 고침 또는 액세스)." + +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 +msgid "the token is valid" +msgstr "토큰이 유효합니다." + +#: vibes_auth/docs/drf/viewsets.py:16 +msgid "create a new user" +msgstr "새 사용자 만들기" + +#: vibes_auth/docs/drf/viewsets.py:21 +msgid "retrieve a user's details" +msgstr "사용자 세부 정보 검색" + +#: vibes_auth/docs/drf/viewsets.py:25 +msgid "update a user's details" +msgstr "사용자 세부 정보 업데이트" + +#: vibes_auth/docs/drf/viewsets.py:30 +msgid "delete a user" +msgstr "사용자 삭제하기" + +#: vibes_auth/docs/drf/viewsets.py:34 +msgid "reset a user's password by sending a reset password email" +msgstr "비밀번호 재설정 이메일을 보내 사용자의 비밀번호를 재설정합니다." + +#: vibes_auth/docs/drf/viewsets.py:39 +msgid "handle avatar upload for a user" +msgstr "사용자에 대한 아바타 업로드 처리" + +#: vibes_auth/docs/drf/viewsets.py:54 +msgid "confirm a user's password reset" +msgstr "사용자의 비밀번호 재설정 확인" + +#: vibes_auth/docs/drf/viewsets.py:58 vibes_auth/graphene/mutations.py:311 +#: vibes_auth/serializers.py:105 vibes_auth/serializers.py:109 +#: vibes_auth/viewsets.py:114 +msgid "passwords do not match" +msgstr "비밀번호가 일치하지 않습니다." + +#: vibes_auth/docs/drf/viewsets.py:63 +msgid "activate a user's account" +msgstr "사용자 계정 활성화하기" + +#: vibes_auth/docs/drf/viewsets.py:67 +msgid "activation link is invalid or account already activated" +msgstr "활성화 링크가 유효하지 않거나 계정이 이미 활성화되어 있습니다." + +#: vibes_auth/docs/drf/viewsets.py:72 +msgid "merge client-stored recently viewed products" +msgstr "클라이언트가 저장한 최근 본 제품 병합" + +#: vibes_auth/graphene/mutations.py:41 +msgid "the user's b64-encoded uuid who referred the new user to us." +msgstr "새 사용자를 추천한 사용자의 b64로 인코딩된 UUID입니다." + +#: vibes_auth/graphene/mutations.py:61 +msgid "password too weak" +msgstr "비밀번호가 너무 약합니다." + +#: vibes_auth/graphene/mutations.py:107 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name}가 존재하지 않습니다: {uuid}!" + +#: vibes_auth/graphene/mutations.py:117 +msgid "malformed email" +msgstr "잘못된 이메일" + +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 +#, python-brace-format +msgid "malformed phone number: {phone_number}" +msgstr "잘못된 전화 번호입니다: {phone_number}!" + +#: vibes_auth/graphene/mutations.py:146 +#, python-brace-format +msgid "Invalid attribute format: {attribute_pair}" +msgstr "잘못된 속성 형식입니다: {attribute_pair}!" + +#: vibes_auth/graphene/mutations.py:267 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 +msgid "activation link is invalid!" +msgstr "활성화 링크가 유효하지 않습니다!" + +#: vibes_auth/graphene/mutations.py:270 +msgid "account already activated..." +msgstr "계정이 이미 활성화되었습니다..." + +#: vibes_auth/graphene/mutations.py:277 vibes_auth/graphene/mutations.py:329 +msgid "something went wrong: {e!s}" +msgstr "문제가 발생했습니다: {e!s}" + +#: vibes_auth/graphene/mutations.py:318 vibes_auth/viewsets.py:125 +msgid "token is invalid!" +msgstr "토큰이 유효하지 않습니다!" + +#: vibes_auth/graphene/object_types.py:40 +msgid "" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" +msgstr "이 사용자가 가장 최근에 본 제품(최대 48개)을 시간 역순으로 표시합니다." + +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 +msgid "groups" +msgstr "그룹" + +#: vibes_auth/graphene/object_types.py:45 +msgid "wishlist" +msgstr "위시리스트" + +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 +msgid "avatar" +msgstr "아바타" + +#: vibes_auth/graphene/object_types.py:48 +msgid "attributes may be used to store custom data" +msgstr "속성을 사용하여 사용자 지정 데이터를 저장할 수 있습니다." + +#: vibes_auth/graphene/object_types.py:49 +#, python-brace-format +msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" +msgstr "언어는 {LANGUAGES} 중 하나이며 기본값은 {LANGUAGE_CODE}입니다." + +#: vibes_auth/graphene/object_types.py:50 +msgid "address set" +msgstr "주소" + +#: vibes_auth/models.py:85 +msgid "email" +msgstr "이메일" + +#: vibes_auth/models.py:85 +msgid "user email address" +msgstr "사용자의 이메일 주소" + +#: vibes_auth/models.py:87 +msgid "phone_number" +msgstr "전화 번호" + +#: vibes_auth/models.py:92 +msgid "user phone number" +msgstr "사용자 전화번호" + +#: vibes_auth/models.py:98 +msgid "first_name" +msgstr "이름" + +#: vibes_auth/models.py:99 +msgid "last_name" +msgstr "성" + +#: vibes_auth/models.py:105 +msgid "user profile image" +msgstr "사용자 프로필 이미지" + +#: vibes_auth/models.py:110 +msgid "is verified" +msgstr "확인됨" + +#: vibes_auth/models.py:111 +msgid "user verification status" +msgstr "사용자 인증 상태" + +#: vibes_auth/models.py:114 +msgid "is_active" +msgstr "활성화됨" + +#: vibes_auth/models.py:116 +msgid "unselect this instead of deleting accounts" +msgstr "계정을 삭제하는 대신 이 옵션을 선택 해제합니다." + +#: vibes_auth/models.py:119 +msgid "is_subscribed" +msgstr "구독 중" + +#: vibes_auth/models.py:119 +msgid "user's newsletter subscription status" +msgstr "사용자의 뉴스레터 구독 상태" + +#: vibes_auth/models.py:122 +msgid "activation token" +msgstr "활성화 토큰" + +#: vibes_auth/models.py:124 +msgid "attributes" +msgstr "속성" + +#: vibes_auth/models.py:158 +msgid "user" +msgstr "사용자" + +#: vibes_auth/models.py:159 +msgid "users" +msgstr "사용자" + +#: vibes_auth/models.py:179 +msgid "group" +msgstr "그룹" + +#: vibes_auth/models.py:196 +msgid "outstanding token" +msgstr "뛰어난 토큰" + +#: vibes_auth/models.py:197 +msgid "outstanding tokens" +msgstr "우수 토큰" + +#: vibes_auth/models.py:215 +msgid "blacklisted token" +msgstr "블랙리스트에 오른 토큰" + +#: vibes_auth/models.py:216 +msgid "blacklisted tokens" +msgstr "블랙리스트에 오른 토큰" + +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "'속성'은 사전이어야 합니다." + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "사업자 등록 시 사업자 식별자는 필수입니다." + +#: vibes_auth/serializers.py:121 +#, python-brace-format +msgid "malformed email: {email}" +msgstr "잘못된 이메일입니다: {email}" + +#: vibes_auth/serializers.py:142 vibes_auth/serializers.py:164 +#: vibes_auth/serializers.py:186 vibes_auth/serializers.py:198 +msgid "no active account" +msgstr "활성 계정을 찾을 수 없습니다." + +#: vibes_auth/serializers.py:174 +msgid "must set token_class attribute on class." +msgstr "클래스에서 토큰_클래스 속성을 설정해야 합니다!" + +#: vibes_auth/serializers.py:246 +msgid "token_blacklisted" +msgstr "토큰 블랙리스트" + +#: vibes_auth/serializers.py:251 +msgid "invalid token" +msgstr "잘못된 토큰" + +#: vibes_auth/serializers.py:257 +msgid "no user uuid claim present in token" +msgstr "토큰에 사용자 UUID 클레임이 없습니다." + +#: vibes_auth/serializers.py:259 +msgid "user does not exist" +msgstr "사용자가 존재하지 않습니다." + +#: vibes_auth/templates/user_reset_password_email.html:7 +msgid "reset your password" +msgstr "비밀번호 재설정" + +#: vibes_auth/templates/user_reset_password_email.html:85 +#: vibes_auth/templates/user_verification_email.html:85 +msgid "logo" +msgstr "로고" + +#: vibes_auth/templates/user_reset_password_email.html:90 +msgid "password reset confirmation" +msgstr "비밀번호 재설정 확인" + +#: vibes_auth/templates/user_reset_password_email.html:91 +#: vibes_auth/templates/user_verification_email.html:91 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "안녕하세요 %(user_first_name)s," + +#: vibes_auth/templates/user_reset_password_email.html:92 +msgid "" +"we have received a request to reset your password. please reset your password\n" +" by clicking the button below:" +msgstr "비밀번호 재설정 요청을 받았습니다. 아래 버튼을 클릭하여 비밀번호를 재설정하세요:" + +#: vibes_auth/templates/user_reset_password_email.html:95 +msgid "" +"reset\n" +" password" +msgstr "" +"활성화\n" +" 계정" + +#: vibes_auth/templates/user_reset_password_email.html:98 +#: vibes_auth/templates/user_verification_email.html:99 +msgid "" +"if the button above does not work, please copy and paste the following URL\n" +" into your web browser:" +msgstr "" +"위의 버튼이 작동하지 않는 경우 다음 URL을 복사하여 브라우저에 붙여넣으세요.\n" +" 를 웹 브라우저에 복사하여 붙여넣으세요:" + +#: vibes_auth/templates/user_reset_password_email.html:101 +msgid "" +"if you did not send this request, please ignore this\n" +" email." +msgstr "" +"이 요청을 보내지 않으셨다면 이\n" +" 이메일을 무시하세요." + +#: vibes_auth/templates/user_reset_password_email.html:103 +#, python-format +msgid "best regards,
The %(project_name)s team" +msgstr "감사합니다,
%(project_name)s 팀" + +#: vibes_auth/templates/user_reset_password_email.html:109 +#: vibes_auth/templates/user_verification_email.html:108 +msgid "all rights reserved" +msgstr "모든 권리 보유" + +#: vibes_auth/templates/user_verification_email.html:7 +#: vibes_auth/templates/user_verification_email.html:90 +msgid "activate your account" +msgstr "계정 활성화" + +#: vibes_auth/templates/user_verification_email.html:92 +#, python-format +msgid "" +"thank you for signing up for %(project_name)s. please activate your account\n" +" by clicking the button below:" +msgstr "가입해 주셔서 감사합니다 %(project_name)s. 아래 버튼을 클릭하여 계정을 활성화하세요:" + +#: vibes_auth/templates/user_verification_email.html:96 +msgid "" +"activate\n" +" account" +msgstr "" +"활성화\n" +" 계정" + +#: vibes_auth/templates/user_verification_email.html:102 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "감사합니다,
%(project_name)s 팀" + +#: vibes_auth/utils/emailing.py:27 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Activate Account" +msgstr "{config.PROJECT_NAME} | 계정 활성화" + +#: vibes_auth/utils/emailing.py:69 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Reset Password" +msgstr "{config.PROJECT_NAME} | 비밀번호 재설정" + +#: vibes_auth/validators.py:13 +msgid "" +"invalid phone number format. the number must be entered in the format: " +"\"+999999999\". up to 15 digits allowed." +msgstr "" +"잘못된 전화번호 형식입니다. 번호는 다음과 같은 형식으로 입력해야 합니다: \"+999999999\". 최대 15자리까지 입력할 수 " +"있습니다." + +#: vibes_auth/views.py:117 +msgid "the token is invalid" +msgstr "토큰이 유효하지 않습니다." + +#: vibes_auth/viewsets.py:129 +msgid "password reset successfully" +msgstr "비밀번호가 성공적으로 재설정되었습니다!" + +#: vibes_auth/viewsets.py:162 +msgid "account already activated!" +msgstr "이미 계정을 활성화하셨습니다..." diff --git a/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po b/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po index 20196390..0540a9e0 100644 --- a/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po +++ b/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -170,8 +170,8 @@ msgstr "Token is invalid!" #: vibes_auth/graphene/object_types.py:40 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." @@ -348,11 +348,12 @@ msgstr "Hallo %(user_first_name)s," #: 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:" #: vibes_auth/templates/user_reset_password_email.html:95 msgid "" @@ -400,8 +401,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:" #: vibes_auth/templates/user_verification_email.html:96 msgid "" diff --git a/vibes_auth/locale/no_NO/LC_MESSAGES/django.mo b/vibes_auth/locale/no_NO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..4c542c232ffe3f9d826114925af2c5681a21138b GIT binary patch literal 8475 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\n" +"Language-Team: BRITISH ENGLISH \n" +"Language: no-no\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 +#: vibes_auth/graphene/object_types.py:46 +msgid "balance" +msgstr "Balanse" + +#: vibes_auth/admin.py:45 +msgid "order" +msgstr "Bestilling" + +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 +msgid "orders" +msgstr "Bestillinger" + +#: vibes_auth/admin.py:56 +msgid "personal info" +msgstr "Personlig informasjon" + +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 +msgid "permissions" +msgstr "Tillatelser" + +#: vibes_auth/admin.py:73 +msgid "important dates" +msgstr "Viktige datoer" + +#: vibes_auth/admin.py:74 +msgid "additional info" +msgstr "Ytterligere informasjon" + +#: vibes_auth/apps.py:8 +msgid "authentication" +msgstr "Autentisering" + +#: vibes_auth/docs/drf/views.py:15 +msgid "obtain a token pair" +msgstr "Få et tokenpar" + +#: vibes_auth/docs/drf/views.py:16 +msgid "obtain a token pair (refresh and access) for authentication." +msgstr "Skaff et tokenpar (refresh og access) for autentisering." + +#: vibes_auth/docs/drf/views.py:35 +msgid "refresh a token pair" +msgstr "Oppdater et tokenpar" + +#: vibes_auth/docs/drf/views.py:36 +msgid "refresh a token pair (refresh and access)." +msgstr "Oppdater et tokenpar (refresh og access)." + +#: vibes_auth/docs/drf/views.py:55 +msgid "verify a token" +msgstr "Bekreft et token" + +#: vibes_auth/docs/drf/views.py:56 +msgid "Verify a token (refresh or access)." +msgstr "Bekreft et token (oppdatering eller tilgang)." + +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 +msgid "the token is valid" +msgstr "Tokenet er gyldig" + +#: vibes_auth/docs/drf/viewsets.py:16 +msgid "create a new user" +msgstr "Opprett en ny bruker" + +#: vibes_auth/docs/drf/viewsets.py:21 +msgid "retrieve a user's details" +msgstr "Hent informasjon om en bruker" + +#: vibes_auth/docs/drf/viewsets.py:25 +msgid "update a user's details" +msgstr "Oppdatere en brukers opplysninger" + +#: vibes_auth/docs/drf/viewsets.py:30 +msgid "delete a user" +msgstr "Slett en bruker" + +#: vibes_auth/docs/drf/viewsets.py:34 +msgid "reset a user's password by sending a reset password email" +msgstr "" +"Tilbakestill en brukers passord ved å sende en e-post om tilbakestilling av " +"passord" + +#: vibes_auth/docs/drf/viewsets.py:39 +msgid "handle avatar upload for a user" +msgstr "Håndtere opplasting av avatarer for en bruker" + +#: vibes_auth/docs/drf/viewsets.py:54 +msgid "confirm a user's password reset" +msgstr "Bekreft tilbakestilling av en brukers passord" + +#: vibes_auth/docs/drf/viewsets.py:58 vibes_auth/graphene/mutations.py:311 +#: vibes_auth/serializers.py:105 vibes_auth/serializers.py:109 +#: vibes_auth/viewsets.py:114 +msgid "passwords do not match" +msgstr "Passordene stemmer ikke overens" + +#: vibes_auth/docs/drf/viewsets.py:63 +msgid "activate a user's account" +msgstr "Aktiver en brukers konto" + +#: vibes_auth/docs/drf/viewsets.py:67 +msgid "activation link is invalid or account already activated" +msgstr "Aktiveringslenken er ugyldig eller kontoen er allerede aktivert" + +#: vibes_auth/docs/drf/viewsets.py:72 +msgid "merge client-stored recently viewed products" +msgstr "Slå sammen nylig viste produkter lagret hos kunden" + +#: vibes_auth/graphene/mutations.py:41 +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." + +#: vibes_auth/graphene/mutations.py:61 +msgid "password too weak" +msgstr "Passordet er for svakt" + +#: vibes_auth/graphene/mutations.py:107 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} eksisterer ikke: {uuid}!" + +#: vibes_auth/graphene/mutations.py:117 +msgid "malformed email" +msgstr "Feilaktig e-post" + +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 +#, python-brace-format +msgid "malformed phone number: {phone_number}" +msgstr "Feilaktig telefonnummer: {phone_number}!" + +#: vibes_auth/graphene/mutations.py:146 +#, python-brace-format +msgid "Invalid attribute format: {attribute_pair}" +msgstr "Ugyldig attributtformat: {attribute_pair}!" + +#: vibes_auth/graphene/mutations.py:267 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 +msgid "activation link is invalid!" +msgstr "Aktiveringslenken er ugyldig!" + +#: vibes_auth/graphene/mutations.py:270 +msgid "account already activated..." +msgstr "Kontoen er allerede aktivert..." + +#: vibes_auth/graphene/mutations.py:277 vibes_auth/graphene/mutations.py:329 +msgid "something went wrong: {e!s}" +msgstr "Noe gikk galt: {e!s}" + +#: vibes_auth/graphene/mutations.py:318 vibes_auth/viewsets.py:125 +msgid "token is invalid!" +msgstr "Tokenet er ugyldig!" + +#: vibes_auth/graphene/object_types.py:40 +msgid "" +"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." + +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 +msgid "groups" +msgstr "Grupper" + +#: vibes_auth/graphene/object_types.py:45 +msgid "wishlist" +msgstr "Ønskeliste" + +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 +msgid "avatar" +msgstr "Avatar" + +#: vibes_auth/graphene/object_types.py:48 +msgid "attributes may be used to store custom data" +msgstr "Attributter kan brukes til å lagre egendefinerte data" + +#: vibes_auth/graphene/object_types.py:49 +#, python-brace-format +msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" +msgstr "Språket er en av {LANGUAGES} med standard {LANGUAGE_CODE}." + +#: vibes_auth/graphene/object_types.py:50 +msgid "address set" +msgstr "Adresser" + +#: vibes_auth/models.py:85 +msgid "email" +msgstr "E-post" + +#: vibes_auth/models.py:85 +msgid "user email address" +msgstr "Brukerens e-postadresse" + +#: vibes_auth/models.py:87 +msgid "phone_number" +msgstr "Telefonnummer" + +#: vibes_auth/models.py:92 +msgid "user phone number" +msgstr "Brukerens telefonnummer" + +#: vibes_auth/models.py:98 +msgid "first_name" +msgstr "Fornavn" + +#: vibes_auth/models.py:99 +msgid "last_name" +msgstr "Etternavn" + +#: vibes_auth/models.py:105 +msgid "user profile image" +msgstr "Bilde av brukerprofil" + +#: vibes_auth/models.py:110 +msgid "is verified" +msgstr "Er verifisert" + +#: vibes_auth/models.py:111 +msgid "user verification status" +msgstr "Brukerens bekreftelsesstatus" + +#: vibes_auth/models.py:114 +msgid "is_active" +msgstr "Er aktiv" + +#: vibes_auth/models.py:116 +msgid "unselect this instead of deleting accounts" +msgstr "Fjern dette valget i stedet for å slette kontoer" + +#: vibes_auth/models.py:119 +msgid "is_subscribed" +msgstr "Er abonnert" + +#: vibes_auth/models.py:119 +msgid "user's newsletter subscription status" +msgstr "Status for brukerens abonnement på nyhetsbrev" + +#: vibes_auth/models.py:122 +msgid "activation token" +msgstr "Aktiveringstoken" + +#: vibes_auth/models.py:124 +msgid "attributes" +msgstr "Egenskaper" + +#: vibes_auth/models.py:158 +msgid "user" +msgstr "Bruker" + +#: vibes_auth/models.py:159 +msgid "users" +msgstr "Brukere" + +#: vibes_auth/models.py:179 +msgid "group" +msgstr "Gruppe" + +#: vibes_auth/models.py:196 +msgid "outstanding token" +msgstr "Enestående symbol" + +#: vibes_auth/models.py:197 +msgid "outstanding tokens" +msgstr "Outstanding tokens" + +#: vibes_auth/models.py:215 +msgid "blacklisted token" +msgstr "Svartelistet token" + +#: vibes_auth/models.py:216 +msgid "blacklisted tokens" +msgstr "Svartelistede tokens" + +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributter` må være en ordbok" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "" +"Virksomhetsidentifikator er påkrevd når du registrerer deg som virksomhet" + +#: vibes_auth/serializers.py:121 +#, python-brace-format +msgid "malformed email: {email}" +msgstr "misdannet e-post: {email}" + +#: vibes_auth/serializers.py:142 vibes_auth/serializers.py:164 +#: vibes_auth/serializers.py:186 vibes_auth/serializers.py:198 +msgid "no active account" +msgstr "Ingen aktiv konto funnet" + +#: vibes_auth/serializers.py:174 +msgid "must set token_class attribute on class." +msgstr "Må sette token_class-attributtet på klassen!" + +#: vibes_auth/serializers.py:246 +msgid "token_blacklisted" +msgstr "Token svartelistet" + +#: vibes_auth/serializers.py:251 +msgid "invalid token" +msgstr "Ugyldig token" + +#: vibes_auth/serializers.py:257 +msgid "no user uuid claim present in token" +msgstr "Ingen bruker-uuid-krav i tokenet" + +#: vibes_auth/serializers.py:259 +msgid "user does not exist" +msgstr "Brukeren eksisterer ikke" + +#: vibes_auth/templates/user_reset_password_email.html:7 +msgid "reset your password" +msgstr "Tilbakestill passordet ditt" + +#: vibes_auth/templates/user_reset_password_email.html:85 +#: vibes_auth/templates/user_verification_email.html:85 +msgid "logo" +msgstr "Logo" + +#: vibes_auth/templates/user_reset_password_email.html:90 +msgid "password reset confirmation" +msgstr "Bekreftelse på tilbakestilling av passord" + +#: vibes_auth/templates/user_reset_password_email.html:91 +#: vibes_auth/templates/user_verification_email.html:91 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Hallo %(user_first_name)s," + +#: vibes_auth/templates/user_reset_password_email.html:92 +msgid "" +"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 " +"tilbakestill passordet ditt ved å klikke på knappen nedenfor:" + +#: vibes_auth/templates/user_reset_password_email.html:95 +msgid "" +"reset\n" +" password" +msgstr "" +"Aktiver\n" +" konto" + +#: vibes_auth/templates/user_reset_password_email.html:98 +#: vibes_auth/templates/user_verification_email.html:99 +msgid "" +"if the button above does not work, please copy and paste the following URL\n" +" into your web browser:" +msgstr "" +"Hvis knappen ovenfor ikke fungerer, kan du kopiere og lime inn følgende URL\n" +" i nettleseren din:" + +#: vibes_auth/templates/user_reset_password_email.html:101 +msgid "" +"if you did not send this request, please ignore this\n" +" email." +msgstr "" +"hvis du ikke har sendt denne forespørselen, vennligst ignorer denne\n" +" e-post." + +#: vibes_auth/templates/user_reset_password_email.html:103 +#, python-format +msgid "best regards,
The %(project_name)s team" +msgstr "Med vennlig hilsen,
The %(project_name)s team" + +#: vibes_auth/templates/user_reset_password_email.html:109 +#: vibes_auth/templates/user_verification_email.html:108 +msgid "all rights reserved" +msgstr "Alle rettigheter forbeholdt" + +#: vibes_auth/templates/user_verification_email.html:7 +#: vibes_auth/templates/user_verification_email.html:90 +msgid "activate your account" +msgstr "Aktiver kontoen din" + +#: vibes_auth/templates/user_verification_email.html:92 +#, python-format +msgid "" +"thank you for signing up for %(project_name)s. please activate your account\n" +" by clicking the button below:" +msgstr "" +"Takk for at du registrerte deg for %(project_name)s. Vennligst aktiver " +"kontoen din ved å klikke på knappen nedenfor:" + +#: vibes_auth/templates/user_verification_email.html:96 +msgid "" +"activate\n" +" account" +msgstr "" +"Aktiver\n" +" konto" + +#: vibes_auth/templates/user_verification_email.html:102 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Med vennlig hilsen,
teamet %(project_name)s" + +#: vibes_auth/utils/emailing.py:27 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Activate Account" +msgstr "{config.PROJECT_NAME} | Aktiver konto" + +#: vibes_auth/utils/emailing.py:69 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Reset Password" +msgstr "{config.PROJECT_NAME} | Tilbakestill passord" + +#: vibes_auth/validators.py:13 +msgid "" +"invalid phone number format. the number must be entered in the format: " +"\"+999999999\". up to 15 digits allowed." +msgstr "" +"Ugyldig telefonnummerformat. Nummeret må legges inn i formatet: " +"\"+999999999\". Opptil 15 sifre er tillatt." + +#: vibes_auth/views.py:117 +msgid "the token is invalid" +msgstr "Tokenet er ugyldig" + +#: vibes_auth/viewsets.py:129 +msgid "password reset successfully" +msgstr "Passordet har blitt tilbakestilt!" + +#: vibes_auth/viewsets.py:162 +msgid "account already activated!" +msgstr "Du har allerede aktivert kontoen..." diff --git a/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po b/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po index d7cf2078..d886c8ae 100644 --- a/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po +++ b/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,8 +52,7 @@ msgstr "Uzyskanie pary tokenów" #: vibes_auth/docs/drf/views.py:16 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." #: vibes_auth/docs/drf/views.py:35 msgid "refresh a token pair" @@ -171,8 +170,8 @@ msgstr "Token jest nieprawidłowy!" #: vibes_auth/graphene/object_types.py:40 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." @@ -349,7 +348,8 @@ msgstr "Witaj %(user_first_name)s," #: 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 " @@ -432,8 +432,8 @@ 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." #: vibes_auth/views.py:117 msgid "the token is invalid" diff --git a/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po b/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po index 23c46368..9120a33d 100644 --- a/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -167,11 +167,11 @@ msgstr "O token é inválido!" #: vibes_auth/graphene/object_types.py:40 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." #: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" @@ -346,7 +346,8 @@ msgstr "Olá %(user_first_name)s," #: 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 " diff --git a/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po b/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po index e1cdf325..fd4acde6 100644 --- a/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -170,8 +170,8 @@ msgstr "Token-ul nu este valabil!" #: vibes_auth/graphene/object_types.py:40 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ă." @@ -350,7 +350,8 @@ msgstr "Bună ziua %(user_first_name)s," #: 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ă " @@ -370,7 +371,8 @@ 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:" #: vibes_auth/templates/user_reset_password_email.html:101 diff --git a/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po b/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po index b7e9946e..d64929b2 100644 --- a/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -120,8 +120,7 @@ msgstr "Ссылка на активацию недействительна ил #: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" -msgstr "" -"Объедините недавно просмотренные продукты, хранящиеся в памяти клиента" +msgstr "Объедините недавно просмотренные продукты, хранящиеся в памяти клиента" #: vibes_auth/graphene/mutations.py:41 msgid "the user's b64-encoded uuid who referred the new user to us." @@ -171,11 +170,11 @@ msgstr "Токен недействителен!" #: vibes_auth/graphene/object_types.py:40 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), в обратном хронологическом порядке." #: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" @@ -349,7 +348,8 @@ msgstr "Привет %(user_first_name)s," #: 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 "" "Мы получили запрос на сброс вашего пароля. Пожалуйста, сбросьте пароль, " @@ -369,7 +369,8 @@ 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" " в свой веб-браузер:" #: vibes_auth/templates/user_reset_password_email.html:101 diff --git a/vibes_auth/locale/sv_SE/LC_MESSAGES/django.mo b/vibes_auth/locale/sv_SE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..23d7afacfced561fd0b053898df2979c0a619b6c GIT binary patch literal 8623 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 literal 0 HcmV?d00001 diff --git a/vibes_auth/locale/sv_SE/LC_MESSAGES/django.po b/vibes_auth/locale/sv_SE/LC_MESSAGES/django.po new file mode 100644 index 00000000..861aa558 --- /dev/null +++ b/vibes_auth/locale/sv_SE/LC_MESSAGES/django.po @@ -0,0 +1,446 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: sv-se\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 +#: vibes_auth/graphene/object_types.py:46 +msgid "balance" +msgstr "Balans" + +#: vibes_auth/admin.py:45 +msgid "order" +msgstr "Beställning" + +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 +msgid "orders" +msgstr "Beställningar" + +#: vibes_auth/admin.py:56 +msgid "personal info" +msgstr "Personlig information" + +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 +msgid "permissions" +msgstr "Behörigheter" + +#: vibes_auth/admin.py:73 +msgid "important dates" +msgstr "Viktiga datum" + +#: vibes_auth/admin.py:74 +msgid "additional info" +msgstr "Ytterligare information" + +#: vibes_auth/apps.py:8 +msgid "authentication" +msgstr "Autentisering" + +#: vibes_auth/docs/drf/views.py:15 +msgid "obtain a token pair" +msgstr "Skaffa ett tokenpar" + +#: vibes_auth/docs/drf/views.py:16 +msgid "obtain a token pair (refresh and access) for authentication." +msgstr "Hämta ett tokenpar (refresh och access) för autentisering." + +#: vibes_auth/docs/drf/views.py:35 +msgid "refresh a token pair" +msgstr "Uppdatera ett tokenpar" + +#: vibes_auth/docs/drf/views.py:36 +msgid "refresh a token pair (refresh and access)." +msgstr "Uppdatera ett tokenpar (uppdatering och åtkomst)." + +#: vibes_auth/docs/drf/views.py:55 +msgid "verify a token" +msgstr "Verifiera en token" + +#: vibes_auth/docs/drf/views.py:56 +msgid "Verify a token (refresh or access)." +msgstr "Verifiera en token (uppdatering eller åtkomst)." + +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 +msgid "the token is valid" +msgstr "Token är giltig" + +#: vibes_auth/docs/drf/viewsets.py:16 +msgid "create a new user" +msgstr "Skapa en ny användare" + +#: vibes_auth/docs/drf/viewsets.py:21 +msgid "retrieve a user's details" +msgstr "Hämta uppgifter om en användare" + +#: vibes_auth/docs/drf/viewsets.py:25 +msgid "update a user's details" +msgstr "Uppdatera en användares uppgifter" + +#: vibes_auth/docs/drf/viewsets.py:30 +msgid "delete a user" +msgstr "Ta bort en användare" + +#: vibes_auth/docs/drf/viewsets.py:34 +msgid "reset a user's password by sending a reset password email" +msgstr "" +"Återställ en användares lösenord genom att skicka ett e-postmeddelande om " +"återställt lösenord" + +#: vibes_auth/docs/drf/viewsets.py:39 +msgid "handle avatar upload for a user" +msgstr "Hantera uppladdning av avatar för en användare" + +#: vibes_auth/docs/drf/viewsets.py:54 +msgid "confirm a user's password reset" +msgstr "Bekräfta återställning av en användares lösenord" + +#: vibes_auth/docs/drf/viewsets.py:58 vibes_auth/graphene/mutations.py:311 +#: vibes_auth/serializers.py:105 vibes_auth/serializers.py:109 +#: vibes_auth/viewsets.py:114 +msgid "passwords do not match" +msgstr "Lösenorden stämmer inte överens" + +#: vibes_auth/docs/drf/viewsets.py:63 +msgid "activate a user's account" +msgstr "Aktivera en användares konto" + +#: vibes_auth/docs/drf/viewsets.py:67 +msgid "activation link is invalid or account already activated" +msgstr "Aktiveringslänken är ogiltig eller kontot är redan aktiverat" + +#: vibes_auth/docs/drf/viewsets.py:72 +msgid "merge client-stored recently viewed products" +msgstr "Sammanfoga klientlagrade nyligen visade produkter" + +#: vibes_auth/graphene/mutations.py:41 +msgid "the user's b64-encoded uuid who referred the new user to us." +msgstr "" +"Den användares b64-kodade uuid som hänvisade den nya användaren till oss." + +#: vibes_auth/graphene/mutations.py:61 +msgid "password too weak" +msgstr "Lösenordet är för svagt" + +#: vibes_auth/graphene/mutations.py:107 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} existerar inte: {uuid}!" + +#: vibes_auth/graphene/mutations.py:117 +msgid "malformed email" +msgstr "Missvisande e-post" + +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 +#, python-brace-format +msgid "malformed phone number: {phone_number}" +msgstr "Missbildat telefonnummer: {phone_number}!" + +#: vibes_auth/graphene/mutations.py:146 +#, python-brace-format +msgid "Invalid attribute format: {attribute_pair}" +msgstr "Ogiltigt attributformat: {attribute_pair}!" + +#: vibes_auth/graphene/mutations.py:267 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 +msgid "activation link is invalid!" +msgstr "Aktiveringslänken är ogiltig!" + +#: vibes_auth/graphene/mutations.py:270 +msgid "account already activated..." +msgstr "Kontot har redan aktiverats..." + +#: vibes_auth/graphene/mutations.py:277 vibes_auth/graphene/mutations.py:329 +msgid "something went wrong: {e!s}" +msgstr "Något gick fel: {e!s}" + +#: vibes_auth/graphene/mutations.py:318 vibes_auth/viewsets.py:125 +msgid "token is invalid!" +msgstr "Token är ogiltig!" + +#: vibes_auth/graphene/object_types.py:40 +msgid "" +"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." + +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 +msgid "groups" +msgstr "Grupper" + +#: vibes_auth/graphene/object_types.py:45 +msgid "wishlist" +msgstr "Önskelista" + +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 +msgid "avatar" +msgstr "Avatar" + +#: vibes_auth/graphene/object_types.py:48 +msgid "attributes may be used to store custom data" +msgstr "Attribut kan användas för att lagra anpassade data" + +#: vibes_auth/graphene/object_types.py:49 +#, python-brace-format +msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" +msgstr "Språk är en av {LANGUAGES} med standard {LANGUAGE_CODE}." + +#: vibes_auth/graphene/object_types.py:50 +msgid "address set" +msgstr "Adresser" + +#: vibes_auth/models.py:85 +msgid "email" +msgstr "E-post" + +#: vibes_auth/models.py:85 +msgid "user email address" +msgstr "Användarens e-postadress" + +#: vibes_auth/models.py:87 +msgid "phone_number" +msgstr "Telefonnummer" + +#: vibes_auth/models.py:92 +msgid "user phone number" +msgstr "Användarens telefonnummer" + +#: vibes_auth/models.py:98 +msgid "first_name" +msgstr "Förnamn" + +#: vibes_auth/models.py:99 +msgid "last_name" +msgstr "Efternamn" + +#: vibes_auth/models.py:105 +msgid "user profile image" +msgstr "Bild på användarprofil" + +#: vibes_auth/models.py:110 +msgid "is verified" +msgstr "Är verifierad" + +#: vibes_auth/models.py:111 +msgid "user verification status" +msgstr "Användarens verifieringsstatus" + +#: vibes_auth/models.py:114 +msgid "is_active" +msgstr "Är aktiv" + +#: vibes_auth/models.py:116 +msgid "unselect this instead of deleting accounts" +msgstr "Avmarkera detta istället för att radera konton" + +#: vibes_auth/models.py:119 +msgid "is_subscribed" +msgstr "Är prenumererad" + +#: vibes_auth/models.py:119 +msgid "user's newsletter subscription status" +msgstr "Användarens status för prenumeration på nyhetsbrev" + +#: vibes_auth/models.py:122 +msgid "activation token" +msgstr "Aktiveringstoken" + +#: vibes_auth/models.py:124 +msgid "attributes" +msgstr "Attribut" + +#: vibes_auth/models.py:158 +msgid "user" +msgstr "Användare" + +#: vibes_auth/models.py:159 +msgid "users" +msgstr "Användare" + +#: vibes_auth/models.py:179 +msgid "group" +msgstr "Grupp" + +#: vibes_auth/models.py:196 +msgid "outstanding token" +msgstr "Utestående symbol" + +#: vibes_auth/models.py:197 +msgid "outstanding tokens" +msgstr "Utestående polletter" + +#: vibes_auth/models.py:215 +msgid "blacklisted token" +msgstr "Svartlistad token" + +#: vibes_auth/models.py:216 +msgid "blacklisted tokens" +msgstr "Svartlistade tokens" + +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` måste vara en ordbok" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "Företagsidentifierare krävs när du registrerar dig som företag" + +#: vibes_auth/serializers.py:121 +#, python-brace-format +msgid "malformed email: {email}" +msgstr "missbildad e-post: {email}" + +#: vibes_auth/serializers.py:142 vibes_auth/serializers.py:164 +#: vibes_auth/serializers.py:186 vibes_auth/serializers.py:198 +msgid "no active account" +msgstr "Inget aktivt konto hittades" + +#: vibes_auth/serializers.py:174 +msgid "must set token_class attribute on class." +msgstr "Måste sätta attributet token_class på klassen!" + +#: vibes_auth/serializers.py:246 +msgid "token_blacklisted" +msgstr "Token blacklisted" + +#: vibes_auth/serializers.py:251 +msgid "invalid token" +msgstr "Ogiltig token" + +#: vibes_auth/serializers.py:257 +msgid "no user uuid claim present in token" +msgstr "Inget användar-uuid-krav finns i token" + +#: vibes_auth/serializers.py:259 +msgid "user does not exist" +msgstr "Användaren finns inte" + +#: vibes_auth/templates/user_reset_password_email.html:7 +msgid "reset your password" +msgstr "Återställ ditt lösenord" + +#: vibes_auth/templates/user_reset_password_email.html:85 +#: vibes_auth/templates/user_verification_email.html:85 +msgid "logo" +msgstr "Logotyp" + +#: vibes_auth/templates/user_reset_password_email.html:90 +msgid "password reset confirmation" +msgstr "Bekräftelse på återställning av lösenord" + +#: vibes_auth/templates/user_reset_password_email.html:91 +#: vibes_auth/templates/user_verification_email.html:91 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Hej %(user_first_name)s," + +#: vibes_auth/templates/user_reset_password_email.html:92 +msgid "" +"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 " +"ditt lösenord genom att klicka på knappen nedan:" + +#: vibes_auth/templates/user_reset_password_email.html:95 +msgid "" +"reset\n" +" password" +msgstr "" +"Aktivera\n" +" konto" + +#: vibes_auth/templates/user_reset_password_email.html:98 +#: vibes_auth/templates/user_verification_email.html:99 +msgid "" +"if the button above does not work, please copy and paste the following URL\n" +" into your web browser:" +msgstr "" +"Om knappen ovan inte fungerar, vänligen kopiera och klistra in följande URL\n" +" i din webbläsare:" + +#: vibes_auth/templates/user_reset_password_email.html:101 +msgid "" +"if you did not send this request, please ignore this\n" +" email." +msgstr "" +"om du inte har skickat denna begäran, vänligen ignorera detta\n" +" e-post." + +#: vibes_auth/templates/user_reset_password_email.html:103 +#, python-format +msgid "best regards,
The %(project_name)s team" +msgstr "Bästa hälsningar,
The %(project_name)s team" + +#: vibes_auth/templates/user_reset_password_email.html:109 +#: vibes_auth/templates/user_verification_email.html:108 +msgid "all rights reserved" +msgstr "Alla rättigheter förbehålls" + +#: vibes_auth/templates/user_verification_email.html:7 +#: vibes_auth/templates/user_verification_email.html:90 +msgid "activate your account" +msgstr "Aktivera ditt konto" + +#: vibes_auth/templates/user_verification_email.html:92 +#, python-format +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:" + +#: vibes_auth/templates/user_verification_email.html:96 +msgid "" +"activate\n" +" account" +msgstr "" +"Aktivera\n" +" konto" + +#: vibes_auth/templates/user_verification_email.html:102 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Bästa hälsningar,
teamet %(project_name)s" + +#: vibes_auth/utils/emailing.py:27 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Activate Account" +msgstr "{config.PROJECT_NAME} | Aktivera konto" + +#: vibes_auth/utils/emailing.py:69 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Reset Password" +msgstr "{config.PROJECT_NAME} | Återställ lösenord" + +#: vibes_auth/validators.py:13 +msgid "" +"invalid phone number format. the number must be entered in the format: " +"\"+999999999\". up to 15 digits allowed." +msgstr "" +"Ogiltigt format på telefonnumret. Numret måste anges i formatet: " +"\"+999999999\". Upp till 15 siffror är tillåtna." + +#: vibes_auth/views.py:117 +msgid "the token is invalid" +msgstr "Token är ogiltig" + +#: vibes_auth/viewsets.py:129 +msgid "password reset successfully" +msgstr "Lösenordet har återställts framgångsrikt!" + +#: vibes_auth/viewsets.py:162 +msgid "account already activated!" +msgstr "Du har redan aktiverat kontot..." diff --git a/vibes_auth/locale/th_TH/LC_MESSAGES/django.mo b/vibes_auth/locale/th_TH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7ccf67d8c6980c1bd8563495f3b6cee50550bf79 GIT binary patch literal 12397 zcmcJUZH!#idB;zP1Hr)w2{bK`(qmc@8+#VNf?2-=+bm|O-?CmiDS<3^XYTIa?9ANF zy)(Nk&Z-7d8EmK`#k6&xDeH)CfHs1F?b)_pP*tg_)U;AQG*#PV8mVp6R%yN@NPSWJ zd!BRV&g-rXG*^4)f6uw+Jm-1&KhHTc`@N5>c-C-@aDR;Z`u7_1>)Q}2f=>?MWr8uSAlPVqSya=yp72prhOFr2sjSz1|J1Q&Y$@Ae-Eyr z{Uh*w;D3YsnJZ96+N(fW=Q>d4-3W@k{oovU6#O*!9Z>98ca1S6a62e+Ujlh$E`q3L z{?zyXCHP6&f9LyeV(<#uw}K+)Ht-j~e(>Yq5pX^DD7Xe(0L8w)1|<$Z0L5=t;+!4e zjiBiNX;Ack2$b;!Q2a3sN*tc@_@aORCiqeMzXOWi{|X}7{1il0vjXL=2R{tn27Vmu z13v}c1)cy!k3Rw>{@(^=ogad~0j?nE4}hmYk@HWW=<}bT=)DRhMbG;^J_yP>W$@?0 zv!M9tHBi>M0LuKo0Qocj;M@NJivOM2{%U$62L0Rtx>u?|VDD5gJcK;ZZ^{+&TjQc2f2Y3(oAb1>n9{esi3RZ7%_I($O zY2OU_e+B$a@C^7mNC?e+bP9eJlz5aqeiJ-M`$u32+zB~$fUkg?!5@O6$HyRn#N&QY z+KI;(z=vsn+qZ9L&{^6Kfg`- zmv;D%8^CM)GhxuWd>^=#`wDJ}!+W_U|Kt*WU&SrFLT%k=#8$a1H`LIY4H(?3ypm_R z#7Bp?AK-qF`%Z35%&yPzbPxB3xJgO9ps?BNpT$SN#=YOSw|SIYlxv846F2Fte!d=T zy@U&-ocWCJlo(K&%&&5PfP0X86}Mbhb4!lNb%6U?eQN(0p$R3F0}^M_T6uN^ypsEU z+@yxqsLz6XxaHc%eLpwpp?SXo6kf>%mG$}{pOiV}ff+1M2gRshgGwcdMyr+3j>SnS zsPx<8S=Y!^5G8ZwSeQg(vo^4mcrq;8HAy&@gz1Eh6C337VVXid9^z`bVuNB51_cJ^ zE75dN2@9*2e%03}^W3jLh)A8KW;}_jQ|>c06G6F9 zWVSlYR;P+_P>`JP%bAI=Sd4Lih#F}MS(~mm(U=wIkVO^f5RAstp)JH=YRhrOqTu9u zJ5>yWlt{)?w?(8L{^0(Eer9AS%NMCH71>YDbfJ237iHbvofdLDx$| z#8)P~Ux|0Ncr;!XHp#nX*HJ(9nW!`sCzXJthInCW8Ywe15tl<-u9il_#21Y|wZwOo zJS~ZGC{c~b5Vg~lms{4|)wpiy!_PwVjayNFJR&{Flz1j&_iC)>k_&65r3ytPPLz&l z@`du0R!7r31&n?eK3)yRL!p#t7`vz(-@p6dzN5SM4IG)XGf`#27Q(ThTCCXY#mL@6 z_YBN2zrl-QJRX};P?U;@0gg8vZR(`<&$SF}^$hQ|IpVy+urNWld@;f=In8U~ZJt(f z)=ozuR$KD0P|a6Tqduf^xO5uHqZ_`-N;NFgu0B(at#bz8N+3N#QCqD-2u4LE#8PyK zqeMbVxQRzA0gXmQmone0uUYDavMeCA-sMDFmFY7iAql3RsfnwV6y6ks(|*0qp47DG zE{UPJ?TS{%yR@n+k5!As+2*`T9NU>Nn9O=oa!xaVT`WIgroyBYr71;_#lj?QR_4~Y zn8s$-=8ImPJ)P0Ve8RMBI?2Y?u*ePXQNc!M*(jXL0%#$jZ_M%hbDf(0jW0Ds7>lta;`b@Q)vIFHwW3ewPQ}fwWC``IBiC?@QQ&XLi zD%%}M(a)%7vK=LSgbmX5X$i9asNuR=i;(Y0;<1RWEhixAnz!N=_23qf(>uvm>FI3GGAx4W*t%9Bwc}Hg!2{;H@6a%~;jr-Miq_Oq5Q@ zIm8^-dNSU3c<9jm1AB)@4(>iMFlWDLcl+Ze53X7+HE>8%@UTB%nB#IXnrm+A8Upf3 zs4`~`yW>-Cu#h_jE%8>r9XK|)XW)q4+_#}`!^)vhw$j{zbUZ5L_Eg8y+;H4)R~|l; z8w#f*nUK4O==a-A8#ZmtZP=LGyuohR+`sA0bsM-=?q_Gp4JSc4Ey|e*;rk8^S?)bY z4<0&ZckDfMaCrCL;k)lWIy6Af;85S*LkD&-&25OeVa{{?cF)k@@ZgdA?7+c&`vosG ztsmCrDibRY3?3M0+O-jL_Qq`O>|(>SQ|Md?AF13v#YR)!Zu1iXX<6BMbok!fw&pld zom9#VNQOcCe!Fcns;oR*tR_J*cQ4y)+HcEK+DvzD+D^@pH#^sq?dqL&jO}+N@ zdTp^@d#=9tSiSaD`ICn~tk<5c*M3{yzM=hmE=cF%)AhwK)ob(h#V6~v-_p5^r~fIP zb&}|18>;)FvzkQ^#ySXK(#txKbsm=$7Ejb`U#c&jtk=%kH9G3N_WhndpQ_hh(T9sN zNya{|D}77XzEH27T#Iz{snu&=QN_;4dl~p#y@t*-pQzVP=_J-*-dQ#0wR-It>94uf zQ0{!ac1~Y?y7T{Br&*AwHAi2LvbYan7-4aCK*a+e=1a+~^^OUP~? zU9UYaF%qA6KfK-fL7+a*s$d zOBiJy&I(2Pux+g&I)sXZU}oSG?B>BGFPV-!5>DL0lct;agc89Z9j(I;j zxr^xARy|udl9gq~T+s4``fWu-O?0|Cz7&bi>+L~nZU`EyS9N_nP24ExxDqc@ zp=t6;r#AxzZ{0|O0h8h135`L6c2a+EIEuciudvJ&@3ZYXbjl$Zu%m+}tl=1hDsC@0 zt;B;ht-3z1l$RKLricdJrB%#w`v*gNjHoX@p$?Gk6Ll~I<$H*MtWFuYCFDFMdTaXA zKxHP@wC$6it&KZzFdWWo%N~%+D^d$)5C^6)%w+}&W3&1~iaLh4oW%={`90KR&_W}c z2qFsPjGu73G(_cBd;hwl3a}iyK?HA&=p!cy`WA9_yf zA_N*o;Yk)mD+EH@uk;fkT+47Y@O@1qnw#0nYLlCXSx$^sr^7gOb4*78RAmq=Hu;fR z!O9qm9~hCPu?wX0&ohj`ltrZg>OnsK&~{!G=D>q-tVS(IA4D+t8!C|^Otrbh*{{#` z76!3IZ|A10tiVFoiN~K%ojX0iiAF<|EBOGs#Q_jve)NCk2XfZxZF@j4<;f3rK6^R~PpBs+1YOPtPCP_F4cE#9xGW?E8wIMIp8)ODB37=T1RF^RcP z^D_d!Tl(KY^&N|&3rk_&%h=xx85O{l3&{D5|LT;vK=fXQ)=eom61t%l^0AUS?0kvR zI0?;AlzkflKJ9)mYH>j422^+661ugWgk0266MZp8GOIh|FKbZGZ={Q8kAqxAcBfv9 z@x^AXRYN+q&dlC(owY(@gQgk}J*J{Clko+?lQ(=;NY*ZAelvjG24%Jq-t&I9TqL|0N)Ne;c9_>ZP`OC-c(H8N?UF79P&>r}BH#OK zyie&~s|gwLIQhbcgcURq$pfsU2QNOiysECWIXf|!nV2eHJvy1)On^p6Bw&&fGP?VV zlshWG5wg?sg>l$0uahplZ9BbPG_oI7Flf2dxZKh2AV(nJ2|az`S(y1mSM4BtxXxFZ zR^{LM*<35YnYxgJz_{w;{EFv^xic4slGj?m zRT|Y%dYJXNs?5aBlIT2(f$G^Nl^ExGsN$};pOGC@{%z5a=8C0g)>2Fu%PQ35u5VgG z>b5G^_1)L1r!mCIY#dRXB9{t!Ln~JI{%Q#zJt&4j7@BRuOMQvRHsO>TmiLG6Wh$dRrWXINLobDawob;`B(|uuH@=z%!m~O+f(YIixq@~P99|YZ7C#gLkiOI7W2^p9bJ>fPBqF72L%~VH2 z!Z#$w;?0h4Htor~)W16YQB8IY6mdU=p(*;p8iIzJ%`>nr<11g|zoIRfE8o4?ul3)e HtIhubwz`7v literal 0 HcmV?d00001 diff --git a/vibes_auth/locale/th_TH/LC_MESSAGES/django.po b/vibes_auth/locale/th_TH/LC_MESSAGES/django.po new file mode 100644 index 00000000..2e78d278 --- /dev/null +++ b/vibes_auth/locale/th_TH/LC_MESSAGES/django.po @@ -0,0 +1,436 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: th-th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 +#: vibes_auth/graphene/object_types.py:46 +msgid "balance" +msgstr "สมดุล" + +#: vibes_auth/admin.py:45 +msgid "order" +msgstr "คำสั่ง" + +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 +msgid "orders" +msgstr "คำสั่ง" + +#: vibes_auth/admin.py:56 +msgid "personal info" +msgstr "ข้อมูลส่วนตัว" + +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 +msgid "permissions" +msgstr "สิทธิ์การใช้งาน" + +#: vibes_auth/admin.py:73 +msgid "important dates" +msgstr "วันที่สำคัญ" + +#: vibes_auth/admin.py:74 +msgid "additional info" +msgstr "ข้อมูลเพิ่มเติม" + +#: vibes_auth/apps.py:8 +msgid "authentication" +msgstr "การยืนยันตัวตน" + +#: vibes_auth/docs/drf/views.py:15 +msgid "obtain a token pair" +msgstr "รับคู่โทเค็น" + +#: vibes_auth/docs/drf/views.py:16 +msgid "obtain a token pair (refresh and access) for authentication." +msgstr "รับคู่โทเค็น (รีเฟรชและเข้าถึง) สำหรับการยืนยันตัวตน" + +#: vibes_auth/docs/drf/views.py:35 +msgid "refresh a token pair" +msgstr "รีเฟรชคู่โทเค็น" + +#: vibes_auth/docs/drf/views.py:36 +msgid "refresh a token pair (refresh and access)." +msgstr "รีเฟรชคู่โทเค็น (รีเฟรชและเข้าถึง)" + +#: vibes_auth/docs/drf/views.py:55 +msgid "verify a token" +msgstr "ตรวจสอบโทเค็น" + +#: vibes_auth/docs/drf/views.py:56 +msgid "Verify a token (refresh or access)." +msgstr "ตรวจสอบโทเค็น (รีเฟรชหรือเข้าถึง)" + +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 +msgid "the token is valid" +msgstr "โทเค็นนี้ใช้ได้" + +#: vibes_auth/docs/drf/viewsets.py:16 +msgid "create a new user" +msgstr "สร้างผู้ใช้ใหม่" + +#: vibes_auth/docs/drf/viewsets.py:21 +msgid "retrieve a user's details" +msgstr "ดึงข้อมูลรายละเอียดของผู้ใช้" + +#: vibes_auth/docs/drf/viewsets.py:25 +msgid "update a user's details" +msgstr "อัปเดตข้อมูลผู้ใช้" + +#: vibes_auth/docs/drf/viewsets.py:30 +msgid "delete a user" +msgstr "ลบผู้ใช้" + +#: vibes_auth/docs/drf/viewsets.py:34 +msgid "reset a user's password by sending a reset password email" +msgstr "รีเซ็ตรหัสผ่านของผู้ใช้โดยการส่งอีเมลรีเซ็ตรหัสผ่าน" + +#: vibes_auth/docs/drf/viewsets.py:39 +msgid "handle avatar upload for a user" +msgstr "จัดการการอัปโหลดอวาตาร์สำหรับผู้ใช้" + +#: vibes_auth/docs/drf/viewsets.py:54 +msgid "confirm a user's password reset" +msgstr "ยืนยันการรีเซ็ตรหัสผ่านของผู้ใช้" + +#: vibes_auth/docs/drf/viewsets.py:58 vibes_auth/graphene/mutations.py:311 +#: vibes_auth/serializers.py:105 vibes_auth/serializers.py:109 +#: vibes_auth/viewsets.py:114 +msgid "passwords do not match" +msgstr "รหัสผ่านไม่ตรงกัน" + +#: vibes_auth/docs/drf/viewsets.py:63 +msgid "activate a user's account" +msgstr "เปิดใช้งานบัญชีผู้ใช้" + +#: vibes_auth/docs/drf/viewsets.py:67 +msgid "activation link is invalid or account already activated" +msgstr "ลิงก์การเปิดใช้งานไม่ถูกต้องหรือบัญชีได้รับการเปิดใช้งานแล้ว" + +#: vibes_auth/docs/drf/viewsets.py:72 +msgid "merge client-stored recently viewed products" +msgstr "รวมสินค้าที่ลูกค้าดูล่าสุดซึ่งเก็บไว้ในระบบของลูกค้า" + +#: vibes_auth/graphene/mutations.py:41 +msgid "the user's b64-encoded uuid who referred the new user to us." +msgstr "ผู้ใช้ที่เข้ารหัส uuid ด้วย b64 ซึ่งแนะนำผู้ใช้ใหม่ให้เรามา" + +#: vibes_auth/graphene/mutations.py:61 +msgid "password too weak" +msgstr "รหัสผ่านอ่อนแอเกินไป" + +#: vibes_auth/graphene/mutations.py:107 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} ไม่พบ: {uuid}!" + +#: vibes_auth/graphene/mutations.py:117 +msgid "malformed email" +msgstr "อีเมลไม่ถูกต้อง" + +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 +#, python-brace-format +msgid "malformed phone number: {phone_number}" +msgstr "หมายเลขโทรศัพท์ไม่ถูกต้อง: {phone_number}!" + +#: vibes_auth/graphene/mutations.py:146 +#, python-brace-format +msgid "Invalid attribute format: {attribute_pair}" +msgstr "รูปแบบแอตทริบิวต์ไม่ถูกต้อง: {attribute_pair}!" + +#: vibes_auth/graphene/mutations.py:267 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 +msgid "activation link is invalid!" +msgstr "ลิงก์การเปิดใช้งานไม่ถูกต้อง!" + +#: vibes_auth/graphene/mutations.py:270 +msgid "account already activated..." +msgstr "บัญชีได้รับการเปิดใช้งานแล้ว..." + +#: vibes_auth/graphene/mutations.py:277 vibes_auth/graphene/mutations.py:329 +msgid "something went wrong: {e!s}" +msgstr "เกิดข้อผิดพลาด: {e!s}" + +#: vibes_auth/graphene/mutations.py:318 vibes_auth/viewsets.py:125 +msgid "token is invalid!" +msgstr "โทเคนไม่ถูกต้อง!" + +#: vibes_auth/graphene/object_types.py:40 +msgid "" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" +msgstr "" +"สินค้าที่ผู้ใช้รายนี้ดูล่าสุด (สูงสุด 48 รายการ) เรียงตามลำดับเวลาล่าสุด" + +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 +msgid "groups" +msgstr "กลุ่ม" + +#: vibes_auth/graphene/object_types.py:45 +msgid "wishlist" +msgstr "รายการสิ่งที่ต้องการ" + +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 +msgid "avatar" +msgstr "อวตาร" + +#: vibes_auth/graphene/object_types.py:48 +msgid "attributes may be used to store custom data" +msgstr "คุณลักษณะอาจใช้เพื่อเก็บข้อมูลที่กำหนดเอง" + +#: vibes_auth/graphene/object_types.py:49 +#, python-brace-format +msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" +msgstr "ภาษาเป็นหนึ่งใน {LANGUAGES} ที่มีค่าเริ่มต้น {LANGUAGE_CODE}" + +#: vibes_auth/graphene/object_types.py:50 +msgid "address set" +msgstr "ที่อยู่" + +#: vibes_auth/models.py:85 +msgid "email" +msgstr "อีเมล" + +#: vibes_auth/models.py:85 +msgid "user email address" +msgstr "ที่อยู่อีเมลของผู้ใช้" + +#: vibes_auth/models.py:87 +msgid "phone_number" +msgstr "หมายเลขโทรศัพท์" + +#: vibes_auth/models.py:92 +msgid "user phone number" +msgstr "หมายเลขโทรศัพท์ผู้ใช้" + +#: vibes_auth/models.py:98 +msgid "first_name" +msgstr "ชื่อ" + +#: vibes_auth/models.py:99 +msgid "last_name" +msgstr "นามสกุล" + +#: vibes_auth/models.py:105 +msgid "user profile image" +msgstr "รูปภาพโปรไฟล์ผู้ใช้" + +#: vibes_auth/models.py:110 +msgid "is verified" +msgstr "ได้รับการยืนยันแล้ว" + +#: vibes_auth/models.py:111 +msgid "user verification status" +msgstr "สถานะการยืนยันของผู้ใช้" + +#: vibes_auth/models.py:114 +msgid "is_active" +msgstr "กำลังใช้งานอยู่" + +#: vibes_auth/models.py:116 +msgid "unselect this instead of deleting accounts" +msgstr "ยกเลิกการเลือกสิ่งนี้แทนการลบบัญชี" + +#: vibes_auth/models.py:119 +msgid "is_subscribed" +msgstr "สมัครสมาชิกแล้ว" + +#: vibes_auth/models.py:119 +msgid "user's newsletter subscription status" +msgstr "สถานะการสมัครสมาชิกจดหมายข่าวของผู้ใช้" + +#: vibes_auth/models.py:122 +msgid "activation token" +msgstr "โทเค็นการเปิดใช้งาน" + +#: vibes_auth/models.py:124 +msgid "attributes" +msgstr "คุณลักษณะ" + +#: vibes_auth/models.py:158 +msgid "user" +msgstr "ผู้ใช้" + +#: vibes_auth/models.py:159 +msgid "users" +msgstr "ผู้ใช้" + +#: vibes_auth/models.py:179 +msgid "group" +msgstr "กลุ่ม" + +#: vibes_auth/models.py:196 +msgid "outstanding token" +msgstr "โทเค็นที่ยังไม่ได้ใช้" + +#: vibes_auth/models.py:197 +msgid "outstanding tokens" +msgstr "โทเค็นที่ยังไม่ได้ใช้" + +#: vibes_auth/models.py:215 +msgid "blacklisted token" +msgstr "โทเค็นที่ถูกขึ้นบัญชีดำ" + +#: vibes_auth/models.py:216 +msgid "blacklisted tokens" +msgstr "โทเค็นที่ถูกขึ้นบัญชีดำ" + +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` ต้องเป็นพจนานุกรม" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "จำเป็นต้องระบุรหัสประจำตัวธุรกิจเมื่อลงทะเบียนเป็นธุรกิจ" + +#: vibes_auth/serializers.py:121 +#, python-brace-format +msgid "malformed email: {email}" +msgstr "อีเมลไม่ถูกต้อง: {email}" + +#: vibes_auth/serializers.py:142 vibes_auth/serializers.py:164 +#: vibes_auth/serializers.py:186 vibes_auth/serializers.py:198 +msgid "no active account" +msgstr "ไม่พบบัญชีที่ใช้งานอยู่" + +#: vibes_auth/serializers.py:174 +msgid "must set token_class attribute on class." +msgstr "ต้องตั้งค่าแอตทริบิวต์ token_class บนคลาส!" + +#: vibes_auth/serializers.py:246 +msgid "token_blacklisted" +msgstr "โทเค็นถูกขึ้นบัญชีดำ" + +#: vibes_auth/serializers.py:251 +msgid "invalid token" +msgstr "โทเค็นไม่ถูกต้อง" + +#: vibes_auth/serializers.py:257 +msgid "no user uuid claim present in token" +msgstr "ไม่มีการอ้างสิทธิ์ uuid ของผู้ใช้ในโทเค็น" + +#: vibes_auth/serializers.py:259 +msgid "user does not exist" +msgstr "ผู้ใช้ไม่มีอยู่" + +#: vibes_auth/templates/user_reset_password_email.html:7 +msgid "reset your password" +msgstr "รีเซ็ตรหัสผ่านของคุณ" + +#: vibes_auth/templates/user_reset_password_email.html:85 +#: vibes_auth/templates/user_verification_email.html:85 +msgid "logo" +msgstr "โลโก้" + +#: vibes_auth/templates/user_reset_password_email.html:90 +msgid "password reset confirmation" +msgstr "การยืนยันการรีเซ็ตรหัสผ่าน" + +#: vibes_auth/templates/user_reset_password_email.html:91 +#: vibes_auth/templates/user_verification_email.html:91 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "สวัสดีครับ/ค่ะ %(user_first_name)s," + +#: vibes_auth/templates/user_reset_password_email.html:92 +msgid "" +"we have received a request to reset your password. please reset your password\n" +" by clicking the button below:" +msgstr "" +"เราได้รับคำขอให้คุณรีเซ็ตรหัสผ่านของคุณ " +"กรุณาทำการรีเซ็ตรหัสผ่านของคุณโดยคลิกที่ปุ่มด้านล่าง:" + +#: vibes_auth/templates/user_reset_password_email.html:95 +msgid "" +"reset\n" +" password" +msgstr "เปิดใช้งานบัญชี" + +#: vibes_auth/templates/user_reset_password_email.html:98 +#: vibes_auth/templates/user_verification_email.html:99 +msgid "" +"if the button above does not work, please copy and paste the following URL\n" +" into your web browser:" +msgstr "" +"หากปุ่มด้านบนไม่ทำงาน โปรดคัดลอกและวาง URL " +"ต่อไปนี้ลงในเว็บเบราว์เซอร์ของคุณ:" + +#: vibes_auth/templates/user_reset_password_email.html:101 +msgid "" +"if you did not send this request, please ignore this\n" +" email." +msgstr "หากคุณไม่ได้ส่งคำขอนี้ โปรดละเว้นอีเมลนี้" + +#: vibes_auth/templates/user_reset_password_email.html:103 +#, python-format +msgid "best regards,
The %(project_name)s team" +msgstr "ขอแสดงความนับถือ
ทีมงาน %(project_name)s" + +#: vibes_auth/templates/user_reset_password_email.html:109 +#: vibes_auth/templates/user_verification_email.html:108 +msgid "all rights reserved" +msgstr "สงวนลิขสิทธิ์" + +#: vibes_auth/templates/user_verification_email.html:7 +#: vibes_auth/templates/user_verification_email.html:90 +msgid "activate your account" +msgstr "เปิดใช้งานบัญชีของคุณ" + +#: vibes_auth/templates/user_verification_email.html:92 +#, python-format +msgid "" +"thank you for signing up for %(project_name)s. please activate your account\n" +" by clicking the button below:" +msgstr "" +"ขอบคุณที่ลงทะเบียนสำหรับ %(project_name)s " +"กรุณาเปิดใช้งานบัญชีของคุณโดยคลิกที่ปุ่มด้านล่าง:" + +#: vibes_auth/templates/user_verification_email.html:96 +msgid "" +"activate\n" +" account" +msgstr "เปิดใช้งานบัญชี" + +#: vibes_auth/templates/user_verification_email.html:102 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "ขอแสดงความนับถือ
ทีมงาน %(project_name)s" + +#: vibes_auth/utils/emailing.py:27 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Activate Account" +msgstr "{config.PROJECT_NAME} | เปิดใช้งานบัญชี" + +#: vibes_auth/utils/emailing.py:69 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Reset Password" +msgstr "{config.PROJECT_NAME} | ตั้งค่ารหัสผ่านใหม่" + +#: vibes_auth/validators.py:13 +msgid "" +"invalid phone number format. the number must be entered in the format: " +"\"+999999999\". up to 15 digits allowed." +msgstr "" +"รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง. หมายเลขต้องถูกป้อนในรูปแบบ: \"+999999999\"." +" อนุญาตให้ใช้ได้ถึง 15 หลัก." + +#: vibes_auth/views.py:117 +msgid "the token is invalid" +msgstr "โทเค็นไม่ถูกต้อง" + +#: vibes_auth/viewsets.py:129 +msgid "password reset successfully" +msgstr "รหัสผ่านได้รับการรีเซ็ตเรียบร้อยแล้ว!" + +#: vibes_auth/viewsets.py:162 +msgid "account already activated!" +msgstr "คุณได้เปิดใช้งานบัญชีเรียบร้อยแล้ว..." diff --git a/vibes_auth/locale/tr_TR/LC_MESSAGES/django.mo b/vibes_auth/locale/tr_TR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d5f4380e6d2e07e21fa37287d0d2bedafd34cc93 GIT binary patch literal 8823 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 T2aZ2DA#buDe(Vp(6Y75eN6)Ux literal 0 HcmV?d00001 diff --git a/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po b/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po new file mode 100644 index 00000000..a5176f89 --- /dev/null +++ b/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po @@ -0,0 +1,444 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: tr-tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 +#: vibes_auth/graphene/object_types.py:46 +msgid "balance" +msgstr "Denge" + +#: vibes_auth/admin.py:45 +msgid "order" +msgstr "Sipariş" + +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 +msgid "orders" +msgstr "Siparişler" + +#: vibes_auth/admin.py:56 +msgid "personal info" +msgstr "Kişisel Bilgiler" + +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 +msgid "permissions" +msgstr "İzinler" + +#: vibes_auth/admin.py:73 +msgid "important dates" +msgstr "Önemli tarihler" + +#: vibes_auth/admin.py:74 +msgid "additional info" +msgstr "Ek Bilgi" + +#: vibes_auth/apps.py:8 +msgid "authentication" +msgstr "Kimlik Doğrulama" + +#: vibes_auth/docs/drf/views.py:15 +msgid "obtain a token pair" +msgstr "Bir belirteç çifti elde edin" + +#: vibes_auth/docs/drf/views.py:16 +msgid "obtain a token pair (refresh and access) for authentication." +msgstr "Kimlik doğrulama için bir belirteç çifti (yenileme ve erişim) alın." + +#: vibes_auth/docs/drf/views.py:35 +msgid "refresh a token pair" +msgstr "Belirteç çiftini yenileyin" + +#: vibes_auth/docs/drf/views.py:36 +msgid "refresh a token pair (refresh and access)." +msgstr "Bir token çiftini yenileyin (yenileme ve erişim)." + +#: vibes_auth/docs/drf/views.py:55 +msgid "verify a token" +msgstr "Bir belirteci doğrulayın" + +#: vibes_auth/docs/drf/views.py:56 +msgid "Verify a token (refresh or access)." +msgstr "Bir belirteci doğrulayın (yenileme veya erişim)." + +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 +msgid "the token is valid" +msgstr "Belirteç geçerlidir" + +#: vibes_auth/docs/drf/viewsets.py:16 +msgid "create a new user" +msgstr "Yeni bir kullanıcı oluşturun" + +#: vibes_auth/docs/drf/viewsets.py:21 +msgid "retrieve a user's details" +msgstr "Bir kullanıcının ayrıntılarını alma" + +#: vibes_auth/docs/drf/viewsets.py:25 +msgid "update a user's details" +msgstr "Kullanıcı bilgilerini güncelleme" + +#: vibes_auth/docs/drf/viewsets.py:30 +msgid "delete a user" +msgstr "Kullanıcı silme" + +#: vibes_auth/docs/drf/viewsets.py:34 +msgid "reset a user's password by sending a reset password email" +msgstr "" +"Parola sıfırlama e-postası göndererek bir kullanıcının parolasını sıfırlama" + +#: vibes_auth/docs/drf/viewsets.py:39 +msgid "handle avatar upload for a user" +msgstr "Bir kullanıcı için avatar yükleme işlemini gerçekleştirin" + +#: vibes_auth/docs/drf/viewsets.py:54 +msgid "confirm a user's password reset" +msgstr "Bir kullanıcının parola sıfırlamasını onaylama" + +#: vibes_auth/docs/drf/viewsets.py:58 vibes_auth/graphene/mutations.py:311 +#: vibes_auth/serializers.py:105 vibes_auth/serializers.py:109 +#: vibes_auth/viewsets.py:114 +msgid "passwords do not match" +msgstr "Parolalar eşleşmiyor" + +#: vibes_auth/docs/drf/viewsets.py:63 +msgid "activate a user's account" +msgstr "Bir kullanıcının hesabını etkinleştirme" + +#: vibes_auth/docs/drf/viewsets.py:67 +msgid "activation link is invalid or account already activated" +msgstr "Etkinleştirme bağlantısı geçersiz veya hesap zaten etkinleştirilmiş" + +#: vibes_auth/docs/drf/viewsets.py:72 +msgid "merge client-stored recently viewed products" +msgstr "İstemcide depolanan son görüntülenen ürünleri birleştirme" + +#: vibes_auth/graphene/mutations.py:41 +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." + +#: vibes_auth/graphene/mutations.py:61 +msgid "password too weak" +msgstr "Şifre çok zayıf" + +#: vibes_auth/graphene/mutations.py:107 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} mevcut değil: {uuid}!" + +#: vibes_auth/graphene/mutations.py:117 +msgid "malformed email" +msgstr "Hatalı biçimlendirilmiş e-posta" + +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 +#, python-brace-format +msgid "malformed phone number: {phone_number}" +msgstr "Hatalı biçimlendirilmiş telefon numarası: {phone_number}!" + +#: vibes_auth/graphene/mutations.py:146 +#, python-brace-format +msgid "Invalid attribute format: {attribute_pair}" +msgstr "Geçersiz öznitelik biçimi: {attribute_pair}!" + +#: vibes_auth/graphene/mutations.py:267 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 +msgid "activation link is invalid!" +msgstr "Aktivasyon bağlantısı geçersiz!" + +#: vibes_auth/graphene/mutations.py:270 +msgid "account already activated..." +msgstr "Hesap zaten etkinleştirildi..." + +#: vibes_auth/graphene/mutations.py:277 vibes_auth/graphene/mutations.py:329 +msgid "something went wrong: {e!s}" +msgstr "Bir şeyler ters gitti: {e!s}" + +#: vibes_auth/graphene/mutations.py:318 vibes_auth/viewsets.py:125 +msgid "token is invalid!" +msgstr "Jeton geçersiz!" + +#: vibes_auth/graphene/object_types.py:40 +msgid "" +"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." + +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 +msgid "groups" +msgstr "Gruplar" + +#: vibes_auth/graphene/object_types.py:45 +msgid "wishlist" +msgstr "İstek Listesi" + +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 +msgid "avatar" +msgstr "Avatar" + +#: vibes_auth/graphene/object_types.py:48 +msgid "attributes may be used to store custom data" +msgstr "Öznitelikler özel verileri saklamak için kullanılabilir" + +#: vibes_auth/graphene/object_types.py:49 +#, python-brace-format +msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" +msgstr "Dil, varsayılan {LANGUAGE_CODE} ile {LANGUAGES}'dan biridir" + +#: vibes_auth/graphene/object_types.py:50 +msgid "address set" +msgstr "Adresler" + +#: vibes_auth/models.py:85 +msgid "email" +msgstr "E-posta" + +#: vibes_auth/models.py:85 +msgid "user email address" +msgstr "Kullanıcının e-posta adresi" + +#: vibes_auth/models.py:87 +msgid "phone_number" +msgstr "Telefon Numarası" + +#: vibes_auth/models.py:92 +msgid "user phone number" +msgstr "Kullanıcı telefon numarası" + +#: vibes_auth/models.py:98 +msgid "first_name" +msgstr "İlk isim" + +#: vibes_auth/models.py:99 +msgid "last_name" +msgstr "Soyadı" + +#: vibes_auth/models.py:105 +msgid "user profile image" +msgstr "Kullanıcı profili resmi" + +#: vibes_auth/models.py:110 +msgid "is verified" +msgstr "Doğrulandı" + +#: vibes_auth/models.py:111 +msgid "user verification status" +msgstr "Kullanıcının doğrulama durumu" + +#: vibes_auth/models.py:114 +msgid "is_active" +msgstr "Aktif" + +#: vibes_auth/models.py:116 +msgid "unselect this instead of deleting accounts" +msgstr "Hesapları silmek yerine bunun seçimini kaldırın" + +#: vibes_auth/models.py:119 +msgid "is_subscribed" +msgstr "Abone olundu" + +#: vibes_auth/models.py:119 +msgid "user's newsletter subscription status" +msgstr "Kullanıcının haber bülteni abonelik durumu" + +#: vibes_auth/models.py:122 +msgid "activation token" +msgstr "Etkinleştirme belirteci" + +#: vibes_auth/models.py:124 +msgid "attributes" +msgstr "Nitelikler" + +#: vibes_auth/models.py:158 +msgid "user" +msgstr "Kullanıcı" + +#: vibes_auth/models.py:159 +msgid "users" +msgstr "Kullanıcılar" + +#: vibes_auth/models.py:179 +msgid "group" +msgstr "Grup" + +#: vibes_auth/models.py:196 +msgid "outstanding token" +msgstr "Olağanüstü belirteç" + +#: vibes_auth/models.py:197 +msgid "outstanding tokens" +msgstr "Ödenmemiş jetonlar" + +#: vibes_auth/models.py:215 +msgid "blacklisted token" +msgstr "Kara listeye alınmış belirteç" + +#: vibes_auth/models.py:216 +msgid "blacklisted tokens" +msgstr "Kara listeye alınmış belirteçler" + +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "attributes` bir sözlük olmalıdır" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "İşletme olarak kayıt olurken işletme tanımlayıcısı gereklidir" + +#: vibes_auth/serializers.py:121 +#, python-brace-format +msgid "malformed email: {email}" +msgstr "hatalı biçimlendirilmiş e-posta: {email}" + +#: vibes_auth/serializers.py:142 vibes_auth/serializers.py:164 +#: vibes_auth/serializers.py:186 vibes_auth/serializers.py:198 +msgid "no active account" +msgstr "Etkin hesap bulunamadı" + +#: vibes_auth/serializers.py:174 +msgid "must set token_class attribute on class." +msgstr "Sınıf üzerinde token_class niteliği ayarlanmalıdır!" + +#: vibes_auth/serializers.py:246 +msgid "token_blacklisted" +msgstr "Jeton kara listeye alındı" + +#: vibes_auth/serializers.py:251 +msgid "invalid token" +msgstr "Geçersiz belirteç" + +#: vibes_auth/serializers.py:257 +msgid "no user uuid claim present in token" +msgstr "Belirteçte kullanıcı uuid talebi yok" + +#: vibes_auth/serializers.py:259 +msgid "user does not exist" +msgstr "Kullanıcı mevcut değil" + +#: vibes_auth/templates/user_reset_password_email.html:7 +msgid "reset your password" +msgstr "Şifrenizi sıfırlayın" + +#: vibes_auth/templates/user_reset_password_email.html:85 +#: vibes_auth/templates/user_verification_email.html:85 +msgid "logo" +msgstr "Logo" + +#: vibes_auth/templates/user_reset_password_email.html:90 +msgid "password reset confirmation" +msgstr "Parola sıfırlama onayı" + +#: vibes_auth/templates/user_reset_password_email.html:91 +#: vibes_auth/templates/user_verification_email.html:91 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Merhaba %(user_first_name)s," + +#: vibes_auth/templates/user_reset_password_email.html:92 +msgid "" +"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 " +"tıklayarak şifrenizi sıfırlayın:" + +#: vibes_auth/templates/user_reset_password_email.html:95 +msgid "" +"reset\n" +" password" +msgstr "" +"Etkinleştir\n" +" hesap" + +#: vibes_auth/templates/user_reset_password_email.html:98 +#: vibes_auth/templates/user_verification_email.html:99 +msgid "" +"if the button above does not work, please copy and paste the following URL\n" +" into your web browser:" +msgstr "" +"Yukarıdaki düğme çalışmazsa, lütfen aşağıdaki URL'yi kopyalayıp yapıştırın\n" +" web tarayıcınıza:" + +#: vibes_auth/templates/user_reset_password_email.html:101 +msgid "" +"if you did not send this request, please ignore this\n" +" email." +msgstr "" +"eğer bu talebi siz göndermediyseniz, lütfen bunu dikkate almayın\n" +" E-posta." + +#: vibes_auth/templates/user_reset_password_email.html:103 +#, python-format +msgid "best regards,
The %(project_name)s team" +msgstr "Saygılarımla,
The %(project_name)s team" + +#: vibes_auth/templates/user_reset_password_email.html:109 +#: vibes_auth/templates/user_verification_email.html:108 +msgid "all rights reserved" +msgstr "Tüm hakları saklıdır" + +#: vibes_auth/templates/user_verification_email.html:7 +#: vibes_auth/templates/user_verification_email.html:90 +msgid "activate your account" +msgstr "Hesabınızı etkinleştirin" + +#: vibes_auth/templates/user_verification_email.html:92 +#, python-format +msgid "" +"thank you for signing up for %(project_name)s. please activate your account\n" +" by clicking the button below:" +msgstr "" +"%(project_name)s'a kaydolduğunuz için teşekkür ederiz. Lütfen aşağıdaki düğmeye " +"tıklayarak hesabınızı etkinleştirin:" + +#: vibes_auth/templates/user_verification_email.html:96 +msgid "" +"activate\n" +" account" +msgstr "" +"Etkinleştir\n" +" hesap" + +#: vibes_auth/templates/user_verification_email.html:102 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Saygılarımla,
the %(project_name)s team" + +#: vibes_auth/utils/emailing.py:27 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Activate Account" +msgstr "{config.PROJECT_NAME} | Hesabı Etkinleştir" + +#: vibes_auth/utils/emailing.py:69 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Reset Password" +msgstr "{config.PROJECT_NAME} | Şifreyi Sıfırla" + +#: vibes_auth/validators.py:13 +msgid "" +"invalid phone number format. the number must be entered in the format: " +"\"+999999999\". up to 15 digits allowed." +msgstr "" +"Geçersiz telefon numarası biçimi. Numara şu formatta girilmelidir: " +"\"+999999999\". En fazla 15 haneye izin verilir." + +#: vibes_auth/views.py:117 +msgid "the token is invalid" +msgstr "Belirteç geçersiz" + +#: vibes_auth/viewsets.py:129 +msgid "password reset successfully" +msgstr "Şifre başarıyla sıfırlandı!" + +#: vibes_auth/viewsets.py:162 +msgid "account already activated!" +msgstr "Hesabı zaten etkinleştirdiniz..." diff --git a/vibes_auth/locale/vi_VN/LC_MESSAGES/django.mo b/vibes_auth/locale/vi_VN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c4a84d6e80bcf249124b8b46b2313766cd31c23a GIT binary patch literal 9331 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 literal 0 HcmV?d00001 diff --git a/vibes_auth/locale/vi_VN/LC_MESSAGES/django.po b/vibes_auth/locale/vi_VN/LC_MESSAGES/django.po new file mode 100644 index 00000000..18a7727a --- /dev/null +++ b/vibes_auth/locale/vi_VN/LC_MESSAGES/django.po @@ -0,0 +1,440 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: EVIBES 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" +"PO-Revision-Date: 2025-01-30 03:27+0000\n" +"Last-Translator: EGOR GORBUNOV \n" +"Language-Team: BRITISH ENGLISH \n" +"Language: vi-vn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 +#: vibes_auth/graphene/object_types.py:46 +msgid "balance" +msgstr "Cân bằng" + +#: vibes_auth/admin.py:45 +msgid "order" +msgstr "Đặt hàng" + +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 +msgid "orders" +msgstr "Đơn hàng" + +#: vibes_auth/admin.py:56 +msgid "personal info" +msgstr "Thông tin cá nhân" + +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 +msgid "permissions" +msgstr "Quyền" + +#: vibes_auth/admin.py:73 +msgid "important dates" +msgstr "Các ngày quan trọng" + +#: vibes_auth/admin.py:74 +msgid "additional info" +msgstr "Thông tin bổ sung" + +#: vibes_auth/apps.py:8 +msgid "authentication" +msgstr "Xác thực" + +#: vibes_auth/docs/drf/views.py:15 +msgid "obtain a token pair" +msgstr "Nhận cặp token" + +#: vibes_auth/docs/drf/views.py:16 +msgid "obtain a token pair (refresh and access) for authentication." +msgstr "Nhận cặp token (refresh và access) để xác thực." + +#: vibes_auth/docs/drf/views.py:35 +msgid "refresh a token pair" +msgstr "Cập nhật cặp token" + +#: vibes_auth/docs/drf/views.py:36 +msgid "refresh a token pair (refresh and access)." +msgstr "Cập nhật cặp token (cập nhật và truy cập)." + +#: vibes_auth/docs/drf/views.py:55 +msgid "verify a token" +msgstr "Xác minh token" + +#: vibes_auth/docs/drf/views.py:56 +msgid "Verify a token (refresh or access)." +msgstr "Xác minh token (cập nhật hoặc truy cập)." + +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 +msgid "the token is valid" +msgstr "Token này hợp lệ" + +#: vibes_auth/docs/drf/viewsets.py:16 +msgid "create a new user" +msgstr "Tạo một người dùng mới" + +#: vibes_auth/docs/drf/viewsets.py:21 +msgid "retrieve a user's details" +msgstr "Lấy thông tin chi tiết của người dùng" + +#: vibes_auth/docs/drf/viewsets.py:25 +msgid "update a user's details" +msgstr "Cập nhật thông tin của người dùng" + +#: vibes_auth/docs/drf/viewsets.py:30 +msgid "delete a user" +msgstr "Xóa người dùng" + +#: vibes_auth/docs/drf/viewsets.py:34 +msgid "reset a user's password by sending a reset password email" +msgstr "Đặt lại mật khẩu của người dùng bằng cách gửi email đặt lại mật khẩu." + +#: vibes_auth/docs/drf/viewsets.py:39 +msgid "handle avatar upload for a user" +msgstr "Xử lý việc tải lên avatar cho người dùng" + +#: vibes_auth/docs/drf/viewsets.py:54 +msgid "confirm a user's password reset" +msgstr "Xác nhận việc đặt lại mật khẩu của người dùng" + +#: vibes_auth/docs/drf/viewsets.py:58 vibes_auth/graphene/mutations.py:311 +#: vibes_auth/serializers.py:105 vibes_auth/serializers.py:109 +#: vibes_auth/viewsets.py:114 +msgid "passwords do not match" +msgstr "Mật khẩu không khớp." + +#: vibes_auth/docs/drf/viewsets.py:63 +msgid "activate a user's account" +msgstr "Kích hoạt tài khoản của người dùng" + +#: vibes_auth/docs/drf/viewsets.py:67 +msgid "activation link is invalid or account already activated" +msgstr "Liên kết kích hoạt không hợp lệ hoặc tài khoản đã được kích hoạt." + +#: vibes_auth/docs/drf/viewsets.py:72 +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" + +#: vibes_auth/graphene/mutations.py:41 +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." + +#: vibes_auth/graphene/mutations.py:61 +msgid "password too weak" +msgstr "Mật khẩu quá yếu." + +#: vibes_auth/graphene/mutations.py:107 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "{name} không tồn tại: {uuid}!" + +#: vibes_auth/graphene/mutations.py:117 +msgid "malformed email" +msgstr "Email không hợp lệ" + +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 +#, python-brace-format +msgid "malformed phone number: {phone_number}" +msgstr "Số điện thoại không hợp lệ: {phone_number}!" + +#: vibes_auth/graphene/mutations.py:146 +#, python-brace-format +msgid "Invalid attribute format: {attribute_pair}" +msgstr "Định dạng thuộc tính không hợp lệ: {attribute_pair}!" + +#: vibes_auth/graphene/mutations.py:267 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 +msgid "activation link is invalid!" +msgstr "Liên kết kích hoạt không hợp lệ!" + +#: vibes_auth/graphene/mutations.py:270 +msgid "account already activated..." +msgstr "Tài khoản đã được kích hoạt..." + +#: vibes_auth/graphene/mutations.py:277 vibes_auth/graphene/mutations.py:329 +msgid "something went wrong: {e!s}" +msgstr "Có sự cố xảy ra: {e!s}" + +#: vibes_auth/graphene/mutations.py:318 vibes_auth/viewsets.py:125 +msgid "token is invalid!" +msgstr "Token không hợp lệ!" + +#: vibes_auth/graphene/object_types.py:40 +msgid "" +"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." + +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 +msgid "groups" +msgstr "Nhóm" + +#: vibes_auth/graphene/object_types.py:45 +msgid "wishlist" +msgstr "Danh sách mong muốn" + +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 +msgid "avatar" +msgstr "Avatar" + +#: vibes_auth/graphene/object_types.py:48 +msgid "attributes may be used to store custom data" +msgstr "Các thuộc tính có thể được sử dụng để lưu trữ dữ liệu tùy chỉnh." + +#: vibes_auth/graphene/object_types.py:49 +#, python-brace-format +msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" +msgstr "Ngôn ngữ là một trong những {LANGUAGES} với mặc định {LANGUAGE_CODE}" + +#: vibes_auth/graphene/object_types.py:50 +msgid "address set" +msgstr "Địa chỉ" + +#: vibes_auth/models.py:85 +msgid "email" +msgstr "Email" + +#: vibes_auth/models.py:85 +msgid "user email address" +msgstr "Địa chỉ email của người dùng" + +#: vibes_auth/models.py:87 +msgid "phone_number" +msgstr "Số điện thoại" + +#: vibes_auth/models.py:92 +msgid "user phone number" +msgstr "Số điện thoại của người dùng" + +#: vibes_auth/models.py:98 +msgid "first_name" +msgstr "Họ" + +#: vibes_auth/models.py:99 +msgid "last_name" +msgstr "Họ" + +#: vibes_auth/models.py:105 +msgid "user profile image" +msgstr "Hình ảnh hồ sơ người dùng" + +#: vibes_auth/models.py:110 +msgid "is verified" +msgstr "Đã được xác minh" + +#: vibes_auth/models.py:111 +msgid "user verification status" +msgstr "Trạng thái xác minh của người dùng" + +#: vibes_auth/models.py:114 +msgid "is_active" +msgstr "Đang hoạt động" + +#: vibes_auth/models.py:116 +msgid "unselect this instead of deleting accounts" +msgstr "Hủy chọn tùy chọn này thay vì xóa tài khoản." + +#: vibes_auth/models.py:119 +msgid "is_subscribed" +msgstr "Đã đăng ký" + +#: vibes_auth/models.py:119 +msgid "user's newsletter subscription status" +msgstr "Tình trạng đăng ký bản tin của người dùng" + +#: vibes_auth/models.py:122 +msgid "activation token" +msgstr "Mã kích hoạt" + +#: vibes_auth/models.py:124 +msgid "attributes" +msgstr "Thuộc tính" + +#: vibes_auth/models.py:158 +msgid "user" +msgstr "Người dùng" + +#: vibes_auth/models.py:159 +msgid "users" +msgstr "Người dùng" + +#: vibes_auth/models.py:179 +msgid "group" +msgstr "Nhóm" + +#: vibes_auth/models.py:196 +msgid "outstanding token" +msgstr "Token xuất sắc" + +#: vibes_auth/models.py:197 +msgid "outstanding tokens" +msgstr "Token xuất sắc" + +#: vibes_auth/models.py:215 +msgid "blacklisted token" +msgstr "Token bị đưa vào danh sách đen" + +#: vibes_auth/models.py:216 +msgid "blacklisted tokens" +msgstr "Các token bị đưa vào danh sách đen" + +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` phải là một từ điển." + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "Mã định danh doanh nghiệp là bắt buộc khi đăng ký kinh doanh." + +#: vibes_auth/serializers.py:121 +#, python-brace-format +msgid "malformed email: {email}" +msgstr "Email không hợp lệ: {email}" + +#: vibes_auth/serializers.py:142 vibes_auth/serializers.py:164 +#: vibes_auth/serializers.py:186 vibes_auth/serializers.py:198 +msgid "no active account" +msgstr "Không tìm thấy tài khoản hoạt động." + +#: vibes_auth/serializers.py:174 +msgid "must set token_class attribute on class." +msgstr "Phải đặt thuộc tính token_class cho lớp!" + +#: vibes_auth/serializers.py:246 +msgid "token_blacklisted" +msgstr "Token bị đưa vào danh sách đen" + +#: vibes_auth/serializers.py:251 +msgid "invalid token" +msgstr "Token không hợp lệ" + +#: vibes_auth/serializers.py:257 +msgid "no user uuid claim present in token" +msgstr "Không có yêu cầu UUID của người dùng trong token." + +#: vibes_auth/serializers.py:259 +msgid "user does not exist" +msgstr "Người dùng không tồn tại" + +#: vibes_auth/templates/user_reset_password_email.html:7 +msgid "reset your password" +msgstr "Đặt lại mật khẩu của bạn" + +#: vibes_auth/templates/user_reset_password_email.html:85 +#: vibes_auth/templates/user_verification_email.html:85 +msgid "logo" +msgstr "Biểu trưng" + +#: vibes_auth/templates/user_reset_password_email.html:90 +msgid "password reset confirmation" +msgstr "Xác nhận đặt lại mật khẩu" + +#: vibes_auth/templates/user_reset_password_email.html:91 +#: vibes_auth/templates/user_verification_email.html:91 +#, python-format +msgid "hello %(user_first_name)s," +msgstr "Xin chào %(user_first_name)s," + +#: vibes_auth/templates/user_reset_password_email.html:92 +msgid "" +"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 " +"mật khẩu bằng cách nhấp vào nút bên dưới:" + +#: vibes_auth/templates/user_reset_password_email.html:95 +msgid "" +"reset\n" +" password" +msgstr "Kích hoạt tài khoản" + +#: vibes_auth/templates/user_reset_password_email.html:98 +#: vibes_auth/templates/user_verification_email.html:99 +msgid "" +"if the button above does not work, please copy and paste the following URL\n" +" into your web browser:" +msgstr "" +"Nếu nút ở trên không hoạt động, vui lòng sao chép và dán URL sau vào trình " +"duyệt web của bạn:" + +#: vibes_auth/templates/user_reset_password_email.html:101 +msgid "" +"if you did not send this request, please ignore this\n" +" email." +msgstr "Nếu bạn không gửi yêu cầu này, vui lòng bỏ qua email này." + +#: vibes_auth/templates/user_reset_password_email.html:103 +#, python-format +msgid "best regards,
The %(project_name)s team" +msgstr "Trân trọng,
Đội ngũ %(project_name)s" + +#: vibes_auth/templates/user_reset_password_email.html:109 +#: vibes_auth/templates/user_verification_email.html:108 +msgid "all rights reserved" +msgstr "Tất cả các quyền được bảo lưu." + +#: vibes_auth/templates/user_verification_email.html:7 +#: vibes_auth/templates/user_verification_email.html:90 +msgid "activate your account" +msgstr "Kích hoạt tài khoản của bạn" + +#: vibes_auth/templates/user_verification_email.html:92 +#, python-format +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:" + +#: vibes_auth/templates/user_verification_email.html:96 +msgid "" +"activate\n" +" account" +msgstr "Kích hoạt tài khoản" + +#: vibes_auth/templates/user_verification_email.html:102 +#, python-format +msgid "best regards,
the %(project_name)s team" +msgstr "Trân trọng,
Đội ngũ %(project_name)s" + +#: vibes_auth/utils/emailing.py:27 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Activate Account" +msgstr "{config.PROJECT_NAME} | Kích hoạt tài khoản" + +#: vibes_auth/utils/emailing.py:69 +#, python-brace-format +msgid "{config.PROJECT_NAME} | Reset Password" +msgstr "{config.PROJECT_NAME} | Đặt lại mật khẩu" + +#: vibes_auth/validators.py:13 +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ố." + +#: vibes_auth/views.py:117 +msgid "the token is invalid" +msgstr "Token không hợp lệ" + +#: vibes_auth/viewsets.py:129 +msgid "password reset successfully" +msgstr "Mật khẩu đã được đặt lại thành công!" + +#: vibes_auth/viewsets.py:162 +msgid "account already activated!" +msgstr "Bạn đã kích hoạt tài khoản..." diff --git a/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po b/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po index d0a2e946..d5bf8a9c 100644 --- a/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-13 15:25+0300\n" +"POT-Creation-Date: 2025-09-19 15:04+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -166,8 +166,8 @@ msgstr "令牌无效!" #: vibes_auth/graphene/object_types.py:40 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 个),按倒序排列。" #: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 @@ -342,7 +342,8 @@ msgstr "你好%(user_first_name)s," #: 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 "我们收到了重置密码的请求。请点击下面的按钮重置密码:" @@ -420,7 +421,8 @@ msgstr "{config.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 位数字。" #: vibes_auth/views.py:117 msgid "the token is invalid" diff --git a/vibes_auth/migrations/0004_alter_user_language.py b/vibes_auth/migrations/0004_alter_user_language.py new file mode 100644 index 00000000..597b7729 --- /dev/null +++ b/vibes_auth/migrations/0004_alter_user_language.py @@ -0,0 +1,50 @@ +# Generated by Django 5.2 on 2025-09-19 11:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("vibes_auth", "0003_alter_user_language"), + ] + + operations = [ + migrations.AlterField( + model_name="user", + name="language", + field=models.CharField( + choices=[ + ("ar-ar", "العربية"), + ("cs-cz", "Česky"), + ("da-dk", "Dansk"), + ("de-de", "Deutsch"), + ("en-gb", "English (British)"), + ("en-us", "English (American)"), + ("es-es", "Español"), + ("fa-ir", "فارسی"), + ("fr-fr", "Français"), + ("he-il", "עברית"), + ("hi-in", "हिंदी"), + ("hr-hr", "Hrvatski"), + ("id-id", "Bahasa Indonesia"), + ("it-it", "Italiano"), + ("ja-jp", "日本語"), + ("kk-kz", "Қазақ"), + ("ko-kr", "한국어"), + ("nl-nl", "Nederlands"), + ("no-no", "Norsk"), + ("pl-pl", "Polska"), + ("pt-br", "Português"), + ("ro-ro", "Română"), + ("ru-ru", "Русский"), + ("sv-se", "Svenska"), + ("th-th", "ไทย"), + ("tr-tr", "Türkçe"), + ("vi-vn", "Tiếng Việt"), + ("zh-hans", "简体中文"), + ], + default="en-gb", + max_length=7, + ), + ), + ]