diff --git a/blog/locale/ar_AR/LC_MESSAGES/django.po b/blog/locale/ar_AR/LC_MESSAGES/django.po index 14540dcb..2818fe24 100644 --- a/blog/locale/ar_AR/LC_MESSAGES/django.po +++ b/blog/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 7eb3c93c..bc65e8f1 100644 --- a/blog/locale/cs_CZ/LC_MESSAGES/django.po +++ b/blog/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 f569ce9d..f385278e 100644 --- a/blog/locale/da_DK/LC_MESSAGES/django.po +++ b/blog/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 2bbda835..621ca6c4 100644 --- a/blog/locale/de_DE/LC_MESSAGES/django.po +++ b/blog/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 49bf4312..759fbc4a 100644 --- a/blog/locale/en_GB/LC_MESSAGES/django.po +++ b/blog/locale/en_GB/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 6159466b..0e17b6bd 100644 --- a/blog/locale/en_US/LC_MESSAGES/django.po +++ b/blog/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 928571ed..8f5f3104 100644 --- a/blog/locale/es_ES/LC_MESSAGES/django.po +++ b/blog/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/fr_FR/LC_MESSAGES/django.po b/blog/locale/fr_FR/LC_MESSAGES/django.po index 4bcef1f1..0900e710 100644 --- a/blog/locale/fr_FR/LC_MESSAGES/django.po +++ b/blog/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/hi_IN/LC_MESSAGES/django.po b/blog/locale/hi_IN/LC_MESSAGES/django.po index f892e854..0c9db07b 100644 --- a/blog/locale/hi_IN/LC_MESSAGES/django.po +++ b/blog/locale/hi_IN/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/it_IT/LC_MESSAGES/django.po b/blog/locale/it_IT/LC_MESSAGES/django.po index 3726ef8c..c6795032 100644 --- a/blog/locale/it_IT/LC_MESSAGES/django.po +++ b/blog/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 19983ebf..4dd68566 100644 --- a/blog/locale/ja_JP/LC_MESSAGES/django.po +++ b/blog/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 f892e854..0c9db07b 100644 --- a/blog/locale/kk_KZ/LC_MESSAGES/django.po +++ b/blog/locale/kk_KZ/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/nl_NL/LC_MESSAGES/django.po b/blog/locale/nl_NL/LC_MESSAGES/django.po index ef79e750..c78659e3 100644 --- a/blog/locale/nl_NL/LC_MESSAGES/django.po +++ b/blog/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/pl_PL/LC_MESSAGES/django.po b/blog/locale/pl_PL/LC_MESSAGES/django.po index 9d678595..589ba2c4 100644 --- a/blog/locale/pl_PL/LC_MESSAGES/django.po +++ b/blog/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 ce257ef1..f4d3e814 100644 --- a/blog/locale/pt_BR/LC_MESSAGES/django.po +++ b/blog/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 d59e6382..dfbdee42 100644 --- a/blog/locale/ro_RO/LC_MESSAGES/django.po +++ b/blog/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 3d1a5a32..689b225e 100644 --- a/blog/locale/ru_RU/LC_MESSAGES/django.po +++ b/blog/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/zh_Hans/LC_MESSAGES/django.po b/blog/locale/zh_Hans/LC_MESSAGES/django.po index f4dd599c..d891a2f9 100644 --- a/blog/locale/zh_Hans/LC_MESSAGES/django.po +++ b/blog/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/core/locale/ar_AR/LC_MESSAGES/django.po b/core/locale/ar_AR/LC_MESSAGES/django.po index 9344f44a..de01ee93 100644 --- a/core/locale/ar_AR/LC_MESSAGES/django.po +++ b/core/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -48,82 +48,82 @@ msgstr "تم التعديل" msgid "when the object was last modified" msgstr "متى تم تحرير الكائن آخر مرة" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "الترجمات" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "جنرال لواء" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "العلاقات" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "البيانات الوصفية" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "الطوابع الزمنية" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "تنشيط المحدد _PH_0__%(verbose_name_plural)s" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "تم تفعيل العناصر المختارة!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "إلغاء التنشيط المحدد _PH_0_%(verbose_name_plural)s" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "تم إلغاء تنشيط العناصر المحددة!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "قيمة السمة" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "قيم السمات" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "الصورة" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "الصور" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "المخزون" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "الأسهم" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "طلب المنتج" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "اطلب المنتجات" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "الأطفال" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "التكوين" @@ -747,117 +747,121 @@ msgstr "حذف علاقة الطلب-المنتج" msgid "add or remove feedback on an order–product relation" msgstr "إضافة أو إزالة الملاحظات على العلاقة بين الطلب والمنتج" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "لم يتم توفير مصطلح بحث." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "الاسم" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "الفئات" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "الفئات الرخويات" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "الوسوم" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "الحد الأدنى للسعر" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "ماكس برايس" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "نشط" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "العلامة التجارية" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "السمات" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "الكمية" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "سبيكة" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "هو رقمي" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "تضمين الفئات الفرعية" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "تضمين المنتجات المطلوبة شخصيًا" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "وحدة التخزين" + +#: core/filters.py:164 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "يجب أن يكون هناك category_uid لاستخدام علامة تضمين_الفئات_الفرعية" -#: core/filters.py:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "البحث (المعرف أو اسم المنتج أو رقم الجزء)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "تم الشراء بعد (شامل)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "تم الشراء من قبل (شامل)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "البريد الإلكتروني للمستخدم" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "معرّف المستخدم UUID" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "الحالة" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "معرّف قابل للقراءة من قبل الإنسان" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "الوالدين" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "الفئة الكاملة (تحتوي على منتج واحد على الأقل أو لا)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "المستوى" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "UUID المنتج" @@ -882,7 +886,7 @@ msgstr "البيانات المخزنة مؤقتاً" msgid "camelized JSON data from the requested URL" msgstr "بيانات JSON مجمّلة من عنوان URL المطلوب" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "يُسمح فقط بعناوين URL التي تبدأ ب http(s)://" @@ -913,7 +917,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "يرجى تقديم إما Order_uuid أو order_uid_hr_hr_id - متنافيان!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: 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}" @@ -987,9 +991,9 @@ msgstr "طلب المنتج {order_product_uuid} غير موجود!" msgid "original address string provided by the user" msgstr "سلسلة العنوان الأصلي المقدمة من المستخدم" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} غير موجود: {uuid}!" @@ -1003,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "السمات" @@ -1016,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "الفئات" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "العلامات التجارية" @@ -1029,7 +1034,7 @@ msgid "category image url" msgstr "الفئات" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "النسبة المئوية للترميز" @@ -1051,7 +1056,7 @@ msgstr "العلامات الخاصة بهذه الفئة" msgid "products in this category" msgstr "المنتجات في هذه الفئة" -#: core/graphene/object_types.py:351 core/models.py:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "البائعون" @@ -1076,7 +1081,7 @@ msgid "represents feedback from a user." msgstr "يمثل ملاحظات من المستخدم." #: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1389 +#: core/models.py:1393 msgid "notifications" msgstr "الإشعارات" @@ -1088,7 +1093,7 @@ msgstr "تحميل الرابط الخاص بمنتج الطلب هذا إن أ msgid "a list of order products in this order" msgstr "قائمة بطلب المنتجات بهذا الترتيب" -#: core/graphene/object_types.py:430 core/models.py:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "عنوان إرسال الفواتير" @@ -1116,7 +1121,7 @@ msgstr "هل جميع المنتجات في الطلب رقمي" msgid "transactions for this order" msgstr "المعاملات الخاصة بهذا الطلب" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "الطلبات" @@ -1128,19 +1133,19 @@ msgstr "رابط الصورة" msgid "product's images" msgstr "صور المنتج" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "الفئة" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "الملاحظات" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "العلامة التجارية" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "مجموعات السمات" @@ -1168,27 +1173,27 @@ msgstr "عدد الملاحظات" msgid "only available for personal orders" msgstr "المنتجات متاحة للطلبات الشخصية فقط" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "المنتجات" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "الرموز الترويجية" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "المنتجات المعروضة للبيع" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "العروض الترويجية" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "البائع" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1196,647 +1201,643 @@ msgstr "البائع" msgid "product" msgstr "المنتج" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "المنتجات المفضلة" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "قوائم التمنيات" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "المنتجات الموسومة" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "علامات المنتج" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "الفئات الموسومة" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "علامات الفئات" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "اسم المشروع" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "البريد الإلكتروني للشركة" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "اسم الشركة" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "عنوان الشركة" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "رقم هاتف الشركة" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "\"البريد الإلكتروني من\"، في بعض الأحيان يجب استخدامه بدلاً من قيمة المستخدم" " المضيف" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "مستخدم البريد الإلكتروني المضيف" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "الحد الأقصى لمبلغ السداد" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "الحد الأدنى لمبلغ السداد" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "بيانات التحليلات" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "بيانات الإعلانات" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "التكوين" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "رمز اللغة" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "اسم اللغة" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "علم اللغة، إذا كان موجوداً :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "الحصول على قائمة باللغات المدعومة" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "نتائج البحث عن المنتجات" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "نتائج البحث عن المنتجات" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "والد هذه المجموعة" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "مجموعة السمات الرئيسية" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "اسم مجموعة السمات" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "مجموعة السمات" -#: core/models.py:151 +#: core/models.py:155 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "تخزين بيانات الاعتماد ونقاط النهاية المطلوبة لاتصالات واجهة برمجة التطبيقات " "الخاصة بالمورّد" -#: core/models.py:152 +#: core/models.py:156 msgid "authentication info" msgstr "معلومات المصادقة" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "تحديد الترميز للمنتجات المسترجعة من هذا البائع" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "نسبة هامش الربح للبائع" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "اسم هذا البائع" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "اسم البائع" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "معرّف العلامة الداخلي لعلامة المنتج" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "اسم العلامة" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "اسم سهل الاستخدام لعلامة المنتج" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "اسم عرض العلامة" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "علامة المنتج" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "علامة الفئة" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "علامات الفئة" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "تحميل صورة تمثل هذه الفئة" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "صورة الفئة" -#: core/models.py:353 +#: core/models.py:357 msgid "define a markup percentage for products in this category" msgstr "تحديد نسبة ترميز للمنتجات في هذه الفئة" -#: core/models.py:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "أصل هذه الفئة لتكوين بنية هرمية" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "الفئة الرئيسية" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "اسم الفئة" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "تقديم اسم لهذه الفئة" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "إضافة وصف تفصيلي لهذه الفئة" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "وصف الفئة" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "العلامات التي تساعد في وصف هذه الفئة أو تجميعها" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "الأولوية" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "اسم هذه العلامة التجارية" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "اسم العلامة التجارية" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "تحميل شعار يمثل هذه العلامة التجارية" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "صورة العلامة التجارية الصغيرة" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "رفع شعار كبير يمثل هذه العلامة التجارية" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "صورة كبيرة للعلامة التجارية" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "إضافة وصف تفصيلي للعلامة التجارية" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "وصف العلامة التجارية" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "الفئات الاختيارية التي ترتبط بها هذه العلامة التجارية" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "الفئات" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "البائع الذي يورد هذا المنتج المخزون" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "البائع المرتبط" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "السعر النهائي للعميل بعد هوامش الربح" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "سعر البيع" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "المنتج المرتبط بإدخال المخزون هذا" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "المنتج المرتبط" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "السعر المدفوع للبائع مقابل هذا المنتج" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "سعر الشراء من البائع" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "الكمية المتوفرة من المنتج في المخزون" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "الكمية في المخزون" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU المعين من قبل البائع لتحديد المنتج" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "وحدة تخزين البائع" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "الملف الرقمي المرتبط بهذا المخزون إن أمكن" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "ملف رقمي" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "إدخالات المخزون" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "الفئة التي ينتمي إليها هذا المنتج" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "ربط هذا المنتج اختياريًا بعلامة تجارية" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "العلامات التي تساعد في وصف أو تجميع هذا المنتج" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "يشير إلى ما إذا كان هذا المنتج يتم تسليمه رقميًا أم لا" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "هل المنتج رقمي" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "توفير اسم تعريفي واضح للمنتج" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "اسم المنتج" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "إضافة وصف تفصيلي للمنتج" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "وصف المنتج" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "رقم الجزء لهذا المنتج" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "رقم الجزء" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "وحدة حفظ المخزون لهذا المنتج" -#: core/models.py:681 -msgid "SKU" -msgstr "وحدة التخزين" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "فئة هذه السمة" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "مجموعة هذه السمة" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "الخيط" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "عدد صحيح" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "تعويم" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "منطقية" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "المصفوفة" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "الكائن" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "نوع قيمة السمة" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "نوع القيمة" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "اسم هذه السمة" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "اسم السمة" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "السمة" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "سمة هذه القيمة" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "المنتج المحدد المرتبط بقيمة هذه السمة" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "القيمة المحددة لهذه السمة" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "توفير نص بديل للصورة لإمكانية الوصول" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "النص البديل للصورة" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "تحميل ملف الصورة لهذا المنتج" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "صورة المنتج" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "يحدد الترتيب الذي يتم عرض الصور به" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "أولوية العرض" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "المنتج الذي تمثله هذه الصورة" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "صور المنتج" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "النسبة المئوية للخصم على المنتجات المختارة" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "نسبة الخصم" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "تقديم اسم فريد لهذا العرض الترويجي" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "اسم الترقية" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "وصف الترقية" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "حدد المنتجات المشمولة في هذا العرض الترويجي" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "المنتجات المشمولة" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "الترقية" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "المنتجات التي حددها المستخدم على أنها مطلوبة" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "المستخدم الذي يمتلك قائمة الرغبات هذه" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "مالك قائمة الرغبات" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "قائمة الرغبات" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "فيلم وثائقي" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "الأفلام الوثائقية" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "لم يتم حلها" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "سطر العنوان للعميل" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "سطر العنوان" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "الشارع" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "المنطقة" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "المدينة" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "المنطقة" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "الرمز البريدي" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "البلد" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "نقطة تحديد الموقع الجغرافي(خط الطول، خط العرض)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "استجابة JSON كاملة من أداة التشفير الجغرافي لهذا العنوان" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "استجابة JSON مخزّنة من خدمة الترميز الجغرافي" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "العنوان" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "العناوين" -#: core/models.py:1236 +#: core/models.py:1240 msgid "unique code used by a user to redeem a discount" msgstr "الرمز الفريد الذي يستخدمه المستخدم لاسترداد قيمة الخصم" -#: core/models.py:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "معرّف الرمز الترويجي" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "مبلغ الخصم الثابت المطبق في حالة عدم استخدام النسبة المئوية" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "مبلغ الخصم الثابت" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "النسبة المئوية للخصم المطبق في حالة عدم استخدام مبلغ ثابت" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "النسبة المئوية للخصم" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "الطابع الزمني عند انتهاء صلاحية الرمز الترويجي" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "وقت انتهاء الصلاحية" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "الطابع الزمني الذي يكون هذا الرمز الترويجي صالحاً منه" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "وقت بدء الصلاحية" -#: core/models.py:1269 +#: core/models.py:1273 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" -#: core/models.py:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "الطابع الزمني للاستخدام" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "المستخدم المعين لهذا الرمز الترويجي إن أمكن" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "المستخدم المعين" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "الرمز الترويجي" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "الرموز الترويجية" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1844,143 +1845,143 @@ msgstr "" "يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين" " أو لا هذا ولا ذاك." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "تم استخدام الرمز الترويجي بالفعل" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "نوع الخصم غير صالح للرمز الترويجي {self.uuid}" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "عنوان إرسال الفواتير المستخدم لهذا الطلب" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "الرمز الترويجي الاختياري المطبق على هذا الطلب" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "الرمز الترويجي المطبق" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "عنوان الشحن المستخدم لهذا الطلب" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "عنوان الشحن" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "الحالة الحالية للطلب في دورة حياته" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "حالة الطلب" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 msgid "json structure of notifications to display to users" msgstr "" "بنية JSON للإشعارات التي سيتم عرضها للمستخدمين، في واجهة مستخدم المشرف، يتم " "استخدام عرض الجدول" -#: core/models.py:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "تمثيل JSON لسمات الطلب لهذا الطلب" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "المستخدم الذي قدم الطلب" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "المستخدم" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "الطابع الزمني عند الانتهاء من الطلب" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "وقت الشراء" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "معرّف يمكن قراءته بواسطة البشر للطلب" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "معرّف يمكن قراءته من قبل البشر" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "الطلب" -#: core/models.py:1439 +#: core/models.py:1447 msgid "a user must have only one pending order at a time" msgstr "يجب أن يكون لدى المستخدم طلب واحد فقط معلق في كل مرة!" -#: core/models.py:1473 +#: core/models.py:1481 msgid "you cannot add products to an order that is not a pending one" msgstr "لا يمكنك إضافة منتجات إلى طلب غير معلق إلى طلب غير معلق" -#: core/models.py:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "لا يمكنك إضافة منتجات غير نشطة للطلب" -#: core/models.py:1495 +#: core/models.py:1503 msgid "you cannot add more products than available in stock" msgstr "لا يمكنك إضافة منتجات أكثر من المتوفرة في المخزون" -#: core/models.py:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 msgid "you cannot remove products from an order that is not a pending one" msgstr "لا يمكنك إزالة المنتجات من طلب غير معلق من طلب غير معلق" -#: core/models.py:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} غير موجود مع الاستعلام <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "الرمز الترويجي غير موجود" -#: core/models.py:1576 +#: core/models.py:1584 msgid "you can only buy physical products with shipping address specified" msgstr "يمكنك فقط شراء المنتجات المادية مع تحديد عنوان الشحن فقط!" -#: core/models.py:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "العنوان غير موجود" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "لا يمكنك الشراء في هذه اللحظة، يرجى المحاولة مرة أخرى بعد بضع دقائق." -#: core/models.py:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "قيمة القوة غير صالحة" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "لا يمكنك شراء طلبية فارغة!" -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "لا يمكنك شراء طلب بدون مستخدم!" -#: core/models.py:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "المستخدم بدون رصيد لا يمكنه الشراء بالرصيد!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "عدم كفاية الأموال لإكمال الطلب" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1988,120 +1989,152 @@ msgstr "" "لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد" " الإلكتروني للعميل، رقم هاتف العميل" -#: core/models.py:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "طريقة الدفع غير صالحة: {payment_method} من {available_payment_methods}!" -#: core/models.py:1802 +#: core/models.py:1839 msgid "the price paid by the customer for this product at purchase time" msgstr "السعر الذي دفعه العميل لهذا المنتج وقت الشراء" -#: core/models.py:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "سعر الشراء وقت الطلب" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "تعليقات داخلية للمسؤولين حول هذا المنتج المطلوب" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "التعليقات الداخلية" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "إشعارات المستخدم" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "تمثيل JSON لسمات هذا العنصر" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "سمات المنتج المطلوبة" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "الإشارة إلى الطلب الأصلي الذي يحتوي على هذا المنتج" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "ترتيب الوالدين" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "المنتج المحدد المرتبط بخط الطلب هذا" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "كمية هذا المنتج المحدد في الطلب" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "كمية المنتج" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "الحالة الحالية لهذا المنتج بالترتيب" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "حالة خط الإنتاج" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "يجب أن يكون لـ Orderproduct طلب مرتبط به!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "تم تحديد إجراء خاطئ للتغذية الراجعة: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 msgid "you cannot feedback an order which is not received" msgstr "لا يمكنك التعليق على طلب لم يتم استلامه" -#: core/models.py:1957 +#: core/models.py:1964 +msgid "name" +msgstr "الاسم" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "رابط التكامل" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "بيانات اعتماد المصادقة" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "يمكن أن يكون لديك موفر CRM افتراضي واحد فقط" + +#: core/models.py:1984 +msgid "CRM" +msgstr "إدارة علاقات العملاء" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "إدارة علاقات العملاء" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "رابط إدارة علاقات العملاء الخاصة بالطلب" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "روابط إدارة علاقات العملاء الخاصة بالطلبات" + +#: core/models.py:2032 msgid "download" msgstr "تنزيل" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "التنزيلات" -#: core/models.py:1966 +#: core/models.py:2041 msgid "you can not download a digital asset for a non-finished order" msgstr "لا يمكنك تنزيل أصل رقمي لطلب غير مكتمل" -#: core/models.py:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "التعليقات المقدمة من المستخدمين حول تجربتهم مع المنتج" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "تعليقات على الملاحظات" -#: core/models.py:2004 +#: core/models.py:2079 msgid "" "references the specific product in an order that this feedback is about" msgstr "الإشارة إلى المنتج المحدد في الطلب الذي تدور حوله هذه الملاحظات" -#: core/models.py:2005 +#: core/models.py:2080 msgid "related order product" msgstr "منتجات الطلبات ذات الصلة" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "التصنيف المعين من قبل المستخدم للمنتج" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "تصنيف المنتج" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "الملاحظات" @@ -2110,7 +2143,7 @@ msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "يجب عليك تقديم تعليق، وتقييم، وطلب المنتج uuid لإضافة ملاحظاتك." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "خطأ أثناء إنشاء الرمز الترويجي: {e!s}" @@ -2126,6 +2159,7 @@ 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" @@ -2180,6 +2214,7 @@ 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 "جميع الحقوق محفوظة" @@ -2188,6 +2223,7 @@ 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," @@ -2213,6 +2249,7 @@ 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" @@ -2221,6 +2258,7 @@ 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" @@ -2229,6 +2267,19 @@ msgstr "مع أطيب تحياتي،
فريق %(project_name)s" 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 "" @@ -2269,21 +2320,26 @@ msgstr "كل من البيانات والمهلة مطلوبة" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "قيمة المهلة غير صالحة، يجب أن تكون بين 0 و216000 ثانية" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | بادر بالاتصال بنا" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | تأكيد الطلب" -#: core/utils/emailing.py:98 +#: 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 "ليس لديك إذن لتنفيذ هذا الإجراء." @@ -2301,15 +2357,15 @@ msgstr "يجب ألا تتجاوز أبعاد الصورة w{max_width} x h{max_ msgid "invalid phone number format" msgstr "تنسيق رقم الهاتف غير صالح" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "يمكنك تنزيل الأصل الرقمي مرة واحدة فقط" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "الرمز المفضل غير موجود" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "خطأ في الترميز الجغرافي: {e}" diff --git a/core/locale/cs_CZ/LC_MESSAGES/django.po b/core/locale/cs_CZ/LC_MESSAGES/django.po index c5cfa9fe..7aca6cb5 100644 --- a/core/locale/cs_CZ/LC_MESSAGES/django.po +++ b/core/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -50,82 +50,82 @@ msgstr "Upraveno" msgid "when the object was last modified" msgstr "Kdy byl objekt naposledy upraven" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Překlady" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "Obecné" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Vztahy" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Metadata" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Časová razítka" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktivace vybraného %(verbose_name_plural)s" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Vybrané položky byly aktivovány!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deaktivace vybraných %(verbose_name_plural)s" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Vybrané položky byly deaktivovány!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Hodnota atributu" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Hodnoty atributů" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Obrázek" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Obrázky" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Stock" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Zásoby" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Objednat produkt" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Objednat produkty" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Děti" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Konfigurace" @@ -772,118 +772,122 @@ msgstr "odstranit vztah objednávka-produkt" msgid "add or remove feedback on an order–product relation" msgstr "přidat nebo odebrat zpětnou vazbu na vztah objednávka-produkt." -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "Nebyl zadán žádný vyhledávací termín." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Název" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Kategorie" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Kategorie Slimáci" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Štítky" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Minimální cena" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Max Price" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Je aktivní" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Značka" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Atributy" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Množství" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Slug" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "Je digitální" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Zahrnout podkategorie" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Zahrnout osobně objednané produkty" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Vyhledávání (ID, název produktu nebo číslo dílu)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Koupeno po (včetně)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Koupeno před (včetně)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "E-mail uživatele" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "UUID uživatele" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Stav" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "Lidsky čitelné ID" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Rodič" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "Celá kategorie (má nebo nemá alespoň 1 produkt)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "Úroveň" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "UUID produktu" @@ -907,7 +911,7 @@ msgstr "Data uložená v mezipaměti" msgid "camelized JSON data from the requested URL" msgstr "Kamelizovaná data JSON z požadované adresy URL" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Povoleny jsou pouze adresy URL začínající http(s)://." @@ -938,7 +942,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Zadejte prosím order_uuid nebo order_hr_id - vzájemně se vylučují!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Z metody order.buy() pochází nesprávný typ: {type(instance)!s}" @@ -1014,9 +1018,9 @@ 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:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} neexistuje: {uuid}!" @@ -1030,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Atributy" @@ -1043,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Kategorie" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Značky" @@ -1056,7 +1061,7 @@ msgid "category image url" msgstr "Kategorie" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Procento přirážky" @@ -1079,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Prodejci" @@ -1104,7 +1109,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Oznámení" @@ -1116,7 +1121,7 @@ msgstr "Stáhněte si url adresu pro tento objednaný produkt, pokud je to možn 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Fakturační adresa" @@ -1144,7 +1149,7 @@ msgstr "Jsou všechny produkty v objednávce digitální" msgid "transactions for this order" msgstr "Transakce pro tuto objednávku" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Objednávky" @@ -1156,19 +1161,19 @@ msgstr "Adresa URL obrázku" msgid "product's images" msgstr "Obrázky produktu" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Kategorie" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Zpětná vazba" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Značka" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Skupiny atributů" @@ -1196,27 +1201,27 @@ msgstr "Počet zpětných vazeb" msgid "only available for personal orders" msgstr "Produkty jsou k dispozici pouze pro osobní objednávky" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Produkty" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Propagační kódy" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Produkty v prodeji" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Propagační akce" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Prodejce" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1224,645 +1229,641 @@ msgstr "Prodejce" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Produkty uvedené na seznamu přání" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Seznamy přání" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Produkty s příznakem" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Štítky produktu" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Kategorie s příznakem" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Štítky kategorií" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Název projektu" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "E-mail společnosti" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Název společnosti" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Adresa společnosti" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Telefonní číslo společnosti" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "Uživatel hostitelského e-mailu" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Maximální částka pro platbu" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Minimální částka pro platbu" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Analytická data" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Reklamní údaje" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Konfigurace" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Kód jazyka" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Název jazyka" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Příznak jazyka, pokud existuje :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Získat seznam podporovaných jazyků" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Výsledky vyhledávání produktů" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Výsledky vyhledávání produktů" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Rodič této skupiny" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Nadřazená skupina atributů" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Název skupiny atributů" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Skupina atributů" -#: core/models.py:151 +#: core/models.py:155 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:152 +#: core/models.py:156 msgid "authentication info" msgstr "Informace o ověřování" -#: core/models.py:157 +#: core/models.py:161 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:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Procento přirážky prodejce" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Název tohoto prodejce" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Název prodejce" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Interní identifikátor značky produktu" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Název štítku" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "Uživatelsky přívětivý název pro značku produktu" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Zobrazení názvu štítku" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Štítek produktu" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "značka kategorie" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "štítky kategorií" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Nahrát obrázek reprezentující tuto kategorii" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Obrázek kategorie" -#: core/models.py:353 +#: core/models.py:357 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:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "Nadřízený této kategorie, který tvoří hierarchickou strukturu." -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "Nadřazená kategorie" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Název kategorie" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Uveďte název této kategorie" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Přidejte podrobný popis této kategorie" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Popis kategorie" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "značky, které pomáhají popsat nebo seskupit tuto kategorii" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Priorita" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Název této značky" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Název značky" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Nahrát logo reprezentující tuto značku" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Malý obrázek značky" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Nahrát velké logo reprezentující tuto značku" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Velká image značky" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Přidejte podrobný popis značky" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Popis značky" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Volitelné kategorie, se kterými je tato značka spojena" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Kategorie" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "Prodejce dodávající tento výrobek na sklad" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Přidružený prodejce" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Konečná cena pro zákazníka po přirážkách" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Prodejní cena" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "Produkt spojený s touto skladovou položkou" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Související produkt" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "Cena zaplacená prodejci za tento výrobek" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Kupní cena prodejce" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Dostupné množství produktu na skladě" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Množství na skladě" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU přidělený prodejcem pro identifikaci výrobku" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "SKU prodejce" -#: core/models.py:565 +#: core/models.py:569 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:566 +#: core/models.py:570 msgid "digital file" msgstr "Digitální soubor" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Zápisy do zásob" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Kategorie, do které tento produkt patří" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Volitelně přiřadit tento produkt ke značce" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Značky, které pomáhají popsat nebo seskupit tento produkt" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Označuje, zda je tento produkt dodáván digitálně" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "Je produkt digitální" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Uveďte jasný identifikační název výrobku" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Název produktu" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Přidejte podrobný popis produktu" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Popis produktu" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Číslo dílu pro tento produkt" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Číslo dílu" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Skladová jednotka pro tento produkt" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Kategorie tohoto atributu" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Skupina tohoto atributu" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "Řetězec" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Celé číslo" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Float" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Boolean" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Pole" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Objekt" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Typ hodnoty atributu" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Typ hodnoty" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Název tohoto atributu" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Název atributu" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atribut" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Atribut této hodnoty" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "Konkrétní produkt spojený s hodnotou tohoto atributu" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "Konkrétní hodnota tohoto atributu" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "Poskytněte alternativní text k obrázku kvůli přístupnosti." -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "Text alt obrázku" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Nahrát soubor s obrázkem tohoto produktu" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Obrázek produktu" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Určuje pořadí, v jakém se obrázky zobrazují." -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Priorita zobrazení" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "Výrobek, který tento obrázek představuje" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Obrázky produktů" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Procentuální sleva na vybrané produkty" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Procento slevy" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Uveďte jedinečný název této propagační akce" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Název akce" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Popis propagace" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Vyberte, které produkty jsou zahrnuty do této akce" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Zahrnuté produkty" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Propagace" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Výrobky, které uživatel označil jako požadované" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "Uživatel, který vlastní tento seznam přání" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Majitel seznamu přání" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Seznam přání" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Dokumentární film" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Dokumentární filmy" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Nevyřešené" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Adresní řádek pro zákazníka" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Adresní řádek" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Ulice" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "Okres" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "Město" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Region" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Poštovní směrovací číslo" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "Země" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokace Bod(Zeměpisná délka, Zeměpisná šířka)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Úplná odpověď JSON z geokodéru pro tuto adresu" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Uložená odpověď JSON ze služby geokódování" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Adresa" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Adresy" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Identifikátor propagačního kódu" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "Pevná výše slevy, pokud není použito procento" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Pevná výše slevy" -#: core/models.py:1251 +#: core/models.py:1255 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:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Procentuální sleva" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Časové razítko ukončení platnosti promokódu" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "Doba ukončení platnosti" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Časové razítko, od kterého je tento promokód platný" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Čas zahájení platnosti" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Časové razítko použití" -#: core/models.py:1275 +#: core/models.py:1279 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:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Přiřazený uživatel" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Propagační kód" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Propagační kódy" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1870,145 +1871,145 @@ 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:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "Promo kód byl již použit" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Neplatný typ slevy pro promokód {self.uuid}!" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "Fakturační adresa použitá pro tuto objednávku" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Volitelný promo kód použitý na tuto objednávku" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Použitý promo kód" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "Dodací adresa použitá pro tuto objednávku" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Dodací adresa" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Aktuální stav zakázky v jejím životním cyklu" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Stav objednávky" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "JSON reprezentace atributů objednávky pro tuto objednávku" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "Uživatel, který zadal objednávku" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "Uživatel" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "Časové razítko, kdy byla objednávka dokončena." -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Kupte si čas" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "Lidsky čitelný identifikátor objednávky" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "lidsky čitelné ID" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Objednávka" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "Do objednávky nelze přidat neaktivní produkty" -#: core/models.py:1495 +#: core/models.py:1503 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:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} neexistuje s dotazem <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Promo kód neexistuje" -#: core/models.py:1576 +#: core/models.py:1584 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:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "Adresa neexistuje" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Neplatná hodnota síly" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "Nelze zakoupit prázdnou objednávku!" -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "Bez uživatele nelze objednávku zakoupit!" -#: core/models.py:1652 +#: core/models.py:1666 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:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Nedostatek finančních prostředků na dokončení objednávky" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2016,122 +2017,154 @@ 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:1700 +#: core/models.py:1714 #, 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:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Nákupní cena v době objednávky" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "Interní komentáře pro administrátory k tomuto objednanému produktu" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Interní připomínky" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "Oznámení uživatele" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "JSON reprezentace atributů této položky" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Objednané atributy produktu" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Odkaz na nadřazenou objednávku, která obsahuje tento produkt" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Objednávka rodičů" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "Konkrétní produkt spojený s touto objednávkou" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Množství tohoto konkrétního produktu v objednávce" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Množství produktu" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Aktuální stav tohoto produktu v objednávce" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Stav produktové řady" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "Orderproduct musí mít přiřazenou objednávku!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Špatně zadaná akce pro zpětnou vazbu: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 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:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Název" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "Adresa URL integrace" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Ověřovací pověření" + +#: core/models.py:1980 +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 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRM" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "Odkaz na CRM objednávky" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "Odkazy CRM objednávek" + +#: core/models.py:2032 msgid "download" msgstr "Stáhnout" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Ke stažení na" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "Komentáře uživatelů o jejich zkušenostech s produktem" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Zpětná vazba" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Související objednávka produktu" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "Hodnocení produktu přidělené uživatelem" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Hodnocení produktu" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Zpětná vazba" @@ -2141,7 +2174,7 @@ msgid "" msgstr "" "pro přidání zpětné vazby musíte uvést komentář, hodnocení a uuid produktu." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Chyba při vytváření promokódu: {e!s}" @@ -2157,6 +2190,7 @@ msgstr "Potvrzení objednávky" #: 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" @@ -2212,6 +2246,7 @@ msgstr "S pozdravem,
tým %(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 "Všechna práva vyhrazena" @@ -2220,6 +2255,7 @@ msgid "order delivered" msgstr "Dodaná objednávka" #: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Ahoj %(user_first_name)s," @@ -2247,6 +2283,7 @@ msgid "value" msgstr "Hodnota" #: 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" @@ -2256,6 +2293,7 @@ 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 "S pozdravem,
tým %(project_name)s" @@ -2264,6 +2302,19 @@ msgstr "S pozdravem,
tým %(project_name)s" msgid "key" msgstr "Klíč" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Udělený propagační kód" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Děkujeme, že jste s námi zůstali! Udělili jsme vám promocode\n" +" pro" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2306,21 +2357,26 @@ msgstr "Jsou vyžadována data i časový limit" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Nesprávná hodnota timeoutu, musí být v rozmezí 0 až 216000 sekund." -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | kontaktujte nás inicioval" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Potvrzení objednávky" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Objednávka doručena" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promocode uděleno" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "K provedení této akce nemáte oprávnění." @@ -2339,15 +2395,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Nesprávný formát telefonního čísla" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "Digitální aktivum můžete stáhnout pouze jednou" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "favicon nebyl nalezen" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Chyba v zeměpisném kódování: {e}" diff --git a/core/locale/da_DK/LC_MESSAGES/django.po b/core/locale/da_DK/LC_MESSAGES/django.po index 5437e135..a62cde2f 100644 --- a/core/locale/da_DK/LC_MESSAGES/django.po +++ b/core/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -49,82 +49,82 @@ msgstr "Modificeret" msgid "when the object was last modified" msgstr "Hvornår objektet sidst blev redigeret" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Oversættelser" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "Generelt" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Relationer" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Metadata" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Tidsstempler" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktivér valgt %(verbose_name_plural)s." -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Udvalgte varer er blevet aktiveret!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deaktiver valgte %(verbose_name_plural)s." -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Udvalgte varer er blevet deaktiveret!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Attributværdi" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Attributværdier" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Billede" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Billeder" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Lager" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Aktier" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Bestil produkt" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Bestil produkter" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Børn" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Konfig" @@ -774,118 +774,122 @@ msgstr "slette en ordre-produkt-relation" msgid "add or remove feedback on an order–product relation" msgstr "tilføje eller fjerne feedback på en ordre-produkt-relation" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "Der er ikke angivet noget søgeord." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Navn" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Kategorier" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Kategorier Snegle" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Tags" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Min. pris" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Maks. pris" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Er aktiv" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Brand" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Egenskaber" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Mængde" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Snegl" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "Er digital" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Inkluder underkategorier" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Inkluder personligt bestilte produkter" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "VARENUMMER" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Søg (ID, produktnavn eller reservedelsnummer)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Købt efter (inklusive)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Købt før (inklusive)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "Brugerens e-mail" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "Bruger UUID" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Status" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "Menneskeligt læsbart ID" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Forælder" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "Hele kategorien (har mindst 1 produkt eller ej)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "Niveau" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "Produkt UUID" @@ -909,7 +913,7 @@ msgstr "Cachelagrede data" msgid "camelized JSON data from the requested URL" msgstr "Cameliserede JSON-data fra den ønskede URL" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Kun URL'er, der starter med http(s)://, er tilladt." @@ -940,7 +944,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Angiv enten order_uuid eller order_hr_id - det udelukker hinanden!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Forkert type kom fra metoden order.buy(): {type(instance)!s}" @@ -1016,9 +1020,9 @@ 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:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} findes ikke: {uuid}!" @@ -1032,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Egenskaber" @@ -1045,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Kategorier" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Mærker" @@ -1058,7 +1063,7 @@ msgid "category image url" msgstr "Kategorier" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Markup-procentdel" @@ -1083,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Leverandører" @@ -1110,7 +1115,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Meddelelser" @@ -1122,7 +1127,7 @@ msgstr "Download url for dette ordreprodukt, hvis det er relevant" 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Faktureringsadresse" @@ -1150,7 +1155,7 @@ msgstr "Er alle produkterne i ordren digitale?" msgid "transactions for this order" msgstr "Transaktioner for denne ordre" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Bestillinger" @@ -1162,19 +1167,19 @@ msgstr "Billed-URL" msgid "product's images" msgstr "Produktets billeder" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Kategori" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Tilbagemeldinger" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Attributgrupper" @@ -1202,27 +1207,27 @@ msgstr "Antal tilbagemeldinger" msgid "only available for personal orders" msgstr "Produkter kun tilgængelige for personlige bestillinger" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Produkter" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Promokoder" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Produkter til salg" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Kampagner" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Leverandør" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1230,646 +1235,642 @@ msgstr "Leverandør" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Produkter på ønskelisten" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Ønskelister" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Mærkede produkter" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Produktmærker" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Tagged kategorier" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Kategoriernes tags" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Projektets navn" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "Virksomhedens e-mail" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Virksomhedens navn" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Virksomhedens adresse" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Virksomhedens telefonnummer" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "E-mail-værtsbruger" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Maksimalt beløb til betaling" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Minimumsbeløb for betaling" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Analytiske data" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Data om reklamer" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Konfiguration" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Sprogkode" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Sprogets navn" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Sprogflag, hvis det findes :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Få en liste over understøttede sprog" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Søgeresultater for produkter" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Søgeresultater for produkter" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Forælder til denne gruppe" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Overordnet attributgruppe" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Attributgruppens navn" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Attributgruppe" -#: core/models.py:151 +#: core/models.py:155 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:152 +#: core/models.py:156 msgid "authentication info" msgstr "Oplysninger om godkendelse" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "Definer markeringen for produkter, der hentes fra denne leverandør" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Sælgerens markup-procentdel" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Navn på denne leverandør" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Leverandørens navn" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Intern tag-identifikator for produkttagget" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Tag-navn" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "Brugervenligt navn til produktmærket" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Navn på tag-visning" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Produktmærke" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "Kategori-tag" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "Kategori-tags" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Upload et billede, der repræsenterer denne kategori" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Kategori billede" -#: core/models.py:353 +#: core/models.py:357 msgid "define a markup percentage for products in this category" msgstr "Definer en markup-procentdel for produkter i denne kategori" -#: core/models.py:362 +#: core/models.py:366 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:363 +#: core/models.py:367 msgid "parent category" msgstr "Overordnet kategori" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Navn på kategori" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Giv et navn til denne kategori" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Tilføj en detaljeret beskrivelse af denne kategori" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Beskrivelse af kategori" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "tags, der hjælper med at beskrive eller gruppere denne kategori" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Prioritet" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Navnet på dette mærke" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Varemærke" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Upload et logo, der repræsenterer dette brand" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Brandets lille image" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Upload et stort logo, der repræsenterer dette brand" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Brandets store image" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Tilføj en detaljeret beskrivelse af brandet" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Varemærkebeskrivelse" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Valgfrie kategorier, som dette brand er forbundet med" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Kategorier" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "Den leverandør, der leverer dette produkt, lagerfører" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Tilknyttet leverandør" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Endelig pris til kunden efter tillæg" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Salgspris" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "Det produkt, der er knyttet til denne lagerpost" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Tilknyttet produkt" -#: core/models.py:548 +#: core/models.py:552 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:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Leverandørens købspris" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Tilgængelig mængde af produktet på lager" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Antal på lager" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "Leverandørtildelt SKU til identifikation af produktet" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "Leverandørens SKU" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "Digital fil knyttet til dette lager, hvis relevant" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "Digital fil" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Lagerposteringer" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Kategori, som dette produkt tilhører" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Tilknyt eventuelt dette produkt til et brand" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Tags, der hjælper med at beskrive eller gruppere dette produkt" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Angiver, om dette produkt leveres digitalt" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "Er produktet digitalt?" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Giv produktet et klart identificerende navn" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Produktets navn" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Tilføj en detaljeret beskrivelse af produktet" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Produktbeskrivelse" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Reservedelsnummer for dette produkt" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Varenummer" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Lagerbeholdning for dette produkt" -#: core/models.py:681 -msgid "SKU" -msgstr "VARENUMMER" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Kategori for denne attribut" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Gruppe af denne attribut" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "Streng" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Heltal" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Flyder" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Boolsk" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Array" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Objekt" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Type af attributtens værdi" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Værditype" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Navn på denne attribut" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Attributtens navn" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribut" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Attribut for denne værdi" -#: core/models.py:858 +#: core/models.py:862 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:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "Den specifikke værdi for denne attribut" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "Giv alternativ tekst til billedet af hensyn til tilgængeligheden" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "Billedets alt-tekst" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Upload billedfilen til dette produkt" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Produktbillede" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Bestemmer den rækkefølge, billederne vises i" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Skærm-prioritet" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "Det produkt, som dette billede repræsenterer" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Produktbilleder" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Procentvis rabat for de valgte produkter" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Rabatprocent" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Giv et unikt navn til denne kampagne" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Navn på kampagne" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Beskrivelse af kampagnen" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Vælg, hvilke produkter der er inkluderet i denne kampagne" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Inkluderede produkter" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Forfremmelse" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Produkter, som brugeren har markeret som ønskede" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "Bruger, der ejer denne ønskeliste" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Ønskelistens ejer" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Ønskeliste" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Dokumentarfilm" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Dokumentarfilm" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Uafklaret" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Adresselinje til kunden" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Adresselinje" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Gade" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "Distrikt" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "By" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Region" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Postnummer" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "Land" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokaliseringspunkt (længdegrad, breddegrad)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Fuldt JSON-svar fra geokoderen for denne adresse" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Gemt JSON-svar fra geokodningstjenesten" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Adresse" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Adresser" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Identifikator for kampagnekode" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "Fast rabatbeløb anvendes, hvis procent ikke bruges" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Fast rabatbeløb" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentvis rabat, hvis det faste beløb ikke bruges" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Procentvis rabat" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Tidsstempel, når promokoden udløber" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "Slut gyldighedstid" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Tidsstempel, hvorfra denne promokode er gyldig" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Start gyldighedstid" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Tidsstempel for brug" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "Bruger tildelt denne promokode, hvis relevant" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Tildelt bruger" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Kampagnekode" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Kampagnekoder" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1877,147 +1878,147 @@ msgstr "" "Der skal kun defineres én type rabat (beløb eller procent), men ikke begge " "eller ingen af dem." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "Promokoden er allerede blevet brugt" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ugyldig rabattype for promokode {self.uuid}!" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "Den faktureringsadresse, der bruges til denne ordre" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Valgfri kampagnekode anvendt på denne ordre" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Anvendt kampagnekode" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "Den leveringsadresse, der er brugt til denne ordre" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Leveringsadresse" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Ordrens aktuelle status i dens livscyklus" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Bestillingsstatus" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "JSON-repræsentation af ordreattributter for denne ordre" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "Den bruger, der har afgivet ordren" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "Bruger" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "Tidsstemplet for, hvornår ordren blev afsluttet" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Køb tid" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "En menneskeligt læsbar identifikator for ordren" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "menneskeligt læsbart ID" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Bestil" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "Du kan ikke tilføje inaktive produkter til en ordre" -#: core/models.py:1495 +#: core/models.py:1503 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:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} findes ikke med forespørgslen <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Promokode findes ikke" -#: core/models.py:1576 +#: core/models.py:1584 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:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "Adressen findes ikke" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Ugyldig kraftværdi" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "Du kan ikke købe en tom ordre!" -#: core/models.py:1644 +#: core/models.py:1652 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:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "En bruger uden saldo kan ikke købe med saldo!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Utilstrækkelige midler til at gennemføre ordren" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2025,124 +2026,156 @@ msgstr "" "du kan ikke købe uden registrering, angiv venligst følgende oplysninger: " "kundens navn, kundens e-mail, kundens telefonnummer" -#: core/models.py:1700 +#: core/models.py:1714 #, 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:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Købspris på bestillingstidspunktet" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "Interne kommentarer til administratorer om dette bestilte produkt" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Interne kommentarer" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "Notifikationer til brugere" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "JSON-repræsentation af dette elements attributter" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Bestilte produktattributter" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Henvisning til den overordnede ordre, der indeholder dette produkt" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Forældreordre" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "Det specifikke produkt, der er knyttet til denne ordrelinje" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Mængde af dette specifikke produkt i ordren" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Produktmængde" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Aktuel status for dette produkt i bestillingen" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Status for produktlinje" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "Orderproduct skal have en tilknyttet ordre!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Forkert handling angivet for feedback: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 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:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Navn" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "URL til integrationen" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Legitimationsoplysninger til godkendelse" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "Du kan kun have én standard CRM-udbyder" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRM'er" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "Ordrens CRM-link" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "Bestillingernes CRM-links" + +#: core/models.py:2032 msgid "download" msgstr "Download" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Downloads" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "Brugernes kommentarer om deres oplevelse med produktet" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Kommentarer til feedback" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Relateret ordreprodukt" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "Brugertildelt vurdering af produktet" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Produktvurdering" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Feedback" @@ -2153,7 +2186,7 @@ msgstr "" "Du skal angive en kommentar, en vurdering og et produkt-uid for at tilføje " "feedback." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Fejl under oprettelse af promokode: {e!s}" @@ -2169,6 +2202,7 @@ msgstr "Ordrebekræ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" @@ -2223,6 +2257,7 @@ msgstr "Med venlig 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 rettigheder forbeholdes" @@ -2231,6 +2266,7 @@ msgid "order delivered" msgstr "Order Delivered" #: 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," @@ -2258,6 +2294,7 @@ msgid "value" msgstr "Værdi" #: 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" @@ -2267,6 +2304,7 @@ 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 "Med venlig hilsen,
teamet %(project_name)s." @@ -2275,6 +2313,19 @@ msgstr "Med venlig hilsen,
teamet %(project_name)s." msgid "key" msgstr "Nøgle" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Promokode tildelt" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Tak, fordi du bor hos os! Vi har givet dig en promokode\n" +" til" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2317,21 +2368,26 @@ msgstr "Både data og timeout er påkrævet" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Ugyldig timeout-værdi, den skal være mellem 0 og 216000 sekunder" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | kontakt os påbegyndt" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Ordrebekræftelse" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Order Delivered" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promokode givet" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "Du har ikke tilladelse til at udføre denne handling." @@ -2351,15 +2407,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Ugyldigt telefonnummerformat" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "Du kan kun downloade det digitale aktiv én gang" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "Favicon ikke fundet" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Fejl i geokodning: {e}" diff --git a/core/locale/de_DE/LC_MESSAGES/django.po b/core/locale/de_DE/LC_MESSAGES/django.po index c44b0ef9..5d935a21 100644 --- a/core/locale/de_DE/LC_MESSAGES/django.po +++ b/core/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,82 +51,82 @@ msgstr "Geändert" msgid "when the object was last modified" msgstr "Wann das Objekt zuletzt bearbeitet wurde" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Übersetzungen" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "Allgemein" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Beziehungen" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Metadaten" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Zeitstempel" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Ausgewählte %(verbose_name_plural)s aktivieren" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Ausgewählte Artikel wurden aktiviert!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Ausgewählte %(verbose_name_plural)s deaktivieren" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Ausgewählte Artikel wurden deaktiviert!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Attribut Wert" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Attribut Werte" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Bild" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Bilder" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Lagerbestand" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Bestände" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Produkt bestellen" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Produkte bestellen" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Kinder" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Konfigurieren Sie" @@ -802,119 +802,123 @@ msgid "add or remove feedback on an order–product relation" msgstr "" "Feedback zu einer Bestellung-Produkt-Beziehung hinzufügen oder entfernen" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "Kein Suchbegriff angegeben." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Name" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Kategorien" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Kategorien Schnecken" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Tags" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Mindestpreis" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Maximaler Preis" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Ist aktiv" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Marke" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Attribute" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Menge" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Schnecke" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "Is Digital" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Unterkategorien einbeziehen" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Persönlich bestellte Produkte einbeziehen" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Suche (ID, Produktname oder Teilenummer)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Gekauft nach (einschließlich)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Gekauft vor (einschließlich)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "Benutzer-E-Mail" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "User UUID" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Status" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "Human Readable ID" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Elternteil" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "Gesamte Kategorie (mit oder ohne mindestens 1 Produkt)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "Ebene" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "Produkt UUID" @@ -938,7 +942,7 @@ msgstr "Zwischengespeicherte Daten" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-Daten aus der angeforderten URL" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Nur URLs, die mit http(s):// beginnen, sind zulässig" @@ -971,7 +975,7 @@ msgstr "" "sich gegenseitig aus!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Von der Methode order.buy() kam der falsche Typ: {type(instance)!s}" @@ -1048,9 +1052,9 @@ 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:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} existiert nicht: {uuid}!" @@ -1064,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Attribute" @@ -1077,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Kategorien" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Marken" @@ -1090,7 +1095,7 @@ msgid "category image url" msgstr "Kategorien" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Markup Percentage" @@ -1115,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Anbieter" @@ -1141,7 +1146,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Benachrichtigungen" @@ -1153,7 +1158,7 @@ msgstr "Download-Url für dieses Bestellprodukt, falls zutreffend" 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Rechnungsadresse" @@ -1181,7 +1186,7 @@ msgstr "Sind alle Produkte in der Bestellung digital" msgid "transactions for this order" msgstr "Vorgänge für diesen Auftrag" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Bestellungen" @@ -1193,19 +1198,19 @@ msgstr "Bild URL" msgid "product's images" msgstr "Bilder des Produkts" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Kategorie" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Rückmeldungen" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Marke" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Attribut-Gruppen" @@ -1233,27 +1238,27 @@ msgstr "Anzahl der Rückmeldungen" msgid "only available for personal orders" msgstr "Produkte nur für persönliche Bestellungen verfügbar" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Produkte" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Zum Verkauf stehende Produkte" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Werbeaktionen" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Anbieter" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1261,660 +1266,656 @@ msgstr "Anbieter" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Auf dem Wunschzettel stehende Produkte" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Wunschzettel" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Markierte Produkte" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Produkt-Tags" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Markierte Kategorien" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Kategorien'-Tags" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Name des Projekts" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "Unternehmen E-Mail" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Name des Unternehmens" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Adresse des Unternehmens" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Telefonnummer des Unternehmens" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "E-Mail-Host-Benutzer" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Höchstbetrag für die Zahlung" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Mindestbetrag für die Zahlung" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Analytische Daten" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Konfiguration" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Sprachcode" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Name der Sprache" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Sprachflagge, falls vorhanden :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Eine Liste der unterstützten Sprachen abrufen" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Suchergebnisse für Produkte" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Suchergebnisse für Produkte" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Elternteil dieser Gruppe" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Übergeordnete Attributgruppe" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Name der Attributgruppe" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Attribut-Gruppe" -#: core/models.py:151 +#: core/models.py:155 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:152 +#: core/models.py:156 msgid "authentication info" msgstr "Informationen zur Authentifizierung" -#: core/models.py:157 +#: core/models.py:161 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:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Prozentualer Aufschlag des Lieferanten" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Name dieses Anbieters" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Name des Anbieters" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Interner Tag-Identifikator für das Produkt-Tag" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Tag name" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "Benutzerfreundlicher Name für den Produktanhänger" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Tag-Anzeigename" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Produkt-Tag" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "Kategorie-Tag" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "Kategorie-Tags" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Laden Sie ein Bild hoch, das diese Kategorie repräsentiert" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Kategorie Bild" -#: core/models.py:353 +#: core/models.py:357 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:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "" "Übergeordneter dieser Kategorie, um eine hierarchische Struktur zu bilden" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "Übergeordnete Kategorie" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Name der Kategorie" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Geben Sie einen Namen für diese Kategorie an" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Fügen Sie eine detaillierte Beschreibung für diese Kategorie hinzu" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Beschreibung der Kategorie" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "Tags, die helfen, diese Kategorie zu beschreiben oder zu gruppieren" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Priorität" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Name dieser Marke" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Markenname" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Laden Sie ein Logo hoch, das diese Marke repräsentiert" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Marke kleines Bild" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Laden Sie ein großes Logo hoch, das diese Marke repräsentiert" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Großes Image der Marke" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Fügen Sie eine detaillierte Beschreibung der Marke hinzu" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Beschreibung der Marke" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "" "Optionale Kategorien, mit denen diese Marke in Verbindung gebracht wird" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Kategorien" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "Der Verkäufer, der dieses Produkt liefert, hat folgende Bestände" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Zugehöriger Anbieter" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Endpreis für den Kunden nach Aufschlägen" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Verkaufspreis" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "Das mit diesem Bestandseintrag verbundene Produkt" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Zugehöriges Produkt" -#: core/models.py:548 +#: core/models.py:552 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:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Einkaufspreis des Verkäufers" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Verfügbare Menge des Produkts auf Lager" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Vorrätige Menge" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "Vom Hersteller zugewiesene SKU zur Identifizierung des Produkts" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "SKU des Verkäufers" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "" "Digitale Datei, die mit diesem Bestand verbunden ist, falls zutreffend" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "Digitale Datei" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Bestandseinträge" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Kategorie, zu der dieses Produkt gehört" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Optional können Sie dieses Produkt mit einer Marke verknüpfen" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Tags, die helfen, dieses Produkt zu beschreiben oder zu gruppieren" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Gibt an, ob dieses Produkt digital geliefert wird" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "Ist das Produkt digital" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "" "Geben Sie einen eindeutigen Namen zur Identifizierung des Produkts an." -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Name des Produkts" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Fügen Sie eine detaillierte Beschreibung des Produkts hinzu" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Beschreibung des Produkts" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Teilenummer für dieses Produkt" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Teilnummer" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Lagerhaltende Einheit für dieses Produkt" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Kategorie dieses Attributs" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Gruppe dieses Attributs" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "Zeichenfolge" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Integer" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Schwimmer" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Boolesche" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Array" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Objekt" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Typ des Attributwerts" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Werttyp" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Name dieses Attributs" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Name des Attributs" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribut" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Attribut dieses Wertes" -#: core/models.py:858 +#: core/models.py:862 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:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "Der spezifische Wert für dieses Attribut" -#: core/models.py:898 +#: core/models.py:902 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:899 +#: core/models.py:903 msgid "image alt text" msgstr "Bild-Alt-Text" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Laden Sie die Bilddatei für dieses Produkt hoch" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Produktbild" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Legt die Reihenfolge fest, in der die Bilder angezeigt werden" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Priorität anzeigen" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "Das Produkt, das dieses Bild darstellt" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Produktbilder" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Prozentualer Rabatt für die ausgewählten Produkte" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Prozentsatz der Ermäßigung" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Geben Sie einen eindeutigen Namen für diese Aktion an" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Name der Aktion" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Wählen Sie aus, welche Produkte in dieser Aktion enthalten sind" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Enthaltene Produkte" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Förderung" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Produkte, die der Benutzer als gewünscht markiert hat" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "Benutzer, dem diese Wunschliste gehört" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Besitzer der Wishlist" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Wunschzettel" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Dokumentarfilm" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Dokumentarfilme" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Ungelöst" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Adresszeile für den Kunden" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Adresszeile" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Straße" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "Bezirk" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "Stadt" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Region" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Postleitzahl" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "Land" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Längengrad, Breitengrad)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Vollständige JSON-Antwort vom Geocoder für diese Adresse" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Gespeicherte JSON-Antwort vom Geokodierungsdienst" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Adresse" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Adressen" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Kennung des Promo-Codes" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "" "Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet " "wird" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Fester Rabattbetrag" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "Prozentualer Rabatt, wenn der Festbetrag nicht verwendet wird" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Prozentualer Rabatt" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Zeitstempel, wann der Promocode abläuft" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "Ende der Gültigkeitsdauer" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Zeitstempel, ab dem dieser Promocode gültig ist" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Beginn der Gültigkeitsdauer" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Zeitstempel der Verwendung" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "Diesem Promocode zugewiesener Benutzer, falls zutreffend" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Zugewiesener Benutzer" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Promo-Code" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Promo-Codes" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1922,152 +1923,152 @@ msgstr "" "Es sollte nur eine Art von Rabatt definiert werden (Betrag oder " "Prozentsatz), aber nicht beides oder keines von beiden." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "Promocode wurde bereits verwendet" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ungültiger Rabatttyp für den Promocode {self.uuid}!" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "Die für diese Bestellung verwendete Rechnungsadresse" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Optionaler Promo-Code für diese Bestellung" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Angewandter Promo-Code" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "Die für diese Bestellung verwendete Lieferadresse" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Lieferadresse" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Aktueller Status des Auftrags in seinem Lebenszyklus" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Status der Bestellung" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "JSON-Darstellung der Auftragsattribute für diesen Auftrag" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "Der Benutzer, der die Bestellung aufgegeben hat" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "Benutzer" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "Der Zeitstempel, zu dem der Auftrag abgeschlossen wurde" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Zeit kaufen" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "Ein von Menschen lesbarer Identifikator für den Auftrag" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "menschenlesbare ID" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Bestellung" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "Sie können keine inaktiven Produkte zur Bestellung hinzufügen" -#: core/models.py:1495 +#: core/models.py:1503 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:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} existiert nicht mit Abfrage <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Promocode existiert nicht" -#: core/models.py:1576 +#: core/models.py:1584 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:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "Adresse ist nicht vorhanden" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Ungültiger Force-Wert" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "Sie können keine leere Bestellung kaufen!" -#: core/models.py:1644 +#: core/models.py:1652 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:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "Ein Benutzer ohne Guthaben kann nicht mit Guthaben kaufen!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Unzureichende Mittel für die Ausführung des Auftrags" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2075,128 +2076,160 @@ msgstr "" "Sie können nicht ohne Registrierung kaufen, bitte geben Sie die folgenden " "Informationen an: Kundenname, Kunden-E-Mail, Kunden-Telefonnummer" -#: core/models.py:1700 +#: core/models.py:1714 #, 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:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Einkaufspreis zum Zeitpunkt der Bestellung" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "Interne Kommentare für Administratoren zu diesem bestellten Produkt" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Interne Kommentare" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "Benutzerbenachrichtigungen" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "JSON-Darstellung der Attribute dieses Artikels" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Bestellte Produktattribute" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Verweis auf den übergeordneten Auftrag, der dieses Produkt enthält" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Übergeordneter Auftrag" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "Das spezifische Produkt, das mit dieser Auftragszeile verbunden ist" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Menge dieses spezifischen Produkts in der Bestellung" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Produktmenge" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Aktueller Status dieses Produkts im Auftrag" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Status der Produktlinie" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "Das Bestellprodukt muss eine zugehörige Bestellung haben!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Falsche Aktion für Feedback angegeben: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 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:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Name" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "URL der Integration" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Anmeldeinformationen zur Authentifizierung" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "Sie können nur einen Standard-CRM-Anbieter haben" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRMs" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "CRM-Link der Bestellung" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "CRM-Links der Bestellungen" + +#: core/models.py:2032 msgid "download" msgstr "Herunterladen" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Herunterladen" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "Kommentare der Nutzer über ihre Erfahrungen mit dem Produkt" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Kommentare zum Feedback" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Produkt zur Bestellung" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "Vom Benutzer zugewiesene Bewertung für das Produkt" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Produktbewertung" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Rückmeldung" @@ -2207,7 +2240,7 @@ msgstr "" "Sie müssen einen Kommentar, eine Bewertung und eine Produktnummer angeben, " "um eine Bewertung abzugeben." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Fehler bei der Erstellung des Promocodes: {e!s}" @@ -2223,6 +2256,7 @@ msgstr "Bestätigung der Bestellung" #: 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" @@ -2278,6 +2312,7 @@ msgstr "Mit freundlichen Grüßen,
das %(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 "Alle Rechte vorbehalten" @@ -2286,6 +2321,7 @@ msgid "order delivered" msgstr "Bestellung Geliefert" #: 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," @@ -2313,6 +2349,7 @@ msgid "value" msgstr "Wert" #: 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" @@ -2322,6 +2359,7 @@ 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 "Mit freundlichen Grüßen,
das %(project_name)s-Team" @@ -2330,6 +2368,19 @@ msgstr "Mit freundlichen Grüßen,
das %(project_name)s-Team" msgid "key" msgstr "Schlüssel" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Promocode granted" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Danke, dass Sie bei uns bleiben! Wir haben Ihnen einen Promocode gewährt\n" +" für" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2373,21 +2424,26 @@ msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" "Ungültiger Timeout-Wert, er muss zwischen 0 und 216000 Sekunden liegen" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Kontakt eingeleitet" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Auftragsbestätigung" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Bestellung ausgeliefert" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | Promocode gewährt" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "Sie haben nicht die Erlaubnis, diese Aktion durchzuführen." @@ -2407,15 +2463,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Ungültiges Rufnummernformat" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "Sie können das digitale Asset nur einmal herunterladen" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "Favicon nicht gefunden" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Geocodierungsfehler: {e}" diff --git a/core/locale/en_GB/LC_MESSAGES/django.po b/core/locale/en_GB/LC_MESSAGES/django.po index daa861b1..1c43cfa5 100644 --- a/core/locale/en_GB/LC_MESSAGES/django.po +++ b/core/locale/en_GB/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -53,82 +53,82 @@ msgstr "Modified" msgid "when the object was last modified" msgstr "When the object was last edited" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Translations" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "General" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Relations" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Metadata" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Timestamps" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activate selected %(verbose_name_plural)s" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Selected items have been activated!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactivate selected %(verbose_name_plural)s" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Selected items have been deactivated!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Attribute Value" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Attribute Values" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Image" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Images" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Stock" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Stocks" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Order Product" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Order Products" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Children" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Config" @@ -752,117 +752,121 @@ msgstr "delete an order–product relation" msgid "add or remove feedback on an order–product relation" msgstr "add or remove feedback on an order–product relation" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "No search term provided." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Name" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Categories" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Categories Slugs" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Tags" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Min Price" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Max Price" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Is Active" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Brand" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Attributes" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Quantity" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Slug" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "Is Digital" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Include sub-categories" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Include personal ordered products" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Search (ID, product name or part number)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Bought after (inclusive)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Bought before (inclusive)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "User email" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "User UUID" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Status" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "Human Readable ID" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Parent" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "Whole category(has at least 1 product or not)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "Level" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "Product UUID" @@ -886,7 +890,7 @@ msgstr "Cached data" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON data from the requested URL" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Only URLs starting with http(s):// are allowed" @@ -917,7 +921,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Please provide either order_uuid or order_hr_id - mutually exclusive!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Wrong type came from order.buy() method: {type(instance)!s}" @@ -993,9 +997,9 @@ 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:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} does not exist: {uuid}!" @@ -1009,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Attributes" @@ -1022,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Categories" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Brands" @@ -1035,7 +1040,7 @@ msgid "category image url" msgstr "Categories" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Markup Percentage" @@ -1057,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Vendors" @@ -1082,7 +1087,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Notifications" @@ -1094,7 +1099,7 @@ msgstr "Download url for this order product if applicable" 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Billing address" @@ -1122,7 +1127,7 @@ msgstr "Are all of the products in the order digital" msgid "transactions for this order" msgstr "Transactions for this order" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Orders" @@ -1134,19 +1139,19 @@ msgstr "Image URL" msgid "product's images" msgstr "Product's images" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Category" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Attribute groups" @@ -1174,27 +1179,27 @@ msgstr "Number of feedbacks" msgid "only available for personal orders" msgstr "Products only available for personal orders" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Products" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Products on sale" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1202,643 +1207,639 @@ msgstr "Vendor" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Wishlisted products" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Wishlists" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Product tags" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Tagged categories" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Categories' tags" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Project name" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "Company Email" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Company Name" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Company Address" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Company Phone Number" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "Email host user" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Maximum amount for payment" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Minimum amount for payment" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Analytics data" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Language code" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Language name" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Language flag, if exists :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Get a list of supported languages" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Products search results" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Products search results" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Parent of this group" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Parent attribute group" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Attribute group's name" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Attribute group" -#: core/models.py:151 +#: core/models.py:155 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stores credentials and endpoints required for vendor's API communication" -#: core/models.py:152 +#: core/models.py:156 msgid "authentication info" msgstr "Authentication info" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "Define the markup for products retrieved from this vendor" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Vendor markup percentage" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Name of this vendor" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Vendor name" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Tag name" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "User-friendly name for the product tag" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Tag display name" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Product tag" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "category tag" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "category tags" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Upload an image representing this category" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Category image" -#: core/models.py:353 +#: core/models.py:357 msgid "define a markup percentage for products in this category" msgstr "Define a markup percentage for products in this category" -#: core/models.py:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "Parent of this category to form a hierarchical structure" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "Parent category" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Category name" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Provide a name for this category" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Add a detailed description for this category" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Category description" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "tags that help describe or group this category" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Priority" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Name of this brand" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Brand name" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Upload a logo representing this brand" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Brand small image" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Upload a big logo representing this brand" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Brand big image" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Add a detailed description of the brand" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Brand description" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Optional categories that this brand is associated with" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Categories" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "The vendor supplying this product stock" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Associated vendor" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Final price to the customer after markups" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Selling price" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Associated product" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "The price paid to the vendor for this product" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Vendor purchase price" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Available quantity of the product in stock" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Quantity in stock" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "Vendor's SKU" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "Digital file" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Stock entries" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Category this product belongs to" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Optionally associate this product with a brand" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Tags that help describe or group this product" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Indicates whether this product is digitally delivered" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "Is product digital" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Provide a clear identifying name for the product" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Product name" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Add a detailed description of the product" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Product description" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Part number for this product" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Part number" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Stock Keeping Unit for this product" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Category of this attribute" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Group of this attribute" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "String" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Integer" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Float" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Boolean" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Array" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Object" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Type of the attribute's value" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Value type" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Name of this attribute" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Attribute's name" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribute" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Attribute of this value" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "The specific product associated with this attribute's value" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "The specific value for this attribute" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "Image alt text" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Upload the image file for this product" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Product image" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Determines the order in which images are displayed" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Display priority" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "The product that this image represents" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Product images" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Percentage discount for the selected products" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Discount percentage" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Provide a unique name for this promotion" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Promotion name" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Select which products are included in this promotion" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Included products" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Promotion" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Wishlist" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Documentary" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Unresolved" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Address line for the customer" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Address line" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Street" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "District" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "City" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Region" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Postal code" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "Country" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Full JSON response from geocoder for this address" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Stored JSON response from the geocoding service" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Address" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Adresses" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Percentage discount" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "End validity time" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Start validity time" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Usage timestamp" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Assigned user" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Promo code" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1846,144 +1847,144 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "Promocode has been used already" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}!" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Applied promo code" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Shipping address" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Order status" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "The user who placed the order" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "User" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Buy time" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "human-readable ID" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Order" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: core/models.py:1495 +#: core/models.py:1503 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: core/models.py:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: core/models.py:1576 +#: core/models.py:1584 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:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "Address does not exist" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Invalid force value" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "You cannot buy an order without a user!" -#: core/models.py:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "A user without a balance cannot buy with balance!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1991,121 +1992,153 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: core/models.py:1700 +#: core/models.py:1714 #, 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:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Internal comments" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "User notifications" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Parent order" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Product quantity" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Product line status" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "Orderproduct must have an associated order!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Wrong action specified for feedback: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 msgid "you cannot feedback an order which is not received" msgstr "you cannot feedback an order which is not received" -#: core/models.py:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Name" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "URL of the integration" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Authentication credentials" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "You can only have one default CRM provider" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRMs" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "Order's CRM link" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "Orders' CRM links" + +#: core/models.py:2032 msgid "download" msgstr "Download" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Downloads" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Feedback comments" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Related order product" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Product rating" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Feedback" @@ -2115,7 +2148,7 @@ msgid "" msgstr "" "you must provide a comment, rating, and order product uuid to add feedback." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Error during promocode creation: {e!s}" @@ -2131,6 +2164,7 @@ msgstr "Order Confirmation" #: 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" @@ -2185,6 +2219,7 @@ msgstr "Best regards,
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 "All rights reserved" @@ -2193,6 +2228,7 @@ msgid "order delivered" msgstr "Order Delivered" #: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Hello %(user_first_name)s," @@ -2220,6 +2256,7 @@ msgid "value" msgstr "Value" #: 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" @@ -2229,6 +2266,7 @@ 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 "Best regards,
the %(project_name)s team" @@ -2237,6 +2275,19 @@ msgstr "Best regards,
the %(project_name)s team" msgid "key" msgstr "Key" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Promocode granted" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2279,21 +2330,26 @@ msgstr "Both data and timeout are required" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Invalid timeout value, it must be between 0 and 216000 seconds" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | contact us initiated" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Order Confirmation" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Order Delivered" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promocode granted" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "You do not have permission to perform this action." @@ -2312,15 +2368,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Invalid phone number format" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "You can only download the digital asset once" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "favicon not found" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Geocoding error: {e}" diff --git a/core/locale/en_US/LC_MESSAGES/django.po b/core/locale/en_US/LC_MESSAGES/django.po index b6811b83..80f42663 100644 --- a/core/locale/en_US/LC_MESSAGES/django.po +++ b/core/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -49,82 +49,82 @@ msgstr "Modified" msgid "when the object was last modified" msgstr "When the object was last edited" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Translations" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "General" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Relations" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Metadata" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Timestamps" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activate selected %(verbose_name_plural)s" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Selected items have been activated!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactivate selected %(verbose_name_plural)s" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Selected items have been deactivated!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Attribute Value" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Attribute Values" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Image" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Images" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Stock" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Stocks" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Order Product" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Order Products" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Children" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Config" @@ -748,117 +748,121 @@ msgstr "delete an order–product relation" msgid "add or remove feedback on an order–product relation" msgstr "add or remove feedback on an order–product relation" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "No search term provided." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Name" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Categories" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Categories Slugs" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Tags" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Min Price" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Max Price" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Is Active" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Brand" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Attributes" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Quantity" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Slug" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "Is Digital" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Include sub-categories" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Include personal ordered products" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Search (ID, product name or part number)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Bought after (inclusive)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Bought before (inclusive)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "User email" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "User UUID" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Status" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "Human Readable ID" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Parent" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "Whole category(has at least 1 product or not)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "Level" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "Product UUID" @@ -882,7 +886,7 @@ msgstr "Cached data" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON data from the requested URL" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Only URLs starting with http(s):// are allowed" @@ -913,7 +917,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Please provide either order_uuid or order_hr_id - mutually exclusive!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Wrong type came from order.buy() method: {type(instance)!s}" @@ -989,9 +993,9 @@ 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:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} does not exist: {uuid}!" @@ -1005,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Attributes" @@ -1018,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Categories" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Brands" @@ -1031,7 +1036,7 @@ msgid "category image url" msgstr "Categories" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Markup Percentage" @@ -1053,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Vendors" @@ -1078,7 +1083,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Notifications" @@ -1090,7 +1095,7 @@ msgstr "Download url for this order product if applicable" 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Billing address" @@ -1118,7 +1123,7 @@ msgstr "Are all of the products in the order digital" msgid "transactions for this order" msgstr "Transactions for this order" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Orders" @@ -1130,19 +1135,19 @@ msgstr "Image URL" msgid "product's images" msgstr "Product's images" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Category" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Attribute groups" @@ -1170,27 +1175,27 @@ msgstr "Number of feedbacks" msgid "only available for personal orders" msgstr "Products only available for personal orders" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Products" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Products on sale" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1198,643 +1203,639 @@ msgstr "Vendor" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Wishlisted products" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Wishlists" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Product tags" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Tagged categories" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Categories' tags" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Project name" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "Company Email" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Company Name" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Company Address" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Company Phone Number" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "Email host user" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Maximum amount for payment" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Minimum amount for payment" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Analytics data" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Language code" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Language name" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Language flag, if exists :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Get a list of supported languages" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Products search results" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Products search results" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Parent of this group" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Parent attribute group" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Attribute group's name" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Attribute group" -#: core/models.py:151 +#: core/models.py:155 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stores credentials and endpoints required for vendor's API communication" -#: core/models.py:152 +#: core/models.py:156 msgid "authentication info" msgstr "Authentication info" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "Define the markup for products retrieved from this vendor" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Vendor markup percentage" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Name of this vendor" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Vendor name" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Tag name" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "User-friendly name for the product tag" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Tag display name" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Product tag" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "category tag" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "category tags" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Upload an image representing this category" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Category image" -#: core/models.py:353 +#: core/models.py:357 msgid "define a markup percentage for products in this category" msgstr "Define a markup percentage for products in this category" -#: core/models.py:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "Parent of this category to form a hierarchical structure" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "Parent category" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Category name" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Provide a name for this category" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Add a detailed description for this category" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Category description" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "tags that help describe or group this category" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Priority" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Name of this brand" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Brand name" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Upload a logo representing this brand" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Brand small image" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Upload a big logo representing this brand" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Brand big image" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Add a detailed description of the brand" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Brand description" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Optional categories that this brand is associated with" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Categories" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "The vendor supplying this product stock" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Associated vendor" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Final price to the customer after markups" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Selling price" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Associated product" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "The price paid to the vendor for this product" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Vendor purchase price" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Available quantity of the product in stock" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Quantity in stock" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "Vendor's SKU" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "Digital file" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Stock entries" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Category this product belongs to" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Optionally associate this product with a brand" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Tags that help describe or group this product" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Indicates whether this product is digitally delivered" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "Is product digital" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Provide a clear identifying name for the product" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Product name" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Add a detailed description of the product" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Product description" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Part number for this product" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Part number" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Stock Keeping Unit for this product" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Category of this attribute" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Group of this attribute" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "String" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Integer" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Float" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Boolean" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Array" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Object" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Type of the attribute's value" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Value type" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Name of this attribute" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Attribute's name" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribute" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Attribute of this value" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "The specific product associated with this attribute's value" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "The specific value for this attribute" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "Image alt text" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Upload the image file for this product" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Product image" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Determines the order in which images are displayed" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Display priority" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "The product that this image represents" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Product images" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Percentage discount for the selected products" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Discount percentage" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Provide a unique name for this promotion" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Promotion name" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Select which products are included in this promotion" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Included products" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Promotion" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Wishlist" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Documentary" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Unresolved" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Address line for the customer" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Address line" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Street" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "District" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "City" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Region" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Postal code" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "Country" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Full JSON response from geocoder for this address" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Stored JSON response from the geocoding service" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Address" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Adresses" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Percentage discount" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "End validity time" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Start validity time" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Usage timestamp" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Assigned user" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Promo code" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1842,144 +1843,144 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "Promocode has been used already" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}!" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Applied promo code" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Shipping address" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Order status" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "The user who placed the order" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "User" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Buy time" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "human-readable ID" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Order" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: core/models.py:1495 +#: core/models.py:1503 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: core/models.py:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: core/models.py:1576 +#: core/models.py:1584 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:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "Address does not exist" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Invalid force value" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "You cannot buy an order without a user!" -#: core/models.py:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "A user without a balance cannot buy with balance!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1987,121 +1988,153 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: core/models.py:1700 +#: core/models.py:1714 #, 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:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Internal comments" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "User notifications" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Parent order" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Product quantity" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Product line status" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "Orderproduct must have an associated order!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Wrong action specified for feedback: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 msgid "you cannot feedback an order which is not received" msgstr "you cannot feedback an order which is not received" -#: core/models.py:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Name" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "URL of the integration" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Authentication credentials" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "You can only have one default CRM provider" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRMs" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "Order's CRM link" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "Orders' CRM links" + +#: core/models.py:2032 msgid "download" msgstr "Download" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Downloads" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Feedback comments" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Related order product" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Product rating" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Feedback" @@ -2111,7 +2144,7 @@ msgid "" msgstr "" "you must provide a comment, rating, and order product uuid to add feedback." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Error during promocode creation: {e!s}" @@ -2127,6 +2160,7 @@ msgstr "Order Confirmation" #: 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" @@ -2181,6 +2215,7 @@ msgstr "Best regards,
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 "All rights reserved" @@ -2189,6 +2224,7 @@ msgid "order delivered" msgstr "Order Delivered" #: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Hello %(user_first_name)s," @@ -2216,6 +2252,7 @@ msgid "value" msgstr "Value" #: 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" @@ -2225,6 +2262,7 @@ 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 "Best regards,
the %(project_name)s team" @@ -2233,6 +2271,19 @@ msgstr "Best regards,
the %(project_name)s team" msgid "key" msgstr "Key" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Promocode granted" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2275,21 +2326,26 @@ msgstr "Both data and timeout are required" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Invalid timeout value, it must be between 0 and 216000 seconds" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | contact us initiated" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Order Confirmation" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Order Delivered" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promocode granted" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "You do not have permission to perform this action." @@ -2308,15 +2364,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Invalid phone number format" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "You can only download the digital asset once" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "favicon not found" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Geocoding error: {e}" diff --git a/core/locale/es_ES/LC_MESSAGES/django.po b/core/locale/es_ES/LC_MESSAGES/django.po index 7f5c6d7d..a62c85c2 100644 --- a/core/locale/es_ES/LC_MESSAGES/django.po +++ b/core/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,82 +51,82 @@ msgstr "Modificado" msgid "when the object was last modified" msgstr "Cuándo se editó el objeto por última vez" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Traducciones" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "General" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Relaciones" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Metadatos" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Marcas de tiempo" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activar %(verbose_name_plural)s seleccionado" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Los artículos seleccionados se han activado." -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Desactivar %(verbose_name_plural)s seleccionado" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Los artículos seleccionados se han desactivado." -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Atributo Valor" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Valores de los atributos" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Imagen" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Imágenes" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Stock" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Acciones" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Pedir un producto" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Pedir productos" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Niños" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Configurar" @@ -784,118 +784,122 @@ msgstr "suprimir una relación pedido-producto" msgid "add or remove feedback on an order–product relation" msgstr "añadir o eliminar comentarios en una relación pedido-producto" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "No se proporciona ningún término de búsqueda." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Nombre" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Categorías" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Categorías Babosas" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Etiquetas" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Precio mínimo" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Precio máximo" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Está activo" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Marca" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Atributos" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Cantidad" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Babosa" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "Es Digital" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Incluir subcategorías" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Incluir productos personales solicitados" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Búsqueda (ID, nombre del producto o número de pieza)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Comprado después (inclusive)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Comprado antes (inclusive)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "Correo electrónico del usuario" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "UUID de usuario" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Estado" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "Identificación legible" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Padres" -#: core/filters.py:376 +#: core/filters.py:380 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:380 +#: core/filters.py:384 msgid "Level" msgstr "Nivel" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "UUID del producto" @@ -919,7 +923,7 @@ msgstr "Datos en caché" msgid "camelized JSON data from the requested URL" msgstr "Datos JSON camelizados de la URL solicitada" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Sólo se permiten URL que empiecen por http(s)://." @@ -950,7 +954,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Indique order_uuid o order_hr_id, ¡se excluyen mutuamente!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "" "Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}" @@ -1027,9 +1031,9 @@ msgstr "No se ha encontrado el producto {order_product_uuid}." msgid "original address string provided by the user" msgstr "Cadena de dirección original proporcionada por el usuario" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} no existe: ¡{uuid}!" @@ -1043,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Atributos" @@ -1056,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Categorías" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Marcas" @@ -1069,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:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Porcentaje de recargo" @@ -1093,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Vendedores" @@ -1120,7 +1125,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Notificaciones" @@ -1132,7 +1137,7 @@ msgstr "Descargar url para este producto de pedido si procede" 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Dirección de facturación" @@ -1160,7 +1165,7 @@ msgstr "¿Están todos los productos en el pedido digital" msgid "transactions for this order" msgstr "Transacciones para este pedido" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Pedidos" @@ -1172,19 +1177,19 @@ msgstr "URL de la imagen" msgid "product's images" msgstr "Imágenes del producto" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Categoría" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Comentarios" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Marca" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Grupos de atributos" @@ -1212,27 +1217,27 @@ msgstr "Número de reacciones" msgid "only available for personal orders" msgstr "Productos sólo disponibles para pedidos personales" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Productos" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Códigos promocionales" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Productos a la venta" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Promociones" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Vendedor" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1240,649 +1245,645 @@ msgstr "Vendedor" msgid "product" msgstr "Producto" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Productos deseados" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Listas de deseos" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Productos con etiqueta" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Etiquetas del producto" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Categorías" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Etiquetas de las categorías" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Nombre del proyecto" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "Correo electrónico de la empresa" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Nombre de la empresa" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Dirección de la empresa" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Teléfono de la empresa" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "Correo electrónico del usuario anfitrión" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Importe máximo de pago" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Importe mínimo de pago" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Datos analíticos" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Datos publicitarios" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Configuración" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Código de idioma" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Nombre de la lengua" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Bandera de idioma, si existe :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Obtener una lista de los idiomas admitidos" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Resultados de la búsqueda de productos" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Resultados de la búsqueda de productos" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Padre de este grupo" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Grupo de atributos padre" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Nombre del grupo de atributos" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Grupo de atributos" -#: core/models.py:151 +#: core/models.py:155 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:152 +#: core/models.py:156 msgid "authentication info" msgstr "Información de autenticación" -#: core/models.py:157 +#: core/models.py:161 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:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Porcentaje de margen del vendedor" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Nombre de este vendedor" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Nombre del vendedor" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Identificador interno de la etiqueta del producto" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Nombre de la etiqueta" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "Nombre fácil de usar para la etiqueta del producto" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Nombre de la etiqueta" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Etiqueta del producto" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "etiqueta de categoría" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "etiquetas de categoría" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Cargar una imagen que represente esta categoría" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Categoría imagen" -#: core/models.py:353 +#: core/models.py:357 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:362 +#: core/models.py:366 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:363 +#: core/models.py:367 msgid "parent category" msgstr "Categoría de padres" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Nombre de la categoría" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Indique un nombre para esta categoría" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Añadir una descripción detallada para esta categoría" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Descripción de la categoría" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "etiquetas que ayudan a describir o agrupar esta categoría" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Prioridad" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Nombre de esta marca" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Marca" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Cargar un logotipo que represente a esta marca" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Marca pequeña imagen" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Sube un logotipo grande que represente a esta marca" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Gran imagen de marca" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Añadir una descripción detallada de la marca" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Descripción de la marca" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Categorías opcionales a las que se asocia esta marca" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Categorías" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "El vendedor que suministra este producto dispone de" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Proveedor asociado" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Precio final al cliente después de márgenes" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Precio de venta" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "El producto asociado a esta entrada en stock" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Producto asociado" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "El precio pagado al vendedor por este producto" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Precio de compra al vendedor" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Cantidad disponible del producto en stock" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Cantidad en stock" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU asignada por el proveedor para identificar el producto" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "SKU del vendedor" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "Archivo digital asociado a esta acción, si procede" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "Archivo digital" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Entradas en existencias" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Categoría a la que pertenece este producto" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Si lo desea, puede asociar este producto a una marca" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Etiquetas que ayudan a describir o agrupar este producto" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Indica si este producto se entrega digitalmente" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "¿Es digital el producto?" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Proporcionar un nombre que identifique claramente el producto" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Nombre del producto" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Añada una descripción detallada del producto" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Descripción del producto" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Número de pieza de este producto" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Número de pieza" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Unidad de Mantenimiento de Existencias para este producto" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Categoría de este atributo" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Grupo de este atributo" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "Cadena" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Entero" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Flotador" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Booleano" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Matriz" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Objeto" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Tipo del valor del atributo" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Tipo de valor" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Nombre de este atributo" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Nombre del atributo" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atributo" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Atributo de este valor" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "El producto específico asociado al valor de este atributo" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "El valor específico de este atributo" -#: core/models.py:898 +#: core/models.py:902 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:899 +#: core/models.py:903 msgid "image alt text" msgstr "Texto alternativo de la imagen" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Cargar el archivo de imagen para este producto" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Imagen del producto" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Determina el orden de visualización de las imágenes" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Prioridad de visualización" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "El producto que representa esta imagen" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Imágenes de productos" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Porcentaje de descuento para los productos seleccionados" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Porcentaje de descuento" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Proporcione un nombre único para esta promoción" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Nombre de la promoción" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Descripción de la promoción" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Seleccione los productos incluidos en esta promoción" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Productos incluidos" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Promoción" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Productos que el usuario ha marcado como deseados" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "Usuario propietario de esta lista de deseos" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Propietario de Wishlist" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Lista de deseos" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Documental" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Sin resolver" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Dirección del cliente" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Dirección" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Calle" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "Distrito" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "Ciudad" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Región" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Promo code" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "País" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocalización Punto(Longitud, Latitud)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Respuesta JSON completa del geocodificador para esta dirección" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Respuesta JSON almacenada del servicio de geocodificación" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Dirección" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Direcciones" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:1244 +#: core/models.py:1248 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:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Importe fijo del descuento" -#: core/models.py:1251 +#: core/models.py:1255 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:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Porcentaje de descuento" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Fecha de caducidad del promocode" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "Hora de fin de validez" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Fecha a partir de la cual es válido este promocode" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Hora de inicio de validez" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Marca de tiempo de uso" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "Usuario asignado a este promocode si procede" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Usuario asignado" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Promo code" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1890,146 +1891,146 @@ msgstr "" "Sólo debe definirse un tipo de descuento (importe o porcentaje), pero no " "ambos ni ninguno." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "El código promocional ya ha sido utilizado" -#: core/models.py:1322 +#: core/models.py:1326 #, 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:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "La dirección de facturación utilizada para este pedido" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Código promocional aplicado" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "La dirección de envío utilizada para este pedido" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Dirección de envío" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Estado actual del pedido en su ciclo de vida" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Estado del pedido" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 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:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "El usuario que realizó el pedido" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "Usuario" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "Fecha de finalización de la orden" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Comprar tiempo" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "Un identificador legible por el ser humano para la orden" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "ID legible por humanos" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Pida" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "No se pueden añadir productos inactivos al pedido" -#: core/models.py:1495 +#: core/models.py:1503 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:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} ¡no existe con la consulta <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Promocode no existe" -#: core/models.py:1576 +#: core/models.py:1584 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:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "La dirección no existe" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Valor de fuerza no válido" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "No se puede comprar un pedido vacío." -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "No se puede comprar un pedido sin un usuario." -#: core/models.py:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "¡Un usuario sin saldo no puede comprar con saldo!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Fondos insuficientes para completar el pedido" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2037,124 +2038,156 @@ 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:1700 +#: core/models.py:1714 #, 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:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Precio de compra en el momento del pedido" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarios internos para los administradores sobre este producto solicitado" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Comentarios internos" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "Notificaciones a los usuarios" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "Representación JSON de los atributos de este elemento" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Atributos ordenados del producto" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Referencia al pedido principal que contiene este producto" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Orden de los padres" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "El producto específico asociado a esta línea de pedido" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Cantidad de este producto específico en el pedido" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Cantidad de productos" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Estado actual de este producto en el pedido" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Estado de la línea de productos" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "El pedido-producto debe tener un pedido asociado." -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Acción incorrecta especificada para la retroalimentación: ¡{action}!" -#: core/models.py:1922 +#: core/models.py:1959 msgid "you cannot feedback an order which is not received" msgstr "no se puede comentar un pedido no recibido" -#: core/models.py:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Nombre" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "URL de la integración" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Credenciales de autenticación" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "Sólo puede tener un proveedor de CRM por defecto" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRMs" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "Enlace CRM del pedido" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "Enlaces CRM de los pedidos" + +#: core/models.py:2032 msgid "download" msgstr "Descargar" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Descargas" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "Comentarios de los usuarios sobre su experiencia con el producto" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Comentarios" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Producto relacionado con el pedido" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "Valoración del producto asignada por el usuario" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Valoración del producto" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Comentarios" @@ -2165,7 +2198,7 @@ msgstr "" "debe proporcionar un comentario, una valoración y el uuid del producto " "solicitado para añadir comentarios." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Error durante la creación del promocode: {e!s}" @@ -2181,6 +2214,7 @@ msgstr "Confirmación de pedido" #: 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" @@ -2235,6 +2269,7 @@ msgstr "Saludos cordiales,
el equipo %(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 "Todos los derechos reservados" @@ -2243,6 +2278,7 @@ msgid "order delivered" msgstr "Pedido entregado" #: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Hola %(user_first_name)s," @@ -2270,6 +2306,7 @@ msgid "value" msgstr "Valor" #: 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" @@ -2279,6 +2316,7 @@ msgstr "" "servicio de asistencia en %(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 "Saludos cordiales,
el equipo %(project_name)s" @@ -2287,6 +2325,19 @@ msgstr "Saludos cordiales,
el equipo %(project_name)s" msgid "key" msgstr "Clave" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Promocode concedido" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"¡Gracias por quedarte con nosotros! Le hemos concedido un promocode\n" +" para" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2330,21 +2381,26 @@ msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" "Valor de tiempo de espera no válido, debe estar entre 0 y 216000 segundos." -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | contacto iniciado" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Confirmación de pedido" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Pedido entregado" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promocode granted" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "No tiene permiso para realizar esta acción." @@ -2364,15 +2420,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Formato de número de teléfono no válido" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "Sólo puede descargar el activo digital una vez" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "favicon no encontrado" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Error de geocodificación: {e}" diff --git a/core/locale/fr_FR/LC_MESSAGES/django.po b/core/locale/fr_FR/LC_MESSAGES/django.po index 3534c028..4c3cab9f 100644 --- a/core/locale/fr_FR/LC_MESSAGES/django.po +++ b/core/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,82 +51,82 @@ msgstr "Modifié" msgid "when the object was last modified" msgstr "Date de la dernière modification de l'objet" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Traductions" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "Général" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Relations" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Métadonnées" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Horodatage" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activer la %(verbose_name_plural)s sélectionnée" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Les articles sélectionnés ont été activés !" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Désactiver la %(verbose_name_plural)s sélectionnée" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Les articles sélectionnés ont été désactivés !" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Valeur de l'attribut" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Valeurs des attributs" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Image" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Images" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Stock" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Stocks" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Commander un produit" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Commander des produits" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Les enfants" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Config" @@ -794,119 +794,123 @@ msgstr "" "ajouter ou supprimer un retour d'information sur une relation commande-" "produit" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "Aucun terme de recherche n'est fourni." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Nom" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Catégories" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Catégories Limaces" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Tags" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Prix minimum" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Prix maximum" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Est actif" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Marque" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Attributs" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Quantité" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Limace" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "Is Digital" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Inclure des sous-catégories" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Inclure les produits commandés par les particuliers" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Recherche (ID, nom du produit ou numéro de pièce)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Acheté après (inclus)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Acheté avant (inclus)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "Courriel de l'utilisateur" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "UUID de l'utilisateur" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Statut" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "ID lisible par l'homme" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Parent" -#: core/filters.py:376 +#: core/filters.py:380 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:380 +#: core/filters.py:384 msgid "Level" msgstr "Niveau" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "UUID du produit" @@ -930,7 +934,7 @@ msgstr "Données mises en cache" msgid "camelized JSON data from the requested URL" msgstr "Données JSON camélisées provenant de l'URL demandée" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Seuls les URL commençant par http(s):// sont autorisés." @@ -963,7 +967,7 @@ msgstr "" "mutuellement !" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "" "Le mauvais type provient de la méthode order.buy() : {type(instance)!s}" @@ -1043,9 +1047,9 @@ msgstr "Le produit {order_product_uuid} n'a pas été trouvé !" msgid "original address string provided by the user" msgstr "Chaîne d'adresse originale fournie par l'utilisateur" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} n'existe pas : {uuid} !" @@ -1059,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Attributs" @@ -1072,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Catégories" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Marques" @@ -1085,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:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Markup Percentage" @@ -1110,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Vendeurs" @@ -1135,7 +1140,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Notifications" @@ -1147,7 +1152,7 @@ msgstr "URL de téléchargement pour ce produit de la commande, le cas échéant 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Adresse de facturation" @@ -1175,7 +1180,7 @@ msgstr "Tous les produits de la commande sont-ils numériques ?" msgid "transactions for this order" msgstr "Transactions pour cette commande" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Commandes" @@ -1187,19 +1192,19 @@ msgstr "Image URL" msgid "product's images" msgstr "Images du produit" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Catégorie" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Retour d'information" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Marque" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Groupes d'attributs" @@ -1227,27 +1232,27 @@ msgstr "Nombre de retours d'information" msgid "only available for personal orders" msgstr "Produits disponibles uniquement pour les commandes personnelles" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Produits" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Produits en vente" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Vendeur" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1255,653 +1260,649 @@ msgstr "Vendeur" msgid "product" msgstr "Produit" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Produits en liste de souhaits" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Liste de souhaits" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Produits marqués" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Étiquettes du produit" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Catégories marquées" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Tags des catégories" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Nom du projet" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "Courriel de l'entreprise" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Nom de l'entreprise" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Adresse de l'entreprise" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Numéro de téléphone de l'entreprise" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "Utilisateur de l'hôte de messagerie" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Montant maximum du paiement" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Montant minimum pour le paiement" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Données analytiques" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Code langue" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Nom de la langue" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Drapeau linguistique, s'il existe :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Obtenir la liste des langues prises en charge" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Résultats de la recherche de produits" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Résultats de la recherche de produits" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Parent de ce groupe" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Groupe d'attributs parent" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Nom du groupe d'attributs" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Groupe d'attributs" -#: core/models.py:151 +#: core/models.py:155 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:152 +#: core/models.py:156 msgid "authentication info" msgstr "Informations sur l'authentification" -#: core/models.py:157 +#: core/models.py:161 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:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Pourcentage de marge du vendeur" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Nom de ce vendeur" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Nom du vendeur" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Identifiant interne de l'étiquette du produit" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Nom du jour" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "Nom convivial pour l'étiquette du produit" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Nom d'affichage de l'étiquette" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Étiquette du produit" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "étiquette de catégorie" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "balises de catégorie" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Télécharger une image représentant cette catégorie" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Image de catégorie" -#: core/models.py:353 +#: core/models.py:357 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:362 +#: core/models.py:366 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:363 +#: core/models.py:367 msgid "parent category" msgstr "Catégorie de parents" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Nom de la catégorie" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Donnez un nom à cette catégorie" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Ajouter une description détaillée pour cette catégorie" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Description de la catégorie" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "les étiquettes qui aident à décrire ou à regrouper cette catégorie" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Priorité" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Nom de cette marque" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Nom de marque" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Télécharger un logo représentant cette marque" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Petite image de marque" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Télécharger un grand logo représentant cette marque" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Une grande image de marque" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Ajouter une description détaillée de la marque" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Description de la marque" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Catégories facultatives auxquelles cette marque est associée" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Catégories" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "Le vendeur qui fournit ce stock de produits" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Vendeur associé" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Prix final pour le client après majoration" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Prix de vente" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "Le produit associé à cette entrée de stock" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Produit associé" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "Le prix payé au vendeur pour ce produit" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Prix d'achat du vendeur" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Quantité disponible du produit en stock" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Quantité en stock" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU attribué par le fournisseur pour identifier le produit" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "UGS du vendeur" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "Fichier numérique associé à ce stock, le cas échéant" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "Fichier numérique" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Entrées de stock" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Catégorie à laquelle appartient ce produit" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Possibilité d'associer ce produit à une marque" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Étiquettes permettant de décrire ou de regrouper ce produit" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Indique si ce produit est livré numériquement" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "Le produit est-il numérique ?" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Fournir un nom d'identification clair pour le produit" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Nom du produit" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Ajouter une description détaillée du produit" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Description du produit" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Numéro de pièce pour ce produit" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Numéro de pièce" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Unité de gestion des stocks pour ce produit" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Catégorie de cet attribut" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Groupe de cet attribut" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "Chaîne" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Entier" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Flotteur" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Booléen" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Tableau" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Objet" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Type de la valeur de l'attribut" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Type de valeur" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Nom de cet attribut" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Nom de l'attribut" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribut" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Attribut de cette valeur" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "Le produit spécifique associé à la valeur de cet attribut" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "La valeur spécifique de cet attribut" -#: core/models.py:898 +#: core/models.py:902 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:899 +#: core/models.py:903 msgid "image alt text" msgstr "Texte alt de l'image" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Télécharger le fichier image pour ce produit" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Image du produit" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Détermine l'ordre d'affichage des images" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Priorité à l'affichage" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "Le produit que cette image représente" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Images du produit" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Pourcentage de réduction pour les produits sélectionnés" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Pourcentage de réduction" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Donnez un nom unique à cette promotion" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Nom de la promotion" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Sélectionnez les produits inclus dans cette promotion" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Produits inclus" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Promotion" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Produits que l'utilisateur a marqués comme souhaités" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "Utilisateur qui possède cette liste de souhaits" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Propriétaire de la liste de souhaits" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Liste de souhaits" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Documentaire" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Documentaires" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Non résolu" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Ligne d'adresse du client" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Ligne d'adresse" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Rue" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "District" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "Ville" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Région" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Code postal" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "Pays" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Point de géolocalisation (longitude, latitude)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Réponse JSON complète du géocodeur pour cette adresse" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Réponse JSON stockée du service de géocodage" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Adresse" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Adresses" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Identifiant du code promotionnel" -#: core/models.py:1244 +#: core/models.py:1248 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:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Montant de l'escompte fixe" -#: core/models.py:1251 +#: core/models.py:1255 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:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Pourcentage de réduction" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Date d'expiration du code promotionnel" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "Heure de fin de validité" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Date à partir de laquelle ce code promotionnel est valable" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Heure de début de validité" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Horodatage de l'utilisation" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "Utilisateur assigné à ce code promo, le cas échéant" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Utilisateur assigné" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Code promo" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Codes promotionnels" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1909,154 +1910,154 @@ msgstr "" "Un seul type de remise doit être défini (montant ou pourcentage), mais pas " "les deux ni aucun des deux." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "Le code promotionnel a déjà été utilisé" -#: core/models.py:1322 +#: core/models.py:1326 #, 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:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "L'adresse de facturation utilisée pour cette commande" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Code promo optionnel appliqué à cette commande" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Code promo appliqué" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "L'adresse de livraison utilisée pour cette commande" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Adresse de livraison" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Statut actuel de la commande dans son cycle de vie" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Statut de la commande" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "Représentation JSON des attributs de cette commande" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "L'utilisateur qui a passé la commande" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "Utilisateur" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "L'heure à laquelle la commande a été finalisée." -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Temps d'achat" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "Un identifiant lisible par l'homme pour la commande" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "ID lisible par l'homme" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Commande" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "Vous ne pouvez pas ajouter des produits inactifs à la commande" -#: core/models.py:1495 +#: core/models.py:1503 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:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} n'existe pas avec la requête <{query}> !" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Le code promotionnel n'existe pas" -#: core/models.py:1576 +#: core/models.py:1584 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:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "L'adresse n'existe pas" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Valeur de force non valide" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "Vous ne pouvez pas acheter une commande vide !" -#: core/models.py:1644 +#: core/models.py:1652 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:1652 +#: core/models.py:1666 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:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Insuffisance de fonds pour compléter la commande" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2065,7 +2066,7 @@ msgstr "" "informations suivantes : nom du client, courriel du client, numéro de " "téléphone du client" -#: core/models.py:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2073,120 +2074,152 @@ msgstr "" "Méthode de paiement non valide : {payment_method} de " "{available_payment_methods} !" -#: core/models.py:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Prix d'achat au moment de la commande" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "" "Commentaires internes pour les administrateurs sur ce produit commandé" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Commentaires internes" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "Notifications aux utilisateurs" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "Représentation JSON des attributs de cet élément" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Attributs du produit ordonnés" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Référence à l'ordre parent qui contient ce produit" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Ordonnance parentale" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "Le produit spécifique associé à cette ligne de commande" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Quantité de ce produit spécifique dans la commande" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Quantité de produits" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Statut actuel de ce produit dans la commande" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Statut de la ligne de produits" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "Le produit doit être associé à une commande !" -#: core/models.py:1914 +#: core/models.py:1951 #, 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:1922 +#: core/models.py:1959 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:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Nom" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "URL de l'intégration" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Références d'authentification" + +#: core/models.py:1980 +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 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRM" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "Lien CRM de la commande" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "Liens CRM des commandes" + +#: core/models.py:2032 msgid "download" msgstr "Télécharger" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Téléchargements" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "Commentaires des utilisateurs sur leur expérience du produit" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Commentaires" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Produit de commande apparenté" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "Note attribuée par l'utilisateur au produit" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Evaluation du produit" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Retour d'information" @@ -2197,7 +2230,7 @@ msgstr "" "vous devez fournir un commentaire, une note et l'uuid du produit commandé " "pour ajouter un commentaire." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Erreur lors de la création du promocode : {e!s}" @@ -2213,6 +2246,7 @@ msgstr "Confirmation de commande" #: 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" @@ -2268,6 +2302,7 @@ msgstr "Meilleures salutations,
l'équipe %(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 "Tous droits réservés" @@ -2276,6 +2311,7 @@ msgid "order delivered" msgstr "Commande livrée" #: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Bonjour %(user_first_name)s," @@ -2303,6 +2339,7 @@ msgid "value" msgstr "Valeur" #: 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" @@ -2312,6 +2349,7 @@ msgstr "" "d'assistance à %(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 "Meilleures salutations,
l'équipe %(project_name)s" @@ -2320,6 +2358,19 @@ msgstr "Meilleures salutations,
l'équipe %(project_name)s" msgid "key" msgstr "Clé" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Promocode granted" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Merci de rester avec nous ! Nous vous avons accordé un code promo\n" +" pour" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2365,21 +2416,26 @@ msgstr "" "La valeur du délai d'attente n'est pas valide, elle doit être comprise entre" " 0 et 216000 secondes." -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | nous contacter initié" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Confirmation de commande" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Commande livrée" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promocode accordé" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "Vous n'êtes pas autorisé à effectuer cette action." @@ -2399,15 +2455,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Format de numéro de téléphone non valide" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "Vous ne pouvez télécharger le bien numérique qu'une seule fois" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "favicon introuvable" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Erreur de géocodage : {e}" diff --git a/core/locale/hi_IN/LC_MESSAGES/django.po b/core/locale/hi_IN/LC_MESSAGES/django.po index 63dab507..8805d53c 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -49,82 +49,82 @@ msgstr "" msgid "when the object was last modified" msgstr "" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "" @@ -718,117 +718,121 @@ msgstr "" msgid "add or remove feedback on an order–product relation" msgstr "" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "" -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 core/models.py:486 -#: core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "" + +#: core/filters.py:164 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" -#: core/filters.py:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "" @@ -852,7 +856,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -883,7 +887,7 @@ 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:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "" @@ -957,9 +961,9 @@ msgstr "" msgid "original address string provided by the user" msgstr "" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "" @@ -973,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "" @@ -986,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "" @@ -999,7 +1004,7 @@ msgid "category image url" msgstr "" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "" @@ -1019,7 +1024,7 @@ msgstr "" msgid "products in this category" msgstr "" -#: core/graphene/object_types.py:351 core/models.py:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "" @@ -1044,7 +1049,7 @@ msgid "represents feedback from a user." msgstr "" #: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1389 +#: core/models.py:1393 msgid "notifications" msgstr "" @@ -1056,7 +1061,7 @@ msgstr "" msgid "a list of order products in this order" msgstr "" -#: core/graphene/object_types.py:430 core/models.py:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "" @@ -1082,7 +1087,7 @@ msgstr "" msgid "transactions for this order" msgstr "" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "" @@ -1094,19 +1099,19 @@ msgstr "" msgid "product's images" msgstr "" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "" @@ -1134,27 +1139,27 @@ msgstr "" msgid "only available for personal orders" msgstr "" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1162,898 +1167,926 @@ msgstr "" msgid "product" msgstr "" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "" -#: core/models.py:151 +#: core/models.py:155 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -#: core/models.py:152 +#: core/models.py:156 msgid "authentication info" msgstr "" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "" -#: core/models.py:353 +#: core/models.py:357 msgid "define a markup percentage for products in this category" msgstr "" -#: core/models.py:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "" -#: core/models.py:541 core/models.py:859 core/models.py:916 core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 core/models.py:1874 msgid "associated product" msgstr "" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "" -#: core/models.py:681 -msgid "SKU" -msgstr "" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "" -#: core/models.py:1236 +#: core/models.py:1240 msgid "unique code used by a user to redeem a discount" msgstr "" -#: core/models.py:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "" -#: core/models.py:1269 +#: core/models.py:1273 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: core/models.py:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 msgid "json structure of notifications to display to users" msgstr "" -#: core/models.py:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "" -#: core/models.py:1439 +#: core/models.py:1447 msgid "a user must have only one pending order at a time" msgstr "" -#: core/models.py:1473 +#: core/models.py:1481 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: core/models.py:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "" -#: core/models.py:1495 +#: core/models.py:1503 msgid "you cannot add more products than available in stock" msgstr "" -#: core/models.py:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: core/models.py:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "" -#: core/models.py:1576 +#: core/models.py:1584 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: core/models.py:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: core/models.py:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "" -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "" -#: core/models.py:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: core/models.py:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: core/models.py:1802 +#: core/models.py:1839 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: core/models.py:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: core/models.py:1922 +#: core/models.py:1959 msgid "you cannot feedback an order which is not received" msgstr "" -#: core/models.py:1957 -msgid "download" +#: core/models.py:1964 +msgid "name" msgstr "" -#: core/models.py:1958 -msgid "downloads" +#: core/models.py:1965 +msgid "URL of the integration" msgstr "" #: core/models.py:1966 -msgid "you can not download a digital asset for a non-finished order" +msgid "authentication credentials" msgstr "" -#: core/models.py:1996 -msgid "user-provided comments about their experience with the product" +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "" + +#: core/models.py:1984 +msgid "CRM" +msgstr "" + +#: core/models.py:1985 +msgid "CRMs" msgstr "" #: core/models.py:1997 +msgid "order CRM link" +msgstr "" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "" + +#: core/models.py:2032 +msgid "download" +msgstr "" + +#: core/models.py:2033 +msgid "downloads" +msgstr "" + +#: core/models.py:2041 +msgid "you can not download a digital asset for a non-finished order" +msgstr "" + +#: core/models.py:2071 +msgid "user-provided comments about their experience with the product" +msgstr "" + +#: core/models.py:2072 msgid "feedback comments" msgstr "" -#: core/models.py:2004 +#: core/models.py:2079 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: core/models.py:2005 +#: core/models.py:2080 msgid "related order product" msgstr "" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "" @@ -2062,7 +2095,7 @@ msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "" @@ -2078,6 +2111,7 @@ 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" @@ -2129,6 +2163,7 @@ 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 "" @@ -2137,6 +2172,7 @@ 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 "" @@ -2160,6 +2196,7 @@ 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" @@ -2167,6 +2204,7 @@ msgid "" 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 "" @@ -2175,6 +2213,17 @@ msgstr "" 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 "" @@ -2214,21 +2263,26 @@ msgstr "" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "" -#: core/utils/emailing.py:98 +#: 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 "" @@ -2246,15 +2300,15 @@ msgstr "" msgid "invalid phone number format" msgstr "" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "" diff --git a/core/locale/it_IT/LC_MESSAGES/django.po b/core/locale/it_IT/LC_MESSAGES/django.po index 853dbfa4..6c99f522 100644 --- a/core/locale/it_IT/LC_MESSAGES/django.po +++ b/core/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,82 +51,82 @@ msgstr "Modificato" msgid "when the object was last modified" msgstr "Quando l'oggetto è stato modificato per l'ultima volta" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Traduzioni" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "Generale" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Relazioni" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Metadati" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Timestamp" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Attivare il %(verbose_name_plural)s selezionato" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Gli articoli selezionati sono stati attivati!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Disattivare il %(verbose_name_plural)s selezionato" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Gli articoli selezionati sono stati disattivati!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Valore dell'attributo" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Valori degli attributi" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Immagine" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Immagini" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Stock" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Le scorte" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Ordina il prodotto" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Ordinare i prodotti" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "I bambini" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Configurazione" @@ -793,118 +793,122 @@ msgstr "eliminare una relazione ordine-prodotto" msgid "add or remove feedback on an order–product relation" msgstr "aggiungere o rimuovere un feedback su una relazione ordine-prodotto" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "Non è stato fornito alcun termine di ricerca." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Nome" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Categorie" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Categorie Lumache" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Tag" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Prezzo minimo" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Max Price" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "È attivo" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Marchio" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Attributi" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Quantità" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Lumaca" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "È digitale" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Includere le sottocategorie" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Includere prodotti ordinati personalmente" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Ricerca (ID, nome del prodotto o numero di parte)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Acquistato dopo (incluso)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Acquistato prima (compreso)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "Email dell'utente" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "UUID utente" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Stato" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "ID leggibile dall'uomo" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Genitore" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "Intera categoria (con o senza almeno 1 prodotto)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "Livello" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "UUID del prodotto" @@ -928,7 +932,7 @@ msgstr "Dati in cache" msgid "camelized JSON data from the requested URL" msgstr "Dati JSON camelizzati dall'URL richiesto" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Sono consentiti solo gli URL che iniziano con http(s)://" @@ -960,7 +964,7 @@ msgstr "" "Si prega di fornire order_uuid o order_hr_id, che si escludono a vicenda!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "" "Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}" @@ -1037,9 +1041,9 @@ msgstr "Prodotto dell'ordine {order_product_uuid} non trovato!" msgid "original address string provided by the user" msgstr "Stringa di indirizzo originale fornita dall'utente" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} non esiste: {uuid}!" @@ -1053,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Attributi" @@ -1066,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Categorie" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Marche" @@ -1079,7 +1084,7 @@ msgid "category image url" msgstr "Categorie" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Percentuale di markup" @@ -1103,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Venditori" @@ -1128,7 +1133,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Notifiche" @@ -1140,7 +1145,7 @@ msgstr "URL di download per il prodotto dell'ordine, se applicabile" 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Indirizzo di fatturazione" @@ -1168,7 +1173,7 @@ msgstr "Tutti i prodotti sono presenti nell'ordine digitale" msgid "transactions for this order" msgstr "Transazioni per questo ordine" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Ordini" @@ -1180,19 +1185,19 @@ msgstr "URL immagine" msgid "product's images" msgstr "Immagini del prodotto" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Categoria" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Feedback" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Marchio" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Gruppi di attributi" @@ -1220,27 +1225,27 @@ msgstr "Numero di feedback" msgid "only available for personal orders" msgstr "Prodotti disponibili solo per ordini personali" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Prodotti" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Codici promozionali" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Prodotti in vendita" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Promozioni" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Venditore" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: 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,650 +1253,646 @@ msgstr "Venditore" msgid "product" msgstr "Prodotto" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Prodotti desiderati" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Liste dei desideri" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Prodotti contrassegnati" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Tag del prodotto" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Contrassegnato dalle categorie" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Tag delle categorie" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Nome del progetto" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "Email aziendale" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Nome della società" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Indirizzo dell'azienda" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Numero di telefono dell'azienda" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "Utente host dell'e-mail" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Importo massimo per il pagamento" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Importo minimo per il pagamento" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Dati analitici" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Dati pubblicitari" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Configurazione" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Codice lingua" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Nome della lingua" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Bandiera della lingua, se esiste :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Ottenere un elenco delle lingue supportate" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Risultati della ricerca dei prodotti" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Risultati della ricerca dei prodotti" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Genitore di questo gruppo" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Gruppo di attributi padre" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Nome del gruppo di attributi" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Gruppo di attributi" -#: core/models.py:151 +#: core/models.py:155 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:152 +#: core/models.py:156 msgid "authentication info" msgstr "Informazioni sull'autenticazione" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "Definire il markup per i prodotti recuperati da questo fornitore" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Percentuale di ricarico del fornitore" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Nome del fornitore" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Nome del fornitore" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Identificatore interno dell'etichetta del prodotto" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Nome del tag" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "Nome intuitivo per l'etichetta del prodotto" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Nome del tag" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Etichetta del prodotto" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "tag categoria" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "tag di categoria" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Caricare un'immagine che rappresenti questa categoria" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Categoria immagine" -#: core/models.py:353 +#: core/models.py:357 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:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "Genitore di questa categoria per formare una struttura gerarchica" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "Categoria di genitori" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Nome della categoria" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Indicare un nome per questa categoria" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Aggiungere una descrizione dettagliata per questa categoria" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Descrizione della categoria" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "tag che aiutano a descrivere o raggruppare questa categoria" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Priorità" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Nome del marchio" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Nome del marchio" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Caricare un logo che rappresenti questo marchio" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Immagine piccola del marchio" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Caricare un grande logo che rappresenti questo marchio" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Grande immagine del marchio" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Aggiungere una descrizione dettagliata del marchio" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Descrizione del marchio" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Categorie opzionali a cui questo marchio è associato" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Categorie" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "Il venditore che fornisce questo stock di prodotti" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Venditore associato" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Prezzo finale al cliente dopo i ricarichi" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Prezzo di vendita" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "Il prodotto associato a questa voce di magazzino" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Prodotto associato" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "Il prezzo pagato al venditore per questo prodotto" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Prezzo di acquisto del fornitore" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Quantità disponibile del prodotto in magazzino" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Quantità in magazzino" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU assegnato dal fornitore per identificare il prodotto" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "SKU del venditore" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "File digitale associato a questo stock, se applicabile" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "File digitale" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Voci di magazzino" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Categoria a cui appartiene questo prodotto" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Associare facoltativamente questo prodotto a un marchio" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Tag che aiutano a descrivere o raggruppare questo prodotto" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Indica se il prodotto è consegnato in formato digitale" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "Il prodotto è digitale" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Fornire un nome identificativo chiaro per il prodotto" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Nome del prodotto" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Aggiungere una descrizione dettagliata del prodotto" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Descrizione del prodotto" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Numero di parte per questo prodotto" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Numero di parte" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Unità di mantenimento delle scorte per questo prodotto" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Categoria di questo attributo" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Gruppo di questo attributo" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "Stringa" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Intero" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Galleggiante" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Booleano" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Array" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Oggetto" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Tipo di valore dell'attributo" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Tipo di valore" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Nome dell'attributo" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Nome dell'attributo" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attributo" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Attributo di questo valore" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "Il prodotto specifico associato al valore di questo attributo" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "Il valore specifico per questo attributo" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "" "Fornire un testo alternativo per l'immagine ai fini dell'accessibilità." -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "Testo alt dell'immagine" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Caricare il file immagine per questo prodotto" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Immagine del prodotto" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Determina l'ordine di visualizzazione delle immagini" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Priorità del display" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "Il prodotto che questa immagine rappresenta" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Immagini del prodotto" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Percentuale di sconto per i prodotti selezionati" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Percentuale di sconto" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Fornite un nome unico per questa promozione" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Nome della promozione" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Descrizione della promozione" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Selezionare i prodotti inclusi in questa promozione" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Prodotti inclusi" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Promozione" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Prodotti che l'utente ha contrassegnato come desiderati" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "Utente che possiede questa wishlist" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Proprietario della lista dei desideri" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Lista dei desideri" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Documentario" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Documentari" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Non risolto" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Indirizzo del cliente" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Linea di indirizzo" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Via" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "Distretto" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "Città" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Regione" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Codice postale" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "Paese" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Punto di geolocalizzazione(Longitudine, Latitudine)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Risposta JSON completa di geocoder per questo indirizzo" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Risposta JSON memorizzata dal servizio di geocodifica" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Indirizzo" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Indirizzi" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Identificatore del codice promozionale" -#: core/models.py:1244 +#: core/models.py:1248 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:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Importo fisso dello sconto" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "Sconto percentuale applicato se l'importo fisso non viene utilizzato" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Sconto percentuale" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Data di scadenza del codice promozionale" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "Tempo di validità finale" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Data a partire dalla quale il codice promozionale è valido" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Ora di inizio validità" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Timestamp d'uso" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "Utente assegnato a questo codice promozionale, se applicabile" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Utente assegnato" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Codice promozionale" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Codici promozionali" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1899,148 +1900,148 @@ msgstr "" "È necessario definire un solo tipo di sconto (importo o percentuale), ma non" " entrambi o nessuno." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "Il codice promozionale è già stato utilizzato" -#: core/models.py:1322 +#: core/models.py:1326 #, 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:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "L'indirizzo di fatturazione utilizzato per questo ordine" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Codice promozionale opzionale applicato a questo ordine" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Codice promozionale applicato" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "L'indirizzo di spedizione utilizzato per questo ordine" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Indirizzo di spedizione" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Stato attuale dell'ordine nel suo ciclo di vita" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Stato dell'ordine" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "Rappresentazione JSON degli attributi dell'ordine per questo ordine" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "L'utente che ha effettuato l'ordine" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "Utente" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "Il timestamp del momento in cui l'ordine è stato finalizzato" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Acquista tempo" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "Un identificatore leggibile dall'uomo per l'ordine" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "ID leggibile dall'uomo" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Ordine" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "Non è possibile aggiungere all'ordine prodotti inattivi" -#: core/models.py:1495 +#: core/models.py:1503 msgid "you cannot add more products than available in stock" msgstr "" "Non è possibile aggiungere più prodotti di quelli disponibili in magazzino" -#: core/models.py:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} non esiste con la query <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Il codice promozionale non esiste" -#: core/models.py:1576 +#: core/models.py:1584 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:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "L'indirizzo non esiste" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Valore di forza non valido" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "Non è possibile acquistare un ordine vuoto!" -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "Non è possibile acquistare un ordine senza un utente!" -#: core/models.py:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "Un utente senza saldo non può acquistare con il saldo!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Fondi insufficienti per completare l'ordine" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2049,7 +2050,7 @@ msgstr "" "seguenti informazioni: nome del cliente, e-mail del cliente, numero di " "telefono del cliente" -#: core/models.py:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2057,115 +2058,147 @@ msgstr "" "Metodo di pagamento non valido: {payment_method} da " "{available_payment_methods}!" -#: core/models.py:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Prezzo di acquisto al momento dell'ordine" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "Commenti interni per gli amministratori su questo prodotto ordinato" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Commenti interni" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "Notifiche degli utenti" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "Rappresentazione JSON degli attributi di questo elemento" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Attributi del prodotto ordinati" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Riferimento all'ordine padre che contiene questo prodotto" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Ordine dei genitori" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "Il prodotto specifico associato a questa riga d'ordine" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Quantità di questo prodotto specifico nell'ordine" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Quantità di prodotto" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Stato attuale di questo prodotto nell'ordine" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Stato della linea di prodotti" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "L'ordine-prodotto deve avere un ordine associato!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Azione errata specificata per il feedback: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 msgid "you cannot feedback an order which is not received" msgstr "non è possibile dare un riscontro a un ordine non ricevuto" -#: core/models.py:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Nome" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "URL dell'integrazione" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Credenziali di autenticazione" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "È possibile avere un solo provider CRM predefinito" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRM" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "Link al CRM dell'ordine" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "Link al CRM degli ordini" + +#: core/models.py:2032 msgid "download" msgstr "Scaricare" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Scaricamento" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "Commenti degli utenti sulla loro esperienza con il prodotto" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Commenti di feedback" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Prodotto correlato all'ordine" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "Valutazione del prodotto assegnata dall'utente" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Valutazione del prodotto" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Feedback" @@ -2176,7 +2209,7 @@ msgstr "" "per aggiungere un feedback è necessario fornire un commento, una valutazione" " e l'uuid del prodotto dell'ordine." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Errore durante la creazione del codice promozionale: {e!s}" @@ -2192,6 +2225,7 @@ msgstr "Conferma dell'ordine" #: 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" @@ -2247,6 +2281,7 @@ msgstr "Cordiali saluti,
il team %(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 "Tutti i diritti riservati" @@ -2255,6 +2290,7 @@ msgid "order delivered" msgstr "Ordine consegnato" #: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Hello %(user_first_name)s," @@ -2282,6 +2318,7 @@ msgid "value" msgstr "Valore" #: 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" @@ -2291,6 +2328,7 @@ 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 "Cordiali saluti,
il team %(project_name)s" @@ -2299,6 +2337,19 @@ msgstr "Cordiali saluti,
il team %(project_name)s" msgid "key" msgstr "Chiave" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Codice promozionale concesso" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Grazie per essere stati con noi! Vi abbiamo concesso un codice promozionale\n" +" per" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2342,21 +2393,26 @@ msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" "Valore di timeout non valido, deve essere compreso tra 0 e 216000 secondi." -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | contattaci iniziato" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Conferma d'ordine" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Ordine consegnato" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promocode granted" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "Non si ha il permesso di eseguire questa azione." @@ -2376,15 +2432,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Formato del numero di telefono non valido" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "È possibile scaricare l'asset digitale una sola volta" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "favicon non trovata" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Errore di geocodifica: {e}" diff --git a/core/locale/ja_JP/LC_MESSAGES/django.po b/core/locale/ja_JP/LC_MESSAGES/django.po index 235b6df7..9776c1ae 100644 --- a/core/locale/ja_JP/LC_MESSAGES/django.po +++ b/core/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -47,82 +47,82 @@ msgstr "変形" msgid "when the object was last modified" msgstr "オブジェクトの最終編集日時" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "翻訳" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "一般" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "関係" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "メタデータ" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "タイムスタンプ" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "選択した%(verbose_name_plural)sをアクティブにする" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "選択した項目がアクティブになりました!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "選択された%(verbose_name_plural)sを非アクティブにする" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "選択されたアイテムは無効化されました!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "属性値" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "属性値" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "画像" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "画像" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "在庫" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "株式" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "商品のご注文" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "商品のご注文" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "子供たち" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "コンフィグ" @@ -732,117 +732,121 @@ msgstr "注文と商品の関係を削除する" msgid "add or remove feedback on an order–product relation" msgstr "注文と商品の関係に関するフィードバックを追加または削除する。" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "検索語はありません。" -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "ユーユーアイディー" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "名称" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "カテゴリー" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "カテゴリー ナメクジ" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "タグ" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "最低価格" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "最高価格" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "アクティブ" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "ブランド" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "属性" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "数量" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "スラッグ" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "デジタル" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "サブカテゴリーを含む" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "個人注文商品を含む" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "include_subcategoriesフラグを使うには、category_uuidがなければならない。" -#: core/filters.py:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "検索(ID、製品名または部品番号)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "購入時期" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "以前に購入したもの(含む)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "ユーザーEメール" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "ユーザーUUID" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "ステータス" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "人間が読めるID" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "親" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "カテゴリー全体(少なくとも1つの製品があるかどうか)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "レベル" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "製品UUID" @@ -866,7 +870,7 @@ msgstr "キャッシュ・データ" msgid "camelized JSON data from the requested URL" msgstr "リクエストされたURLからキャメル化されたJSONデータ" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "http(s)://で始まるURLのみが許可されます。" @@ -897,7 +901,7 @@ 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:818 +#: 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}。" @@ -971,9 +975,9 @@ msgstr "Orderproduct {order_product_uuid} が見つかりません!" msgid "original address string provided by the user" msgstr "ユーザーが提供したオリジナルのアドレス文字列" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name}は存在しません:{uuid}が存在しません!" @@ -987,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "属性" @@ -1000,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "カテゴリー" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "ブランド" @@ -1013,7 +1018,7 @@ msgid "category image url" msgstr "カテゴリー" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "マークアップ率" @@ -1034,7 +1039,7 @@ msgstr "このカテゴリのタグ" msgid "products in this category" msgstr "このカテゴリの製品" -#: core/graphene/object_types.py:351 core/models.py:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "ベンダー" @@ -1059,7 +1064,7 @@ msgid "represents feedback from a user." msgstr "ユーザーからのフィードバックを表す。" #: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1389 +#: core/models.py:1393 msgid "notifications" msgstr "お知らせ" @@ -1071,7 +1076,7 @@ msgstr "該当する場合は、この注文商品のダウンロードURLを入 msgid "a list of order products in this order" msgstr "注文商品のリスト" -#: core/graphene/object_types.py:430 core/models.py:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "請求先住所" @@ -1097,7 +1102,7 @@ msgstr "ご注文の商品はすべてデジタルですか?" msgid "transactions for this order" msgstr "この注文の取引" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "受注状況" @@ -1109,19 +1114,19 @@ msgstr "画像URL" msgid "product's images" msgstr "製品画像" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "カテゴリー" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "フィードバック" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "ブランド" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "属性グループ" @@ -1149,27 +1154,27 @@ msgstr "フィードバック数" msgid "only available for personal orders" msgstr "個人注文のみの商品" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "製品紹介" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "プロモコード" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "販売商品" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "プロモーション" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "ベンダー" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: 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,900 +1182,928 @@ msgstr "ベンダー" msgid "product" msgstr "製品" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "ウィッシュリスト掲載商品" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "ウィッシュリスト" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "タグ別アーカイブ" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "商品タグ" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "タグ別アーカイブ" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "カテゴリー' タグ" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "プロジェクト名" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "会社Eメール" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "会社名" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "会社住所" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "会社電話番号" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 msgid "email from, sometimes it must be used instead of host user value" msgstr "'email from' は、ホストユーザの値の代わりに使用されることがあります。" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "メールホストユーザー" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "支払限度額" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "最低支払額" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "分析データ" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "広告データ" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "構成" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "言語コード" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "言語名" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "言語フラグがある場合 :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "サポートされている言語のリストを取得する" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "製品検索結果" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "製品検索結果" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "このグループの親" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "親属性グループ" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "属性グループ名" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "属性グループ" -#: core/models.py:151 +#: core/models.py:155 msgid "stores credentials and endpoints required for vendor communication" msgstr "ベンダーのAPI通信に必要な認証情報とエンドポイントを保存する。" -#: core/models.py:152 +#: core/models.py:156 msgid "authentication info" msgstr "認証情報" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "このベンダーから取得した商品のマークアップを定義する。" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "ベンダーのマークアップ率" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "このベンダーの名前" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "ベンダー名" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "商品タグの内部タグ識別子" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "タグ名" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "商品タグのユーザーフレンドリーな名前" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "タグ表示名" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "商品タグ" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "カテゴリタグ" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "カテゴリータグ" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "このカテゴリーを表す画像をアップロードする" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "カテゴリーイメージ" -#: core/models.py:353 +#: core/models.py:357 msgid "define a markup percentage for products in this category" msgstr "このカテゴリの商品のマークアップ率を定義する" -#: core/models.py:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "階層構造を形成するこのカテゴリの親" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "親カテゴリー" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "カテゴリー名" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "このカテゴリの名前を入力してください。" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "このカテゴリの詳細説明を追加する" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "カテゴリー説明" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "このカテゴリーを説明またはグループ化するのに役立つタグ" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "優先順位" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "ブランド名" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "ブランド名" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "このブランドを代表するロゴをアップロードする" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "小さなブランドイメージ" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "このブランドを象徴する大きなロゴをアップロードする" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "大きなブランドイメージ" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "ブランドの詳細な説明を加える" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "ブランド説明" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "このブランドが関連するオプション・カテゴリー" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "カテゴリー" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "この製品の在庫を供給しているベンダー" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "関連ベンダー" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "マークアップ後の顧客への最終価格" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "販売価格" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "このストックエントリーに関連する製品" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "関連製品" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "この製品に対してベンダーに支払われた価格" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "ベンダーの購入価格" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "在庫数" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "在庫数" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "製品を識別するためにベンダーが割り当てたSKU" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "ベンダーのSKU" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "この銘柄に関連するデジタルファイル(該当する場合" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "デジタルファイル" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "ストックエントリー" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "この製品が属するカテゴリ" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "オプションでこの製品をブランドと関連付ける" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "この商品の説明やグループ分けに役立つタグ" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "この製品がデジタル配信されるかどうかを示す" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "製品はデジタルか" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "製品の明確な識別名を提供する" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "商品名" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "商品の詳細説明を追加する" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "商品説明" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "この製品の品番" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "品番" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "この製品の在庫管理単位" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "この属性のカテゴリー" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "この属性のグループ" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "ストリング" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "整数" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "フロート" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "ブーリアン" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "配列" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "対象" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "属性値のタイプ" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "値の種類" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "この属性の名前" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "属性名" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "属性" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "この値の属性" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "この属性の値に関連する特定の製品" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "この属性の具体的な値" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "アクセシビリティのために、画像に代替テキストを提供する。" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "画像のaltテキスト" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "この商品の画像ファイルをアップロードする" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "商品画像" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "画像の表示順を決める" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "表示優先度" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "この画像が表す製品" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "商品画像" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "選択した商品の割引率" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "割引率" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "このプロモーションのユニークな名前を入力してください。" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "プロモーション名" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "プロモーション内容" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "キャンペーン対象商品をお選びください。" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "含まれる製品" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "プロモーション" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "ユーザーが欲しいとマークした商品" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "このウィッシュリストを所有しているユーザー" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "ウィッシュリストのオーナー" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "ウィッシュリスト" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "ドキュメンタリー" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "ドキュメンタリー" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "未解決" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "お客様の住所" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "住所" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "ストリート" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "地区" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "都市" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "地域" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "郵便番号" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "国名" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "ジオロケーションポイント(経度、緯度)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "この住所に対するジオコーダーからの完全なJSON応答" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "ジオコーディング・サービスからの保存されたJSONレスポンス" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "住所" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "住所" -#: core/models.py:1236 +#: core/models.py:1240 msgid "unique code used by a user to redeem a discount" msgstr "ユーザーが割引を利用する際に使用する固有のコード" -#: core/models.py:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "プロモコード識別子" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "パーセントを使用しない場合に適用される固定割引額" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "固定割引額" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "定額を使用しない場合に適用される割引率" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "割引率" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "プロモコードの有効期限が切れるタイムスタンプ" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "終了有効時間" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "このプロモコードが有効なタイムスタンプ" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "開始有効時間" -#: core/models.py:1269 +#: core/models.py:1273 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "プロモコードが使用されたタイムスタンプ、未使用の場合は空白" -#: core/models.py:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "使用タイムスタンプ" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "該当する場合、このプロモコードに割り当てられたユーザー" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "担当ユーザー" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "プロモコード" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "プロモコード" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "割引の種類は1つだけ(金額またはパーセント)定義されるべきで、両方またはどちらも定義してはならない。" -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "プロモコードはすでに使用されています" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "プロモコード {self.uuid} の割引タイプが無効です!" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "この注文に使用される請求先住所" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "この注文に適用されるプロモコード" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "プロモーションコード適用" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "この注文に使用された配送先住所" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "配送先住所" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "ライフサイクルにおける現在の注文状況" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "注文状況" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 msgid "json structure of notifications to display to users" msgstr "ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" -#: core/models.py:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "この注文の注文属性のJSON表現" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "注文を行ったユーザー" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "ユーザー" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "注文が確定したタイムスタンプ" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "時間を買う" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "オーダーの人間が読み取り可能な識別子。" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "人間が読めるID" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "オーダー" -#: core/models.py:1439 +#: core/models.py:1447 msgid "a user must have only one pending order at a time" msgstr "ユーザーは一度に1つの未決注文しか持つことができません!" -#: core/models.py:1473 +#: core/models.py:1481 msgid "you cannot add products to an order that is not a pending one" msgstr "保留中の注文以外の注文に商品を追加することはできません。" -#: core/models.py:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "アクティブでない商品を注文に追加することはできません。" -#: core/models.py:1495 +#: core/models.py:1503 msgid "you cannot add more products than available in stock" msgstr "在庫以上の商品を追加することはできません。" -#: core/models.py:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 msgid "you cannot remove products from an order that is not a pending one" msgstr "保留中の注文以外の注文から商品を削除することはできません。" -#: core/models.py:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name}はクエリ<{query}と一緒に存在しません!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "プロモコードが存在しない" -#: core/models.py:1576 +#: core/models.py:1584 msgid "you can only buy physical products with shipping address specified" msgstr "配送先住所が指定された現物商品のみ購入可能!" -#: core/models.py:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "アドレスが存在しない" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "現在ご購入いただけません。数分後にもう一度お試しください。" -#: core/models.py:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "無効なフォース値" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "空注文はできません!" -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "ユーザーがいない注文は購入できない!" -#: core/models.py:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "残高のないユーザーは、残高で購入することはできない!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "注文を完了するための資金不足" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "ご登録がない場合はご購入いただけませんので、以下の情報をお知らせください:お客様のお名前、お客様のEメール、お客様の電話番号" -#: core/models.py:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "支払方法が無効です:{available_payment_methods}からの{payment_method}が無効です!" -#: core/models.py:1802 +#: core/models.py:1839 msgid "the price paid by the customer for this product at purchase time" msgstr "この商品の購入時に顧客が支払った価格" -#: core/models.py:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "注文時の購入価格" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "この注文商品に関する管理者への内部コメント" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "社内コメント" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "ユーザー通知" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "このアイテムの属性のJSON表現" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "製品属性の順序" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "この商品を含む親注文への参照" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "親注文" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "この注文ラインに関連する特定の製品" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "注文に含まれる特定の商品の数量" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "製品数量" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "この商品の現在のご注文状況" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "製品ラインの状況" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "Orderproductには関連する注文がなければならない!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "フィードバックに指定されたアクションが間違っています:{action}です!" -#: core/models.py:1922 +#: core/models.py:1959 msgid "you cannot feedback an order which is not received" msgstr "受信していない注文をフィードバックすることはできません。" -#: core/models.py:1957 +#: core/models.py:1964 +msgid "name" +msgstr "名称" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "統合のURL" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "認証情報" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "デフォルトのCRMプロバイダーは1つだけです。" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRM" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "注文のCRMリンク" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "オーダーのCRMリンク" + +#: core/models.py:2032 msgid "download" msgstr "ダウンロード" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "ダウンロード" -#: core/models.py:1966 +#: core/models.py:2041 msgid "you can not download a digital asset for a non-finished order" msgstr "未完成の注文のデジタル資産をダウンロードすることはできません。" -#: core/models.py:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "ユーザーから寄せられた製品使用体験に関するコメント" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "フィードバック・コメント" -#: core/models.py:2004 +#: core/models.py:2079 msgid "" "references the specific product in an order that this feedback is about" msgstr "このフィードバックが対象としている注文の特定の製品を参照する。" -#: core/models.py:2005 +#: core/models.py:2080 msgid "related order product" msgstr "関連注文商品" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "ユーザーによる製品の評価" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "製品評価" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "フィードバック" @@ -2079,7 +2112,7 @@ msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "フィードバックを追加するには、コメント、評価、および注文商品の uuid を入力する必要があります。" -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "プロモコード作成中にエラーが発生しました:{e!s}です。" @@ -2095,6 +2128,7 @@ 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" @@ -2145,6 +2179,7 @@ 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 "無断複写・転載を禁じます。" @@ -2153,6 +2188,7 @@ 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、" @@ -2178,6 +2214,7 @@ 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" @@ -2185,6 +2222,7 @@ msgid "" 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チーム" @@ -2193,6 +2231,19 @@ msgstr "よろしくお願いします、
%(project_name)sチーム" 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 "" @@ -2233,21 +2284,26 @@ msgstr "データとタイムアウトの両方が必要" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "無効なタイムアウト値です。" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME}|コンタクト開始| お問い合わせはこちらから" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME}|注文確認| ご注文の確認" -#: core/utils/emailing.py:98 +#: 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 "この操作を行う権限がありません。" @@ -2265,15 +2321,15 @@ msgstr "画像のサイズは w{max_width} x h{max_height} ピクセルを超え msgid "invalid phone number format" msgstr "無効な電話番号形式" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "デジタルアセットのダウンロードは1回限りです。" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "ファビコンが見つかりません" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "ジオコーディングエラー:{e}" diff --git a/core/locale/kk_KZ/LC_MESSAGES/django.po b/core/locale/kk_KZ/LC_MESSAGES/django.po index 63dab507..8805d53c 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -49,82 +49,82 @@ msgstr "" msgid "when the object was last modified" msgstr "" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "" @@ -718,117 +718,121 @@ msgstr "" msgid "add or remove feedback on an order–product relation" msgstr "" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "" -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 core/models.py:486 -#: core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "" + +#: core/filters.py:164 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" -#: core/filters.py:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "" @@ -852,7 +856,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -883,7 +887,7 @@ 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:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "" @@ -957,9 +961,9 @@ msgstr "" msgid "original address string provided by the user" msgstr "" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "" @@ -973,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "" @@ -986,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "" @@ -999,7 +1004,7 @@ msgid "category image url" msgstr "" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "" @@ -1019,7 +1024,7 @@ msgstr "" msgid "products in this category" msgstr "" -#: core/graphene/object_types.py:351 core/models.py:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "" @@ -1044,7 +1049,7 @@ msgid "represents feedback from a user." msgstr "" #: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1389 +#: core/models.py:1393 msgid "notifications" msgstr "" @@ -1056,7 +1061,7 @@ msgstr "" msgid "a list of order products in this order" msgstr "" -#: core/graphene/object_types.py:430 core/models.py:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "" @@ -1082,7 +1087,7 @@ msgstr "" msgid "transactions for this order" msgstr "" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "" @@ -1094,19 +1099,19 @@ msgstr "" msgid "product's images" msgstr "" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "" @@ -1134,27 +1139,27 @@ msgstr "" msgid "only available for personal orders" msgstr "" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1162,898 +1167,926 @@ msgstr "" msgid "product" msgstr "" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "" -#: core/models.py:151 +#: core/models.py:155 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -#: core/models.py:152 +#: core/models.py:156 msgid "authentication info" msgstr "" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "" -#: core/models.py:353 +#: core/models.py:357 msgid "define a markup percentage for products in this category" msgstr "" -#: core/models.py:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "" -#: core/models.py:541 core/models.py:859 core/models.py:916 core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 core/models.py:1874 msgid "associated product" msgstr "" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "" -#: core/models.py:681 -msgid "SKU" -msgstr "" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "" -#: core/models.py:1236 +#: core/models.py:1240 msgid "unique code used by a user to redeem a discount" msgstr "" -#: core/models.py:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "" -#: core/models.py:1269 +#: core/models.py:1273 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: core/models.py:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 msgid "json structure of notifications to display to users" msgstr "" -#: core/models.py:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "" -#: core/models.py:1439 +#: core/models.py:1447 msgid "a user must have only one pending order at a time" msgstr "" -#: core/models.py:1473 +#: core/models.py:1481 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: core/models.py:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "" -#: core/models.py:1495 +#: core/models.py:1503 msgid "you cannot add more products than available in stock" msgstr "" -#: core/models.py:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: core/models.py:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "" -#: core/models.py:1576 +#: core/models.py:1584 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: core/models.py:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: core/models.py:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "" -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "" -#: core/models.py:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: core/models.py:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: core/models.py:1802 +#: core/models.py:1839 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: core/models.py:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: core/models.py:1922 +#: core/models.py:1959 msgid "you cannot feedback an order which is not received" msgstr "" -#: core/models.py:1957 -msgid "download" +#: core/models.py:1964 +msgid "name" msgstr "" -#: core/models.py:1958 -msgid "downloads" +#: core/models.py:1965 +msgid "URL of the integration" msgstr "" #: core/models.py:1966 -msgid "you can not download a digital asset for a non-finished order" +msgid "authentication credentials" msgstr "" -#: core/models.py:1996 -msgid "user-provided comments about their experience with the product" +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "" + +#: core/models.py:1984 +msgid "CRM" +msgstr "" + +#: core/models.py:1985 +msgid "CRMs" msgstr "" #: core/models.py:1997 +msgid "order CRM link" +msgstr "" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "" + +#: core/models.py:2032 +msgid "download" +msgstr "" + +#: core/models.py:2033 +msgid "downloads" +msgstr "" + +#: core/models.py:2041 +msgid "you can not download a digital asset for a non-finished order" +msgstr "" + +#: core/models.py:2071 +msgid "user-provided comments about their experience with the product" +msgstr "" + +#: core/models.py:2072 msgid "feedback comments" msgstr "" -#: core/models.py:2004 +#: core/models.py:2079 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: core/models.py:2005 +#: core/models.py:2080 msgid "related order product" msgstr "" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "" @@ -2062,7 +2095,7 @@ msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "" @@ -2078,6 +2111,7 @@ 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" @@ -2129,6 +2163,7 @@ 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 "" @@ -2137,6 +2172,7 @@ 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 "" @@ -2160,6 +2196,7 @@ 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" @@ -2167,6 +2204,7 @@ msgid "" 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 "" @@ -2175,6 +2213,17 @@ msgstr "" 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 "" @@ -2214,21 +2263,26 @@ msgstr "" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "" -#: core/utils/emailing.py:98 +#: 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 "" @@ -2246,15 +2300,15 @@ msgstr "" msgid "invalid phone number format" msgstr "" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "" diff --git a/core/locale/nl_NL/LC_MESSAGES/django.po b/core/locale/nl_NL/LC_MESSAGES/django.po index 47f09c15..871e2ce0 100644 --- a/core/locale/nl_NL/LC_MESSAGES/django.po +++ b/core/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -49,82 +49,82 @@ msgstr "Gewijzigd" msgid "when the object was last modified" msgstr "Wanneer het object voor het laatst bewerkt is" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Vertalingen" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "Algemeen" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Relaties" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Metagegevens" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Tijdstempels" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activeer geselecteerde %(verbose_name_plural)s" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Geselecteerde items zijn geactiveerd!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactiveer geselecteerd %(verbose_name_plural)s" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Geselecteerde items zijn gedeactiveerd!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Attribuut Waarde" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Attribuutwaarden" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Afbeelding" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Afbeeldingen" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Voorraad" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Aandelen" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Product bestellen" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Producten bestellen" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Kinderen" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Config" @@ -793,118 +793,122 @@ msgstr "een order-productrelatie verwijderen" msgid "add or remove feedback on an order–product relation" msgstr "feedback toevoegen of verwijderen op een order-productrelatie" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "Geen zoekterm opgegeven." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Naam" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Categorieën" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Categorieën Naaktslakken" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Tags" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Min Prijs" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Maximale prijs" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Is actief" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Merk" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Attributen" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Hoeveelheid" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Slak" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "Is digitaal" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Subcategorieën opnemen" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Inclusief persoonlijk bestelde producten" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Zoeken (ID, productnaam of onderdeelnummer)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Gekocht na (inclusief)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Eerder gekocht (inclusief)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "E-mail gebruiker" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "Gebruiker UUID" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Status" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "Menselijk leesbare ID" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Ouder" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "Hele categorie (heeft minstens 1 product of niet)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "Niveau" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "Product UUID" @@ -928,7 +932,7 @@ msgstr "Gecachte gegevens" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-gegevens van de opgevraagde URL" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Alleen URL's die beginnen met http(s):// zijn toegestaan" @@ -959,7 +963,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Geef order_uuid of order_hr_id - wederzijds exclusief!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Verkeerd type kwam uit order.buy() methode: {type(instance)!s}" @@ -1034,9 +1038,9 @@ 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:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} bestaat niet: {uuid}!" @@ -1050,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Attributen" @@ -1063,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Categorieën" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Merken" @@ -1076,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:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Opwaarderingspercentage" @@ -1101,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Verkopers" @@ -1126,7 +1131,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Meldingen" @@ -1138,7 +1143,7 @@ msgstr "Download url voor dit bestelproduct indien van toepassing" 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Factuuradres" @@ -1166,7 +1171,7 @@ msgstr "Zijn alle producten in de bestelling digitaal" msgid "transactions for this order" msgstr "Transacties voor deze bestelling" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Bestellingen" @@ -1178,19 +1183,19 @@ msgstr "Afbeelding URL" msgid "product's images" msgstr "Afbeeldingen van het product" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Categorie" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Reacties" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Merk" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Attribuutgroepen" @@ -1218,27 +1223,27 @@ msgstr "Aantal terugkoppelingen" msgid "only available for personal orders" msgstr "Producten alleen beschikbaar voor persoonlijke bestellingen" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Producten" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Producten te koop" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Promoties" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Verkoper" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1246,652 +1251,648 @@ msgstr "Verkoper" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Gewenste producten" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Verlanglijst" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Getagde producten" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Product tags" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Getagde categorieën" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Categorieën' tags" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Naam project" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "Bedrijf E-mail" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Bedrijfsnaam" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Adres" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Telefoonnummer bedrijf" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "Gebruiker e-mail hosten" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Maximumbedrag voor betaling" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Minimumbedrag voor betaling" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Analytics-gegevens" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Advertentiegegevens" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Configuratie" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Taalcode" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Naam van de taal" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Taalvlag, indien aanwezig :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Een lijst met ondersteunde talen opvragen" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Producten zoekresultaten" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Zoekresultaten" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Ouder van deze groep" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Ouderattribuutgroep" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Naam attribuutgroep" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Attribuutgroep" -#: core/models.py:151 +#: core/models.py:155 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:152 +#: core/models.py:156 msgid "authentication info" msgstr "Authenticatie-info" -#: core/models.py:157 +#: core/models.py:161 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:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Verkoper winstpercentage" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Naam van deze verkoper" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Naam verkoper" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Interne tagidentifier voor de producttag" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Tag naam" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "Gebruiksvriendelijke naam voor de producttag" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Tag weergavenaam" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Productlabel" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "categorie tag" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "categorie tags" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Upload een afbeelding die deze categorie vertegenwoordigt" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Categorie afbeelding" -#: core/models.py:353 +#: core/models.py:357 msgid "define a markup percentage for products in this category" msgstr "Definieer een toeslagpercentage voor producten in deze categorie" -#: core/models.py:362 +#: core/models.py:366 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:363 +#: core/models.py:367 msgid "parent category" msgstr "Oudercategorie" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Naam categorie" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Geef deze categorie een naam" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Voeg een gedetailleerde beschrijving toe voor deze categorie" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Categorie beschrijving" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "tags die deze categorie helpen beschrijven of groeperen" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Prioriteit" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Naam van dit merk" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Merknaam" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Upload een logo dat dit merk vertegenwoordigt" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Klein merkimago" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Upload een groot logo dat dit merk vertegenwoordigt" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Groot merkimago" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Een gedetailleerde beschrijving van het merk toevoegen" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Merknaam" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Optionele categorieën waarmee dit merk wordt geassocieerd" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Categorieën" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "De verkoper die dit product levert" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Geassocieerde verkoper" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Eindprijs voor de klant na winstmarges" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Verkoopprijs" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "Het product dat bij deze voorraadvermelding hoort" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Bijbehorend product" -#: core/models.py:548 +#: core/models.py:552 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:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Aankoopprijs verkoper" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Beschikbare hoeveelheid van het product in voorraad" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Hoeveelheid op voorraad" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "Door de verkoper toegewezen SKU om het product te identificeren" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "Verkoper SKU" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "Digitaal bestand gekoppeld aan deze voorraad indien van toepassing" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "Digitaal bestand" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Voorraadboekingen" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Categorie waartoe dit product behoort" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Dit product optioneel koppelen aan een merk" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Tags die dit product helpen beschrijven of groeperen" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Geeft aan of dit product digitaal wordt geleverd" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "Is product digitaal" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Zorg voor een duidelijke identificerende naam voor het product" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Naam product" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Voeg een gedetailleerde beschrijving van het product toe" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Productbeschrijving" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Onderdeelnummer voor dit product" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Onderdeelnummer" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Voorraadhoudende eenheid voor dit product" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Categorie van dit kenmerk" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Groep van dit kenmerk" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "String" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Integer" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Vlotter" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Booleaans" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Array" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Object" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Type waarde van het kenmerk" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Waardetype" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Naam van dit kenmerk" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Naam attribuut" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribuut" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Attribuut van deze waarde" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "Het specifieke product geassocieerd met de waarde van dit kenmerk" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "De specifieke waarde voor dit kenmerk" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "Geef alternatieve tekst voor de afbeelding voor toegankelijkheid" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "Alt-tekst afbeelding" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Upload het afbeeldingsbestand voor dit product" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Product afbeelding" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Bepaalt de volgorde waarin afbeeldingen worden weergegeven" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Prioriteit weergeven" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "Het product dat deze afbeelding vertegenwoordigt" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Product afbeeldingen" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Kortingspercentage voor de geselecteerde producten" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Kortingspercentage" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Geef deze promotie een unieke naam" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Naam promotie" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Promotie beschrijving" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Selecteer welke producten onder deze promotie vallen" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Meegeleverde producten" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Promotie" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Producten die de gebruiker als gewenst heeft gemarkeerd" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "Gebruiker die eigenaar is van deze verlanglijst" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Eigenaar verlanglijstje" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Verlanglijst" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Documentaire" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Documentaires" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Onopgelost" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Adresregel voor de klant" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Adresregel" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Straat" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "District" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "Stad" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Regio" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Postcode" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "Land" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocatie Punt (lengtegraad, breedtegraad)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Volledig JSON-antwoord van geocoder voor dit adres" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Opgeslagen JSON-antwoord van de geocoderingsservice" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Adres" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Adressen" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Promo code identificatie" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "" "Vast kortingsbedrag dat wordt toegepast als percentage niet wordt gebruikt" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Vast kortingsbedrag" -#: core/models.py:1251 +#: core/models.py:1255 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:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Kortingspercentage" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Tijdstempel wanneer de promocode verloopt" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "Geldigheidsduur einde" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Tijdstempel vanaf wanneer deze promocode geldig is" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Begin geldigheidsduur" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Gebruik tijdstempel" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "Gebruiker toegewezen aan deze promocode indien van toepassing" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Toegewezen gebruiker" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Kortingscode" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Actiecodes" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1899,150 +1900,150 @@ msgstr "" "Er moet slechts één type korting worden gedefinieerd (bedrag of percentage)," " maar niet beide of geen van beide." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "Promocode is al gebruikt" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ongeldig kortingstype voor promocode {self.uuid}!" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "Het factuuradres dat voor deze bestelling is gebruikt" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Optionele promotiecode toegepast op deze bestelling" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Kortingscode toegepast" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "Het verzendadres dat voor deze bestelling is gebruikt" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Verzendadres" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Huidige status van de order in zijn levenscyclus" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Bestelstatus" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "JSON-weergave van bestelattributen voor deze bestelling" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "De gebruiker die de bestelling heeft geplaatst" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "Gebruiker" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "De tijdstempel waarop de bestelling is afgerond" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Tijd kopen" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "Een menselijk leesbare identificatiecode voor de bestelling" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "menselijk leesbare ID" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Bestel" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "U kunt geen inactieve producten toevoegen aan uw bestelling" -#: core/models.py:1495 +#: core/models.py:1503 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:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} bestaat niet met query <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Promocode bestaat niet" -#: core/models.py:1576 +#: core/models.py:1584 msgid "you can only buy physical products with shipping address specified" msgstr "Je kunt alleen fysieke producten kopen met opgegeven verzendadres!" -#: core/models.py:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "Adres bestaat niet" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Ongeldige krachtwaarde" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "Je kunt geen lege bestelling kopen!" -#: core/models.py:1644 +#: core/models.py:1652 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:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "Een gebruiker zonder saldo kan niet kopen met saldo!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Onvoldoende fondsen om de bestelling te voltooien" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2050,7 +2051,7 @@ msgstr "" "u niet kunt kopen zonder registratie, geef dan de volgende informatie: " "klantnaam, e-mail klant, telefoonnummer klant" -#: core/models.py:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2058,118 +2059,150 @@ msgstr "" "Ongeldige betalingsmethode: {payment_method} van " "{available_payment_methods}!" -#: core/models.py:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Aankoopprijs bij bestelling" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "Interne opmerkingen voor beheerders over dit bestelde product" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Interne opmerkingen" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "Meldingen van gebruikers" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "JSON weergave van de attributen van dit item" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Geordende producteigenschappen" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Verwijzing naar de bovenliggende bestelling die dit product bevat" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Ouderlijk bevel" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "Het specifieke product dat bij deze bestelregel hoort" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Hoeveelheid van dit specifieke product in de bestelling" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Hoeveelheid product" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Huidige status van dit product in de bestelling" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Status productlijn" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "Orderproduct moet een bijbehorende order hebben!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Verkeerde actie opgegeven voor feedback: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 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:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Naam" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "URL van de integratie" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Authenticatiegegevens" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "Je kunt maar één standaard CRM-provider hebben" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRM's" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "CRM link van bestelling" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "CRM-koppelingen voor bestellingen" + +#: core/models.py:2032 msgid "download" msgstr "Downloaden" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Downloads" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "Opmerkingen van gebruikers over hun ervaring met het product" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Reacties" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Gerelateerd product bestellen" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "Door de gebruiker toegekende waardering voor het product" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Productbeoordeling" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Feedback" @@ -2180,7 +2213,7 @@ msgstr "" "Om feedback toe te voegen, moet je een opmerking, beoordeling en " "productidentificatie opgeven." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Fout tijdens aanmaken promocode: {e!s}" @@ -2196,6 +2229,7 @@ msgstr "Orderbevestiging" #: 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" @@ -2251,6 +2285,7 @@ msgstr "Vriendelijke groeten,
het %(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 "Alle rechten voorbehouden" @@ -2259,6 +2294,7 @@ msgid "order delivered" msgstr "Bestelling geleverd" #: 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," @@ -2286,6 +2322,7 @@ msgid "value" msgstr "Waarde" #: 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" @@ -2295,6 +2332,7 @@ 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 "Vriendelijke groeten,
het %(project_name)s team" @@ -2303,6 +2341,19 @@ msgstr "Vriendelijke groeten,
het %(project_name)s team" msgid "key" msgstr "Sleutel" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Promocode toegekend" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Bedankt dat je bij ons bent gebleven! We hebben u een promocode\n" +" voor" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2346,21 +2397,26 @@ msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" "Ongeldige time-outwaarde, deze moet tussen 0 en 216000 seconden liggen" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | neem contact met ons op" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Orderbevestiging" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Bestelling afgeleverd" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promocode toegekend" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "U hebt geen toestemming om deze actie uit te voeren." @@ -2380,15 +2436,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Ongeldig formaat telefoonnummer" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "U kunt het digitale goed maar één keer downloaden" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "favicon niet gevonden" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Fout bij geocodering: {e}" diff --git a/core/locale/pl_PL/LC_MESSAGES/django.po b/core/locale/pl_PL/LC_MESSAGES/django.po index 941f62f3..b36d1891 100644 --- a/core/locale/pl_PL/LC_MESSAGES/django.po +++ b/core/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,82 +51,82 @@ msgstr "Zmodyfikowany" msgid "when the object was last modified" msgstr "Kiedy obiekt był ostatnio edytowany" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Tłumaczenia" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "Ogólne" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Relacje" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Metadane" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Znaczniki czasu" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktywuj wybrane %(verbose_name_plural)s" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Wybrane elementy zostały aktywowane!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Dezaktywacja wybranego %(verbose_name_plural)s" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Wybrane elementy zostały dezaktywowane!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Wartość atrybutu" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Wartości atrybutów" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Obraz" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Obrazy" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Stan magazynowy" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Akcje" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Zamów produkt" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Zamawianie produktów" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Dzieci" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Konfiguracja" @@ -786,117 +786,121 @@ msgstr "usunąć relację zamówienie-produkt" msgid "add or remove feedback on an order–product relation" msgstr "dodawanie lub usuwanie opinii na temat relacji zamówienie-produkt" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "Nie podano wyszukiwanego hasła." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Nazwa" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Kategorie" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Kategorie Ślimaki" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Tagi" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Cena minimalna" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Maksymalna cena" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Jest aktywny" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Marka" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Atrybuty" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Ilość" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Ślimak" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "Czy cyfrowy" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Uwzględnienie podkategorii" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Obejmuje produkty zamawiane osobiście" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Wyszukiwanie (ID, nazwa produktu lub numer części)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Kupione po (włącznie)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Kupione wcześniej (włącznie)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "E-mail użytkownika" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "UUID użytkownika" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Status" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "Identyfikator czytelny dla człowieka" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Rodzic" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "Cała kategoria (ma co najmniej 1 produkt lub nie)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "Poziom" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "UUID produktu" @@ -920,7 +924,7 @@ msgstr "Dane w pamięci podręcznej" msgid "camelized JSON data from the requested URL" msgstr "Kamelizowane dane JSON z żądanego adresu URL" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Dozwolone są tylko adresy URL zaczynające się od http(s)://" @@ -951,7 +955,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Podaj albo order_uuid albo order_hr_id - wzajemnie się wykluczają!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Nieprawidłowy typ pochodzi z metody order.buy(): {type(instance)!s}" @@ -1027,9 +1031,9 @@ msgstr "Orderproduct {order_product_uuid} nie został znaleziony!" msgid "original address string provided by the user" msgstr "Oryginalny ciąg adresu podany przez użytkownika" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} nie istnieje: {uuid}!" @@ -1043,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Atrybuty" @@ -1056,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Kategorie" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Marki" @@ -1069,7 +1074,7 @@ msgid "category image url" msgstr "Kategorie" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Procentowy narzut" @@ -1092,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Sprzedawcy" @@ -1117,7 +1122,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Powiadomienia" @@ -1129,7 +1134,7 @@ msgstr "Adres URL pobierania dla tego produktu zamówienia, jeśli dotyczy" 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Adres rozliczeniowy" @@ -1157,7 +1162,7 @@ msgstr "Czy wszystkie produkty w zamówieniu są cyfrowe?" msgid "transactions for this order" msgstr "Transakcje dla tego zamówienia" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Zamówienia" @@ -1169,19 +1174,19 @@ msgstr "Adres URL obrazu" msgid "product's images" msgstr "Zdjęcia produktu" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Kategoria" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Informacje zwrotne" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Marka" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Grupy atrybutów" @@ -1209,27 +1214,27 @@ msgstr "Liczba informacji zwrotnych" msgid "only available for personal orders" msgstr "Produkty dostępne tylko dla zamówień osobistych" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Produkty" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Produkty w sprzedaży" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Promocje" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Sprzedawca" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1237,647 +1242,643 @@ msgstr "Sprzedawca" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Produkty z listy życzeń" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Listy życzeń" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Produkty Tagged" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Tagi produktu" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Kategorie oznaczone tagami" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Tagi kategorii" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Nazwa projektu" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "Firmowy adres e-mail" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Nazwa firmy" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Adres firmy" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Numer telefonu firmy" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "Użytkownik hosta poczty e-mail" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Maksymalna kwota płatności" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Minimalna kwota płatności" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Dane analityczne" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Dane reklamowe" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Konfiguracja" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Kod języka" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Nazwa języka" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Flaga języka, jeśli istnieje :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Pobierz listę obsługiwanych języków" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Wyniki wyszukiwania produktów" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Wyniki wyszukiwania produktów" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Rodzic tej grupy" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Grupa atrybutów nadrzędnych" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Nazwa grupy atrybutów" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Grupa atrybutów" -#: core/models.py:151 +#: core/models.py:155 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:152 +#: core/models.py:156 msgid "authentication info" msgstr "Informacje o uwierzytelnianiu" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "Definiowanie znaczników dla produktów pobranych od tego dostawcy" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Procentowa marża sprzedawcy" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Nazwa tego sprzedawcy" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Nazwa sprzedawcy" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Wewnętrzny identyfikator tagu produktu" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Nazwa tagu" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "Przyjazna dla użytkownika nazwa etykiety produktu" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Wyświetlana nazwa znacznika" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Etykieta produktu" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "tag kategorii" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "tagi kategorii" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Prześlij obraz reprezentujący tę kategorię" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Obraz kategorii" -#: core/models.py:353 +#: core/models.py:357 msgid "define a markup percentage for products in this category" msgstr "Zdefiniuj procentowy narzut dla produktów w tej kategorii." -#: core/models.py:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "Rodzic tej kategorii w celu utworzenia struktury hierarchicznej" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "Kategoria nadrzędna" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Nazwa kategorii" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Podaj nazwę dla tej kategorii" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Dodaj szczegółowy opis dla tej kategorii" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Opis kategorii" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "tagi, które pomagają opisać lub pogrupować tę kategorię" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Priorytet" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Nazwa tej marki" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Nazwa marki" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Prześlij logo reprezentujące tę markę" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Mały wizerunek marki" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Prześlij duże logo reprezentujące tę markę" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Duży wizerunek marki" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Dodaj szczegółowy opis marki" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Opis marki" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Opcjonalne kategorie, z którymi powiązana jest ta marka" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Kategorie" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "Sprzedawca dostarczający ten produkt" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Powiązany sprzedawca" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Ostateczna cena dla klienta po uwzględnieniu marży" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Cena sprzedaży" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "Produkt powiązany z tym wpisem magazynowym" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Produkt powiązany" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "Cena zapłacona sprzedawcy za ten produkt" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Cena zakupu przez sprzedawcę" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Dostępna ilość produktu w magazynie" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Ilość w magazynie" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "Jednostki SKU przypisane przez dostawcę w celu identyfikacji produktu" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "SKU sprzedawcy" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "Plik cyfrowy powiązany z tymi zapasami, jeśli dotyczy" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "Plik cyfrowy" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Zapisy magazynowe" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Kategoria, do której należy ten produkt" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Opcjonalnie można powiązać ten produkt z marką" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Tagi, które pomagają opisać lub pogrupować ten produkt" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Wskazuje, czy produkt jest dostarczany cyfrowo." -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "Czy produkt jest cyfrowy?" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Wyraźna nazwa identyfikująca produkt" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Nazwa produktu" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Dodaj szczegółowy opis produktu" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Opis produktu" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Numer części dla tego produktu" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Numer części" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Jednostka magazynowa dla tego produktu" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Kategoria tego atrybutu" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Grupa tego atrybutu" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "String" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Integer" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Pływak" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Wartość logiczna" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Tablica" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Obiekt" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Typ wartości atrybutu" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Typ wartości" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Nazwa tego atrybutu" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Nazwa atrybutu" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atrybut" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Atrybut tej wartości" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "Konkretny produkt powiązany z wartością tego atrybutu" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "Konkretna wartość dla tego atrybutu" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "" "Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "Tekst alternatywny obrazu" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Prześlij plik obrazu dla tego produktu" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Obraz produktu" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Określa kolejność wyświetlania obrazów" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Priorytet wyświetlania" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "Produkt, który przedstawia ten obraz" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Zdjęcia produktów" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Rabat procentowy na wybrane produkty" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Procent rabatu" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Podaj unikalną nazwę tej promocji" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Nazwa promocji" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Opis promocji" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Wybierz produkty objęte promocją" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Dołączone produkty" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Promocja" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Produkty, które użytkownik oznaczył jako poszukiwane" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "Użytkownik posiadający tę listę życzeń" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Właściciel listy życzeń" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Lista życzeń" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Film dokumentalny" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Filmy dokumentalne" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Nierozwiązany" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Linia adresu dla klienta" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Linia adresowa" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "ul." -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "Okręg" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "Miasto" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Region" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Kod pocztowy" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "Kraj" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Pełna odpowiedź JSON z geokodera dla tego adresu" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Przechowywana odpowiedź JSON z usługi geokodowania" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Adres" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Adresy" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Identyfikator kodu promocyjnego" -#: core/models.py:1244 +#: core/models.py:1248 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:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Stała kwota rabatu" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "Rabat procentowy stosowany w przypadku niewykorzystania stałej kwoty" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Rabat procentowy" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Znacznik czasu wygaśnięcia kodu promocyjnego" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "Końcowy czas ważności" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Znacznik czasu, od którego ten kod promocyjny jest ważny" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Czas rozpoczęcia ważności" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Znacznik czasu użycia" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "Użytkownik przypisany do tego kodu promocyjnego, jeśli dotyczy" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Przypisany użytkownik" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Kod promocyjny" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Kody promocyjne" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1885,151 +1886,151 @@ msgstr "" "Należy zdefiniować tylko jeden rodzaj rabatu (kwotowy lub procentowy), ale " "nie oba lub żaden z nich." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "Kod promocyjny został już wykorzystany" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Nieprawidłowy typ rabatu dla kodu promocyjnego {self.uuid}!" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "Adres rozliczeniowy użyty dla tego zamówienia" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Opcjonalny kod promocyjny zastosowany do tego zamówienia" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Zastosowany kod promocyjny" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "Adres wysyłki użyty dla tego zamówienia" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Adres wysyłki" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Aktualny status zamówienia w jego cyklu życia" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Status zamówienia" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "Reprezentacja JSON atrybutów zamówienia dla tego zamówienia" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "Użytkownik, który złożył zamówienie" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "Użytkownik" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "Znacznik czasu, kiedy zamówienie zostało sfinalizowane" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Kup czas" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "Czytelny dla człowieka identyfikator zamówienia" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "Identyfikator czytelny dla człowieka" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Zamówienie" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "Nie można dodać nieaktywnych produktów do zamówienia" -#: core/models.py:1495 +#: core/models.py:1503 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:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nie istnieje z zapytaniem <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Kod promocyjny nie istnieje" -#: core/models.py:1576 +#: core/models.py:1584 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:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "Adres nie istnieje" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Nieprawidłowa wartość siły" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "Nie można kupić pustego zamówienia!" -#: core/models.py:1644 +#: core/models.py:1652 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:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "Użytkownik bez salda nie może kupować za saldo!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Niewystarczające środki do zrealizowania zamówienia" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2038,7 +2039,7 @@ msgstr "" "informacje: imię i nazwisko klienta, adres e-mail klienta, numer telefonu " "klienta." -#: core/models.py:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2046,119 +2047,151 @@ msgstr "" "Nieprawidłowa metoda płatności: {payment_method} z " "{available_payment_methods}!" -#: core/models.py:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Cena zakupu w momencie zamówienia" -#: core/models.py:1808 +#: core/models.py:1845 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:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Uwagi wewnętrzne" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "Powiadomienia użytkownika" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "Reprezentacja JSON atrybutów tego elementu" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Zamówione atrybuty produktu" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Odniesienie do zamówienia nadrzędnego zawierającego ten produkt" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Zamówienie nadrzędne" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "Konkretny produkt powiązany z tą linią zamówienia" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Ilość tego konkretnego produktu w zamówieniu" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Ilość produktu" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Aktualny status tego produktu w zamówieniu" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Status linii produktów" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "Orderproduct musi mieć powiązane zamówienie!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Nieprawidłowa akcja określona dla informacji zwrotnej: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 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:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Nazwa" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "Adres URL integracji" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Dane uwierzytelniające" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "Można mieć tylko jednego domyślnego dostawcę CRM" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRM" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "Łącze CRM zamówienia" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "Łącza CRM zamówień" + +#: core/models.py:2032 msgid "download" msgstr "Pobierz" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Pliki do pobrania" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 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:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Komentarze zwrotne" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Powiązany produkt zamówienia" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "Ocena produktu przypisana przez użytkownika" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Ocena produktu" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Informacje zwrotne" @@ -2169,7 +2202,7 @@ msgstr "" "Aby dodać opinię, należy podać komentarz, ocenę i identyfikator produktu " "zamówienia." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Błąd podczas tworzenia kodu promocyjnego: {e!s}" @@ -2185,6 +2218,7 @@ msgstr "Potwierdzenie zamówienia" #: 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" @@ -2240,6 +2274,7 @@ msgstr "Najlepsze pozdrowienia,
zespół %(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 "Wszelkie prawa zastrzeżone" @@ -2248,6 +2283,7 @@ msgid "order delivered" msgstr "Zamówienie dostarczone" #: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Witaj %(user_first_name)s," @@ -2275,6 +2311,7 @@ msgid "value" msgstr "Wartość" #: 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" @@ -2284,6 +2321,7 @@ msgstr "" "technicznej pod adresem %(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 "Najlepsze pozdrowienia,
zespół %(project_name)s" @@ -2292,6 +2330,19 @@ msgstr "Najlepsze pozdrowienia,
zespół %(project_name)s" msgid "key" msgstr "Klucz" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Przyznany kod promocyjny" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Dziękujemy za pozostanie z nami! Otrzymałeś od nas kod promocyjny\n" +" na" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2336,21 +2387,26 @@ msgstr "" "Nieprawidłowa wartość limitu czasu, musi zawierać się w przedziale od 0 do " "216000 sekund." -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | zainicjowany kontakt" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Potwierdzenie zamówienia" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Zamówienie dostarczone" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | przyznany kod promocyjny" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "Nie masz uprawnień do wykonania tej akcji." @@ -2369,15 +2425,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Nieprawidłowy format numeru telefonu" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "Zasób cyfrowy można pobrać tylko raz" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "nie znaleziono favicon" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Błąd geokodowania: {e}" diff --git a/core/locale/pt_BR/LC_MESSAGES/django.po b/core/locale/pt_BR/LC_MESSAGES/django.po index c38a84f7..82783fc2 100644 --- a/core/locale/pt_BR/LC_MESSAGES/django.po +++ b/core/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,82 +51,82 @@ msgstr "Modificado" msgid "when the object was last modified" msgstr "Quando o objeto foi editado pela última vez" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Traduções" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "Geral" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Relações" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Metadados" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Carimbos de data/hora" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Ativar o %(verbose_name_plural)s selecionado" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Os itens selecionados foram ativados!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Desativar o %(verbose_name_plural)s selecionado" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Os itens selecionados foram desativados!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Valor do atributo" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Valores de atributos" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Imagem" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Imagens" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Estoque" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Ações" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Pedido de produto" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Solicitar produtos" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Crianças" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Configuração" @@ -777,118 +777,122 @@ msgstr "excluir uma relação pedido-produto" msgid "add or remove feedback on an order–product relation" msgstr "adicionar ou remover feedback em uma relação pedido-produto" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "Nenhum termo de pesquisa foi fornecido." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Nome" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Categorias" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Categorias Lesmas" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Tags" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Preço mínimo" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Preço máximo" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Está ativo" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Brand" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Atributos" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Quantidade" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Lesma" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "É digital" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Incluir subcategorias" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Incluir produtos pessoais encomendados" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Pesquisa (ID, nome do produto ou número de peça)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Comprado depois (inclusive)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Comprado antes (inclusive)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "E-mail do usuário" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "UUID do usuário" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Status" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "ID legível por humanos" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Parent" -#: core/filters.py:376 +#: core/filters.py:380 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:380 +#: core/filters.py:384 msgid "Level" msgstr "Nível" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "UUID do produto" @@ -912,7 +916,7 @@ msgstr "Dados em cache" msgid "camelized JSON data from the requested URL" msgstr "Dados JSON camelizados da URL solicitada" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Somente URLs que começam com http(s):// são permitidos" @@ -943,7 +947,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Forneça order_uuid ou order_hr_id - mutuamente exclusivos!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "O tipo errado veio do método order.buy(): {type(instance)!s}" @@ -1018,9 +1022,9 @@ msgstr "Orderproduct {order_product_uuid} não encontrado!" msgid "original address string provided by the user" msgstr "Cadeia de endereços original fornecida pelo usuário" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} não existe: {uuid}!" @@ -1034,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Atributos" @@ -1047,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Categorias" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Marcas" @@ -1060,7 +1065,7 @@ msgid "category image url" msgstr "Categorias" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Porcentagem de marcação" @@ -1082,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Vendors" @@ -1108,7 +1113,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Notificações" @@ -1120,7 +1125,7 @@ msgstr "URL de download para este produto do pedido, se aplicável" 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Endereço de cobrança" @@ -1148,7 +1153,7 @@ msgstr "Todos os produtos estão no pedido digital?" msgid "transactions for this order" msgstr "Transações para esta ordem" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Pedidos" @@ -1160,19 +1165,19 @@ msgstr "URL da imagem" msgid "product's images" msgstr "Imagens do produto" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Categoria" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Grupos de atributos" @@ -1200,27 +1205,27 @@ msgstr "Número de feedbacks" msgid "only available for personal orders" msgstr "Produtos disponíveis apenas para pedidos pessoais" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Produtos" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Códigos promocionais" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Produtos à venda" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Promoções" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1228,649 +1233,645 @@ msgstr "Vendor" msgid "product" msgstr "Produto" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Produtos da lista de desejos" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Listas de desejos" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Produtos marcados" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Etiquetas do produto" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Categorias de tags" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Tags das categorias" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Nome do projeto" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "E-mail da empresa" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Nome da empresa" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Endereço da empresa" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Número de telefone da empresa" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "Usuário do host de e-mail" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Valor máximo para pagamento" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Valor mínimo para pagamento" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Dados analíticos" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Dados do anúncio" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Configuração" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Código do idioma" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Nome do idioma" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Sinalizador de idioma, se houver :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Obter uma lista de idiomas suportados" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Resultados da pesquisa de produtos" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Resultados da pesquisa de produtos" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Pai deste grupo" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Grupo de atributos pai" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Nome do grupo de atributos" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Grupo de atributos" -#: core/models.py:151 +#: core/models.py:155 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:152 +#: core/models.py:156 msgid "authentication info" msgstr "Informações de autenticação" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "Definir a marcação para produtos recuperados desse fornecedor" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Porcentagem da margem de lucro do fornecedor" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Nome do fornecedor" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Nome do fornecedor" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Identificador de tag interno para a tag do produto" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Nome da etiqueta" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "Nome de fácil utilização para a etiqueta do produto" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Nome de exibição da tag" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Etiqueta do produto" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "tag de categoria" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "tags de categoria" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Faça upload de uma imagem que represente essa categoria" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Imagem da categoria" -#: core/models.py:353 +#: core/models.py:357 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:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "Pai dessa categoria para formar uma estrutura hierárquica" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "Categoria dos pais" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Nome da categoria" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Forneça um nome para essa categoria" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Adicione uma descrição detalhada para essa categoria" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Descrição da categoria" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "tags que ajudam a descrever ou agrupar essa categoria" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Prioridade" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Nome da marca" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Nome da marca" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Faça upload de um logotipo que represente essa marca" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Imagem pequena da marca" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Faça upload de um logotipo grande que represente essa marca" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Imagem de marca grande" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Adicione uma descrição detalhada da marca" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Descrição da marca" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Categorias opcionais às quais essa marca está associada" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Categorias" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "O fornecedor que fornece esse estoque de produtos" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Fornecedor associado" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Preço final para o cliente após as marcações" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Preço de venda" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "O produto associado a essa entrada em estoque" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Produto associado" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "O preço pago ao fornecedor por esse produto" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Preço de compra do fornecedor" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Quantidade disponível do produto em estoque" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Quantidade em estoque" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU atribuído pelo fornecedor para identificar o produto" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "SKU do fornecedor" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "Arquivo digital associado a esse estoque, se aplicável" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "Arquivo digital" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Entradas de estoque" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Categoria à qual este produto pertence" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Opcionalmente, associe esse produto a uma marca" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Tags que ajudam a descrever ou agrupar este produto" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Indica se esse produto é entregue digitalmente" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "O produto é digital" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Fornecer um nome de identificação claro para o produto" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Nome do produto" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Adicione uma descrição detalhada do produto" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Descrição do produto" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Número de peça para este produto" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Número da peça" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Unidade de Manutenção de Estoque para este produto" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Categoria desse atributo" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Grupo desse atributo" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "Cordas" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Inteiro" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Flutuação" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Booleano" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Matriz" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Objeto" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Tipo do valor do atributo" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Tipo de valor" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Nome desse atributo" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Nome do atributo" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atributo" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Atributo desse valor" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "O produto específico associado ao valor desse atributo" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "O valor específico para esse atributo" -#: core/models.py:898 +#: core/models.py:902 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:899 +#: core/models.py:903 msgid "image alt text" msgstr "Texto alternativo da imagem" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Faça o upload do arquivo de imagem para este produto" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Imagem do produto" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Determina a ordem em que as imagens são exibidas" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Prioridade de exibição" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "O produto que esta imagem representa" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Imagens do produto" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Desconto percentual para os produtos selecionados" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Porcentagem de desconto" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Forneça um nome exclusivo para essa promoção" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Nome da promoção" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Descrição da promoção" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Selecione quais produtos estão incluídos nessa promoção" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Produtos incluídos" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Promoção" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Produtos que o usuário marcou como desejados" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "Usuário que possui esta lista de desejos" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Proprietário da lista de desejos" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Lista de desejos" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Documentário" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Documentários" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Não resolvido" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Linha de endereço do cliente" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Linha de endereço" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Rua" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "Distrito" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "Cidade" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Região" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Código postal" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "País" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Ponto de geolocalização (Longitude, Latitude)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Resposta JSON completa do geocodificador para este endereço" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Resposta JSON armazenada do serviço de geocodificação" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Endereço" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Endereços" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Identificador de código promocional" -#: core/models.py:1244 +#: core/models.py:1248 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:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Valor do desconto fixo" -#: core/models.py:1251 +#: core/models.py:1255 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:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Desconto percentual" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Registro de data e hora em que o código promocional expira" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "Tempo de validade final" -#: core/models.py:1263 +#: core/models.py:1267 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:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Hora de início da validade" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Registro de data e hora de uso" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "Usuário atribuído a esse código promocional, se aplicável" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Usuário atribuído" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Código promocional" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Códigos promocionais" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1878,147 +1879,147 @@ msgstr "" "Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não" " ambos ou nenhum." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "O código promocional já foi usado" -#: core/models.py:1322 +#: core/models.py:1326 #, 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:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "O endereço de cobrança usado para esse pedido" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Código promocional aplicado" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "O endereço de entrega usado para esse pedido" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Endereço de entrega" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Status atual do pedido em seu ciclo de vida" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Status do pedido" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "Representação JSON dos atributos do pedido para esse pedido" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "O usuário que fez o pedido" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "Usuário" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "O registro de data e hora em que o pedido foi finalizado" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Tempo de compra" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "Um identificador legível por humanos para o pedido" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "ID legível por humanos" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Pedido" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "Não é possível adicionar produtos inativos ao pedido" -#: core/models.py:1495 +#: core/models.py:1503 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:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} não existe com a consulta <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "O código promocional não existe" -#: core/models.py:1576 +#: core/models.py:1584 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:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "O endereço não existe" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Valor de força inválido" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "Você não pode comprar um pedido vazio!" -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "Não é possível comprar um pedido sem um usuário!" -#: core/models.py:1652 +#: core/models.py:1666 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:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Fundos insuficientes para concluir o pedido" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2026,7 +2027,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:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2034,119 +2035,151 @@ msgstr "" "Método de pagamento inválido: {payment_method} de " "{available_payment_methods}!" -#: core/models.py:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Preço de compra no momento do pedido" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "" "Comentários internos para administradores sobre este produto encomendado" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Comentários internos" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "Notificações do usuário" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "Representação JSON dos atributos desse item" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Atributos ordenados do produto" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Referência ao pedido pai que contém esse produto" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Ordem dos pais" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "O produto específico associado a essa linha de pedido" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Quantidade desse produto específico no pedido" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Quantidade do produto" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Status atual desse produto no pedido" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Status da linha de produtos" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "O Orderproduct deve ter um pedido associado!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Ação incorreta especificada para o feedback: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 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:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Nome" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "URL da integração" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Credenciais de autenticação" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "Você só pode ter um provedor de CRM padrão" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRMs" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "Link do CRM do pedido" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "Links de CRM dos pedidos" + +#: core/models.py:2032 msgid "download" msgstr "Baixar" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Downloads" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 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:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Comentários de feedback" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Produto de pedido relacionado" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "Classificação atribuída pelo usuário ao produto" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Avaliação do produto" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Feedback" @@ -2157,7 +2190,7 @@ msgstr "" "Você deve fornecer um comentário, uma classificação e o uuid do produto do " "pedido para adicionar feedback." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Erro durante a criação do código promocional: {e!s}" @@ -2173,6 +2206,7 @@ msgstr "Confirmação de pedido" #: 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" @@ -2227,6 +2261,7 @@ msgstr "Atenciosamente,
a equipe %(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 "Todos os direitos reservados" @@ -2235,6 +2270,7 @@ msgid "order delivered" msgstr "Pedido entregue" #: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Olá %(user_first_name)s," @@ -2262,6 +2298,7 @@ msgid "value" msgstr "Valor" #: 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" @@ -2271,6 +2308,7 @@ 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 "Atenciosamente,
a equipe %(project_name)s" @@ -2279,6 +2317,19 @@ msgstr "Atenciosamente,
a equipe %(project_name)s" msgid "key" msgstr "Chave" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Código promocional concedido" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Obrigado por ficar conosco! Nós lhe concedemos um código promocional\n" +" para" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2321,21 +2372,26 @@ msgstr "São necessários dados e tempo limite" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Valor de tempo limite inválido, deve estar entre 0 e 216000 segundos" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | entre em contato conosco iniciado" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Confirmação do pedido" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Pedido entregue" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promocode granted" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "Você não tem permissão para executar essa ação." @@ -2354,15 +2410,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Formato de número telefônico inválido" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "Você só pode fazer o download do ativo digital uma vez" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "favicon não encontrado" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Erro de geocodificação: {e}" diff --git a/core/locale/ro_RO/LC_MESSAGES/django.po b/core/locale/ro_RO/LC_MESSAGES/django.po index f6ee986e..2fdab2fd 100644 --- a/core/locale/ro_RO/LC_MESSAGES/django.po +++ b/core/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,82 +51,82 @@ msgstr "Modificat" msgid "when the object was last modified" msgstr "Când a fost editat obiectul ultima dată" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Traduceri" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "Generalități" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Relații" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Metadate" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Timestamps" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activați %(verbose_name_plural)s selectat" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Articolele selectate au fost activate!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Dezactivați %(verbose_name_plural)s selectat" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Articolele selectate au fost dezactivate!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Atribut Valoare" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Valori ale atributului" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Imagine" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Imagini" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Stoc" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Stocuri" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Comanda Produs" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Comandați produse" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Copii" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Configurare" @@ -787,119 +787,123 @@ msgstr "ștergeți o relație comandă-produs" msgid "add or remove feedback on an order–product relation" msgstr "adăugarea sau eliminarea feedback-ului într-o relație comandă-produs" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "Nu a fost furnizat niciun termen de căutare." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Nume și prenume" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Categorii" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Categorii Melci" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Etichete" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Preț minim" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Preț maxim" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Este activ" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Marca" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Atribute" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Cantitate" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Melc" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "Este digital" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Includeți subcategorii" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Includeți produsele comandate personal" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "SKU" + +#: core/filters.py:164 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:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Căutare (ID, numele produsului sau numărul piesei)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Cumpărat după (inclusiv)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Cumpărat înainte (inclusiv)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "E-mail utilizator" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "UUID utilizator" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Statut" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "ID lizibil de către om" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Părinte" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "Întreaga categorie (are cel puțin 1 produs sau nu)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "Nivel" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "UUID produs" @@ -923,7 +927,7 @@ msgstr "Date în cache" msgid "camelized JSON data from the requested URL" msgstr "Date JSON Camelizate de la URL-ul solicitat" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Sunt permise numai URL-urile care încep cu http(s)://" @@ -955,7 +959,7 @@ msgstr "" "Vă rugăm să furnizați fie order_uuid sau order_hr_id - se exclud reciproc!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: core/graphene/mutations.py:527 core/viewsets.py:821 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Metoda order.buy() a generat un tip greșit: {type(instance)!s}" @@ -1031,9 +1035,9 @@ msgstr "Comandaprodus {order_product_uuid} nu a fost găsită!" msgid "original address string provided by the user" msgstr "Șirul de adrese original furnizat de utilizator" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} nu există: {uuid}!" @@ -1047,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Atribute" @@ -1060,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Categorii" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Mărci" @@ -1073,7 +1078,7 @@ msgid "category image url" msgstr "Categorii" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Procentul de majorare" @@ -1098,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:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Furnizori" @@ -1123,7 +1128,7 @@ 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:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Notificări" @@ -1135,7 +1140,7 @@ msgstr "URL de descărcare pentru acest produs de comandă, dacă este cazul" 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:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Adresa de facturare" @@ -1163,7 +1168,7 @@ msgstr "Sunt toate produsele din comanda digitală" msgid "transactions for this order" msgstr "Tranzacții pentru această comandă" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Ordine" @@ -1175,19 +1180,19 @@ msgstr "URL imagine" msgid "product's images" msgstr "Imagini ale produsului" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Categorie" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Feedback-uri" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Marca" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Grupuri de atribute" @@ -1215,27 +1220,27 @@ msgstr "Numărul de reacții" msgid "only available for personal orders" msgstr "Produse disponibile numai pentru comenzi personale" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Produse" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Coduri promoționale" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Produse scoase la vânzare" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Promoții" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Furnizor" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1243,650 +1248,646 @@ msgstr "Furnizor" msgid "product" msgstr "Produs" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Produse dorite" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Liste de dorințe" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Produse etichetate" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Etichete de produs" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Categorii etichetate" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Etichete \"Categorii" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Numele proiectului" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "Email companie" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Numele companiei" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Adresa companiei" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Numărul de telefon al companiei" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 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:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "Utilizator gazdă e-mail" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Suma maximă pentru plată" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Suma minimă pentru plată" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Date analitice" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Date publicitare" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Configurație" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Codul limbii" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Numele limbii" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Indicatorul de limbă, dacă există :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Obțineți o listă a limbilor acceptate" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Rezultate căutare produse" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Rezultate căutare produse" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Părinte al acestui grup" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Grup de atribute părinte" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Numele grupului de atribute" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Grup de atribute" -#: core/models.py:151 +#: core/models.py:155 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:152 +#: core/models.py:156 msgid "authentication info" msgstr "Informații privind autentificarea" -#: core/models.py:157 +#: core/models.py:161 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:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Procentul de majorare al furnizorului" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Numele acestui vânzător" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Numele furnizorului" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Identificator intern de etichetă pentru eticheta produsului" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Nume etichetă" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "Nume ușor de utilizat pentru eticheta produsului" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Nume afișare etichetă" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Etichetă produs" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "etichetă de categorie" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "Etichete de categorie" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Încărcați o imagine care reprezintă această categorie" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Categorie imagine" -#: core/models.py:353 +#: core/models.py:357 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:362 +#: core/models.py:366 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:363 +#: core/models.py:367 msgid "parent category" msgstr "Categoria de părinți" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Numele categoriei" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Furnizați un nume pentru această categorie" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Adăugați o descriere detaliată pentru această categorie" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Descriere categorie" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "etichete care ajută la descrierea sau gruparea acestei categorii" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Prioritate" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Denumirea acestui brand" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Nume de marcă" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Încărcați un logo care reprezintă acest brand" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Brand imagine mică" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Încărcați un logo mare care reprezintă acest brand" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Imagine de marcă mare" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Adăugați o descriere detaliată a mărcii" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Descrierea mărcii" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Categorii opționale cu care acest brand este asociat" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Categorii" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "Furnizorul care furnizează acest stoc de produse" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Furnizor asociat" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Prețul final pentru client după majorări" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Prețul de vânzare" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "Produsul asociat cu această intrare în stoc" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Produs asociat" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "Prețul plătit vânzătorului pentru acest produs" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Prețul de achiziție al furnizorului" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Cantitatea disponibilă a produsului în stoc" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Cantitate în stoc" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU atribuit de furnizor pentru identificarea produsului" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "SKU al furnizorului" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "Fișier digital asociat cu acest stoc, dacă este cazul" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "Fișier digital" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Intrări pe stoc" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Categoria din care face parte acest produs" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "Opțional, asociați acest produs cu un brand" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Etichete care ajută la descrierea sau gruparea acestui produs" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Indică dacă acest produs este livrat digital" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "Produsul este digital" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Furnizați o denumire clară de identificare a produsului" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Denumirea produsului" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Adăugați o descriere detaliată a produsului" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Descrierea produsului" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Numărul piesei pentru acest produs" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Numărul piesei" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Stock Keeping Unit pentru acest produs" -#: core/models.py:681 -msgid "SKU" -msgstr "SKU" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Categoria acestui atribut" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Grupul acestui atribut" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "Șir de caractere" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Număr întreg" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Float" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Boolean" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Array" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Obiect" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Tipul valorii atributului" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Tipul de valoare" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Denumirea acestui atribut" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Numele atributului" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Atribut" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Atributul acestei valori" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "Produsul specific asociat cu valoarea acestui atribut" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "Valoarea specifică pentru acest atribut" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "Furnizați text alternativ pentru imagine pentru accesibilitate" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "Textul alt al imaginii" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Încărcați fișierul de imagine pentru acest produs" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Imaginea produsului" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Determină ordinea în care sunt afișate imaginile" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Prioritatea afișării" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "Produsul pe care îl reprezintă această imagine" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Imagini ale produsului" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Procentul de reducere pentru produsele selectate" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Procent de reducere" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Furnizați un nume unic pentru această promoție" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Numele promoției" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Descrierea promoției" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Selectați ce produse sunt incluse în această promoție" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Produse incluse" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Promovare" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Produse pe care utilizatorul le-a marcat ca fiind dorite" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "Utilizatorul care deține această listă de dorințe" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Proprietarul listei de dorințe" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Lista dorințelor" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Documentar" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Documentare" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Nerezolvat" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Linia de adresă pentru client" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Linia de adresă" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Strada" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "Districtul" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "Oraș" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Regiunea" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Cod poștal" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "Țara" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Punct de geolocație (longitudine, latitudine)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Răspuns JSON complet de la geocoder pentru această adresă" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Răspuns JSON stocat de la serviciul de geocodare" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Adresă" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Adrese" -#: core/models.py:1236 +#: core/models.py:1240 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:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Cod promoțional de identificare" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "Valoarea fixă a reducerii aplicate dacă procentul nu este utilizat" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Valoarea fixă a reducerii" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentul de reducere aplicat dacă suma fixă nu este utilizată" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Reducere procentuală" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Data la care expiră codul promoțional" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "Timpul final de valabilitate" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Timestamp de la care acest cod promoțional este valabil" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Ora de începere a valabilității" -#: core/models.py:1269 +#: core/models.py:1273 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:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Timestamp de utilizare" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "Utilizatorul atribuit acestui cod promoțional, dacă este cazul" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Utilizator atribuit" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Cod promoțional" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Coduri promoționale" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1894,149 +1895,149 @@ msgstr "" "Trebuie definit un singur tip de reducere (sumă sau procent), dar nu ambele " "sau niciuna." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "Codul promoțional a fost deja utilizat" -#: core/models.py:1322 +#: core/models.py:1326 #, 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:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "Adresa de facturare utilizată pentru această comandă" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Cod promoțional opțional aplicat la această comandă" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Cod promoțional aplicat" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "Adresa de expediere utilizată pentru această comandă" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Adresa de expediere" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Stadiul actual al comenzii în ciclul său de viață" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Stadiul comenzii" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 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:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "Reprezentarea JSON a atributelor comenzii pentru această comandă" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "Utilizatorul care a plasat comanda" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "Utilizator" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "Momentul în care comanda a fost finalizată" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Cumpărați timp" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "Un identificator ușor de citit pentru comandă" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "ID lizibil de către om" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Comandă" -#: core/models.py:1439 +#: core/models.py:1447 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:1473 +#: core/models.py:1481 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:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "Nu puteți adăuga produse inactive la comandă" -#: core/models.py:1495 +#: core/models.py:1503 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:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 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:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nu există cu interogarea <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Codul promoțional nu există" -#: core/models.py:1576 +#: core/models.py:1584 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:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "Adresa nu există" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 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:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Valoare forță invalidă" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "Nu puteți achiziționa o comandă goală!" -#: core/models.py:1644 +#: core/models.py:1652 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:1652 +#: core/models.py:1666 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:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Insuficiența fondurilor pentru finalizarea comenzii" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2044,7 +2045,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:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2052,118 +2053,150 @@ msgstr "" "Metodă de plată invalidă: {payment_method} de la " "{available_payment_methods}!" -#: core/models.py:1802 +#: core/models.py:1839 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:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Prețul de achiziție la momentul comenzii" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarii interne pentru administratori cu privire la acest produs comandat" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Observații interne" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "Notificări pentru utilizatori" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "Reprezentarea JSON a atributelor acestui element" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Atribute de produs ordonate" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Trimitere la comanda mamă care conține acest produs" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Ordinul părinților" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "Produsul specific asociat cu această linie de comandă" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Cantitatea acestui produs specific din comandă" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Cantitatea produsului" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Starea actuală a acestui produs în comandă" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Starea liniei de produse" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "Comandaprodusul trebuie să aibă o comandă asociată!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Acțiune greșită specificată pentru feedback: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 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:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Nume și prenume" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "Adresa URL a integrării" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Acreditări de autentificare" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "Puteți avea un singur furnizor CRM implicit" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRM-uri" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "Legătura CRM a comenzii" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "Legături CRM pentru comenzi" + +#: core/models.py:2032 msgid "download" msgstr "Descărcare" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Descărcări" -#: core/models.py:1966 +#: core/models.py:2041 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:1996 +#: core/models.py:2071 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:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Comentarii de feedback" -#: core/models.py:2004 +#: core/models.py:2079 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:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Produs aferent comenzii" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "Rating atribuit de utilizator pentru produs" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Evaluarea produsului" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Feedback" @@ -2174,7 +2207,7 @@ msgstr "" "trebuie să furnizați un comentariu, un rating și uuid-ul produsului comandat" " pentru a adăuga feedback." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Eroare în timpul creării codului promoțional: {e!s}" @@ -2190,6 +2223,7 @@ msgstr "Confirmarea comenzii" #: 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" @@ -2245,6 +2279,7 @@ msgstr "Cele mai bune salutări,
echipa %(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 "Toate drepturile rezervate" @@ -2253,6 +2288,7 @@ msgid "order delivered" msgstr "Comanda livrată" #: core/templates/digital_order_delivered_email.html:100 +#: core/templates/promocode_granted_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Bună ziua %(user_first_name)s," @@ -2280,6 +2316,7 @@ msgid "value" msgstr "Valoare" #: 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" @@ -2289,6 +2326,7 @@ 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 "Cele mai bune salutări,
echipa %(project_name)s" @@ -2297,6 +2335,19 @@ msgstr "Cele mai bune salutări,
echipa %(project_name)s" msgid "key" msgstr "Cheie" +#: core/templates/promocode_granted_email.html:6 +#: core/templates/promocode_granted_email.html:99 +msgid "promocode granted" +msgstr "Promocode acordat" + +#: core/templates/promocode_granted_email.html:101 +msgid "" +"Thank you for staying with us! We have granted you with a promocode\n" +" for " +msgstr "" +"Vă mulțumim pentru că stați cu noi! V-am acordat un cod promoțional\n" +" pentru" + #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" @@ -2339,21 +2390,26 @@ msgstr "Sunt necesare atât datele, cât și timpul de așteptare" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Valoare timeout invalidă, trebuie să fie între 0 și 216000 secunde" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | contactați-ne inițiat" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Confirmarea comenzii" -#: core/utils/emailing.py:98 +#: core/utils/emailing.py:99 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Livrarea comenzii" +#: core/utils/emailing.py:187 +#, python-brace-format +msgid "{config.PROJECT_NAME} | promocode granted" +msgstr "{config.PROJECT_NAME} | promocode acordat" + #: core/utils/messages.py:3 msgid "you do not have permission to perform this action." msgstr "Nu aveți permisiunea de a efectua această acțiune." @@ -2373,15 +2429,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Format invalid al numărului de telefon" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "Puteți descărca activul digital o singură dată" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "favicon nu a fost găsit" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Eroare de geocodare: {e}" diff --git a/core/locale/ru_RU/LC_MESSAGES/django.po b/core/locale/ru_RU/LC_MESSAGES/django.po index 1028dc8e..52fe3c4b 100644 --- a/core/locale/ru_RU/LC_MESSAGES/django.po +++ b/core/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,82 +51,82 @@ msgstr "Модифицированный" msgid "when the object was last modified" msgstr "Когда объект был отредактирован в последний раз" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "Переводы" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "Общие сведения" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "Отношения" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "Метаданные" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "Временные метки" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Активировать выбранный %(verbose_name_plural)s" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "Выбранные сущности активированы!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Деактивировать выбранный %(verbose_name_plural)s" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "Выбранные сущности были деактивированы!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "Значение атрибута" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "Значения атрибутов" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "Изображение" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "Изображения" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "Наличие" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "Наличия" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "Заказанный товар" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "Заказанные товары" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "Дети" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "Конфигурация" @@ -786,119 +786,123 @@ msgstr "удалить отношение \"заказ-продукт" msgid "add or remove feedback on an order–product relation" msgstr "добавлять или удалять отзывы о связи заказ-продукт" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "Поисковый запрос не предоставлен." -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "Имя" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "Категории" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "Категории Слизни" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "Теги" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "Мин. цена" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "Максимальная цена" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "Активен" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "Бренд" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "Атрибуты" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "Количество" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "Слаг" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "Цифровой" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "Включите подкатегории" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "Включите продукты, заказанные лично" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "Артикул" + +#: core/filters.py:164 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" "Для использования флага include_subcategories должен быть указан " "category_uuid." -#: core/filters.py:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "Поиск (идентификатор, название продукта или номер детали)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "Куплено после (включительно)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "Куплено ранее (включительно)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "Электронная почта пользователя" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "UUID пользователя" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "Статус" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "Человекочитаемый идентификатор" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "Родитель" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "Вся категория (есть хотя бы 1 продукт или нет)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "Уровень" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "UUID продукта" @@ -922,7 +926,7 @@ msgstr "Кэшированные данные" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-данные из запрашиваемого URL" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "Допускаются только URL-адреса, начинающиеся с http(s)://" @@ -955,7 +959,7 @@ msgstr "" "варианты!" #: core/graphene/mutations.py:229 core/graphene/mutations.py:486 -#: core/graphene/mutations.py:527 core/viewsets.py:818 +#: 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}" @@ -1031,9 +1035,9 @@ msgstr "Заказ товара {order_product_uuid} не найден!" msgid "original address string provided by the user" msgstr "Оригинальная строка адреса, предоставленная пользователем" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} не существует: {uuid}!" @@ -1047,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "Атрибуты" @@ -1060,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "Категории" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "Бренды" @@ -1073,7 +1078,7 @@ msgid "category image url" msgstr "Категории" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "Процент наценки" @@ -1097,7 +1102,7 @@ msgstr "Теги для этой категории" msgid "products in this category" msgstr "Продукты в этой категории" -#: core/graphene/object_types.py:351 core/models.py:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "Поставщики" @@ -1123,7 +1128,7 @@ msgid "represents feedback from a user." msgstr "Представляет собой отзыв пользователя." #: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1389 +#: core/models.py:1393 msgid "notifications" msgstr "Уведомления" @@ -1135,7 +1140,7 @@ msgstr "Если применимо, загрузите url для этого п msgid "a list of order products in this order" msgstr "Список товаров, заказанных в этом заказе" -#: core/graphene/object_types.py:430 core/models.py:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "Адрес для выставления счетов" @@ -1163,7 +1168,7 @@ msgstr "Все ли товары в заказе представлены в ц msgid "transactions for this order" msgstr "Операции для этого заказа" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "Заказы" @@ -1175,19 +1180,19 @@ msgstr "URL-адрес изображения" msgid "product's images" msgstr "Изображения товара" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "Категория" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "Отзывы" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "Бренд" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "Группы атрибутов" @@ -1215,27 +1220,27 @@ msgstr "Количество отзывов" msgid "only available for personal orders" msgstr "Продукты доступны только для личных заказов" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "Товары" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "Промокоды" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "Продукты в продаже" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "Промоакции" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "Поставщик" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1243,651 +1248,647 @@ msgstr "Поставщик" msgid "product" msgstr "Товар" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "Продукты из списка желаний" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "Списки желаний" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "Теги товара" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "Категории с метками" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "Теги категорий" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "Название проекта" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "Электронная почта компании" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "Название компании" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "Адрес компании" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "Номер телефона компании" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', иногда его нужно использовать вместо значения пользователя " "хоста." -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "Пользователь узла электронной почты" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "Максимальная сумма для оплаты" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "Минимальная сумма для оплаты" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "Аналитические данные" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "Рекламные данные" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "Конфигурация" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "Код языка" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "Название языка" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "Языковой флаг, если он существует :)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "Получите список поддерживаемых языков" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "Результаты поиска товаров" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "Результаты поиска товаров" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "Родитель этой группы" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "Родительская группа атрибутов" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "Имя группы атрибутов" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "Группа атрибутов" -#: core/models.py:151 +#: core/models.py:155 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Хранит учетные данные и конечные точки, необходимые для взаимодействия с API" " поставщика." -#: core/models.py:152 +#: core/models.py:156 msgid "authentication info" msgstr "Информация об аутентификации" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "Определите наценку для товаров, полученных от этого продавца" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "Процент наценки поставщика" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "Имя этого продавца" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "Название поставщика" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "Внутренний идентификатор тега для тега продукта" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "Название тега" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "Удобное название для метки продукта" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "Отображаемое имя тега" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "Метка продукта" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "тег категории" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "теги категорий" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "Загрузите изображение, представляющее эту категорию" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "Изображение категории" -#: core/models.py:353 +#: core/models.py:357 msgid "define a markup percentage for products in this category" msgstr "Определите процент наценки для товаров в этой категории" -#: core/models.py:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "Родитель данной категории для формирования иерархической структуры" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "Родительская категория" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "Название категории" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "Укажите название этой категории" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "Добавьте подробное описание для этой категории" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "Описание категории" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "теги, которые помогают описать или сгруппировать эту категорию" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "Приоритет" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "Название этой марки" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "Название бренда" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "Загрузите логотип, представляющий этот бренд" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "Маленький образ бренда" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "Загрузите большой логотип, представляющий этот бренд" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "Большой имидж бренда" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "Добавьте подробное описание бренда" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "Описание бренда" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "Дополнительные категории, с которыми ассоциируется этот бренд" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "Категории" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "Поставщик, поставляющий данный товар на склад" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "Ассоциированный поставщик" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "Окончательная цена для покупателя после наценок" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "Цена продажи" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "Продукт, связанный с этой складской записью" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "Сопутствующий товар" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "Цена, уплаченная продавцу за этот продукт" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "Цена покупки у поставщика" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "Доступное количество продукта на складе" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "Количество на складе" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "Присвоенный поставщиком SKU для идентификации продукта" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "Артикул поставщика" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "Цифровой файл, связанный с этой акцией, если применимо" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "Цифровой файл" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "Наличия" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "Категория, к которой относится этот продукт" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "По желанию ассоциируйте этот продукт с брендом" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "Теги, которые помогают описать или сгруппировать этот продукт" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "Указывает, поставляется ли этот продукт в цифровом виде" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "Является ли продукт цифровым" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "Обеспечьте четкое идентификационное название продукта" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "Название продукта" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "Добавьте подробное описание продукта" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "Описание товара" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "Парт. номер для данного товара" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "Парт. номер" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "Единица складского учета для данного продукта" -#: core/models.py:681 -msgid "SKU" -msgstr "Артикул" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "Категория этого атрибута" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "Группа этого атрибута" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "Строка" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "Целое число" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "Поплавок" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "Булево" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "Массив" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "Объект" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "Тип значения атрибута" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "Тип значения" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "Имя этого атрибута" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "Имя атрибута" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Атрибут" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "Атрибут этого значения" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "Конкретный продукт, связанный со значением этого атрибута" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "Конкретное значение для этого атрибута" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "" "Предоставьте альтернативный текст для изображения, чтобы обеспечить " "доступность" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "Альтовый текст изображения" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "Загрузите файл изображения для этого продукта" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "Изображение продукта" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "Определяет порядок отображения изображений" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "Приоритет отображения" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "Продукт, который представлен на этом изображении" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "Изображения товаров" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "Процентная скидка на выбранные продукты" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "Процент скидки" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "Укажите уникальное имя для этой акции" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "Название акции" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "Описание акции" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "Выберите, какие продукты участвуют в этой акции" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "Включенные продукты" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "Продвижение" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "Продукты, которые пользователь отметил как желаемые" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "Пользователь, владеющий этим списком желаний" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "Владелец вишлиста" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "Список желаний" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "Документальный фильм" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "Документальные фильмы" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "Неразрешенные" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "Адресная строка для клиента" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "Адресная строка" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "Улица" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "Округ" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "Город" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "Регион" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "Почтовый индекс" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "Страна" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "Геолокационная точка(долгота, широта)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "Полный JSON-ответ от геокодера для этого адреса" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "Сохраненный JSON-ответ от сервиса геокодирования" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "Адрес" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "Адреса" -#: core/models.py:1236 +#: core/models.py:1240 msgid "unique code used by a user to redeem a discount" msgstr "Уникальный код, используемый пользователем для получения скидки" -#: core/models.py:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "Идентификатор промо-кода" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "Фиксированная сумма скидки, применяемая, если процент не используется" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "Фиксированная сумма скидки" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "" "Процентная скидка, применяемая, если фиксированная сумма не используется" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "Процентная скидка" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "Временная метка, когда истекает срок действия промокода" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "Время окончания срока действия" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "Время, с которого действует этот промокод" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "Время начала действия" -#: core/models.py:1269 +#: core/models.py:1273 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Временная метка, когда был использован промокод, пустая, если он еще не " "использовался" -#: core/models.py:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "Временная метка использования" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "Пользователь, назначенный на этот промокод, если применимо" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "Назначенный пользователь" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "Промокод" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "Промокоды" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1895,147 +1896,147 @@ msgstr "" "Следует определить только один тип скидки (сумма или процент), но не оба или" " ни один из них." -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "Промокоды" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Неверный тип скидки для промокода {self.uuid}!" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "Адрес для выставления счетов, используемый для данного заказа" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "Дополнительный промокод, применяемый к этому заказу" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "Примененный промокод" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "Адрес доставки, используемый для данного заказа" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "Адрес доставки" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "Текущий статус заказа в его жизненном цикле" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "Статус заказа" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 msgid "json structure of notifications to display to users" msgstr "" "JSON-структура уведомлений для отображения пользователям, в административном" " интерфейсе используется табличный вид" -#: core/models.py:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "JSON-представление атрибутов заказа для этого заказа" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "Пользователь, разместивший заказ" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "Пользователь" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "Временная метка, когда заказ был завершен" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "Время покупки" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "Человекочитаемый идентификатор для заказа" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "человекочитаемый идентификатор" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "Заказать" -#: core/models.py:1439 +#: core/models.py:1447 msgid "a user must have only one pending order at a time" msgstr "Пользователь может одновременно иметь только один отложенный ордер!" -#: core/models.py:1473 +#: core/models.py:1481 msgid "you cannot add products to an order that is not a pending one" msgstr "Вы не можете добавить товары в заказ, который не является отложенным." -#: core/models.py:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "Вы не можете добавить неактивные товары в заказ" -#: core/models.py:1495 +#: core/models.py:1503 msgid "you cannot add more products than available in stock" msgstr "Вы не можете добавить больше товаров, чем есть на складе" -#: core/models.py:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Вы не можете удалить товары из заказа, который не является отложенным." -#: core/models.py:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} не существует с запросом <{query}>!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "Промокод не существует" -#: core/models.py:1576 +#: core/models.py:1584 msgid "you can only buy physical products with shipping address specified" msgstr "" "Вы можете купить физические товары только с указанным адресом доставки!" -#: core/models.py:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "Адрес не существует" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "В данный момент вы не можете совершить покупку, пожалуйста, повторите " "попытку через несколько минут." -#: core/models.py:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "Недопустимое значение силы" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "Вы не можете приобрести пустой заказ!" -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "Вы не можете купить заказ без пользователя!" -#: core/models.py:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "Пользователь без баланса не может покупать с балансом!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "Недостаточно средств для выполнения заказа" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2043,122 +2044,154 @@ msgstr "" "Вы не можете купить без регистрации, пожалуйста, предоставьте следующую " "информацию: имя клиента, электронная почта клиента, номер телефона клиента" -#: core/models.py:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Неверный способ оплаты: {payment_method} от {available_payment_methods}!" -#: core/models.py:1802 +#: core/models.py:1839 msgid "the price paid by the customer for this product at purchase time" msgstr "Цена, уплаченная клиентом за данный продукт на момент покупки" -#: core/models.py:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "Покупная цена на момент заказа" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "" "Внутренние комментарии для администраторов об этом заказанном продукте" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "Внутренние комментарии" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "Уведомления пользователей" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "JSON-представление атрибутов этого элемента" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "Атрибуты заказанного продукта" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "Ссылка на родительский заказ, содержащий данный продукт" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "Родительский приказ" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "Конкретный продукт, связанный с этой линией заказа" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "Количество данного товара в заказе" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "Количество продукта" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "Текущий статус этого продукта в заказе" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "Состояние продуктовой линейки" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "У заказанного продукта должен быть связанный с ним заказ!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "Для обратной связи указано неверное действие: {action}!" -#: core/models.py:1922 +#: core/models.py:1959 msgid "you cannot feedback an order which is not received" msgstr "Вы не можете отозвать заказ, который не был получен" -#: core/models.py:1957 +#: core/models.py:1964 +msgid "name" +msgstr "Имя" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "URL-адрес интеграции" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "Учетные данные для аутентификации" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "У вас может быть только один поставщик CRM по умолчанию" + +#: core/models.py:1984 +msgid "CRM" +msgstr "CRM" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "CRM" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "Ссылка на CRM заказа" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "Ссылки на CRM заказов" + +#: core/models.py:2032 msgid "download" msgstr "Скачать" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "Скачать" -#: core/models.py:1966 +#: core/models.py:2041 msgid "you can not download a digital asset for a non-finished order" msgstr "Вы не можете загрузить цифровой актив для незавершенного заказа" -#: core/models.py:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "Комментарии пользователей об их опыте использования продукта" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "Комментарии к отзывам" -#: core/models.py:2004 +#: core/models.py:2079 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Ссылка на конкретный продукт в заказе, о котором идет речь в этом отзыве" -#: core/models.py:2005 +#: core/models.py:2080 msgid "related order product" msgstr "Сопутствующий товар для заказа" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "Присвоенный пользователем рейтинг продукта" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "Рейтинг продукции" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "Обратная связь" @@ -2169,7 +2202,7 @@ msgstr "" "чтобы добавить отзыв, необходимо указать комментарий, рейтинг и uuid " "продукта заказа." -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "Ошибка при создании промокода: {e!s}" @@ -2185,6 +2218,7 @@ 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" @@ -2239,6 +2273,7 @@ msgstr "С наилучшими пожеланиями,
команда %(con #: 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 "Все права защищены" @@ -2247,6 +2282,7 @@ 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," @@ -2274,6 +2310,7 @@ 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" @@ -2283,6 +2320,7 @@ 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" @@ -2291,6 +2329,19 @@ msgstr "С наилучшими пожеланиями,
команда %(pro 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 "" @@ -2335,21 +2386,26 @@ msgstr "" "Неверное значение тайм-аута, оно должно находиться в диапазоне от 0 до " "216000 секунд" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | свяжитесь с нами по инициативе" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Подтверждение заказа" -#: core/utils/emailing.py:98 +#: 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 "У вас нет разрешения на выполнение этого действия." @@ -2369,15 +2425,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Неверный формат телефонного номера" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "Вы можете загрузить цифровой актив только один раз" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "favicon не найден" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Ошибка геокодирования: {e}" diff --git a/core/locale/zh_Hans/LC_MESSAGES/django.po b/core/locale/zh_Hans/LC_MESSAGES/django.po index 200da17b..4eaa7a51 100644 --- a/core/locale/zh_Hans/LC_MESSAGES/django.po +++ b/core/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:41+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -47,82 +47,82 @@ msgstr "改装" msgid "when the object was last modified" msgstr "对象最后一次编辑的时间" -#: core/admin.py:61 +#: core/admin.py:63 msgid "translations" msgstr "翻译" -#: core/admin.py:65 +#: core/admin.py:67 msgid "general" msgstr "一般情况" -#: core/admin.py:67 +#: core/admin.py:69 msgid "relations" msgstr "关系" -#: core/admin.py:85 +#: core/admin.py:87 msgid "metadata" msgstr "元数据" -#: core/admin.py:92 +#: core/admin.py:94 msgid "timestamps" msgstr "时间戳" -#: core/admin.py:107 +#: core/admin.py:109 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "激活选定的 %(verbose_name_plural)s" -#: core/admin.py:112 +#: core/admin.py:114 msgid "selected items have been activated." msgstr "所选项目已激活!" -#: core/admin.py:118 +#: core/admin.py:120 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "停用选定的 %(verbose_name_plural)s" -#: core/admin.py:123 +#: core/admin.py:125 msgid "selected items have been deactivated." msgstr "选定项目已停用!" -#: core/admin.py:135 core/graphene/object_types.py:597 -#: core/graphene/object_types.py:604 core/models.py:863 core/models.py:871 +#: core/admin.py:137 core/graphene/object_types.py:598 +#: core/graphene/object_types.py:605 core/models.py:867 core/models.py:875 msgid "attribute value" msgstr "属性值" -#: core/admin.py:136 core/graphene/object_types.py:75 core/models.py:872 +#: core/admin.py:138 core/graphene/object_types.py:75 core/models.py:876 msgid "attribute values" msgstr "属性值" -#: core/admin.py:144 +#: core/admin.py:146 msgid "image" msgstr "图片" -#: core/admin.py:145 core/graphene/object_types.py:495 +#: core/admin.py:147 core/graphene/object_types.py:495 msgid "images" msgstr "图片" -#: core/admin.py:153 core/models.py:574 +#: core/admin.py:155 core/models.py:578 msgid "stock" msgstr "库存" -#: core/admin.py:154 core/graphene/object_types.py:651 +#: core/admin.py:156 core/graphene/object_types.py:652 msgid "stocks" msgstr "股票" -#: core/admin.py:164 core/models.py:1863 +#: core/admin.py:166 core/models.py:1900 msgid "order product" msgstr "订购产品" -#: core/admin.py:165 core/graphene/object_types.py:414 core/models.py:1864 +#: core/admin.py:167 core/graphene/object_types.py:414 core/models.py:1901 msgid "order products" msgstr "订购产品" -#: core/admin.py:178 core/admin.py:179 +#: core/admin.py:180 core/admin.py:181 msgid "children" msgstr "儿童" -#: core/admin.py:513 +#: core/admin.py:566 msgid "Config" msgstr "配置" @@ -727,117 +727,121 @@ msgstr "删除订单-产品关系" msgid "add or remove feedback on an order–product relation" msgstr "添加或删除订单与产品关系中的反馈信息" -#: core/elasticsearch/__init__.py:97 +#: core/elasticsearch/__init__.py:105 msgid "no search term provided." msgstr "未提供搜索条件。" -#: core/filters.py:62 core/filters.py:479 core/filters.py:508 +#: core/filters.py:63 core/filters.py:509 core/filters.py:538 msgid "UUID" msgstr "UUID" -#: core/filters.py:63 core/filters.py:371 core/filters.py:447 +#: core/filters.py:64 core/filters.py:375 core/filters.py:475 msgid "Name" msgstr "名称" -#: core/filters.py:64 core/filters.py:448 +#: core/filters.py:65 core/filters.py:477 msgid "Categories" msgstr "类别" -#: core/filters.py:66 +#: core/filters.py:67 msgid "Categories Slugs" msgstr "类别 蛞蝓" -#: core/filters.py:67 core/filters.py:379 +#: core/filters.py:68 core/filters.py:383 msgid "Tags" msgstr "标签" -#: core/filters.py:68 +#: core/filters.py:69 msgid "Min Price" msgstr "最低价格" -#: core/filters.py:69 +#: core/filters.py:70 msgid "Max Price" msgstr "最高价格" -#: core/filters.py:70 +#: core/filters.py:71 msgid "Is Active" msgstr "处于活动状态" -#: core/filters.py:71 +#: core/filters.py:72 msgid "Brand" msgstr "品牌" -#: core/filters.py:72 +#: core/filters.py:73 msgid "Attributes" msgstr "属性" -#: core/filters.py:73 +#: core/filters.py:74 msgid "Quantity" msgstr "数量" -#: core/filters.py:74 core/filters.py:373 core/models.py:392 -#: core/models.py:486 core/models.py:677 +#: core/filters.py:75 core/filters.py:377 core/filters.py:476 +#: core/models.py:396 core/models.py:490 core/models.py:681 msgid "Slug" msgstr "蛞蝓" -#: core/filters.py:75 +#: core/filters.py:76 msgid "Is Digital" msgstr "是数字" -#: core/filters.py:76 +#: core/filters.py:77 msgid "Include sub-categories" msgstr "包括子类别" -#: core/filters.py:79 +#: core/filters.py:80 msgid "Include personal ordered" msgstr "包括个人订购的产品" -#: core/filters.py:160 +#: core/filters.py:82 core/models.py:685 +msgid "SKU" +msgstr "商品编号" + +#: core/filters.py:164 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "必须有 category_uuid 才能使用 include_subcategories 标志" -#: core/filters.py:298 +#: core/filters.py:302 msgid "Search (ID, product name or part number)" msgstr "搜索(ID、产品名称或零件编号)" -#: core/filters.py:301 +#: core/filters.py:305 msgid "Bought after (inclusive)" msgstr "之后购买(含)" -#: core/filters.py:302 +#: core/filters.py:306 msgid "Bought before (inclusive)" msgstr "之前购买(含)" -#: core/filters.py:305 core/filters.py:352 core/filters.py:510 +#: core/filters.py:309 core/filters.py:356 core/filters.py:540 msgid "User email" msgstr "用户电子邮件" -#: core/filters.py:306 core/filters.py:353 core/filters.py:488 -#: core/filters.py:509 +#: core/filters.py:310 core/filters.py:357 core/filters.py:518 +#: core/filters.py:539 msgid "User UUID" msgstr "用户 UUID" -#: core/filters.py:307 +#: core/filters.py:311 msgid "Status" msgstr "现状" -#: core/filters.py:311 +#: core/filters.py:315 msgid "Human Readable ID" msgstr "人可读 ID" -#: core/filters.py:372 +#: core/filters.py:376 msgid "Parent" msgstr "家长" -#: core/filters.py:376 +#: core/filters.py:380 msgid "Whole category(has at least 1 product or not)" msgstr "整个类别(是否至少有 1 个产品)" -#: core/filters.py:380 +#: core/filters.py:384 msgid "Level" msgstr "级别" -#: core/filters.py:483 +#: core/filters.py:513 msgid "Product UUID" msgstr "产品 UUID" @@ -861,7 +865,7 @@ msgstr "缓存数据" msgid "camelized JSON data from the requested URL" msgstr "从请求的 URL 中获取驼峰化 JSON 数据" -#: core/graphene/mutations.py:65 core/views.py:359 +#: core/graphene/mutations.py:65 core/views.py:360 msgid "only URLs starting with http(s):// are allowed" msgstr "只允许使用以 http(s):// 开头的 URL" @@ -892,7 +896,7 @@ 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:818 +#: 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}" @@ -966,9 +970,9 @@ msgstr "未找到订购产品 {order_product_uuid}!" msgid "original address string provided by the user" msgstr "用户提供的原始地址字符串" -#: core/graphene/mutations.py:655 core/models.py:1047 core/models.py:1060 -#: core/models.py:1505 core/models.py:1534 core/models.py:1559 -#: core/viewsets.py:821 +#: 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/viewsets.py:824 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} 不存在:{uuid}!" @@ -982,7 +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:817 core/models.py:1395 +#: core/graphene/object_types.py:438 core/models.py:821 core/models.py:1399 +#: core/models.py:1967 msgid "attributes" msgstr "属性" @@ -995,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:417 core/models.py:781 +#: core/graphene/object_types.py:224 core/models.py:421 core/models.py:785 msgid "categories" msgstr "类别" -#: core/graphene/object_types.py:124 core/models.py:500 +#: core/graphene/object_types.py:124 core/models.py:504 msgid "brands" msgstr "品牌" @@ -1008,7 +1013,7 @@ msgid "category image url" msgstr "类别" #: core/graphene/object_types.py:196 core/graphene/object_types.py:344 -#: core/models.py:354 +#: core/models.py:358 msgid "markup percentage" msgstr "加价百分比" @@ -1029,7 +1034,7 @@ msgstr "此类别的标签" msgid "products in this category" msgstr "该类别中的产品" -#: core/graphene/object_types.py:351 core/models.py:187 +#: core/graphene/object_types.py:351 core/models.py:191 msgid "vendors" msgstr "供应商" @@ -1054,7 +1059,7 @@ msgid "represents feedback from a user." msgstr "代表用户的反馈意见。" #: core/graphene/object_types.py:398 core/graphene/object_types.py:439 -#: core/models.py:1389 +#: core/models.py:1393 msgid "notifications" msgstr "通知" @@ -1066,7 +1071,7 @@ msgstr "此订单产品的下载网址(如适用" msgid "a list of order products in this order" msgstr "该订单中的订单产品列表" -#: core/graphene/object_types.py:430 core/models.py:1359 +#: core/graphene/object_types.py:430 core/models.py:1363 msgid "billing address" msgstr "账单地址" @@ -1092,7 +1097,7 @@ msgstr "订单中的所有产品都是数字产品吗?" msgid "transactions for this order" msgstr "此订单的交易" -#: core/graphene/object_types.py:459 core/models.py:1423 +#: core/graphene/object_types.py:459 core/models.py:1427 msgid "orders" msgstr "订单" @@ -1104,19 +1109,19 @@ msgstr "图片 URL" msgid "product's images" msgstr "产品图片" -#: core/graphene/object_types.py:494 core/models.py:416 core/models.py:620 +#: core/graphene/object_types.py:494 core/models.py:420 core/models.py:624 msgid "category" msgstr "类别" -#: core/graphene/object_types.py:496 core/models.py:2022 +#: core/graphene/object_types.py:496 core/models.py:2097 msgid "feedbacks" msgstr "反馈意见" -#: core/graphene/object_types.py:497 core/models.py:499 core/models.py:629 +#: core/graphene/object_types.py:497 core/models.py:503 core/models.py:633 msgid "brand" msgstr "品牌" -#: core/graphene/object_types.py:498 core/models.py:114 +#: core/graphene/object_types.py:498 core/models.py:118 msgid "attribute groups" msgstr "属性组" @@ -1144,27 +1149,27 @@ msgstr "反馈数量" msgid "only available for personal orders" msgstr "仅限个人订购的产品" -#: core/graphene/object_types.py:525 core/models.py:691 +#: core/graphene/object_types.py:526 core/models.py:695 msgid "products" msgstr "产品" -#: core/graphene/object_types.py:622 +#: core/graphene/object_types.py:623 msgid "promocodes" msgstr "促销代码" -#: core/graphene/object_types.py:632 +#: core/graphene/object_types.py:633 msgid "products on sale" msgstr "销售产品" -#: core/graphene/object_types.py:639 core/models.py:994 +#: core/graphene/object_types.py:640 core/models.py:998 msgid "promotions" msgstr "促销活动" -#: core/graphene/object_types.py:643 core/models.py:186 +#: core/graphene/object_types.py:644 core/models.py:190 msgid "vendor" msgstr "供应商" -#: core/graphene/object_types.py:644 core/models.py:690 +#: core/graphene/object_types.py:645 core/models.py:694 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 @@ -1172,900 +1177,928 @@ msgstr "供应商" msgid "product" msgstr "产品" -#: core/graphene/object_types.py:655 core/models.py:1019 +#: core/graphene/object_types.py:656 core/models.py:1023 msgid "wishlisted products" msgstr "心愿单上的产品" -#: core/graphene/object_types.py:661 core/models.py:1036 +#: core/graphene/object_types.py:662 core/models.py:1040 msgid "wishlists" msgstr "愿望清单" -#: core/graphene/object_types.py:665 +#: core/graphene/object_types.py:666 msgid "tagged products" msgstr "标签产品" -#: core/graphene/object_types.py:672 core/models.py:231 core/models.py:635 +#: core/graphene/object_types.py:673 core/models.py:235 core/models.py:639 msgid "product tags" msgstr "产品标签" -#: core/graphene/object_types.py:676 +#: core/graphene/object_types.py:677 msgid "tagged categories" msgstr "标签类别" -#: core/graphene/object_types.py:683 +#: core/graphene/object_types.py:684 msgid "categories tags" msgstr "类别标签" -#: core/graphene/object_types.py:687 +#: core/graphene/object_types.py:688 msgid "project name" msgstr "项目名称" -#: core/graphene/object_types.py:688 +#: core/graphene/object_types.py:689 msgid "company email" msgstr "公司电子邮件" -#: core/graphene/object_types.py:689 +#: core/graphene/object_types.py:690 msgid "company name" msgstr "公司名称" -#: core/graphene/object_types.py:690 +#: core/graphene/object_types.py:691 msgid "company address" msgstr "公司地址" -#: core/graphene/object_types.py:691 +#: core/graphene/object_types.py:692 msgid "company phone number" msgstr "公司电话号码" -#: core/graphene/object_types.py:692 +#: core/graphene/object_types.py:693 msgid "email from, sometimes it must be used instead of host user value" msgstr "电子邮件来自\",有时必须使用它来代替主机用户值" -#: core/graphene/object_types.py:693 +#: core/graphene/object_types.py:694 msgid "email host user" msgstr "电子邮件主机用户" -#: core/graphene/object_types.py:694 +#: core/graphene/object_types.py:695 msgid "maximum amount for payment" msgstr "最高付款额" -#: core/graphene/object_types.py:695 +#: core/graphene/object_types.py:696 msgid "minimum amount for payment" msgstr "最低付款额" -#: core/graphene/object_types.py:696 +#: core/graphene/object_types.py:697 msgid "analytics data" msgstr "分析数据" -#: core/graphene/object_types.py:697 +#: core/graphene/object_types.py:698 msgid "advertisement data" msgstr "广告数据" -#: core/graphene/object_types.py:700 +#: core/graphene/object_types.py:701 msgid "company configuration" msgstr "配置" -#: core/graphene/object_types.py:704 +#: core/graphene/object_types.py:705 msgid "language code" msgstr "语言代码" -#: core/graphene/object_types.py:705 +#: core/graphene/object_types.py:706 msgid "language name" msgstr "语言名称" -#: core/graphene/object_types.py:706 +#: core/graphene/object_types.py:707 msgid "language flag, if exists :)" msgstr "语言标志(如果有):)" -#: core/graphene/object_types.py:709 +#: core/graphene/object_types.py:710 msgid "supported languages" msgstr "获取支持的语言列表" -#: core/graphene/object_types.py:740 core/graphene/object_types.py:741 -#: core/graphene/object_types.py:742 +#: core/graphene/object_types.py:741 core/graphene/object_types.py:742 +#: core/graphene/object_types.py:743 msgid "products search results" msgstr "产品搜索结果" -#: core/graphene/object_types.py:743 +#: core/graphene/object_types.py:744 msgid "posts search results" msgstr "产品搜索结果" -#: core/models.py:99 +#: core/models.py:103 msgid "parent of this group" msgstr "本组家长" -#: core/models.py:100 +#: core/models.py:104 msgid "parent attribute group" msgstr "父属性组" -#: core/models.py:104 core/models.py:105 +#: core/models.py:108 core/models.py:109 msgid "attribute group's name" msgstr "属性组名称" -#: core/models.py:113 core/models.py:789 +#: core/models.py:117 core/models.py:793 msgid "attribute group" msgstr "属性组" -#: core/models.py:151 +#: core/models.py:155 msgid "stores credentials and endpoints required for vendor communication" msgstr "存储供应商应用程序接口通信所需的凭证和端点" -#: core/models.py:152 +#: core/models.py:156 msgid "authentication info" msgstr "认证信息" -#: core/models.py:157 +#: core/models.py:161 msgid "define the markup for products retrieved from this vendor" msgstr "定义从该供应商获取的产品的标记" -#: core/models.py:158 +#: core/models.py:162 msgid "vendor markup percentage" msgstr "供应商加价百分比" -#: core/models.py:162 +#: core/models.py:166 msgid "name of this vendor" msgstr "供应商名称" -#: core/models.py:163 +#: core/models.py:167 msgid "vendor name" msgstr "供应商名称" -#: core/models.py:216 core/models.py:254 +#: core/models.py:220 core/models.py:258 msgid "internal tag identifier for the product tag" msgstr "产品标签的内部标签标识符" -#: core/models.py:217 core/models.py:255 +#: core/models.py:221 core/models.py:259 msgid "tag name" msgstr "标签名称" -#: core/models.py:221 core/models.py:259 +#: core/models.py:225 core/models.py:263 msgid "user-friendly name for the product tag" msgstr "方便用户使用的产品标签名称" -#: core/models.py:222 core/models.py:260 +#: core/models.py:226 core/models.py:264 msgid "tag display name" msgstr "标签显示名称" -#: core/models.py:230 +#: core/models.py:234 msgid "product tag" msgstr "产品标签" -#: core/models.py:268 +#: core/models.py:272 msgid "category tag" msgstr "类别标签" -#: core/models.py:269 core/models.py:398 +#: core/models.py:273 core/models.py:402 msgid "category tags" msgstr "类别标签" -#: core/models.py:345 +#: core/models.py:349 msgid "upload an image representing this category" msgstr "上传代表该类别的图片" -#: core/models.py:348 +#: core/models.py:352 msgid "category image" msgstr "类别 图像" -#: core/models.py:353 +#: core/models.py:357 msgid "define a markup percentage for products in this category" msgstr "定义该类别产品的加价百分比" -#: core/models.py:362 +#: core/models.py:366 msgid "parent of this category to form a hierarchical structure" msgstr "该类别的父类别,形成等级结构" -#: core/models.py:363 +#: core/models.py:367 msgid "parent category" msgstr "父类" -#: core/models.py:368 +#: core/models.py:372 msgid "category name" msgstr "类别名称" -#: core/models.py:369 +#: core/models.py:373 msgid "provide a name for this category" msgstr "提供该类别的名称" -#: core/models.py:376 +#: core/models.py:380 msgid "add a detailed description for this category" msgstr "为该类别添加详细说明" -#: core/models.py:377 +#: core/models.py:381 msgid "category description" msgstr "类别说明" -#: core/models.py:397 +#: core/models.py:401 msgid "tags that help describe or group this category" msgstr "有助于描述或归类该类别的标签" -#: core/models.py:404 core/models.py:492 +#: core/models.py:408 core/models.py:496 msgid "priority" msgstr "优先权" -#: core/models.py:445 +#: core/models.py:449 msgid "name of this brand" msgstr "品牌名称" -#: core/models.py:446 +#: core/models.py:450 msgid "brand name" msgstr "品牌名称" -#: core/models.py:453 +#: core/models.py:457 msgid "upload a logo representing this brand" msgstr "上传代表该品牌的徽标" -#: core/models.py:455 +#: core/models.py:459 msgid "brand small image" msgstr "品牌小形象" -#: core/models.py:461 +#: core/models.py:465 msgid "upload a big logo representing this brand" msgstr "上传代表该品牌的大徽标" -#: core/models.py:463 +#: core/models.py:467 msgid "brand big image" msgstr "品牌大形象" -#: core/models.py:468 +#: core/models.py:472 msgid "add a detailed description of the brand" msgstr "添加品牌的详细描述" -#: core/models.py:469 +#: core/models.py:473 msgid "brand description" msgstr "品牌描述" -#: core/models.py:474 +#: core/models.py:478 msgid "optional categories that this brand is associated with" msgstr "与该品牌相关的可选类别" -#: core/models.py:475 +#: core/models.py:479 msgid "associated categories" msgstr "类别" -#: core/models.py:529 +#: core/models.py:533 msgid "the vendor supplying this product stock" msgstr "提供该产品库存的供应商" -#: core/models.py:530 +#: core/models.py:534 msgid "associated vendor" msgstr "相关供应商" -#: core/models.py:534 +#: core/models.py:538 msgid "final price to the customer after markups" msgstr "加价后给客户的最终价格" -#: core/models.py:535 +#: core/models.py:539 msgid "selling price" msgstr "销售价格" -#: core/models.py:540 +#: core/models.py:544 msgid "the product associated with this stock entry" msgstr "与该库存条目相关的产品" -#: core/models.py:541 core/models.py:859 core/models.py:916 -#: core/models.py:1837 +#: core/models.py:545 core/models.py:863 core/models.py:920 +#: core/models.py:1874 msgid "associated product" msgstr "相关产品" -#: core/models.py:548 +#: core/models.py:552 msgid "the price paid to the vendor for this product" msgstr "为该产品支付给供应商的价格" -#: core/models.py:549 +#: core/models.py:553 msgid "vendor purchase price" msgstr "供应商购买价格" -#: core/models.py:553 +#: core/models.py:557 msgid "available quantity of the product in stock" msgstr "产品的可用库存量" -#: core/models.py:554 +#: core/models.py:558 msgid "quantity in stock" msgstr "库存数量" -#: core/models.py:558 +#: core/models.py:562 msgid "vendor-assigned SKU for identifying the product" msgstr "供应商指定的 SKU,用于识别产品" -#: core/models.py:559 +#: core/models.py:563 msgid "vendor sku" msgstr "供应商 SKU" -#: core/models.py:565 +#: core/models.py:569 msgid "digital file associated with this stock if applicable" msgstr "与该库存相关的数字文件(如适用" -#: core/models.py:566 +#: core/models.py:570 msgid "digital file" msgstr "数字文件" -#: core/models.py:575 +#: core/models.py:579 msgid "stock entries" msgstr "库存条目" -#: core/models.py:619 +#: core/models.py:623 msgid "category this product belongs to" msgstr "该产品所属类别" -#: core/models.py:628 +#: core/models.py:632 msgid "optionally associate this product with a brand" msgstr "可选择将该产品与某个品牌联系起来" -#: core/models.py:634 +#: core/models.py:638 msgid "tags that help describe or group this product" msgstr "有助于描述或归类该产品的标签" -#: core/models.py:639 +#: core/models.py:643 msgid "indicates whether this product is digitally delivered" msgstr "表示该产品是否以数字方式交付" -#: core/models.py:640 +#: core/models.py:644 msgid "is product digital" msgstr "产品是否数字化" -#: core/models.py:646 +#: core/models.py:650 msgid "provide a clear identifying name for the product" msgstr "为产品提供一个明确的标识名称" -#: core/models.py:647 +#: core/models.py:651 msgid "product name" msgstr "产品名称" -#: core/models.py:652 core/models.py:982 +#: core/models.py:656 core/models.py:986 msgid "add a detailed description of the product" msgstr "添加产品的详细描述" -#: core/models.py:653 +#: core/models.py:657 msgid "product description" msgstr "产品说明" -#: core/models.py:660 +#: core/models.py:664 msgid "part number for this product" msgstr "该产品的零件编号" -#: core/models.py:661 +#: core/models.py:665 msgid "part number" msgstr "部件编号" -#: core/models.py:680 +#: core/models.py:684 msgid "stock keeping unit for this product" msgstr "该产品的库存单位" -#: core/models.py:681 -msgid "SKU" -msgstr "商品编号" - -#: core/models.py:780 +#: core/models.py:784 msgid "category of this attribute" msgstr "该属性的类别" -#: core/models.py:788 +#: core/models.py:792 msgid "group of this attribute" msgstr "该属性的组" -#: core/models.py:794 +#: core/models.py:798 msgid "string" msgstr "字符串" -#: core/models.py:795 +#: core/models.py:799 msgid "integer" msgstr "整数" -#: core/models.py:796 +#: core/models.py:800 msgid "float" msgstr "浮动" -#: core/models.py:797 +#: core/models.py:801 msgid "boolean" msgstr "布尔型" -#: core/models.py:798 +#: core/models.py:802 msgid "array" msgstr "阵列" -#: core/models.py:799 +#: core/models.py:803 msgid "object" msgstr "对象" -#: core/models.py:801 +#: core/models.py:805 msgid "type of the attribute's value" msgstr "属性值的类型" -#: core/models.py:802 +#: core/models.py:806 msgid "value type" msgstr "价值类型" -#: core/models.py:807 +#: core/models.py:811 msgid "name of this attribute" msgstr "该属性的名称" -#: core/models.py:808 +#: core/models.py:812 msgid "attribute's name" msgstr "属性名称" -#: core/models.py:816 core/models.py:851 +#: core/models.py:820 core/models.py:855 #: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "属性" -#: core/models.py:850 +#: core/models.py:854 msgid "attribute of this value" msgstr "该值的属性" -#: core/models.py:858 +#: core/models.py:862 msgid "the specific product associated with this attribute's value" msgstr "与该属性值相关的特定产品" -#: core/models.py:864 +#: core/models.py:868 msgid "the specific value for this attribute" msgstr "该属性的具体值" -#: core/models.py:898 +#: core/models.py:902 msgid "provide alternative text for the image for accessibility" msgstr "为图像提供替代文字,以便于访问" -#: core/models.py:899 +#: core/models.py:903 msgid "image alt text" msgstr "图片 alt 文本" -#: core/models.py:902 +#: core/models.py:906 msgid "upload the image file for this product" msgstr "上传该产品的图片文件" -#: core/models.py:903 core/models.py:928 +#: core/models.py:907 core/models.py:932 msgid "product image" msgstr "产品图片" -#: core/models.py:909 +#: core/models.py:913 msgid "determines the order in which images are displayed" msgstr "确定图像的显示顺序" -#: core/models.py:910 +#: core/models.py:914 msgid "display priority" msgstr "显示优先级" -#: core/models.py:915 +#: core/models.py:919 msgid "the product that this image represents" msgstr "该图片所代表的产品" -#: core/models.py:929 +#: core/models.py:933 msgid "product images" msgstr "产品图片" -#: core/models.py:970 +#: core/models.py:974 msgid "percentage discount for the selected products" msgstr "所选产品的折扣百分比" -#: core/models.py:971 +#: core/models.py:975 msgid "discount percentage" msgstr "折扣百分比" -#: core/models.py:976 +#: core/models.py:980 msgid "provide a unique name for this promotion" msgstr "为该促销活动提供一个独特的名称" -#: core/models.py:977 +#: core/models.py:981 msgid "promotion name" msgstr "推广名称" -#: core/models.py:983 +#: core/models.py:987 msgid "promotion description" msgstr "促销说明" -#: core/models.py:988 +#: core/models.py:992 msgid "select which products are included in this promotion" msgstr "选择促销活动包括哪些产品" -#: core/models.py:989 +#: core/models.py:993 msgid "included products" msgstr "包括产品" -#: core/models.py:993 +#: core/models.py:997 msgid "promotion" msgstr "促销活动" -#: core/models.py:1018 +#: core/models.py:1022 msgid "products that the user has marked as wanted" msgstr "用户标记为想要的产品" -#: core/models.py:1026 +#: core/models.py:1030 msgid "user who owns this wishlist" msgstr "拥有此愿望清单的用户" -#: core/models.py:1027 +#: core/models.py:1031 msgid "wishlist owner" msgstr "心愿单所有者" -#: core/models.py:1035 +#: core/models.py:1039 msgid "wishlist" msgstr "愿望清单" -#: core/models.py:1102 +#: core/models.py:1106 msgid "documentary" msgstr "纪录片" -#: core/models.py:1103 +#: core/models.py:1107 msgid "documentaries" msgstr "纪录片" -#: core/models.py:1113 +#: core/models.py:1117 msgid "unresolved" msgstr "未解决" -#: core/models.py:1159 +#: core/models.py:1163 msgid "address line for the customer" msgstr "客户地址栏" -#: core/models.py:1160 +#: core/models.py:1164 msgid "address line" msgstr "地址栏" -#: core/models.py:1162 +#: core/models.py:1166 msgid "street" msgstr "街道" -#: core/models.py:1163 +#: core/models.py:1167 msgid "district" msgstr "地区" -#: core/models.py:1164 +#: core/models.py:1168 msgid "city" msgstr "城市" -#: core/models.py:1165 +#: core/models.py:1169 msgid "region" msgstr "地区" -#: core/models.py:1166 +#: core/models.py:1170 msgid "postal code" msgstr "邮政编码" -#: core/models.py:1167 +#: core/models.py:1171 msgid "country" msgstr "国家" -#: core/models.py:1174 +#: core/models.py:1178 msgid "geolocation point: (longitude, latitude)" msgstr "地理位置点(经度、纬度)" -#: core/models.py:1177 +#: core/models.py:1181 msgid "full JSON response from geocoder for this address" msgstr "地理编码器对此地址的完整 JSON 响应" -#: core/models.py:1182 +#: core/models.py:1186 msgid "stored JSON response from the geocoding service" msgstr "存储的来自地理编码服务的 JSON 响应" -#: core/models.py:1190 +#: core/models.py:1194 msgid "address" msgstr "地址" -#: core/models.py:1191 +#: core/models.py:1195 msgid "addresses" msgstr "地址" -#: core/models.py:1236 +#: core/models.py:1240 msgid "unique code used by a user to redeem a discount" msgstr "用户用于兑换折扣的唯一代码" -#: core/models.py:1237 +#: core/models.py:1241 msgid "promo code identifier" msgstr "促销代码标识符" -#: core/models.py:1244 +#: core/models.py:1248 msgid "fixed discount amount applied if percent is not used" msgstr "如果不使用百分比,则使用固定折扣额" -#: core/models.py:1245 +#: core/models.py:1249 msgid "fixed discount amount" msgstr "固定折扣额" -#: core/models.py:1251 +#: core/models.py:1255 msgid "percentage discount applied if fixed amount is not used" msgstr "未使用固定金额时适用的折扣百分比" -#: core/models.py:1252 +#: core/models.py:1256 msgid "percentage discount" msgstr "折扣百分比" -#: core/models.py:1257 +#: core/models.py:1261 msgid "timestamp when the promocode expires" msgstr "促销代码过期的时间戳" -#: core/models.py:1258 +#: core/models.py:1262 msgid "end validity time" msgstr "结束有效时间" -#: core/models.py:1263 +#: core/models.py:1267 msgid "timestamp from which this promocode is valid" msgstr "该促销代码有效的时间戳" -#: core/models.py:1264 +#: core/models.py:1268 msgid "start validity time" msgstr "开始有效时间" -#: core/models.py:1269 +#: core/models.py:1273 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "使用促销代码的时间戳,如果尚未使用,则留空" -#: core/models.py:1270 +#: core/models.py:1274 msgid "usage timestamp" msgstr "使用时间戳" -#: core/models.py:1275 +#: core/models.py:1279 msgid "user assigned to this promocode if applicable" msgstr "分配给此促销代码的用户(如适用" -#: core/models.py:1276 +#: core/models.py:1280 msgid "assigned user" msgstr "指定用户" -#: core/models.py:1283 +#: core/models.py:1287 msgid "promo code" msgstr "促销代码" -#: core/models.py:1284 +#: core/models.py:1288 msgid "promo codes" msgstr "促销代码" -#: core/models.py:1291 +#: core/models.py:1295 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。" -#: core/models.py:1306 +#: core/models.py:1310 msgid "promocode already used" msgstr "促销代码已被使用" -#: core/models.py:1322 +#: core/models.py:1326 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "促销代码 {self.uuid} 的折扣类型无效!" -#: core/models.py:1358 +#: core/models.py:1362 msgid "the billing address used for this order" msgstr "该订单使用的账单地址" -#: core/models.py:1366 +#: core/models.py:1370 msgid "optional promo code applied to this order" msgstr "此订单可选择使用促销代码" -#: core/models.py:1367 +#: core/models.py:1371 msgid "applied promo code" msgstr "应用促销代码" -#: core/models.py:1375 +#: core/models.py:1379 msgid "the shipping address used for this order" msgstr "该订单使用的送货地址" -#: core/models.py:1376 +#: core/models.py:1380 msgid "shipping address" msgstr "送货地址" -#: core/models.py:1382 +#: core/models.py:1386 msgid "current status of the order in its lifecycle" msgstr "订单在其生命周期中的当前状态" -#: core/models.py:1383 +#: core/models.py:1387 msgid "order status" msgstr "订单状态" -#: core/models.py:1388 core/models.py:1814 +#: core/models.py:1392 core/models.py:1851 msgid "json structure of notifications to display to users" msgstr "向用户显示的通知的 JSON 结构,在管理用户界面中使用表格视图" -#: core/models.py:1394 +#: core/models.py:1398 msgid "json representation of order attributes for this order" msgstr "该订单属性的 JSON 表示形式" -#: core/models.py:1400 +#: core/models.py:1404 msgid "the user who placed the order" msgstr "下订单的用户" -#: core/models.py:1401 +#: core/models.py:1405 msgid "user" msgstr "用户" -#: core/models.py:1407 +#: core/models.py:1411 msgid "the timestamp when the order was finalized" msgstr "订单确定的时间戳" -#: core/models.py:1408 +#: core/models.py:1412 msgid "buy time" msgstr "购买时间" -#: core/models.py:1415 +#: core/models.py:1419 msgid "a human-readable identifier for the order" msgstr "订单的人工可读标识符" -#: core/models.py:1416 +#: core/models.py:1420 msgid "human readable id" msgstr "人类可读 ID" -#: core/models.py:1422 +#: core/models.py:1426 msgid "order" msgstr "订购" -#: core/models.py:1439 +#: core/models.py:1447 msgid "a user must have only one pending order at a time" msgstr "用户每次只能有一个挂单!" -#: core/models.py:1473 +#: core/models.py:1481 msgid "you cannot add products to an order that is not a pending one" msgstr "您不能向非待处理订单添加产品" -#: core/models.py:1478 +#: core/models.py:1486 msgid "you cannot add inactive products to order" msgstr "您不能在订单中添加非活动产品" -#: core/models.py:1495 +#: core/models.py:1503 msgid "you cannot add more products than available in stock" msgstr "添加的产品数量不能超过现有库存" -#: core/models.py:1517 core/models.py:1542 core/models.py:1550 +#: core/models.py:1525 core/models.py:1550 core/models.py:1558 msgid "you cannot remove products from an order that is not a pending one" msgstr "您不能从非待处理订单中删除产品" -#: core/models.py:1538 +#: core/models.py:1546 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "查询 <{query}> 时,{name} 不存在!" -#: core/models.py:1570 +#: core/models.py:1578 msgid "promocode does not exist" msgstr "促销代码不存在" -#: core/models.py:1576 +#: core/models.py:1584 msgid "you can only buy physical products with shipping address specified" msgstr "您只能购买指定送货地址的实物产品!" -#: core/models.py:1595 +#: core/models.py:1603 msgid "address does not exist" msgstr "地址不存在" -#: core/models.py:1616 core/models.py:1679 +#: core/models.py:1624 core/models.py:1693 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "您现在无法购买,请稍后再试。" -#: core/models.py:1619 core/models.py:1675 +#: core/models.py:1627 core/models.py:1689 msgid "invalid force value" msgstr "力值无效" -#: core/models.py:1625 core/models.py:1682 +#: core/models.py:1633 core/models.py:1696 msgid "you cannot purchase an empty order!" msgstr "您不能购买空单!" -#: core/models.py:1644 +#: core/models.py:1652 msgid "you cannot buy an order without a user" msgstr "没有用户就无法购买订单!" -#: core/models.py:1652 +#: core/models.py:1666 msgid "a user without a balance cannot buy with balance" msgstr "没有余额的用户不能使用余额购买!" -#: core/models.py:1657 +#: core/models.py:1671 msgid "insufficient funds to complete the order" msgstr "资金不足,无法完成订单" -#: core/models.py:1691 +#: core/models.py:1705 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "未经注册不能购买,请提供以下信息:客户姓名、客户电子邮件、客户电话号码" -#: core/models.py:1700 +#: core/models.py:1714 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "付款方式无效:来自 {available_payment_methods} 的 {payment_method} !" -#: core/models.py:1802 +#: core/models.py:1839 msgid "the price paid by the customer for this product at purchase time" msgstr "客户购买该产品时支付的价格" -#: core/models.py:1803 +#: core/models.py:1840 msgid "purchase price at order time" msgstr "订购时的购买价格" -#: core/models.py:1808 +#: core/models.py:1845 msgid "internal comments for admins about this ordered product" msgstr "管理员对该订购产品的内部评论" -#: core/models.py:1809 +#: core/models.py:1846 msgid "internal comments" msgstr "内部意见" -#: core/models.py:1815 +#: core/models.py:1852 msgid "user notifications" msgstr "用户通知" -#: core/models.py:1820 +#: core/models.py:1857 msgid "json representation of this item's attributes" msgstr "该项属性的 JSON 表示形式" -#: core/models.py:1821 +#: core/models.py:1858 msgid "ordered product attributes" msgstr "有序的产品属性" -#: core/models.py:1826 +#: core/models.py:1863 msgid "reference to the parent order that contains this product" msgstr "对包含该产品的父订单的引用" -#: core/models.py:1827 +#: core/models.py:1864 msgid "parent order" msgstr "父顺序" -#: core/models.py:1836 +#: core/models.py:1873 msgid "the specific product associated with this order line" msgstr "与该订单项目相关的具体产品" -#: core/models.py:1843 +#: core/models.py:1880 msgid "quantity of this specific product in the order" msgstr "订单中该特定产品的数量" -#: core/models.py:1844 +#: core/models.py:1881 msgid "product quantity" msgstr "产品数量" -#: core/models.py:1851 +#: core/models.py:1888 msgid "current status of this product in the order" msgstr "订单中该产品的当前状态" -#: core/models.py:1852 +#: core/models.py:1889 msgid "product line status" msgstr "产品系列状态" -#: core/models.py:1912 +#: core/models.py:1949 msgid "order product must have an order" msgstr "订单产品必须有相关的订单!" -#: core/models.py:1914 +#: core/models.py:1951 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "为反馈指定了错误的操作:{action}!" -#: core/models.py:1922 +#: core/models.py:1959 msgid "you cannot feedback an order which is not received" msgstr "您不能反馈未收到的订单" -#: core/models.py:1957 +#: core/models.py:1964 +msgid "name" +msgstr "名称" + +#: core/models.py:1965 +msgid "URL of the integration" +msgstr "集成的 URL" + +#: core/models.py:1966 +msgid "authentication credentials" +msgstr "认证证书" + +#: core/models.py:1980 +msgid "you can only have one default CRM provider" +msgstr "只能有一个默认 CRM 提供商" + +#: core/models.py:1984 +msgid "CRM" +msgstr "客户关系管理" + +#: core/models.py:1985 +msgid "CRMs" +msgstr "客户关系管理" + +#: core/models.py:1997 +msgid "order CRM link" +msgstr "订单的客户关系管理链接" + +#: core/models.py:1998 +msgid "orders CRM links" +msgstr "订单的客户关系管理链接" + +#: core/models.py:2032 msgid "download" msgstr "下载" -#: core/models.py:1958 +#: core/models.py:2033 msgid "downloads" msgstr "下载" -#: core/models.py:1966 +#: core/models.py:2041 msgid "you can not download a digital asset for a non-finished order" msgstr "您无法下载未完成订单的数字资产" -#: core/models.py:1996 +#: core/models.py:2071 msgid "user-provided comments about their experience with the product" msgstr "用户提供的产品使用体验评论" -#: core/models.py:1997 +#: core/models.py:2072 msgid "feedback comments" msgstr "反馈意见" -#: core/models.py:2004 +#: core/models.py:2079 msgid "" "references the specific product in an order that this feedback is about" msgstr "引用该反馈意见涉及的订单中的具体产品" -#: core/models.py:2005 +#: core/models.py:2080 msgid "related order product" msgstr "相关订购产品" -#: core/models.py:2010 +#: core/models.py:2085 msgid "user-assigned rating for the product" msgstr "用户对产品的评分" -#: core/models.py:2011 +#: core/models.py:2086 msgid "product rating" msgstr "产品评级" -#: core/models.py:2021 +#: core/models.py:2096 msgid "feedback" msgstr "反馈意见" @@ -2074,7 +2107,7 @@ msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "您必须提供评论、评级和订单产品 uuid 才能添加反馈。" -#: core/signals.py:62 +#: core/signals.py:65 msgid "error during promocode creation: {e!s}" msgstr "创建促销代码时出错:{e!s}" @@ -2090,6 +2123,7 @@ 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" @@ -2140,6 +2174,7 @@ 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 "保留所有权利" @@ -2148,6 +2183,7 @@ 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_、" @@ -2173,6 +2209,7 @@ 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" @@ -2180,6 +2217,7 @@ msgid "" 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_团队" @@ -2188,6 +2226,19 @@ msgstr "致以最诚挚的问候,
%(project_name)s_团队" 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 "" @@ -2228,21 +2279,26 @@ msgstr "需要数据和超时" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "超时值无效,必须介于 0 和 216000 秒之间" -#: core/utils/emailing.py:24 +#: core/utils/emailing.py:25 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME}| 联系我们" -#: core/utils/emailing.py:63 +#: core/utils/emailing.py:64 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME}| 订单确认" -#: core/utils/emailing.py:98 +#: 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 "您没有执行此操作的权限。" @@ -2260,15 +2316,15 @@ msgstr "图像尺寸不应超过 w{max_width} x h{max_height} 像素!" msgid "invalid phone number format" msgstr "电话号码格式无效" -#: core/views.py:480 +#: core/views.py:481 msgid "you can only download the digital asset once" msgstr "您只能下载一次数字资产" -#: core/views.py:538 +#: core/views.py:539 msgid "favicon not found" msgstr "未找到 favicon" -#: core/viewsets.py:1316 +#: core/viewsets.py:1319 #, python-brace-format msgid "Geocoding error: {e}" msgstr "地理编码错误:{e}" diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.po b/evibes/locale/ar_AR/LC_MESSAGES/django.po index 00bc3263..c68b386a 100644 --- a/evibes/locale/ar_AR/LC_MESSAGES/django.po +++ b/evibes/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 43a849e6..1d800542 100644 --- a/evibes/locale/cs_CZ/LC_MESSAGES/django.po +++ b/evibes/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 0ce81ed4..00229b0f 100644 --- a/evibes/locale/da_DK/LC_MESSAGES/django.po +++ b/evibes/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 f572044e..18881b39 100644 --- a/evibes/locale/de_DE/LC_MESSAGES/django.po +++ b/evibes/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 401a8dd1..224ca112 100644 --- a/evibes/locale/en_GB/LC_MESSAGES/django.po +++ b/evibes/locale/en_GB/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 29b9056a..7dbb8d46 100644 --- a/evibes/locale/en_US/LC_MESSAGES/django.po +++ b/evibes/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 78a0afde..711a36f6 100644 --- a/evibes/locale/es_ES/LC_MESSAGES/django.po +++ b/evibes/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/fr_FR/LC_MESSAGES/django.po b/evibes/locale/fr_FR/LC_MESSAGES/django.po index 9d48a77f..15f50a74 100644 --- a/evibes/locale/fr_FR/LC_MESSAGES/django.po +++ b/evibes/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/hi_IN/LC_MESSAGES/django.po b/evibes/locale/hi_IN/LC_MESSAGES/django.po index bc48fb0c..528602cd 100644 --- a/evibes/locale/hi_IN/LC_MESSAGES/django.po +++ b/evibes/locale/hi_IN/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/it_IT/LC_MESSAGES/django.po b/evibes/locale/it_IT/LC_MESSAGES/django.po index 6f73d542..7783ea4a 100644 --- a/evibes/locale/it_IT/LC_MESSAGES/django.po +++ b/evibes/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 83bf798b..17b84887 100644 --- a/evibes/locale/ja_JP/LC_MESSAGES/django.po +++ b/evibes/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 bc48fb0c..528602cd 100644 --- a/evibes/locale/kk_KZ/LC_MESSAGES/django.po +++ b/evibes/locale/kk_KZ/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/nl_NL/LC_MESSAGES/django.po b/evibes/locale/nl_NL/LC_MESSAGES/django.po index a7eae046..a6e2f4da 100644 --- a/evibes/locale/nl_NL/LC_MESSAGES/django.po +++ b/evibes/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/pl_PL/LC_MESSAGES/django.po b/evibes/locale/pl_PL/LC_MESSAGES/django.po index 5cd9694e..ffdcb25f 100644 --- a/evibes/locale/pl_PL/LC_MESSAGES/django.po +++ b/evibes/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 6bbbecc0..ea76ca7e 100644 --- a/evibes/locale/pt_BR/LC_MESSAGES/django.po +++ b/evibes/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 7241af63..09e38a5f 100644 --- a/evibes/locale/ro_RO/LC_MESSAGES/django.po +++ b/evibes/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 e24154d8..af7a4908 100644 --- a/evibes/locale/ru_RU/LC_MESSAGES/django.po +++ b/evibes/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/zh_Hans/LC_MESSAGES/django.po b/evibes/locale/zh_Hans/LC_MESSAGES/django.po index a11fd4ce..b25f1cf4 100644 --- a/evibes/locale/zh_Hans/LC_MESSAGES/django.po +++ b/evibes/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 40a37b19..d00d9e37 100644 --- a/evibes/settings/base.py +++ b/evibes/settings/base.py @@ -2,7 +2,7 @@ import logging from os import getenv, name from pathlib import Path -EVIBES_VERSION = "2.9.3" +EVIBES_VERSION = "3.0.0" BASE_DIR = Path(__file__).resolve().parent.parent.parent diff --git a/payments/locale/ar_AR/LC_MESSAGES/django.po b/payments/locale/ar_AR/LC_MESSAGES/django.po index 5d8bb9dc..ad06a16a 100644 --- a/payments/locale/ar_AR/LC_MESSAGES/django.po +++ b/payments/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 8b3575a4..faba4faf 100644 --- a/payments/locale/cs_CZ/LC_MESSAGES/django.po +++ b/payments/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 98fe705f..71b184aa 100644 --- a/payments/locale/da_DK/LC_MESSAGES/django.po +++ b/payments/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 1a156dc4..c6cba6d8 100644 --- a/payments/locale/de_DE/LC_MESSAGES/django.po +++ b/payments/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 fe0443d9..84cd8668 100644 --- a/payments/locale/en_GB/LC_MESSAGES/django.po +++ b/payments/locale/en_GB/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 a5080ff3..def84e14 100644 --- a/payments/locale/en_US/LC_MESSAGES/django.po +++ b/payments/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 516e90fe..77450b0e 100644 --- a/payments/locale/es_ES/LC_MESSAGES/django.po +++ b/payments/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/fr_FR/LC_MESSAGES/django.po b/payments/locale/fr_FR/LC_MESSAGES/django.po index 3cb04288..fd1d3ff3 100644 --- a/payments/locale/fr_FR/LC_MESSAGES/django.po +++ b/payments/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/hi_IN/LC_MESSAGES/django.po b/payments/locale/hi_IN/LC_MESSAGES/django.po index f2ab33b7..ba3d92b9 100644 --- a/payments/locale/hi_IN/LC_MESSAGES/django.po +++ b/payments/locale/hi_IN/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/it_IT/LC_MESSAGES/django.po b/payments/locale/it_IT/LC_MESSAGES/django.po index 8963d2bc..d9ec00dd 100644 --- a/payments/locale/it_IT/LC_MESSAGES/django.po +++ b/payments/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 0594b927..54b5c373 100644 --- a/payments/locale/ja_JP/LC_MESSAGES/django.po +++ b/payments/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 f2ab33b7..ba3d92b9 100644 --- a/payments/locale/kk_KZ/LC_MESSAGES/django.po +++ b/payments/locale/kk_KZ/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/nl_NL/LC_MESSAGES/django.po b/payments/locale/nl_NL/LC_MESSAGES/django.po index 765c143b..ea842371 100644 --- a/payments/locale/nl_NL/LC_MESSAGES/django.po +++ b/payments/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/pl_PL/LC_MESSAGES/django.po b/payments/locale/pl_PL/LC_MESSAGES/django.po index adf51096..542f69e2 100644 --- a/payments/locale/pl_PL/LC_MESSAGES/django.po +++ b/payments/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 d6682d32..27c74787 100644 --- a/payments/locale/pt_BR/LC_MESSAGES/django.po +++ b/payments/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 20f2c85e..e2377910 100644 --- a/payments/locale/ro_RO/LC_MESSAGES/django.po +++ b/payments/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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 a2265e74..1a6aee6e 100644 --- a/payments/locale/ru_RU/LC_MESSAGES/django.po +++ b/payments/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/zh_Hans/LC_MESSAGES/django.po b/payments/locale/zh_Hans/LC_MESSAGES/django.po index a39be376..14846970 100644 --- a/payments/locale/zh_Hans/LC_MESSAGES/django.po +++ b/payments/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+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/pyproject.toml b/pyproject.toml index 995e9a3f..700ba759 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "eVibes" -version = "2.9.3" +version = "3.0.0" description = "eVibes is an open-source eCommerce backend service built with Django. It’s designed for flexibility, making it ideal for various use cases and learning Django skills. The project is easy to customize, allowing for straightforward editing and extension." authors = ["fureunoir "] readme = "README.md" diff --git a/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po b/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po index 4541e5ee..f431b68a 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -78,47 +78,47 @@ msgstr "الرمز المميز صالح" msgid "create a new user" msgstr "إنشاء مستخدم جديد" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "استرداد تفاصيل المستخدم" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "تحديث تفاصيل المستخدم" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "حذف مستخدم" -#: vibes_auth/docs/drf/viewsets.py:33 +#: 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:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "التعامل مع تحميل الصورة الرمزية للمستخدم" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "تأكيد إعادة تعيين كلمة مرور المستخدم" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "تنشيط حساب مستخدم" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "رابط التفعيل غير صالح أو أن الحساب مفعل بالفعل" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "دمج المنتجات التي تم عرضها مؤخراً المخزنة لدى العميل" @@ -139,7 +139,7 @@ msgstr "{name} غير موجود: {uuid}!" msgid "malformed email" msgstr "بريد إلكتروني مشوه" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "رقم هاتف مشوه: {phone_number}!" @@ -286,33 +286,41 @@ msgstr "الرمز المميز المدرج في القائمة السوداء" msgid "blacklisted tokens" msgstr "الرموز المميزة المدرجة في القائمة السوداء" -#: vibes_auth/serializers.py:114 +#: 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:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "يجب تعيين سمة token_class على الفئة!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "تم إدراج الرمز المميز في القائمة السوداء" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "رمز غير صالح" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "لا توجد مطالبة معرف المستخدم في الرمز المميز" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "المستخدم غير موجود" diff --git a/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po b/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po index 0a0cd7af..2117d0d0 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -78,45 +78,45 @@ msgstr "Token je platný" msgid "create a new user" msgstr "Vytvoření nového uživatele" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Získání údajů o uživateli" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Aktualizace údajů uživatele" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Odstranění uživatele" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "Obnovení hesla uživatele odesláním e-mailu s obnovením hesla." -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Zpracování nahrávání avataru pro uživatele" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Potvrzení obnovení hesla uživatele" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "Hesla se neshodují" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Aktivace účtu uživatele" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "Aktivační odkaz je neplatný nebo je účet již aktivován" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "Sloučení naposledy zobrazených produktů uložených u klienta" @@ -137,7 +137,7 @@ msgstr "{name} neexistuje: {uuid}!" msgid "malformed email" msgstr "Špatně formulovaný e-mail" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Chybně zadané telefonní číslo: {phone_number}!" @@ -285,33 +285,41 @@ msgstr "Token na černé listině" msgid "blacklisted tokens" msgstr "Tokeny na černé listině" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` musí být slovník" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "Při registraci podniku je vyžadován identifikátor podniku." + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "nesprávně formulovaný e-mail: {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 "Nebyl nalezen žádný aktivní účet" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "Musí být nastaven atribut token_class na třídě!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Token na černé listině" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Neplatný token" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "V tokenu není deklarace uuid uživatele" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "Uživatel neexistuje" diff --git a/vibes_auth/locale/da_DK/LC_MESSAGES/django.po b/vibes_auth/locale/da_DK/LC_MESSAGES/django.po index 1814b965..7171c35b 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -78,47 +78,47 @@ msgstr "Tokenet er gyldigt" msgid "create a new user" msgstr "Opret en ny bruger" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Hent oplysninger om en bruger" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Opdater en brugers oplysninger" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Slet en bruger" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "" "Nulstil en brugers adgangskode ved at sende en e-mail om nulstilling af " "adgangskode" -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Håndter upload af avatar for en bruger" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Bekræft nulstilling af en brugers adgangskode" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "Adgangskoderne stemmer ikke overens" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Aktivér en brugers konto" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "Aktiveringslinket er ugyldigt, eller kontoen er allerede aktiveret" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "Flet nyligt viste produkter, der er gemt af klienten" @@ -139,7 +139,7 @@ msgstr "{name} findes ikke: {uuid}!" msgid "malformed email" msgstr "Misdannet e-mail" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Misdannet telefonnummer: {phone_number}!" @@ -287,33 +287,42 @@ msgstr "Sortlistet token" msgid "blacklisted tokens" msgstr "Sortlistede tokens" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` skal være en ordbog" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "" +"Virksomhedsidentifikator er påkrævet, når man registrerer sig som virksomhed" + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "Misdannet e-mail: {email}." -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 fundet" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "Skal sætte token_class-attributten på klassen!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Token blacklistet" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Ugyldigt token" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "Ingen bruger-uuid-krav til stede i token" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "Brugeren findes ikke" diff --git a/vibes_auth/locale/de_DE/LC_MESSAGES/django.po b/vibes_auth/locale/de_DE/LC_MESSAGES/django.po index 4fa79f17..e0c57f6d 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -79,47 +79,47 @@ msgstr "Das Token ist gültig" msgid "create a new user" msgstr "Einen neuen Benutzer anlegen" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Abrufen der Details eines Benutzers" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Aktualisieren der Benutzerdaten" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Einen Benutzer löschen" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "" "Zurücksetzen des Kennworts eines Benutzers durch Senden einer E-Mail zum " "Zurücksetzen des Kennworts" -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Avatar-Upload für einen Benutzer verwalten" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Bestätigen Sie das Zurücksetzen des Passworts eines Benutzers" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "Passwörter stimmen nicht überein" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Aktivieren eines Benutzerkontos" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "Aktivierungslink ist ungültig oder Konto bereits aktiviert" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "" "Zusammenführen der vom Kunden gespeicherten, zuletzt angesehenen Produkte" @@ -143,7 +143,7 @@ msgstr "{name} existiert nicht: {uuid}!" msgid "malformed email" msgstr "Fehlerhafte E-Mail" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Missgebildete Telefonnummer: {phone_number}!" @@ -292,33 +292,43 @@ msgstr "Token auf der schwarzen Liste" msgid "blacklisted tokens" msgstr "Token auf der schwarzen Liste" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "Attribute\" muss ein Wörterbuch sein" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "" +"Die Unternehmenskennung ist erforderlich, wenn Sie sich als Unternehmen " +"registrieren lassen." + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "missgebildete E-Mail: {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 "Kein aktives Konto gefunden" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "Das Attribut token_class muss auf class gesetzt werden!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Token auf der schwarzen Liste" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Ungültiges Token" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "Kein Benutzer uuid-Anspruch im Token vorhanden" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "Benutzer existiert nicht" diff --git a/vibes_auth/locale/en_GB/LC_MESSAGES/django.po b/vibes_auth/locale/en_GB/LC_MESSAGES/django.po index 31e366ed..a383a6bb 100644 --- a/vibes_auth/locale/en_GB/LC_MESSAGES/django.po +++ b/vibes_auth/locale/en_GB/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -82,45 +82,45 @@ msgstr "The token is valid" msgid "create a new user" msgstr "Create a new user" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Retrieve a user's details" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Update a user's details" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Delete a user" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "Reset a user's password by sending a reset password email" -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Handle avatar upload for a user" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Confirm a user's password reset" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "Passwords do not match" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Activate a user's account" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "Activation link is invalid or account already activated" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "Merge client-stored recently viewed products" @@ -141,7 +141,7 @@ msgstr "{name} does not exist: {uuid}!" msgid "malformed email" msgstr "Malformed email" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Malformed phone number: {phone_number}!" @@ -289,33 +289,41 @@ msgstr "Blacklisted token" msgid "blacklisted tokens" msgstr "Blacklisted tokens" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` must be a dictionary" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "Business identificator is required when registering as a business" + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "malformed email: {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 "No active account found" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "Must set token_class attribute on class!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Token blacklisted" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Invalid token" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "No user uuid claim present in token" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "User does not exist" diff --git a/vibes_auth/locale/en_US/LC_MESSAGES/django.po b/vibes_auth/locale/en_US/LC_MESSAGES/django.po index 6a98144e..f63b0ab9 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -78,45 +78,45 @@ msgstr "The token is valid" msgid "create a new user" msgstr "Create a new user" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Retrieve a user's details" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Update a user's details" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Delete a user" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "Reset a user's password by sending a reset password email" -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Handle avatar upload for a user" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Confirm a user's password reset" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "Passwords do not match" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Activate a user's account" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "Activation link is invalid or account already activated" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "Merge client-stored recently viewed products" @@ -137,7 +137,7 @@ msgstr "{name} does not exist: {uuid}!" msgid "malformed email" msgstr "Malformed email" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Malformed phone number: {phone_number}!" @@ -285,33 +285,41 @@ msgstr "Blacklisted token" msgid "blacklisted tokens" msgstr "Blacklisted tokens" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` must be a dictionary" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "Business identificator is required when registering as a business" + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "malformed email: {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 "No active account found" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "Must set token_class attribute on class!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Token blacklisted" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Invalid token" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "No user uuid claim present in token" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "User does not exist" diff --git a/vibes_auth/locale/es_ES/LC_MESSAGES/django.po b/vibes_auth/locale/es_ES/LC_MESSAGES/django.po index 68da284e..c28040f5 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -78,47 +78,47 @@ msgstr "El token es válido" msgid "create a new user" msgstr "Crear un nuevo usuario" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Recuperar los datos de un usuario" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Actualizar los datos de un usuario" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Eliminar un usuario" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "" "Restablecer la contraseña de un usuario enviando un correo electrónico de " "restablecimiento de contraseña" -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Gestionar la subida de avatares de un usuario" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Confirmar el restablecimiento de la contraseña de un usuario" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "Las contraseñas no coinciden" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Activar la cuenta de un usuario" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "El enlace de activación no es válido o la cuenta ya está activada" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "Fusionar productos vistos recientemente almacenados por el cliente" @@ -140,7 +140,7 @@ msgstr "{name} no existe: ¡{uuid}!" msgid "malformed email" msgstr "Correo electrónico malformado" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Número de teléfono malformado: ¡{phone_number}!" @@ -288,33 +288,42 @@ msgstr "Ficha en la lista negra" msgid "blacklisted tokens" msgstr "Fichas en la lista negra" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +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" + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "correo electrónico malformado: {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 "No se ha encontrado ninguna cuenta activa" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "Debe establecer el atributo token_class en la clase." -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Ficha en la lista negra" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Token no válido" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "No user uuid claim present in token" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "El usuario no existe" diff --git a/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po b/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po index 1fcabac5..1ea1326a 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -80,47 +80,47 @@ msgstr "Le jeton est valide" msgid "create a new user" msgstr "Créer un nouvel utilisateur" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Récupérer les données d'un utilisateur" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Mettre à jour les coordonnées d'un utilisateur" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Supprimer un utilisateur" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "" "Réinitialiser le mot de passe d'un utilisateur en envoyant un courriel de " "réinitialisation du mot de passe" -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Gérer le téléchargement d'un avatar pour un utilisateur" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Confirmer la réinitialisation du mot de passe d'un utilisateur" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "Les mots de passe ne correspondent pas" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Activer le compte d'un utilisateur" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "Le lien d'activation n'est pas valide ou le compte est déjà activé" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "Fusionner les produits récemment consultés stockés par le client" @@ -143,7 +143,7 @@ msgstr "{name} n'existe pas : {uuid} !" msgid "malformed email" msgstr "Courriel malformé" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Numéro de téléphone malformé : {phone_number} !" @@ -294,34 +294,44 @@ msgstr "Jeton sur liste noire" msgid "blacklisted tokens" msgstr "Jetons sur liste noire" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` doit être un dictionnaire" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "" +"L'identifiant de l'entreprise est requis lors de l'enregistrement de " +"l'entreprise." + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "email malformé : {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 "Aucun compte actif trouvé" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "L'attribut token_class doit être défini sur la classe !" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Token sur liste noire" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Jeton non valide" -#: vibes_auth/serializers.py:250 +#: 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" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "L'utilisateur n'existe pas" diff --git a/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po b/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po index a962becd..c6519b3e 100644 --- a/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po +++ b/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -81,45 +81,45 @@ msgstr "" msgid "create a new user" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:33 +#: 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:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "" @@ -140,7 +140,7 @@ msgstr "" msgid "malformed email" msgstr "" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "" @@ -286,33 +286,41 @@ msgstr "" msgid "blacklisted tokens" msgstr "" -#: vibes_auth/serializers.py:114 +#: 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:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "" diff --git a/vibes_auth/locale/it_IT/LC_MESSAGES/django.po b/vibes_auth/locale/it_IT/LC_MESSAGES/django.po index d374c85c..c716490c 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -79,47 +79,47 @@ msgstr "Il token è valido" msgid "create a new user" msgstr "Creare un nuovo utente" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Recuperare i dettagli di un utente" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Aggiornare i dettagli di un utente" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Eliminare un utente" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "" "Reimpostare la password di un utente inviando un'e-mail di reimpostazione " "della password" -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Gestire il caricamento dell'avatar per un utente" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Confermare la reimpostazione della password di un utente" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "Le password non corrispondono" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Attivare l'account di un utente" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "Il link di attivazione non è valido o l'account è già stato attivato." -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "Unire i prodotti memorizzati dal cliente e visti di recente" @@ -140,7 +140,7 @@ msgstr "{name} non esiste: {uuid}!" msgid "malformed email" msgstr "Email malformata" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Numero di telefono malformato: {phone_number}!" @@ -290,33 +290,43 @@ msgstr "Token in lista nera" msgid "blacklisted tokens" msgstr "Gettoni nella lista nera" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributi` deve essere un dizionario" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "" +"L'identificativo dell'azienda è necessario quando ci si registra come " +"azienda." + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "email malformata: {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 "Nessun conto attivo trovato" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "Deve essere impostato l'attributo token_class sulla classe!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Token nella lista nera" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Token non valido" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "Nessuna richiesta di uuid utente presente nel token" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "L'utente non esiste" diff --git a/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po b/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po index a0ed5255..b53f3856 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -78,45 +78,45 @@ msgstr "トークンは有効です" msgid "create a new user" msgstr "新規ユーザーの作成" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "ユーザーの詳細を取得する" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "ユーザー情報の更新" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "ユーザーを削除する" -#: vibes_auth/docs/drf/viewsets.py:33 +#: 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:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "ユーザーのアバターアップロードを処理する" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "ユーザーのパスワード・リセットを確認する" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "ユーザーアカウントの有効化" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "アクティベーションリンクが無効であるか、アカウントがすでにアクティベーションされています。" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "クライアントが最近閲覧した商品をマージする" @@ -137,7 +137,7 @@ msgstr "{name}は存在しません:{uuid}が存在しません!" msgid "malformed email" msgstr "不正な電子メール" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "電話番号が不正です:{phone_number}!" @@ -283,33 +283,41 @@ msgstr "ブラックリストトークン" msgid "blacklisted tokens" msgstr "ブラックリストに載ったトークン" -#: vibes_auth/serializers.py:114 +#: 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:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "クラスにtoken_class属性を設定する必要があります!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "トークンのブラックリスト入り" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "無効なトークン" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "トークンにユーザー uuid クレームが存在しない" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "ユーザーが存在しない" diff --git a/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po b/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po index a962becd..c6519b3e 100644 --- a/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po +++ b/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: EVIBES 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -81,45 +81,45 @@ msgstr "" msgid "create a new user" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:33 +#: 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:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "" @@ -140,7 +140,7 @@ msgstr "" msgid "malformed email" msgstr "" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "" @@ -286,33 +286,41 @@ msgstr "" msgid "blacklisted tokens" msgstr "" -#: vibes_auth/serializers.py:114 +#: 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:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "" diff --git a/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po b/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po index c034803e..20196390 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -78,47 +78,47 @@ msgstr "The token is valid" msgid "create a new user" msgstr "Een nieuwe gebruiker maken" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "De gegevens van een gebruiker ophalen" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "De gegevens van een gebruiker bijwerken" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Een gebruiker verwijderen" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "" "Het wachtwoord van een gebruiker opnieuw instellen door een e-mail met het " "wachtwoord opnieuw in te stellen" -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Avatar uploaden voor een gebruiker afhandelen" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Bevestig het resetten van het wachtwoord van een gebruiker" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "Wachtwoorden komen niet overeen" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Een gebruikersaccount activeren" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "Activeringslink is ongeldig of account is al geactiveerd" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "Laatst bekeken producten samenvoegen" @@ -141,7 +141,7 @@ msgstr "{name} bestaat niet: {uuid}!" msgid "malformed email" msgstr "Misvormde e-mail" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Misvormd telefoonnummer: {phone_number}!" @@ -289,33 +289,41 @@ msgstr "Token op zwarte lijst" msgid "blacklisted tokens" msgstr "Tokens op de zwarte lijst" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributen` moet een woordenboek zijn" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "Bedrijfsidentificator is vereist bij registratie als bedrijf" + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "misvormde e-mail: {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 "Geen actieve account gevonden" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "Moet token_class attribuut instellen op klasse!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Token op zwarte lijst" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Invalid token" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "Geen gebruiker uuid claim aanwezig in token" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "Gebruiker bestaat niet" diff --git a/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po b/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po index 1d5d4015..d7cf2078 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -79,47 +79,47 @@ msgstr "Token jest ważny" msgid "create a new user" msgstr "Tworzenie nowego użytkownika" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Pobieranie danych użytkownika" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Aktualizacja danych użytkownika" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Usuwanie użytkownika" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "" "Zresetowanie hasła użytkownika poprzez wysłanie wiadomości e-mail " "resetującej hasło." -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Obsługa przesyłania awatara dla użytkownika" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Potwierdzenie zresetowania hasła użytkownika" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "Hasła nie są zgodne" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Aktywacja konta użytkownika" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "Link aktywacyjny jest nieprawidłowy lub konto zostało już aktywowane." -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "Scalanie ostatnio oglądanych produktów przechowywanych przez klienta" @@ -142,7 +142,7 @@ msgstr "{name} nie istnieje: {uuid}!" msgid "malformed email" msgstr "Zniekształcona wiadomość e-mail" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Zniekształcony numer telefonu: {phone_number}!" @@ -290,33 +290,41 @@ msgstr "Token na czarnej liście" msgid "blacklisted tokens" msgstr "Tokeny znajdujące się na czarnej liście" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` musi być słownikiem" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "Identyfikator firmy jest wymagany podczas rejestracji jako firma" + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "źle sformatowana wiadomość e-mail: {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 "Nie znaleziono aktywnego konta" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "Należy ustawić atrybut token_class na klasie!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Token na czarnej liście" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Nieprawidłowy token" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "Brak oświadczenia uuid użytkownika w tokenie" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "Użytkownik nie istnieje" diff --git a/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po b/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po index 6da08e5d..23c46368 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -78,46 +78,46 @@ msgstr "O token é válido" msgid "create a new user" msgstr "Criar um novo usuário" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Recuperar os detalhes de um usuário" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Atualizar os detalhes de um usuário" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Excluir um usuário" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "" "Redefinir a senha de um usuário enviando um e-mail de redefinição de senha" -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Manipular o upload do avatar de um usuário" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Confirmar a redefinição de senha de um usuário" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "As senhas não correspondem" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Ativar a conta de um usuário" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "O link de ativação é inválido ou a conta já está ativada" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "Mesclar produtos recentemente visualizados armazenados pelo cliente" @@ -138,7 +138,7 @@ msgstr "{name} não existe: {uuid}!" msgid "malformed email" msgstr "E-mail malformado" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Número de telefone malformado: {phone_number}!" @@ -286,33 +286,42 @@ msgstr "Token na lista negra" msgid "blacklisted tokens" msgstr "Tokens na lista negra" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` deve ser um dicionário" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "" +"O identificador de empresa é necessário ao se registrar como uma empresa" + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "e-mail malformado: {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 "Nenhuma conta ativa encontrada" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "É necessário definir o atributo token_class na classe!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Token na lista negra" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Token inválido" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "Nenhuma reivindicação de uuid de usuário presente no token" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "O usuário não existe" diff --git a/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po b/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po index 62d26eba..e1cdf325 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -79,47 +79,47 @@ msgstr "Jetonul este valid" msgid "create a new user" msgstr "Creați un utilizator nou" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Recuperarea detaliilor unui utilizator" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Actualizarea detaliilor unui utilizator" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Ștergeți un utilizator" -#: vibes_auth/docs/drf/viewsets.py:33 +#: vibes_auth/docs/drf/viewsets.py:34 msgid "reset a user's password by sending a reset password email" msgstr "" "Resetați parola unui utilizator prin trimiterea unui e-mail de resetare a " "parolei" -#: vibes_auth/docs/drf/viewsets.py:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Gestionarea încărcării avatarului pentru un utilizator" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Confirmați resetarea parolei unui utilizator" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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 "Parolele nu se potrivesc" -#: vibes_auth/docs/drf/viewsets.py:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Activați contul unui utilizator" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "Linkul de activare este invalid sau contul este deja activat" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "Fuzionați produsele recent vizualizate stocate de client" @@ -141,7 +141,7 @@ msgstr "{name} nu există: {uuid}!" msgid "malformed email" msgstr "E-mail malformat" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Număr de telefon malformat: {phone_number}!" @@ -289,33 +289,43 @@ msgstr "Token pe lista neagră" msgid "blacklisted tokens" msgstr "Jetoane pe lista neagră" -#: vibes_auth/serializers.py:114 +#: vibes_auth/serializers.py:99 +msgid "attributes must be a dictionary" +msgstr "`attributes` trebuie să fie un dicționar" + +#: vibes_auth/serializers.py:101 +msgid "business identificator is required when registering as a business" +msgstr "" +"Identificatorul de întreprindere este necesar în momentul înregistrării ca " +"întreprindere" + +#: vibes_auth/serializers.py:121 #, python-brace-format msgid "malformed email: {email}" msgstr "e-mail malformat: {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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 "Nu s-a găsit niciun cont activ" -#: vibes_auth/serializers.py:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "Trebuie să setați atributul token_class pe clasă!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Token pe lista neagră" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Jeton invalid" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "În jeton nu este prezentă nicio cerere uuid a utilizatorului" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "Utilizatorul nu există" diff --git a/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po b/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po index 85366ac2..b7e9946e 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -78,47 +78,47 @@ msgstr "Токен действителен" msgid "create a new user" msgstr "Создайте нового пользователя" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "Получение информации о пользователе" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "Обновление данных пользователя" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "Удалить пользователя" -#: vibes_auth/docs/drf/viewsets.py:33 +#: 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:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "Обработка загрузки аватара для пользователя" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "Подтверждение сброса пароля пользователя" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "Активация учетной записи пользователя" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "Ссылка на активацию недействительна или аккаунт уже активирован" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "" "Объедините недавно просмотренные продукты, хранящиеся в памяти клиента" @@ -142,7 +142,7 @@ msgstr "{name} не существует: {uuid}!" msgid "malformed email" msgstr "Некорректное письмо" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Некорректный номер телефона: {phone_number}!" @@ -290,33 +290,41 @@ msgstr "Токен в черном списке" msgid "blacklisted tokens" msgstr "Чёрный список токенов" -#: vibes_auth/serializers.py:114 +#: 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 "malformed email: {email}" -#: vibes_auth/serializers.py:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "Необходимо установить атрибут token_class для класса!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "Токен занесен в черный список" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "Неверный токен" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "В токене отсутствует утверждение uuid пользователя" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "Пользователь не существует" diff --git a/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po b/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po index f4afb1bc..d0a2e946 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 2.9.3\n" +"Project-Id-Version: EVIBES 3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-01 20:37+0300\n" +"POT-Creation-Date: 2025-09-13 15:25+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -78,45 +78,45 @@ msgstr "令牌有效" msgid "create a new user" msgstr "创建新用户" -#: vibes_auth/docs/drf/viewsets.py:20 +#: vibes_auth/docs/drf/viewsets.py:21 msgid "retrieve a user's details" msgstr "读取用户详细信息" -#: vibes_auth/docs/drf/viewsets.py:24 +#: vibes_auth/docs/drf/viewsets.py:25 msgid "update a user's details" msgstr "更新用户信息" -#: vibes_auth/docs/drf/viewsets.py:29 +#: vibes_auth/docs/drf/viewsets.py:30 msgid "delete a user" msgstr "删除用户" -#: vibes_auth/docs/drf/viewsets.py:33 +#: 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:38 +#: vibes_auth/docs/drf/viewsets.py:39 msgid "handle avatar upload for a user" msgstr "处理用户的头像上传" -#: vibes_auth/docs/drf/viewsets.py:53 +#: vibes_auth/docs/drf/viewsets.py:54 msgid "confirm a user's password reset" msgstr "确认用户密码重置" -#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:311 -#: vibes_auth/serializers.py:100 vibes_auth/serializers.py:104 +#: 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:62 +#: vibes_auth/docs/drf/viewsets.py:63 msgid "activate a user's account" msgstr "激活用户帐户" -#: vibes_auth/docs/drf/viewsets.py:66 +#: vibes_auth/docs/drf/viewsets.py:67 msgid "activation link is invalid or account already activated" msgstr "激活链接无效或账户已激活" -#: vibes_auth/docs/drf/viewsets.py:71 +#: vibes_auth/docs/drf/viewsets.py:72 msgid "merge client-stored recently viewed products" msgstr "合并客户存储的最近查看的产品" @@ -137,7 +137,7 @@ msgstr "{name} 不存在:{uuid}!" msgid "malformed email" msgstr "畸形电子邮件" -#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:109 +#: vibes_auth/graphene/mutations.py:124 vibes_auth/serializers.py:115 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "畸形电话号码:{phone_number}!" @@ -283,33 +283,41 @@ msgstr "黑名单令牌" msgid "blacklisted tokens" msgstr "黑名单令牌" -#: vibes_auth/serializers.py:114 +#: 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:135 vibes_auth/serializers.py:157 -#: vibes_auth/serializers.py:179 vibes_auth/serializers.py:191 +#: 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:167 +#: vibes_auth/serializers.py:174 msgid "must set token_class attribute on class." msgstr "必须在类上设置 token_class 属性!" -#: vibes_auth/serializers.py:239 +#: vibes_auth/serializers.py:246 msgid "token_blacklisted" msgstr "令牌被列入黑名单" -#: vibes_auth/serializers.py:244 +#: vibes_auth/serializers.py:251 msgid "invalid token" msgstr "无效令牌" -#: vibes_auth/serializers.py:250 +#: vibes_auth/serializers.py:257 msgid "no user uuid claim present in token" msgstr "令牌中没有用户 uuid 声明" -#: vibes_auth/serializers.py:252 +#: vibes_auth/serializers.py:259 msgid "user does not exist" msgstr "用户不存在"