Features: 1) Add save method to enforce single pending order per user in Order model;

Fixes: 1) Adjust import order in `core/models.py` for better consistency;

Extra: Refactor formatting for better readability in `core/models.py`; Update `pyproject.toml` version to 2.6.2; Update compiled translation file `cs_CZ/LC_MESSAGES/django.mo`.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-05-13 23:02:16 +03:00
parent 6cf2903c74
commit 8375ef41db
78 changed files with 4301 additions and 2771 deletions

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -80,7 +80,7 @@ msgstr "الصورة"
msgid "images" msgid "images"
msgstr "الصور" msgstr "الصور"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "المخزون" msgstr "المخزون"
@ -88,7 +88,7 @@ msgstr "المخزون"
msgid "stocks" msgid "stocks"
msgstr "الأسهم" msgstr "الأسهم"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -96,35 +96,35 @@ msgstr "الأسهم"
msgid "price" msgid "price"
msgstr "السعر" msgstr "السعر"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "تصنيف المنتج" msgstr "تصنيف المنتج"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "معلومات أساسية" msgstr "معلومات أساسية"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "تواريخ مهمة" msgstr "تواريخ مهمة"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "الترجمات" msgstr "الترجمات"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "طلب المنتج" msgstr "طلب المنتج"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "اطلب المنتجات" msgstr "اطلب المنتجات"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "هل الأعمال" msgstr "هل الأعمال"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "التكوين" msgstr "التكوين"
@ -483,55 +483,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "قائمة بجميع المنتجات (عرض بسيط)" msgstr "قائمة بجميع المنتجات (عرض بسيط)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(بالضبط) UUID المنتج" msgstr "(بالضبط) UUID المنتج"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(أيقونات) اسم المنتج" msgstr "(أيقونات) اسم المنتج"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(قائمة) أسماء الفئات، غير حساسة لحالة الأحرف" msgstr "(قائمة) أسماء الفئات، غير حساسة لحالة الأحرف"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(بالضبط) معرّف الفئة UUID" msgstr "(بالضبط) معرّف الفئة UUID"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(قائمة) أسماء العلامات، غير حساسة لحالة الأحرف" msgstr "(قائمة) أسماء العلامات، غير حساسة لحالة الأحرف"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) الحد الأدنى لسعر السهم" msgstr "(gte) الحد الأدنى لسعر السهم"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) الحد الأقصى لسعر السهم" msgstr "(lte) الحد الأقصى لسعر السهم"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(بالضبط) المنتجات النشطة فقط" msgstr "(بالضبط) المنتجات النشطة فقط"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(أيكساكت) اسم العلامة التجارية" msgstr "(أيكساكت) اسم العلامة التجارية"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(زط) الحد الأدنى لكمية المخزون" msgstr "(زط) الحد الأدنى لكمية المخزون"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(بالضبط) سبيكة المنتج" msgstr "(بالضبط) سبيكة المنتج"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(بالضبط) الرقمية مقابل المادية" msgstr "(بالضبط) الرقمية مقابل المادية"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -539,33 +539,33 @@ msgstr ""
"قائمة مفصولة بفواصل من الحقول للفرز حسب. البادئة بـ \"-\" للفرز التنازلي. \n" "قائمة مفصولة بفواصل من الحقول للفرز حسب. البادئة بـ \"-\" للفرز التنازلي. \n"
"**مسموح بها:** uuid، تصنيف، اسم، سبيكة، إنشاء، تعديل، سعر، عشوائي" "**مسموح بها:** uuid، تصنيف، اسم، سبيكة، إنشاء، تعديل، سعر، عشوائي"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "استرداد منتج واحد (عرض تفصيلي)" msgstr "استرداد منتج واحد (عرض تفصيلي)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "معرف المنتج UUID أو سبيكة المنتج" msgstr "معرف المنتج UUID أو سبيكة المنتج"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "إنشاء منتج" msgstr "إنشاء منتج"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "إعادة كتابة منتج موجود، مع الحفاظ على الحقول غير القابلة للتحرير" msgstr "إعادة كتابة منتج موجود، مع الحفاظ على الحقول غير القابلة للتحرير"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "تحديث بعض حقول منتج موجود، مع الحفاظ على الحقول غير القابلة للتحرير" msgstr "تحديث بعض حقول منتج موجود، مع الحفاظ على الحقول غير القابلة للتحرير"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "حذف منتج" msgstr "حذف منتج"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "لم يتم توفير مصطلح بحث." msgstr "لم يتم توفير مصطلح بحث."
@ -621,7 +621,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive"
msgstr "يرجى تقديم إما Order_uuid أو order_uid_hr_hr_id - متنافيان!" msgstr "يرجى تقديم إما Order_uuid أو order_uid_hr_hr_id - متنافيان!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "جاء نوع خاطئ من طريقة order.buy(): {type(instance)!s}" msgstr "جاء نوع خاطئ من طريقة order.buy(): {type(instance)!s}"
@ -807,7 +807,7 @@ msgstr "الرموز الترويجية"
msgid "products on sale" msgid "products on sale"
msgstr "المنتجات المعروضة للبيع" msgstr "المنتجات المعروضة للبيع"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "العروض الترويجية" msgstr "العروض الترويجية"
@ -823,11 +823,11 @@ msgstr "البائع"
msgid "product" msgid "product"
msgstr "المنتج" msgstr "المنتج"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "المنتجات المفضلة" msgstr "المنتجات المفضلة"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "قوائم التمنيات" msgstr "قوائم التمنيات"
@ -975,8 +975,8 @@ msgstr "سمة هذه القيمة"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "المنتج المحدد المرتبط بقيمة هذه السمة" msgstr "المنتج المحدد المرتبط بقيمة هذه السمة"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "المنتج المرتبط" msgstr "المنتج المرتبط"
@ -1072,7 +1072,7 @@ msgstr "ربط هذا المنتج اختياريًا بعلامة تجارية"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "العلامات التي تساعد في وصف أو تجميع هذا المنتج" msgstr "العلامات التي تساعد في وصف أو تجميع هذا المنتج"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "علامات المنتج" msgstr "علامات المنتج"
@ -1092,7 +1092,7 @@ msgstr "توفير اسم تعريفي واضح للمنتج"
msgid "product name" msgid "product name"
msgstr "اسم المنتج" msgstr "اسم المنتج"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "إضافة وصف تفصيلي للمنتج" msgstr "إضافة وصف تفصيلي للمنتج"
@ -1191,7 +1191,7 @@ msgstr "الحالة الحالية للطلب في دورة حياته"
msgid "order status" msgid "order status"
msgstr "حالة الطلب" msgstr "حالة الطلب"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"بنية JSON للإشعارات التي سيتم عرضها للمستخدمين، في واجهة مستخدم المشرف، يتم " "بنية JSON للإشعارات التي سيتم عرضها للمستخدمين، في واجهة مستخدم المشرف، يتم "
@ -1229,54 +1229,58 @@ msgstr "معرّف يمكن قراءته من قبل البشر"
msgid "order" msgid "order"
msgstr "الطلب" msgstr "الطلب"
#: core/models.py:536 #: core/models.py:517
msgid "a user must have only one pending order at a time"
msgstr "يجب أن يكون لدى المستخدم طلب واحد فقط معلق في كل مرة!"
#: core/models.py:541
msgid "you cannot add products to an order that is not a pending one" msgid "you cannot add products to an order that is not a pending one"
msgstr "لا يمكنك إضافة منتجات إلى طلب غير معلق إلى طلب غير معلق" msgstr "لا يمكنك إضافة منتجات إلى طلب غير معلق إلى طلب غير معلق"
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "لا يمكنك إضافة منتجات غير نشطة للطلب" msgstr "لا يمكنك إضافة منتجات غير نشطة للطلب"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "لا يمكنك إضافة منتجات أكثر من المتوفرة في المخزون" msgstr "لا يمكنك إضافة منتجات أكثر من المتوفرة في المخزون"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} غير موجود: {product_uuid}" msgstr "{name} غير موجود: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "لا يمكنك إزالة المنتجات من طلب غير معلق من طلب غير معلق" msgstr "لا يمكنك إزالة المنتجات من طلب غير معلق من طلب غير معلق"
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} غير موجود مع الاستعلام <{query}>" msgstr "{name} غير موجود مع الاستعلام <{query}>"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "الرمز الترويجي غير موجود" msgstr "الرمز الترويجي غير موجود"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "لا يمكنك الشراء في هذه اللحظة، يرجى المحاولة مرة أخرى بعد بضع دقائق." msgstr "لا يمكنك الشراء في هذه اللحظة، يرجى المحاولة مرة أخرى بعد بضع دقائق."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "قيمة القوة غير صالحة" msgstr "قيمة القوة غير صالحة"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "لا يمكنك شراء طلبية فارغة!" msgstr "لا يمكنك شراء طلبية فارغة!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "عدم كفاية الأموال لإكمال الطلب" msgstr "عدم كفاية الأموال لإكمال الطلب"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1284,188 +1288,188 @@ msgstr ""
"لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد" "لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد"
" الإلكتروني للعميل، رقم هاتف العميل" " الإلكتروني للعميل، رقم هاتف العميل"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "طريقة الدفع غير صالحة" msgstr "طريقة الدفع غير صالحة"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "لا يمكنك إنشاء طلب مومنتال دون تقديم عنوان إرسال الفواتير" msgstr "لا يمكنك إنشاء طلب مومنتال دون تقديم عنوان إرسال الفواتير"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" msgid "the price paid by the customer for this product at purchase time"
msgstr "السعر الذي دفعه العميل لهذا المنتج وقت الشراء" msgstr "السعر الذي دفعه العميل لهذا المنتج وقت الشراء"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "سعر الشراء وقت الطلب" msgstr "سعر الشراء وقت الطلب"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "تعليقات داخلية للمسؤولين حول هذا المنتج المطلوب" msgstr "تعليقات داخلية للمسؤولين حول هذا المنتج المطلوب"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "التعليقات الداخلية" msgstr "التعليقات الداخلية"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "إشعارات المستخدم" msgstr "إشعارات المستخدم"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "تمثيل JSON لسمات هذا العنصر" msgstr "تمثيل JSON لسمات هذا العنصر"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "سمات المنتج المطلوبة" msgstr "سمات المنتج المطلوبة"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "الإشارة إلى الطلب الأصلي الذي يحتوي على هذا المنتج" msgstr "الإشارة إلى الطلب الأصلي الذي يحتوي على هذا المنتج"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "ترتيب الوالدين" msgstr "ترتيب الوالدين"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "المنتج المحدد المرتبط بخط الطلب هذا" msgstr "المنتج المحدد المرتبط بخط الطلب هذا"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "كمية هذا المنتج المحدد في الطلب" msgstr "كمية هذا المنتج المحدد في الطلب"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "كمية المنتج" msgstr "كمية المنتج"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "الحالة الحالية لهذا المنتج بالترتيب" msgstr "الحالة الحالية لهذا المنتج بالترتيب"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "حالة خط الإنتاج" msgstr "حالة خط الإنتاج"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "معرّف العلامة الداخلي لعلامة المنتج" msgstr "معرّف العلامة الداخلي لعلامة المنتج"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "اسم العلامة" msgstr "اسم العلامة"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "اسم سهل الاستخدام لعلامة المنتج" msgstr "اسم سهل الاستخدام لعلامة المنتج"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "اسم عرض العلامة" msgstr "اسم عرض العلامة"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "علامة المنتج" msgstr "علامة المنتج"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "توفير نص بديل للصورة لإمكانية الوصول" msgstr "توفير نص بديل للصورة لإمكانية الوصول"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "النص البديل للصورة" msgstr "النص البديل للصورة"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "تحميل ملف الصورة لهذا المنتج" msgstr "تحميل ملف الصورة لهذا المنتج"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "صورة المنتج" msgstr "صورة المنتج"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "يحدد الترتيب الذي يتم عرض الصور به" msgstr "يحدد الترتيب الذي يتم عرض الصور به"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "أولوية العرض" msgstr "أولوية العرض"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "المنتج الذي تمثله هذه الصورة" msgstr "المنتج الذي تمثله هذه الصورة"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "صور المنتج" msgstr "صور المنتج"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "الرمز الفريد الذي يستخدمه المستخدم لاسترداد قيمة الخصم" msgstr "الرمز الفريد الذي يستخدمه المستخدم لاسترداد قيمة الخصم"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "معرّف الرمز الترويجي" msgstr "معرّف الرمز الترويجي"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "مبلغ الخصم الثابت المطبق في حالة عدم استخدام النسبة المئوية" msgstr "مبلغ الخصم الثابت المطبق في حالة عدم استخدام النسبة المئوية"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "مبلغ الخصم الثابت" msgstr "مبلغ الخصم الثابت"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "النسبة المئوية للخصم المطبق في حالة عدم استخدام مبلغ ثابت" msgstr "النسبة المئوية للخصم المطبق في حالة عدم استخدام مبلغ ثابت"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "النسبة المئوية للخصم" msgstr "النسبة المئوية للخصم"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "الطابع الزمني عند انتهاء صلاحية الرمز الترويجي" msgstr "الطابع الزمني عند انتهاء صلاحية الرمز الترويجي"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "وقت انتهاء الصلاحية" msgstr "وقت انتهاء الصلاحية"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "الطابع الزمني الذي يكون هذا الرمز الترويجي صالحاً منه" msgstr "الطابع الزمني الذي يكون هذا الرمز الترويجي صالحاً منه"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "وقت بدء الصلاحية" msgstr "وقت بدء الصلاحية"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
"الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" "الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد"
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "الطابع الزمني للاستخدام" msgstr "الطابع الزمني للاستخدام"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "المستخدم المعين لهذا الرمز الترويجي إن أمكن" msgstr "المستخدم المعين لهذا الرمز الترويجي إن أمكن"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "المستخدم المعين" msgstr "المستخدم المعين"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "الرمز الترويجي" msgstr "الرمز الترويجي"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "الرموز الترويجية" msgstr "الرموز الترويجية"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1473,140 +1477,140 @@ msgstr ""
"يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين" "يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين"
" أو لا هذا ولا ذاك." " أو لا هذا ولا ذاك."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "تم استخدام الرمز الترويجي بالفعل" msgstr "تم استخدام الرمز الترويجي بالفعل"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "نوع الخصم غير صالح للرمز الترويجي {self.uuid}" msgstr "نوع الخصم غير صالح للرمز الترويجي {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "النسبة المئوية للخصم على المنتجات المختارة" msgstr "النسبة المئوية للخصم على المنتجات المختارة"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "نسبة الخصم" msgstr "نسبة الخصم"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "تقديم اسم فريد لهذا العرض الترويجي" msgstr "تقديم اسم فريد لهذا العرض الترويجي"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "اسم الترقية" msgstr "اسم الترقية"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "وصف الترقية" msgstr "وصف الترقية"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "حدد المنتجات المشمولة في هذا العرض الترويجي" msgstr "حدد المنتجات المشمولة في هذا العرض الترويجي"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "المنتجات المشمولة" msgstr "المنتجات المشمولة"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "الترقية" msgstr "الترقية"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "البائع الذي يورد هذا المنتج المخزون" msgstr "البائع الذي يورد هذا المنتج المخزون"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "البائع المرتبط" msgstr "البائع المرتبط"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "السعر النهائي للعميل بعد هوامش الربح" msgstr "السعر النهائي للعميل بعد هوامش الربح"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "سعر البيع" msgstr "سعر البيع"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "المنتج المرتبط بإدخال المخزون هذا" msgstr "المنتج المرتبط بإدخال المخزون هذا"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "السعر المدفوع للبائع مقابل هذا المنتج" msgstr "السعر المدفوع للبائع مقابل هذا المنتج"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "سعر الشراء من البائع" msgstr "سعر الشراء من البائع"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "الكمية المتوفرة من المنتج في المخزون" msgstr "الكمية المتوفرة من المنتج في المخزون"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "الكمية في المخزون" msgstr "الكمية في المخزون"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "SKU المعين من قبل البائع لتحديد المنتج" msgstr "SKU المعين من قبل البائع لتحديد المنتج"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "وحدة تخزين البائع" msgstr "وحدة تخزين البائع"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "الملف الرقمي المرتبط بهذا المخزون إن أمكن" msgstr "الملف الرقمي المرتبط بهذا المخزون إن أمكن"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "ملف رقمي" msgstr "ملف رقمي"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "إدخالات المخزون" msgstr "إدخالات المخزون"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "المنتجات التي حددها المستخدم على أنها مطلوبة" msgstr "المنتجات التي حددها المستخدم على أنها مطلوبة"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "المستخدم الذي يمتلك قائمة الرغبات هذه" msgstr "المستخدم الذي يمتلك قائمة الرغبات هذه"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "مالك قائمة الرغبات" msgstr "مالك قائمة الرغبات"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "قائمة الرغبات" msgstr "قائمة الرغبات"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "تنزيل" msgstr "تنزيل"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "التنزيلات" msgstr "التنزيلات"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" msgid "you can not download a digital asset for a non-finished order"
msgstr "لا يمكنك تنزيل أصل رقمي لطلب غير مكتمل" msgstr "لا يمكنك تنزيل أصل رقمي لطلب غير مكتمل"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "فيلم وثائقي" msgstr "فيلم وثائقي"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "الأفلام الوثائقية" msgstr "الأفلام الوثائقية"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "لم يتم حلها" msgstr "لم يتم حلها"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -82,7 +82,7 @@ msgstr "Obrázek"
msgid "images" msgid "images"
msgstr "Obrázky" msgstr "Obrázky"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Stock" msgstr "Stock"
@ -90,7 +90,7 @@ msgstr "Stock"
msgid "stocks" msgid "stocks"
msgstr "Zásoby" msgstr "Zásoby"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -98,35 +98,35 @@ msgstr "Zásoby"
msgid "price" msgid "price"
msgstr "Cena" msgstr "Cena"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Hodnocení produktu" msgstr "Hodnocení produktu"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Základní informace" msgstr "Základní informace"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Důležitá data" msgstr "Důležitá data"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Překlady" msgstr "Překlady"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Objednat produkt" msgstr "Objednat produkt"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Objednat produkty" msgstr "Objednat produkty"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Je podnikání" msgstr "Je podnikání"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Konfigurace" msgstr "Konfigurace"
@ -503,55 +503,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "Seznam všech produktů (jednoduché zobrazení)" msgstr "Seznam všech produktů (jednoduché zobrazení)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(přesně) UUID produktu" msgstr "(přesně) UUID produktu"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(icontains) Název produktu" msgstr "(icontains) Název produktu"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(seznam) Názvy kategorií, nerozlišuje velká a malá písmena" msgstr "(seznam) Názvy kategorií, nerozlišuje velká a malá písmena"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(přesně) Kategorie UUID" msgstr "(přesně) Kategorie UUID"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(seznam) Názvy značek, nerozlišuje velká a malá písmena" msgstr "(seznam) Názvy značek, nerozlišuje velká a malá písmena"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Minimální cena akcií" msgstr "(gte) Minimální cena akcií"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Maximální cena akcií" msgstr "(lte) Maximální cena akcií"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(přesně) Pouze aktivní produkty" msgstr "(přesně) Pouze aktivní produkty"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Obchodní značka" msgstr "(iexact) Obchodní značka"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Minimální skladové množství" msgstr "(gt) Minimální skladové množství"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(přesně) Product slug" msgstr "(přesně) Product slug"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(přesně) Digitální vs. fyzické" msgstr "(přesně) Digitální vs. fyzické"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -559,36 +559,36 @@ msgstr ""
"Seznam polí oddělených čárkou, podle kterých se má třídit. Pro sestupné řazení použijte předponu `-`. \n" "Seznam polí oddělených čárkou, podle kterých se má třídit. Pro sestupné řazení použijte předponu `-`. \n"
"**Povolené:** uuid, rating, name, slug, created, modified, price, random" "**Povolené:** uuid, rating, name, slug, created, modified, price, random"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Vyhledání jednoho produktu (podrobné zobrazení)" msgstr "Vyhledání jednoho produktu (podrobné zobrazení)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "Identifikátor UUID produktu nebo Slug" msgstr "Identifikátor UUID produktu nebo Slug"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Vytvoření produktu" msgstr "Vytvoření produktu"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Přepsání existujícího produktu se zachováním polí, která nelze editovat" "Přepsání existujícího produktu se zachováním polí, která nelze editovat"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Aktualizace některých polí existujícího produktu se zachováním polí, která " "Aktualizace některých polí existujícího produktu se zachováním polí, která "
"nelze upravovat." "nelze upravovat."
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Odstranění produktu" msgstr "Odstranění produktu"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "Nebyl zadán žádný vyhledávací termín." msgstr "Nebyl zadán žádný vyhledávací termín."
@ -643,7 +643,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í!" msgstr "Zadejte prosím order_uuid nebo order_hr_id - vzájemně se vylučují!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "Z metody order.buy() pochází nesprávný typ: {type(instance)!s}" msgstr "Z metody order.buy() pochází nesprávný typ: {type(instance)!s}"
@ -832,7 +832,7 @@ msgstr "Propagační kódy"
msgid "products on sale" msgid "products on sale"
msgstr "Produkty v prodeji" msgstr "Produkty v prodeji"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Propagační akce" msgstr "Propagační akce"
@ -848,11 +848,11 @@ msgstr "Prodejce"
msgid "product" msgid "product"
msgstr "Produkt" msgstr "Produkt"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Produkty uvedené na seznamu přání" msgstr "Produkty uvedené na seznamu přání"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Seznamy přání" msgstr "Seznamy přání"
@ -999,8 +999,8 @@ msgstr "Atribut této hodnoty"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "Konkrétní produkt spojený s hodnotou tohoto atributu" msgstr "Konkrétní produkt spojený s hodnotou tohoto atributu"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Související produkt" msgstr "Související produkt"
@ -1096,7 +1096,7 @@ msgstr "Volitelně přiřadit tento produkt ke značce"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Značky, které pomáhají popsat nebo seskupit tento produkt" msgstr "Značky, které pomáhají popsat nebo seskupit tento produkt"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Štítky produktu" msgstr "Štítky produktu"
@ -1116,7 +1116,7 @@ msgstr "Uveďte jasný identifikační název výrobku"
msgid "product name" msgid "product name"
msgstr "Název produktu" msgstr "Název produktu"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Přidejte podrobný popis produktu" msgstr "Přidejte podrobný popis produktu"
@ -1217,7 +1217,7 @@ msgstr "Aktuální stav zakázky v jejím životním cyklu"
msgid "order status" msgid "order status"
msgstr "Stav objednávky" msgstr "Stav objednávky"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"JSON struktura oznámení pro zobrazení uživatelům, v uživatelském rozhraní " "JSON struktura oznámení pro zobrazení uživatelům, v uživatelském rozhraní "
@ -1255,56 +1255,60 @@ msgstr "lidsky čitelné ID"
msgid "order" msgid "order"
msgstr "Objednávka" msgstr "Objednávka"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" msgid "you cannot add products to an order that is not a pending one"
msgstr "" msgstr ""
"Do objednávky, která není v procesu vyřizování, nelze přidat produkty." "Do objednávky, která není v procesu vyřizování, nelze přidat produkty."
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "Do objednávky nelze přidat neaktivní produkty" msgstr "Do objednávky nelze přidat neaktivní produkty"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "Nelze přidat více produktů, než je dostupné na skladě" msgstr "Nelze přidat více produktů, než je dostupné na skladě"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} neexistuje: {product_uuid}" msgstr "{name} neexistuje: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" 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á." msgstr "Nelze odebrat produkty z objednávky, která není nevyřízená."
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} neexistuje s dotazem <{query}>" msgstr "{name} neexistuje s dotazem <{query}>"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Promo kód neexistuje" msgstr "Promo kód neexistuje"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"V tuto chvíli nemůžete nakupovat, zkuste to prosím znovu za několik minut." "V tuto chvíli nemůžete nakupovat, zkuste to prosím znovu za několik minut."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Neplatná hodnota síly" msgstr "Neplatná hodnota síly"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "Nelze zakoupit prázdnou objednávku!" msgstr "Nelze zakoupit prázdnou objednávku!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Nedostatek finančních prostředků na dokončení objednávky" msgstr "Nedostatek finančních prostředků na dokončení objednávky"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1312,187 +1316,187 @@ msgstr ""
"bez registrace nelze nakupovat, uveďte prosím následující údaje: jméno " "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." "zákazníka, e-mail zákazníka, telefonní číslo zákazníka."
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Neplatný způsob platby" msgstr "Neplatný způsob platby"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "nelze vytvořit momentální objednávku bez uvedení fakturační adresy." msgstr "nelze vytvořit momentální objednávku bez uvedení fakturační adresy."
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" 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." msgstr "Cena, kterou zákazník zaplatil za tento produkt v době nákupu."
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Nákupní cena v době objednávky" msgstr "Nákupní cena v době objednávky"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "Interní komentáře pro administrátory k tomuto objednanému produktu" msgstr "Interní komentáře pro administrátory k tomuto objednanému produktu"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Interní připomínky" msgstr "Interní připomínky"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "Oznámení uživatele" msgstr "Oznámení uživatele"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "JSON reprezentace atributů této položky" msgstr "JSON reprezentace atributů této položky"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Objednané atributy produktu" msgstr "Objednané atributy produktu"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Odkaz na nadřazenou objednávku, která obsahuje tento produkt" msgstr "Odkaz na nadřazenou objednávku, která obsahuje tento produkt"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Objednávka rodičů" msgstr "Objednávka rodičů"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "Konkrétní produkt spojený s touto objednávkou" msgstr "Konkrétní produkt spojený s touto objednávkou"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Množství tohoto konkrétního produktu v objednávce" msgstr "Množství tohoto konkrétního produktu v objednávce"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Množství produktu" msgstr "Množství produktu"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Aktuální stav tohoto produktu v objednávce" msgstr "Aktuální stav tohoto produktu v objednávce"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Stav produktové řady" msgstr "Stav produktové řady"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Interní identifikátor značky produktu" msgstr "Interní identifikátor značky produktu"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Název štítku" msgstr "Název štítku"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "Uživatelsky přívětivý název pro značku produktu" msgstr "Uživatelsky přívětivý název pro značku produktu"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Zobrazení názvu štítku" msgstr "Zobrazení názvu štítku"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Štítek produktu" msgstr "Štítek produktu"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "Poskytněte alternativní text k obrázku kvůli přístupnosti." msgstr "Poskytněte alternativní text k obrázku kvůli přístupnosti."
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Text alt obrázku" msgstr "Text alt obrázku"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Nahrát soubor s obrázkem tohoto produktu" msgstr "Nahrát soubor s obrázkem tohoto produktu"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Obrázek produktu" msgstr "Obrázek produktu"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Určuje pořadí, v jakém se obrázky zobrazují." msgstr "Určuje pořadí, v jakém se obrázky zobrazují."
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Priorita zobrazení" msgstr "Priorita zobrazení"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "Výrobek, který tento obrázek představuje" msgstr "Výrobek, který tento obrázek představuje"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Obrázky produktů" msgstr "Obrázky produktů"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" 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." msgstr "Jedinečný kód, který uživatel použije k uplatnění slevy."
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Identifikátor propagačního kódu" msgstr "Identifikátor propagačního kódu"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "Pevná výše slevy, pokud není použito procento" msgstr "Pevná výše slevy, pokud není použito procento"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Pevná výše slevy" msgstr "Pevná výše slevy"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "Procentuální sleva uplatněná v případě nevyužití pevné částky" msgstr "Procentuální sleva uplatněná v případě nevyužití pevné částky"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Procentuální sleva" msgstr "Procentuální sleva"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Časové razítko ukončení platnosti promokódu" msgstr "Časové razítko ukončení platnosti promokódu"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "Doba ukončení platnosti" msgstr "Doba ukončení platnosti"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Časové razítko, od kterého je tento promokód platný" msgstr "Časové razítko, od kterého je tento promokód platný"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Čas zahájení platnosti" msgstr "Čas zahájení platnosti"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" 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." msgstr "Časové razítko použití promokódu, prázdné, pokud ještě nebyl použit."
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Časové razítko použití" msgstr "Časové razítko použití"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "Uživatel přiřazený k tomuto promokódu, je-li to relevantní" msgstr "Uživatel přiřazený k tomuto promokódu, je-li to relevantní"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Přiřazený uživatel" msgstr "Přiřazený uživatel"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Propagační kód" msgstr "Propagační kód"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Propagační kódy" msgstr "Propagační kódy"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1500,140 +1504,140 @@ msgstr ""
"Měl by být definován pouze jeden typ slevy (částka nebo procento), nikoli " "Měl by být definován pouze jeden typ slevy (částka nebo procento), nikoli "
"však oba typy slev nebo žádný z nich." "však oba typy slev nebo žádný z nich."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "Promo kód byl již použit" msgstr "Promo kód byl již použit"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Neplatný typ slevy pro promocode {self.uuid}" msgstr "Neplatný typ slevy pro promocode {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Procentuální sleva na vybrané produkty" msgstr "Procentuální sleva na vybrané produkty"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Procento slevy" msgstr "Procento slevy"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Uveďte jedinečný název této propagační akce" msgstr "Uveďte jedinečný název této propagační akce"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Název akce" msgstr "Název akce"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Popis propagace" msgstr "Popis propagace"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Vyberte, které produkty jsou zahrnuty do této akce" msgstr "Vyberte, které produkty jsou zahrnuty do této akce"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Zahrnuté produkty" msgstr "Zahrnuté produkty"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Propagace" msgstr "Propagace"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "Prodejce dodávající tento výrobek na sklad" msgstr "Prodejce dodávající tento výrobek na sklad"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Přidružený prodejce" msgstr "Přidružený prodejce"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Konečná cena pro zákazníka po přirážkách" msgstr "Konečná cena pro zákazníka po přirážkách"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Prodejní cena" msgstr "Prodejní cena"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "Produkt spojený s touto skladovou položkou" msgstr "Produkt spojený s touto skladovou položkou"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "Cena zaplacená prodejci za tento výrobek" msgstr "Cena zaplacená prodejci za tento výrobek"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Kupní cena prodejce" msgstr "Kupní cena prodejce"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Dostupné množství produktu na skladě" msgstr "Dostupné množství produktu na skladě"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Množství na skladě" msgstr "Množství na skladě"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "SKU přidělený prodejcem pro identifikaci výrobku" msgstr "SKU přidělený prodejcem pro identifikaci výrobku"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "SKU prodejce" msgstr "SKU prodejce"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "Digitální soubor spojený s touto zásobou, je-li to vhodné" msgstr "Digitální soubor spojený s touto zásobou, je-li to vhodné"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Digitální soubor" msgstr "Digitální soubor"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Zápisy do zásob" msgstr "Zápisy do zásob"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Výrobky, které uživatel označil jako požadované" msgstr "Výrobky, které uživatel označil jako požadované"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "Uživatel, který vlastní tento seznam přání" msgstr "Uživatel, který vlastní tento seznam přání"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Majitel seznamu přání" msgstr "Majitel seznamu přání"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Seznam přání" msgstr "Seznam přání"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Stáhnout" msgstr "Stáhnout"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Ke stažení na" msgstr "Ke stažení na"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" 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." msgstr "Digitální aktivum pro nedokončenou objednávku nelze stáhnout."
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Dokumentární film" msgstr "Dokumentární film"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Dokumentární filmy" msgstr "Dokumentární filmy"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Nevyřešené" msgstr "Nevyřešené"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -81,7 +81,7 @@ msgstr "Billede"
msgid "images" msgid "images"
msgstr "Billeder" msgstr "Billeder"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Lager" msgstr "Lager"
@ -89,7 +89,7 @@ msgstr "Lager"
msgid "stocks" msgid "stocks"
msgstr "Aktier" msgstr "Aktier"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -97,35 +97,35 @@ msgstr "Aktier"
msgid "price" msgid "price"
msgstr "Pris" msgstr "Pris"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Produktvurdering" msgstr "Produktvurdering"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Grundlæggende information" msgstr "Grundlæggende information"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Vigtige datoer" msgstr "Vigtige datoer"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Oversættelser" msgstr "Oversættelser"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Bestil produkt" msgstr "Bestil produkt"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Bestil produkter" msgstr "Bestil produkter"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Er forretning" msgstr "Er forretning"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Konfig" msgstr "Konfig"
@ -511,55 +511,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "Liste over alle produkter (enkel visning)" msgstr "Liste over alle produkter (enkel visning)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(præcis) Produkt-UUID" msgstr "(præcis) Produkt-UUID"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(icontains) Produktnavn" msgstr "(icontains) Produktnavn"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(liste) Kategorinavne, skelner ikke mellem store og små bogstaver" msgstr "(liste) Kategorinavne, skelner ikke mellem store og små bogstaver"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(præcis) UUID for kategori" msgstr "(præcis) UUID for kategori"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(liste) Tag-navne, skelner ikke mellem store og små bogstaver" msgstr "(liste) Tag-navne, skelner ikke mellem store og små bogstaver"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Minimum aktiekurs" msgstr "(gte) Minimum aktiekurs"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Maksimal aktiekurs" msgstr "(lte) Maksimal aktiekurs"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(præcis) Kun aktive produkter" msgstr "(præcis) Kun aktive produkter"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Mærkenavn" msgstr "(iexact) Mærkenavn"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Minimum lagermængde" msgstr "(gt) Minimum lagermængde"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(nøjagtig) Produktsug" msgstr "(nøjagtig) Produktsug"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(præcis) Digital vs. fysisk" msgstr "(præcis) Digital vs. fysisk"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -567,35 +567,35 @@ msgstr ""
"Kommasepareret liste over felter, der skal sorteres efter. Præfiks med `-` for faldende. \n" "Kommasepareret liste over felter, der skal sorteres efter. Præfiks med `-` for faldende. \n"
"**Tilladt:** uuid, vurdering, navn, slug, oprettet, ændret, pris, tilfældig" "**Tilladt:** uuid, vurdering, navn, slug, oprettet, ændret, pris, tilfældig"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Hent et enkelt produkt (detaljeret visning)" msgstr "Hent et enkelt produkt (detaljeret visning)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "Produkt UUID eller Slug" msgstr "Produkt UUID eller Slug"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Opret et produkt" msgstr "Opret et produkt"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "Omskriv et eksisterende produkt og bevar ikke-redigerbare felter" msgstr "Omskriv et eksisterende produkt og bevar ikke-redigerbare felter"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Opdater nogle felter i et eksisterende produkt og bevar ikke-redigerbare " "Opdater nogle felter i et eksisterende produkt og bevar ikke-redigerbare "
"felter" "felter"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Slet et produkt" msgstr "Slet et produkt"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "Der er ikke angivet noget søgeord." msgstr "Der er ikke angivet noget søgeord."
@ -650,7 +650,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!" msgstr "Angiv enten order_uuid eller order_hr_id - det udelukker hinanden!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "Forkert type kom fra metoden order.buy(): {type(instance)!s}" msgstr "Forkert type kom fra metoden order.buy(): {type(instance)!s}"
@ -843,7 +843,7 @@ msgstr "Promokoder"
msgid "products on sale" msgid "products on sale"
msgstr "Produkter til salg" msgstr "Produkter til salg"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Kampagner" msgstr "Kampagner"
@ -859,11 +859,11 @@ msgstr "Leverandør"
msgid "product" msgid "product"
msgstr "Produkt" msgstr "Produkt"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Produkter på ønskelisten" msgstr "Produkter på ønskelisten"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Ønskelister" msgstr "Ønskelister"
@ -1010,8 +1010,8 @@ msgstr "Attribut for denne værdi"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "Det specifikke produkt, der er knyttet til denne attributs værdi" msgstr "Det specifikke produkt, der er knyttet til denne attributs værdi"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Tilknyttet produkt" msgstr "Tilknyttet produkt"
@ -1107,7 +1107,7 @@ msgstr "Tilknyt eventuelt dette produkt til et brand"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Tags, der hjælper med at beskrive eller gruppere dette produkt" msgstr "Tags, der hjælper med at beskrive eller gruppere dette produkt"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Produktmærker" msgstr "Produktmærker"
@ -1127,7 +1127,7 @@ msgstr "Giv produktet et klart identificerende navn"
msgid "product name" msgid "product name"
msgstr "Produktets navn" msgstr "Produktets navn"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Tilføj en detaljeret beskrivelse af produktet" msgstr "Tilføj en detaljeret beskrivelse af produktet"
@ -1228,7 +1228,7 @@ msgstr "Ordrens aktuelle status i dens livscyklus"
msgid "order status" msgid "order status"
msgstr "Bestillingsstatus" msgstr "Bestillingsstatus"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges" "JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges"
@ -1266,56 +1266,60 @@ msgstr "menneskeligt læsbart ID"
msgid "order" msgid "order"
msgstr "Bestil" msgstr "Bestil"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" 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." msgstr "Du kan ikke tilføje produkter til en ordre, der ikke er i gang."
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "Du kan ikke tilføje inaktive produkter til en ordre" msgstr "Du kan ikke tilføje inaktive produkter til en ordre"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "Du kan ikke tilføje flere produkter, end der er på lager" msgstr "Du kan ikke tilføje flere produkter, end der er på lager"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} findes ikke: {product_uuid}." msgstr "{name} findes ikke: {product_uuid}."
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "" msgstr ""
"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " "Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende "
"ordre." "ordre."
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} findes ikke med forespørgsel <{query}>." msgstr "{name} findes ikke med forespørgsel <{query}>."
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Promokode findes ikke" msgstr "Promokode findes ikke"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" 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." msgstr "Du kan ikke købe i øjeblikket, prøv venligst igen om et par minutter."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Ugyldig kraftværdi" msgstr "Ugyldig kraftværdi"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "Du kan ikke købe en tom ordre!" msgstr "Du kan ikke købe en tom ordre!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Utilstrækkelige midler til at gennemføre ordren" msgstr "Utilstrækkelige midler til at gennemføre ordren"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1323,189 +1327,189 @@ msgstr ""
"du kan ikke købe uden registrering, angiv venligst følgende oplysninger: " "du kan ikke købe uden registrering, angiv venligst følgende oplysninger: "
"kundens navn, kundens e-mail, kundens telefonnummer" "kundens navn, kundens e-mail, kundens telefonnummer"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Ugyldig betalingsmetode" msgstr "Ugyldig betalingsmetode"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"Du kan ikke oprette en momental-ordre uden at angive en faktureringsadresse." "Du kan ikke oprette en momental-ordre uden at angive en faktureringsadresse."
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" 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" msgstr "Den pris, som kunden har betalt for dette produkt på købstidspunktet"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Købspris på bestillingstidspunktet" msgstr "Købspris på bestillingstidspunktet"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "Interne kommentarer til administratorer om dette bestilte produkt" msgstr "Interne kommentarer til administratorer om dette bestilte produkt"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Interne kommentarer" msgstr "Interne kommentarer"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "Notifikationer til brugere" msgstr "Notifikationer til brugere"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "JSON-repræsentation af dette elements attributter" msgstr "JSON-repræsentation af dette elements attributter"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Bestilte produktattributter" msgstr "Bestilte produktattributter"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Henvisning til den overordnede ordre, der indeholder dette produkt" msgstr "Henvisning til den overordnede ordre, der indeholder dette produkt"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Forældreordre" msgstr "Forældreordre"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "Det specifikke produkt, der er knyttet til denne ordrelinje" msgstr "Det specifikke produkt, der er knyttet til denne ordrelinje"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Mængde af dette specifikke produkt i ordren" msgstr "Mængde af dette specifikke produkt i ordren"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Produktmængde" msgstr "Produktmængde"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Aktuel status for dette produkt i bestillingen" msgstr "Aktuel status for dette produkt i bestillingen"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Status for produktlinje" msgstr "Status for produktlinje"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Intern tag-identifikator for produkttagget" msgstr "Intern tag-identifikator for produkttagget"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Tag-navn" msgstr "Tag-navn"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "Brugervenligt navn til produktmærket" msgstr "Brugervenligt navn til produktmærket"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Navn på tag-visning" msgstr "Navn på tag-visning"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Produktmærke" msgstr "Produktmærke"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "Giv alternativ tekst til billedet af hensyn til tilgængeligheden" msgstr "Giv alternativ tekst til billedet af hensyn til tilgængeligheden"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Billedets alt-tekst" msgstr "Billedets alt-tekst"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Upload billedfilen til dette produkt" msgstr "Upload billedfilen til dette produkt"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Produktbillede" msgstr "Produktbillede"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Bestemmer den rækkefølge, billederne vises i" msgstr "Bestemmer den rækkefølge, billederne vises i"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Skærm-prioritet" msgstr "Skærm-prioritet"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "Det produkt, som dette billede repræsenterer" msgstr "Det produkt, som dette billede repræsenterer"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Produktbilleder" msgstr "Produktbilleder"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" 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" msgstr "Unik kode, der bruges af en bruger til at indløse en rabat"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Identifikator for kampagnekode" msgstr "Identifikator for kampagnekode"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "Fast rabatbeløb anvendes, hvis procent ikke bruges" msgstr "Fast rabatbeløb anvendes, hvis procent ikke bruges"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Fast rabatbeløb" msgstr "Fast rabatbeløb"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "Procentvis rabat, hvis det faste beløb ikke bruges" msgstr "Procentvis rabat, hvis det faste beløb ikke bruges"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Procentvis rabat" msgstr "Procentvis rabat"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Tidsstempel, når promokoden udløber" msgstr "Tidsstempel, når promokoden udløber"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "Slut gyldighedstid" msgstr "Slut gyldighedstid"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Tidsstempel, hvorfra denne promokode er gyldig" msgstr "Tidsstempel, hvorfra denne promokode er gyldig"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Start gyldighedstid" msgstr "Start gyldighedstid"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
"Tidsstempel, hvor promokoden blev brugt, blank, hvis den ikke er brugt endnu" "Tidsstempel, hvor promokoden blev brugt, blank, hvis den ikke er brugt endnu"
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Tidsstempel for brug" msgstr "Tidsstempel for brug"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "Bruger tildelt denne promokode, hvis relevant" msgstr "Bruger tildelt denne promokode, hvis relevant"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Tildelt bruger" msgstr "Tildelt bruger"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Kampagnekode" msgstr "Kampagnekode"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Kampagnekoder" msgstr "Kampagnekoder"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1513,140 +1517,140 @@ msgstr ""
"Der skal kun defineres én type rabat (beløb eller procent), men ikke begge " "Der skal kun defineres én type rabat (beløb eller procent), men ikke begge "
"eller ingen af dem." "eller ingen af dem."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "Promokoden er allerede blevet brugt" msgstr "Promokoden er allerede blevet brugt"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Ugyldig rabattype for promokode {self.uuid}." msgstr "Ugyldig rabattype for promokode {self.uuid}."
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Procentvis rabat for de valgte produkter" msgstr "Procentvis rabat for de valgte produkter"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Rabatprocent" msgstr "Rabatprocent"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Giv et unikt navn til denne kampagne" msgstr "Giv et unikt navn til denne kampagne"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Navn på kampagne" msgstr "Navn på kampagne"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Beskrivelse af kampagnen" msgstr "Beskrivelse af kampagnen"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Vælg, hvilke produkter der er inkluderet i denne kampagne" msgstr "Vælg, hvilke produkter der er inkluderet i denne kampagne"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Inkluderede produkter" msgstr "Inkluderede produkter"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Forfremmelse" msgstr "Forfremmelse"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "Den leverandør, der leverer dette produkt, lagerfører" msgstr "Den leverandør, der leverer dette produkt, lagerfører"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Tilknyttet leverandør" msgstr "Tilknyttet leverandør"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Endelig pris til kunden efter tillæg" msgstr "Endelig pris til kunden efter tillæg"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Salgspris" msgstr "Salgspris"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "Det produkt, der er knyttet til denne lagerpost" msgstr "Det produkt, der er knyttet til denne lagerpost"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "Den pris, der er betalt til sælgeren for dette produkt" msgstr "Den pris, der er betalt til sælgeren for dette produkt"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Leverandørens købspris" msgstr "Leverandørens købspris"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Tilgængelig mængde af produktet på lager" msgstr "Tilgængelig mængde af produktet på lager"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Antal på lager" msgstr "Antal på lager"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "Leverandørtildelt SKU til identifikation af produktet" msgstr "Leverandørtildelt SKU til identifikation af produktet"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "Leverandørens SKU" msgstr "Leverandørens SKU"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "Digital fil knyttet til dette lager, hvis relevant" msgstr "Digital fil knyttet til dette lager, hvis relevant"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Digital fil" msgstr "Digital fil"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Lagerposteringer" msgstr "Lagerposteringer"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Produkter, som brugeren har markeret som ønskede" msgstr "Produkter, som brugeren har markeret som ønskede"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "Bruger, der ejer denne ønskeliste" msgstr "Bruger, der ejer denne ønskeliste"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Ønskelistens ejer" msgstr "Ønskelistens ejer"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Ønskeliste" msgstr "Ønskeliste"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Download" msgstr "Download"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Downloads" msgstr "Downloads"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" 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" msgstr "Du kan ikke downloade et digitalt aktiv for en ikke-færdiggjort ordre"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Dokumentarfilm" msgstr "Dokumentarfilm"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Dokumentarfilm" msgstr "Dokumentarfilm"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Uafklaret" msgstr "Uafklaret"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -83,7 +83,7 @@ msgstr "Bild"
msgid "images" msgid "images"
msgstr "Bilder" msgstr "Bilder"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Lagerbestand" msgstr "Lagerbestand"
@ -91,7 +91,7 @@ msgstr "Lagerbestand"
msgid "stocks" msgid "stocks"
msgstr "Bestände" msgstr "Bestände"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -99,35 +99,35 @@ msgstr "Bestände"
msgid "price" msgid "price"
msgstr "Preis" msgstr "Preis"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Produktbewertung" msgstr "Produktbewertung"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Grundlegende Informationen" msgstr "Grundlegende Informationen"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Wichtige Termine" msgstr "Wichtige Termine"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Übersetzungen" msgstr "Übersetzungen"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Produkt bestellen" msgstr "Produkt bestellen"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Produkte bestellen" msgstr "Produkte bestellen"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Ist Business" msgstr "Ist Business"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Konfigurieren Sie" msgstr "Konfigurieren Sie"
@ -522,57 +522,57 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "Alle Produkte auflisten (einfache Ansicht)" msgstr "Alle Produkte auflisten (einfache Ansicht)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(genaue) Produkt-UUID" msgstr "(genaue) Produkt-UUID"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(icontains) Produktname" msgstr "(icontains) Produktname"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "" msgstr ""
"(Liste) Kategorienamen, Groß- und Kleinschreibung wird nicht berücksichtigt" "(Liste) Kategorienamen, Groß- und Kleinschreibung wird nicht berücksichtigt"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(genau) Kategorie UUID" msgstr "(genau) Kategorie UUID"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "" msgstr ""
"(Liste) Tag-Namen, Groß- und Kleinschreibung wird nicht berücksichtigt" "(Liste) Tag-Namen, Groß- und Kleinschreibung wird nicht berücksichtigt"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Mindestaktienkurs" msgstr "(gte) Mindestaktienkurs"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Maximaler Aktienkurs" msgstr "(lte) Maximaler Aktienkurs"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(genau) Nur aktive Produkte" msgstr "(genau) Nur aktive Produkte"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Markenname" msgstr "(iexact) Markenname"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Mindestlagermenge" msgstr "(gt) Mindestlagermenge"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(genau) Produktausschnitt" msgstr "(genau) Produktausschnitt"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(genau) Digital vs. physisch" msgstr "(genau) Digital vs. physisch"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -580,37 +580,37 @@ msgstr ""
"Durch Kommata getrennte Liste der Felder, nach denen sortiert werden soll. Präfix mit \"-\" für absteigend. \n" "Durch Kommata getrennte Liste der Felder, nach denen sortiert werden soll. Präfix mit \"-\" für absteigend. \n"
"**Erlaubt:** uuid, rating, name, slug, created, modified, price, random" "**Erlaubt:** uuid, rating, name, slug, created, modified, price, random"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Ein einzelnes Produkt abrufen (Detailansicht)" msgstr "Ein einzelnes Produkt abrufen (Detailansicht)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "Produkt UUID oder Slug" msgstr "Produkt UUID oder Slug"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Ein Produkt erstellen" msgstr "Ein Produkt erstellen"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Umschreiben eines bestehenden Produkts unter Beibehaltung nicht editierbarer" "Umschreiben eines bestehenden Produkts unter Beibehaltung nicht editierbarer"
" Felder" " Felder"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Einige Felder eines bestehenden Produkts aktualisieren, nicht editierbare " "Einige Felder eines bestehenden Produkts aktualisieren, nicht editierbare "
"Felder beibehalten" "Felder beibehalten"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Ein Produkt löschen" msgstr "Ein Produkt löschen"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "Kein Suchbegriff angegeben." msgstr "Kein Suchbegriff angegeben."
@ -667,7 +667,7 @@ msgstr ""
"sich gegenseitig aus!" "sich gegenseitig aus!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "Von der Methode order.buy() kam der falsche Typ: {type(instance)!s}" msgstr "Von der Methode order.buy() kam der falsche Typ: {type(instance)!s}"
@ -858,7 +858,7 @@ msgstr "Promocodes"
msgid "products on sale" msgid "products on sale"
msgstr "Zum Verkauf stehende Produkte" msgstr "Zum Verkauf stehende Produkte"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Werbeaktionen" msgstr "Werbeaktionen"
@ -874,11 +874,11 @@ msgstr "Anbieter"
msgid "product" msgid "product"
msgstr "Produkt" msgstr "Produkt"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Auf dem Wunschzettel stehende Produkte" msgstr "Auf dem Wunschzettel stehende Produkte"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Wunschzettel" msgstr "Wunschzettel"
@ -1026,8 +1026,8 @@ msgid "the specific product associated with this attribute's value"
msgstr "" msgstr ""
"Das spezifische Produkt, das mit dem Wert dieses Attributs verbunden ist" "Das spezifische Produkt, das mit dem Wert dieses Attributs verbunden ist"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Zugehöriges Produkt" msgstr "Zugehöriges Produkt"
@ -1126,7 +1126,7 @@ msgstr "Optional können Sie dieses Produkt mit einer Marke verknüpfen"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Tags, die helfen, dieses Produkt zu beschreiben oder zu gruppieren" msgstr "Tags, die helfen, dieses Produkt zu beschreiben oder zu gruppieren"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Produkt-Tags" msgstr "Produkt-Tags"
@ -1147,7 +1147,7 @@ msgstr ""
msgid "product name" msgid "product name"
msgstr "Name des Produkts" msgstr "Name des Produkts"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Fügen Sie eine detaillierte Beschreibung des Produkts hinzu" msgstr "Fügen Sie eine detaillierte Beschreibung des Produkts hinzu"
@ -1250,7 +1250,7 @@ msgstr "Aktueller Status des Auftrags in seinem Lebenszyklus"
msgid "order status" msgid "order status"
msgstr "Status der Bestellung" msgstr "Status der Bestellung"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"JSON-Struktur der Benachrichtigungen, die den Benutzern angezeigt werden " "JSON-Struktur der Benachrichtigungen, die den Benutzern angezeigt werden "
@ -1288,60 +1288,64 @@ msgstr "menschenlesbare ID"
msgid "order" msgid "order"
msgstr "Bestellung" msgstr "Bestellung"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" msgid "you cannot add products to an order that is not a pending one"
msgstr "" msgstr ""
"Sie können keine Produkte zu einem Auftrag hinzufügen, der nicht in " "Sie können keine Produkte zu einem Auftrag hinzufügen, der nicht in "
"Bearbeitung ist." "Bearbeitung ist."
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "Sie können keine inaktiven Produkte zur Bestellung hinzufügen" msgstr "Sie können keine inaktiven Produkte zur Bestellung hinzufügen"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "Sie können nicht mehr Produkte hinzufügen, als auf Lager sind" msgstr "Sie können nicht mehr Produkte hinzufügen, als auf Lager sind"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} existiert nicht: {product_uuid}" msgstr "{name} existiert nicht: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "" msgstr ""
"Sie können keine Produkte aus einer Bestellung entfernen, die nicht in " "Sie können keine Produkte aus einer Bestellung entfernen, die nicht in "
"Bearbeitung ist." "Bearbeitung ist."
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} existiert nicht mit Abfrage <{query}>" msgstr "{name} existiert nicht mit Abfrage <{query}>"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Promocode existiert nicht" msgstr "Promocode existiert nicht"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"Sie können im Moment nicht kaufen, bitte versuchen Sie es in ein paar " "Sie können im Moment nicht kaufen, bitte versuchen Sie es in ein paar "
"Minuten erneut." "Minuten erneut."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Ungültiger Force-Wert" msgstr "Ungültiger Force-Wert"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "Sie können keine leere Bestellung kaufen!" msgstr "Sie können keine leere Bestellung kaufen!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Unzureichende Mittel für die Ausführung des Auftrags" msgstr "Unzureichende Mittel für die Ausführung des Auftrags"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1349,198 +1353,198 @@ msgstr ""
"Sie können nicht ohne Registrierung kaufen, bitte geben Sie die folgenden " "Sie können nicht ohne Registrierung kaufen, bitte geben Sie die folgenden "
"Informationen an: Kundenname, Kunden-E-Mail, Kunden-Telefonnummer" "Informationen an: Kundenname, Kunden-E-Mail, Kunden-Telefonnummer"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Ungültige Zahlungsmethode" msgstr "Ungültige Zahlungsmethode"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"Sie können keine kurzfristige Bestellung ohne Angabe einer Rechnungsadresse " "Sie können keine kurzfristige Bestellung ohne Angabe einer Rechnungsadresse "
"aufgeben." "aufgeben."
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" msgid "the price paid by the customer for this product at purchase time"
msgstr "" msgstr ""
"Der Preis, den der Kunde zum Zeitpunkt des Kaufs für dieses Produkt bezahlt " "Der Preis, den der Kunde zum Zeitpunkt des Kaufs für dieses Produkt bezahlt "
"hat" "hat"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Einkaufspreis zum Zeitpunkt der Bestellung" msgstr "Einkaufspreis zum Zeitpunkt der Bestellung"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "Interne Kommentare für Administratoren zu diesem bestellten Produkt" msgstr "Interne Kommentare für Administratoren zu diesem bestellten Produkt"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Interne Kommentare" msgstr "Interne Kommentare"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "Benutzerbenachrichtigungen" msgstr "Benutzerbenachrichtigungen"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "JSON-Darstellung der Attribute dieses Artikels" msgstr "JSON-Darstellung der Attribute dieses Artikels"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Bestellte Produktattribute" msgstr "Bestellte Produktattribute"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Verweis auf den übergeordneten Auftrag, der dieses Produkt enthält" msgstr "Verweis auf den übergeordneten Auftrag, der dieses Produkt enthält"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Übergeordneter Auftrag" msgstr "Übergeordneter Auftrag"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "Das spezifische Produkt, das mit dieser Auftragszeile verbunden ist" msgstr "Das spezifische Produkt, das mit dieser Auftragszeile verbunden ist"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Menge dieses spezifischen Produkts in der Bestellung" msgstr "Menge dieses spezifischen Produkts in der Bestellung"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Produktmenge" msgstr "Produktmenge"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Aktueller Status dieses Produkts im Auftrag" msgstr "Aktueller Status dieses Produkts im Auftrag"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Status der Produktlinie" msgstr "Status der Produktlinie"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Interner Tag-Identifikator für das Produkt-Tag" msgstr "Interner Tag-Identifikator für das Produkt-Tag"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Tag name" msgstr "Tag name"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "Benutzerfreundlicher Name für den Produktanhänger" msgstr "Benutzerfreundlicher Name für den Produktanhänger"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Tag-Anzeigename" msgstr "Tag-Anzeigename"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Produkt-Tag" msgstr "Produkt-Tag"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "" msgstr ""
"Geben Sie einen alternativen Text für das Bild an, um die Barrierefreiheit " "Geben Sie einen alternativen Text für das Bild an, um die Barrierefreiheit "
"zu gewährleisten." "zu gewährleisten."
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Bild-Alt-Text" msgstr "Bild-Alt-Text"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Laden Sie die Bilddatei für dieses Produkt hoch" msgstr "Laden Sie die Bilddatei für dieses Produkt hoch"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Produktbild" msgstr "Produktbild"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Legt die Reihenfolge fest, in der die Bilder angezeigt werden" msgstr "Legt die Reihenfolge fest, in der die Bilder angezeigt werden"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Priorität anzeigen" msgstr "Priorität anzeigen"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "Das Produkt, das dieses Bild darstellt" msgstr "Das Produkt, das dieses Bild darstellt"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Produktbilder" msgstr "Produktbilder"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "" msgstr ""
"Einzigartiger Code, den ein Nutzer zum Einlösen eines Rabatts verwendet" "Einzigartiger Code, den ein Nutzer zum Einlösen eines Rabatts verwendet"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Kennung des Promo-Codes" msgstr "Kennung des Promo-Codes"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "" msgstr ""
"Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet " "Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet "
"wird" "wird"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Fester Rabattbetrag" msgstr "Fester Rabattbetrag"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "Prozentualer Rabatt, wenn der Festbetrag nicht verwendet wird" msgstr "Prozentualer Rabatt, wenn der Festbetrag nicht verwendet wird"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Prozentualer Rabatt" msgstr "Prozentualer Rabatt"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Zeitstempel, wann der Promocode abläuft" msgstr "Zeitstempel, wann der Promocode abläuft"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "Ende der Gültigkeitsdauer" msgstr "Ende der Gültigkeitsdauer"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Zeitstempel, ab dem dieser Promocode gültig ist" msgstr "Zeitstempel, ab dem dieser Promocode gültig ist"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Beginn der Gültigkeitsdauer" msgstr "Beginn der Gültigkeitsdauer"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
"Zeitstempel, wann der Promocode verwendet wurde, leer, wenn noch nicht " "Zeitstempel, wann der Promocode verwendet wurde, leer, wenn noch nicht "
"verwendet" "verwendet"
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Zeitstempel der Verwendung" msgstr "Zeitstempel der Verwendung"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "Diesem Promocode zugewiesener Benutzer, falls zutreffend" msgstr "Diesem Promocode zugewiesener Benutzer, falls zutreffend"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Zugewiesener Benutzer" msgstr "Zugewiesener Benutzer"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Promo-Code" msgstr "Promo-Code"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Promo-Codes" msgstr "Promo-Codes"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1548,143 +1552,143 @@ msgstr ""
"Es sollte nur eine Art von Rabatt definiert werden (Betrag oder " "Es sollte nur eine Art von Rabatt definiert werden (Betrag oder "
"Prozentsatz), aber nicht beides oder keines von beiden." "Prozentsatz), aber nicht beides oder keines von beiden."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "Promocode wurde bereits verwendet" msgstr "Promocode wurde bereits verwendet"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Ungültiger Rabatttyp für Promocode {self.uuid}" msgstr "Ungültiger Rabatttyp für Promocode {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Prozentualer Rabatt für die ausgewählten Produkte" msgstr "Prozentualer Rabatt für die ausgewählten Produkte"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Prozentsatz der Ermäßigung" msgstr "Prozentsatz der Ermäßigung"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Geben Sie einen eindeutigen Namen für diese Aktion an" msgstr "Geben Sie einen eindeutigen Namen für diese Aktion an"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Name der Aktion" msgstr "Name der Aktion"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Promotion description" msgstr "Promotion description"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Wählen Sie aus, welche Produkte in dieser Aktion enthalten sind" msgstr "Wählen Sie aus, welche Produkte in dieser Aktion enthalten sind"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Enthaltene Produkte" msgstr "Enthaltene Produkte"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Förderung" msgstr "Förderung"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "Der Verkäufer, der dieses Produkt liefert, hat folgende Bestände" msgstr "Der Verkäufer, der dieses Produkt liefert, hat folgende Bestände"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Zugehöriger Anbieter" msgstr "Zugehöriger Anbieter"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Endpreis für den Kunden nach Aufschlägen" msgstr "Endpreis für den Kunden nach Aufschlägen"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Verkaufspreis" msgstr "Verkaufspreis"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "Das mit diesem Bestandseintrag verbundene Produkt" msgstr "Das mit diesem Bestandseintrag verbundene Produkt"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "Der an den Verkäufer gezahlte Preis für dieses Produkt" msgstr "Der an den Verkäufer gezahlte Preis für dieses Produkt"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Einkaufspreis des Verkäufers" msgstr "Einkaufspreis des Verkäufers"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Verfügbare Menge des Produkts auf Lager" msgstr "Verfügbare Menge des Produkts auf Lager"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Vorrätige Menge" msgstr "Vorrätige Menge"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "Vom Hersteller zugewiesene SKU zur Identifizierung des Produkts" msgstr "Vom Hersteller zugewiesene SKU zur Identifizierung des Produkts"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "SKU des Verkäufers" msgstr "SKU des Verkäufers"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "" msgstr ""
"Digitale Datei, die mit diesem Bestand verbunden ist, falls zutreffend" "Digitale Datei, die mit diesem Bestand verbunden ist, falls zutreffend"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Digitale Datei" msgstr "Digitale Datei"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Bestandseinträge" msgstr "Bestandseinträge"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Produkte, die der Benutzer als gewünscht markiert hat" msgstr "Produkte, die der Benutzer als gewünscht markiert hat"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "Benutzer, dem diese Wunschliste gehört" msgstr "Benutzer, dem diese Wunschliste gehört"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Besitzer der Wishlist" msgstr "Besitzer der Wishlist"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Wunschzettel" msgstr "Wunschzettel"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Herunterladen" msgstr "Herunterladen"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Herunterladen" msgstr "Herunterladen"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" msgid "you can not download a digital asset for a non-finished order"
msgstr "" msgstr ""
"Sie können kein digitales Asset für eine nicht abgeschlossene Bestellung " "Sie können kein digitales Asset für eine nicht abgeschlossene Bestellung "
"herunterladen" "herunterladen"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Dokumentarfilm" msgstr "Dokumentarfilm"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Dokumentarfilme" msgstr "Dokumentarfilme"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Ungelöst" msgstr "Ungelöst"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -81,7 +81,7 @@ msgstr "Image"
msgid "images" msgid "images"
msgstr "Images" msgstr "Images"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Stock" msgstr "Stock"
@ -89,7 +89,7 @@ msgstr "Stock"
msgid "stocks" msgid "stocks"
msgstr "Stocks" msgstr "Stocks"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -97,35 +97,35 @@ msgstr "Stocks"
msgid "price" msgid "price"
msgstr "Price" msgstr "Price"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Rating" msgstr "Rating"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Basic Info" msgstr "Basic Info"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Important Dates" msgstr "Important Dates"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Translations" msgstr "Translations"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Order Product" msgstr "Order Product"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Order Products" msgstr "Order Products"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Is Business" msgstr "Is Business"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Config" msgstr "Config"
@ -489,55 +489,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "List all products (simple view)" msgstr "List all products (simple view)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(exact) Product UUID" msgstr "(exact) Product UUID"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(icontains) Product name" msgstr "(icontains) Product name"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(list) Category names, case-insensitive" msgstr "(list) Category names, case-insensitive"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(exact) Category UUID" msgstr "(exact) Category UUID"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(list) Tag names, case-insensitive" msgstr "(list) Tag names, case-insensitive"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Minimum stock price" msgstr "(gte) Minimum stock price"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Maximum stock price" msgstr "(lte) Maximum stock price"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(exact) Only active products" msgstr "(exact) Only active products"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Brand name" msgstr "(iexact) Brand name"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Minimum stock quantity" msgstr "(gt) Minimum stock quantity"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(exact) Product slug" msgstr "(exact) Product slug"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(exact) Digital vs. physical" msgstr "(exact) Digital vs. physical"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -545,34 +545,34 @@ msgstr ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Retrieve a single product (detailed view)" msgstr "Retrieve a single product (detailed view)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "Product UUID or Slug" msgstr "Product UUID or Slug"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Create a product" msgstr "Create a product"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "Rewrite an existing product, preserving non-editable fields" msgstr "Rewrite an existing product, preserving non-editable fields"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Update some fields of an existing product, preserving non-editable fields" "Update some fields of an existing product, preserving non-editable fields"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Delete a product" msgstr "Delete a product"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "No search term provided." msgstr "No search term provided."
@ -627,7 +627,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!" msgstr "Please provide either order_uuid or order_hr_id - mutually exclusive!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "Wrong type came from order.buy() method: {type(instance)!s}" msgstr "Wrong type came from order.buy() method: {type(instance)!s}"
@ -815,7 +815,7 @@ msgstr "Promocodes"
msgid "products on sale" msgid "products on sale"
msgstr "Products on sale" msgstr "Products on sale"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Promotions" msgstr "Promotions"
@ -831,11 +831,11 @@ msgstr "Vendor"
msgid "product" msgid "product"
msgstr "Product" msgstr "Product"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Wishlisted products" msgstr "Wishlisted products"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Wishlists" msgstr "Wishlists"
@ -981,8 +981,8 @@ msgstr "Attribute of this value"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "The specific product associated with this attribute's value" msgstr "The specific product associated with this attribute's value"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Associated product" msgstr "Associated product"
@ -1078,7 +1078,7 @@ msgstr "Optionally associate this product with a brand"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Tags that help describe or group this product" msgstr "Tags that help describe or group this product"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Product tags" msgstr "Product tags"
@ -1098,7 +1098,7 @@ msgstr "Provide a clear identifying name for the product"
msgid "product name" msgid "product name"
msgstr "Product name" msgstr "Product name"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Add a detailed description of the product" msgstr "Add a detailed description of the product"
@ -1197,7 +1197,7 @@ msgstr "Current status of the order in its lifecycle"
msgid "order status" msgid "order status"
msgstr "Order status" msgstr "Order status"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"JSON structure of notifications to display to users, in admin UI the table-" "JSON structure of notifications to display to users, in admin UI the table-"
@ -1235,55 +1235,59 @@ msgstr "human-readable ID"
msgid "order" msgid "order"
msgstr "Order" msgstr "Order"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" 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" msgstr "You cannot add products to an order that is not a pending one"
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "You cannot add inactive products to order" msgstr "You cannot add inactive products to order"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "You cannot add more products than available in stock" msgstr "You cannot add more products than available in stock"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} does not exist: {product_uuid}" msgstr "{name} does not exist: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" 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" msgstr "You cannot remove products from an order that is not a pending one"
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Promocode does not exist" msgstr "Promocode does not exist"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"You can not purchase at this moment, please try again in a few minutes." "You can not purchase at this moment, please try again in a few minutes."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Invalid force value" msgstr "Invalid force value"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "You cannot purchase an empty order!" msgstr "You cannot purchase an empty order!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Insufficient funds to complete the order" msgstr "Insufficient funds to complete the order"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1291,188 +1295,188 @@ msgstr ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Invalid payment method" msgstr "Invalid payment method"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"you cannot create a momental order without providing a billing address" "you cannot create a momental order without providing a billing address"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" 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" msgstr "The price paid by the customer for this product at purchase time"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Purchase price at order time" msgstr "Purchase price at order time"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "Internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Internal comments" msgstr "Internal comments"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "User notifications" msgstr "User notifications"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "JSON representation of this item's attributes" msgstr "JSON representation of this item's attributes"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Ordered product attributes" msgstr "Ordered product attributes"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Parent order" msgstr "Parent order"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "The specific product associated with this order line" msgstr "The specific product associated with this order line"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Quantity of this specific product in the order" msgstr "Quantity of this specific product in the order"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Product quantity" msgstr "Product quantity"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Current status of this product in the order" msgstr "Current status of this product in the order"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Product line status" msgstr "Product line status"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Tag name" msgstr "Tag name"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "User-friendly name for the product tag" msgstr "User-friendly name for the product tag"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Tag display name" msgstr "Tag display name"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Product tag" msgstr "Product tag"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "Provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Image alt text" msgstr "Image alt text"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Upload the image file for this product" msgstr "Upload the image file for this product"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Product image" msgstr "Product image"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Determines the order in which images are displayed" msgstr "Determines the order in which images are displayed"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Display priority" msgstr "Display priority"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "The product that this image represents" msgstr "The product that this image represents"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Product images" msgstr "Product images"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "Unique code used by a user to redeem a discount" msgstr "Unique code used by a user to redeem a discount"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Promo code identifier" msgstr "Promo code identifier"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "Fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Fixed discount amount" msgstr "Fixed discount amount"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "Percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Percentage discount" msgstr "Percentage discount"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Timestamp when the promocode expires" msgstr "Timestamp when the promocode expires"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "End validity time" msgstr "End validity time"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Start validity time" msgstr "Start validity time"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "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:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Usage timestamp" msgstr "Usage timestamp"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "User assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Assigned user" msgstr "Assigned user"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Promo code" msgstr "Promo code"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Promo codes" msgstr "Promo codes"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1480,140 +1484,140 @@ msgstr ""
"Only one type of discount should be defined (amount or percent), but not " "Only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "Promocode has been used already" msgstr "Promocode has been used already"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Percentage discount for the selected products" msgstr "Percentage discount for the selected products"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Discount percentage" msgstr "Discount percentage"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Provide a unique name for this promotion" msgstr "Provide a unique name for this promotion"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Promotion name" msgstr "Promotion name"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Promotion description" msgstr "Promotion description"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Select which products are included in this promotion" msgstr "Select which products are included in this promotion"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Included products" msgstr "Included products"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Promotion" msgstr "Promotion"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "The vendor supplying this product stock" msgstr "The vendor supplying this product stock"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Associated vendor" msgstr "Associated vendor"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Final price to the customer after markups" msgstr "Final price to the customer after markups"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Selling price" msgstr "Selling price"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "The product associated with this stock entry" msgstr "The product associated with this stock entry"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "The price paid to the vendor for this product" msgstr "The price paid to the vendor for this product"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Vendor purchase price" msgstr "Vendor purchase price"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Available quantity of the product in stock" msgstr "Available quantity of the product in stock"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Quantity in stock" msgstr "Quantity in stock"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "Vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "Vendor's SKU" msgstr "Vendor's SKU"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "Digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Digital file" msgstr "Digital file"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Stock entries" msgstr "Stock entries"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Products that the user has marked as wanted" msgstr "Products that the user has marked as wanted"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "User who owns this wishlist" msgstr "User who owns this wishlist"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Wishlist's Owner" msgstr "Wishlist's Owner"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Wishlist" msgstr "Wishlist"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Download" msgstr "Download"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Downloads" msgstr "Downloads"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" 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" msgstr "You can not download a digital asset for a non-finished order"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Documentary" msgstr "Documentary"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Documentaries" msgstr "Documentaries"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Unresolved" msgstr "Unresolved"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -81,7 +81,7 @@ msgstr "Image"
msgid "images" msgid "images"
msgstr "Images" msgstr "Images"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Stock" msgstr "Stock"
@ -89,7 +89,7 @@ msgstr "Stock"
msgid "stocks" msgid "stocks"
msgstr "Stocks" msgstr "Stocks"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -97,35 +97,35 @@ msgstr "Stocks"
msgid "price" msgid "price"
msgstr "Price" msgstr "Price"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Product rating" msgstr "Product rating"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Basic Info" msgstr "Basic Info"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Important dates" msgstr "Important dates"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Translations" msgstr "Translations"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Order Product" msgstr "Order Product"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Order Products" msgstr "Order Products"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Is Business" msgstr "Is Business"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Config" msgstr "Config"
@ -489,55 +489,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "List all products (simple view)" msgstr "List all products (simple view)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(exact) Product UUID" msgstr "(exact) Product UUID"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(icontains) Product name" msgstr "(icontains) Product name"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(list) Category names, case-insensitive" msgstr "(list) Category names, case-insensitive"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(exact) Category UUID" msgstr "(exact) Category UUID"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(list) Tag names, case-insensitive" msgstr "(list) Tag names, case-insensitive"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Minimum stock price" msgstr "(gte) Minimum stock price"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Maximum stock price" msgstr "(lte) Maximum stock price"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(exact) Only active products" msgstr "(exact) Only active products"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Brand name" msgstr "(iexact) Brand name"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Minimum stock quantity" msgstr "(gt) Minimum stock quantity"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(exact) Product slug" msgstr "(exact) Product slug"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(exact) Digital vs. physical" msgstr "(exact) Digital vs. physical"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -545,34 +545,34 @@ msgstr ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Retrieve a single product (detailed view)" msgstr "Retrieve a single product (detailed view)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "Product UUID or Slug" msgstr "Product UUID or Slug"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Create a product" msgstr "Create a product"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "Rewrite an existing product, preserving non-editable fields" msgstr "Rewrite an existing product, preserving non-editable fields"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Update some fields of an existing product, preserving non-editable fields" "Update some fields of an existing product, preserving non-editable fields"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Delete a product" msgstr "Delete a product"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "No search term provided." msgstr "No search term provided."
@ -627,7 +627,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!" msgstr "Please provide either order_uuid or order_hr_id - mutually exclusive!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "Wrong type came from order.buy() method: {type(instance)!s}" msgstr "Wrong type came from order.buy() method: {type(instance)!s}"
@ -815,7 +815,7 @@ msgstr "Promocodes"
msgid "products on sale" msgid "products on sale"
msgstr "Products on sale" msgstr "Products on sale"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Promotions" msgstr "Promotions"
@ -831,11 +831,11 @@ msgstr "Vendor"
msgid "product" msgid "product"
msgstr "Product" msgstr "Product"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Wishlisted products" msgstr "Wishlisted products"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Wishlists" msgstr "Wishlists"
@ -981,8 +981,8 @@ msgstr "Attribute of this value"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "The specific product associated with this attribute's value" msgstr "The specific product associated with this attribute's value"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Associated product" msgstr "Associated product"
@ -1078,7 +1078,7 @@ msgstr "Optionally associate this product with a brand"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Tags that help describe or group this product" msgstr "Tags that help describe or group this product"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Product tags" msgstr "Product tags"
@ -1098,7 +1098,7 @@ msgstr "Provide a clear identifying name for the product"
msgid "product name" msgid "product name"
msgstr "Product name" msgstr "Product name"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Add a detailed description of the product" msgstr "Add a detailed description of the product"
@ -1197,7 +1197,7 @@ msgstr "Current status of the order in its lifecycle"
msgid "order status" msgid "order status"
msgstr "Order status" msgstr "Order status"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"JSON structure of notifications to display to users, in admin UI the table-" "JSON structure of notifications to display to users, in admin UI the table-"
@ -1235,55 +1235,59 @@ msgstr "human-readable ID"
msgid "order" msgid "order"
msgstr "Order" msgstr "Order"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" 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" msgstr "You cannot add products to an order that is not a pending one"
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "You cannot add inactive products to order" msgstr "You cannot add inactive products to order"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "You cannot add more products than available in stock" msgstr "You cannot add more products than available in stock"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} does not exist: {product_uuid}" msgstr "{name} does not exist: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" 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" msgstr "You cannot remove products from an order that is not a pending one"
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Promocode does not exist" msgstr "Promocode does not exist"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"You can not purchase at this moment, please try again in a few minutes." "You can not purchase at this moment, please try again in a few minutes."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Invalid force value" msgstr "Invalid force value"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "You cannot purchase an empty order!" msgstr "You cannot purchase an empty order!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Insufficient funds to complete the order" msgstr "Insufficient funds to complete the order"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1291,188 +1295,188 @@ msgstr ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Invalid payment method" msgstr "Invalid payment method"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"you cannot create a momental order without providing a billing address" "you cannot create a momental order without providing a billing address"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" 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" msgstr "The price paid by the customer for this product at purchase time"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Purchase price at order time" msgstr "Purchase price at order time"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "Internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Internal comments" msgstr "Internal comments"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "User notifications" msgstr "User notifications"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "JSON representation of this item's attributes" msgstr "JSON representation of this item's attributes"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Ordered product attributes" msgstr "Ordered product attributes"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Parent order" msgstr "Parent order"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "The specific product associated with this order line" msgstr "The specific product associated with this order line"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Quantity of this specific product in the order" msgstr "Quantity of this specific product in the order"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Product quantity" msgstr "Product quantity"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Current status of this product in the order" msgstr "Current status of this product in the order"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Product line status" msgstr "Product line status"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Tag name" msgstr "Tag name"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "User-friendly name for the product tag" msgstr "User-friendly name for the product tag"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Tag display name" msgstr "Tag display name"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Product tag" msgstr "Product tag"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "Provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Image alt text" msgstr "Image alt text"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Upload the image file for this product" msgstr "Upload the image file for this product"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Product image" msgstr "Product image"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Determines the order in which images are displayed" msgstr "Determines the order in which images are displayed"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Display priority" msgstr "Display priority"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "The product that this image represents" msgstr "The product that this image represents"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Product images" msgstr "Product images"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "Unique code used by a user to redeem a discount" msgstr "Unique code used by a user to redeem a discount"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Promo code identifier" msgstr "Promo code identifier"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "Fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Fixed discount amount" msgstr "Fixed discount amount"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "Percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Percentage discount" msgstr "Percentage discount"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Timestamp when the promocode expires" msgstr "Timestamp when the promocode expires"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "End validity time" msgstr "End validity time"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Start validity time" msgstr "Start validity time"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "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:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Usage timestamp" msgstr "Usage timestamp"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "User assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Assigned user" msgstr "Assigned user"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Promo code" msgstr "Promo code"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Promo codes" msgstr "Promo codes"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1480,140 +1484,140 @@ msgstr ""
"Only one type of discount should be defined (amount or percent), but not " "Only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "Promocode has been used already" msgstr "Promocode has been used already"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Percentage discount for the selected products" msgstr "Percentage discount for the selected products"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Discount percentage" msgstr "Discount percentage"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Provide a unique name for this promotion" msgstr "Provide a unique name for this promotion"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Promotion name" msgstr "Promotion name"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Promotion description" msgstr "Promotion description"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Select which products are included in this promotion" msgstr "Select which products are included in this promotion"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Included products" msgstr "Included products"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Promotion" msgstr "Promotion"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "The vendor supplying this product stock" msgstr "The vendor supplying this product stock"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Associated vendor" msgstr "Associated vendor"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Final price to the customer after markups" msgstr "Final price to the customer after markups"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Selling price" msgstr "Selling price"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "The product associated with this stock entry" msgstr "The product associated with this stock entry"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "The price paid to the vendor for this product" msgstr "The price paid to the vendor for this product"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Vendor purchase price" msgstr "Vendor purchase price"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Available quantity of the product in stock" msgstr "Available quantity of the product in stock"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Quantity in stock" msgstr "Quantity in stock"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "Vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "Vendor's SKU" msgstr "Vendor's SKU"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "Digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Digital file" msgstr "Digital file"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Stock entries" msgstr "Stock entries"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Products that the user has marked as wanted" msgstr "Products that the user has marked as wanted"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "User who owns this wishlist" msgstr "User who owns this wishlist"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Wishlist's Owner" msgstr "Wishlist's Owner"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Wishlist" msgstr "Wishlist"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Download" msgstr "Download"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Downloads" msgstr "Downloads"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" 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" msgstr "You can not download a digital asset for a non-finished order"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Documentary" msgstr "Documentary"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Documentaries" msgstr "Documentaries"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Unresolved" msgstr "Unresolved"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -83,7 +83,7 @@ msgstr "Imagen"
msgid "images" msgid "images"
msgstr "Imágenes" msgstr "Imágenes"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Stock" msgstr "Stock"
@ -91,7 +91,7 @@ msgstr "Stock"
msgid "stocks" msgid "stocks"
msgstr "Acciones" msgstr "Acciones"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -99,35 +99,35 @@ msgstr "Acciones"
msgid "price" msgid "price"
msgstr "Precio" msgstr "Precio"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Valoración del producto" msgstr "Valoración del producto"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Información básica" msgstr "Información básica"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Fechas importantes" msgstr "Fechas importantes"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Traducciones" msgstr "Traducciones"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Pedir un producto" msgstr "Pedir un producto"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Pedir productos" msgstr "Pedir productos"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Es Negocio" msgstr "Es Negocio"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Configurar" msgstr "Configurar"
@ -513,57 +513,57 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "Listar todos los productos (vista simple)" msgstr "Listar todos los productos (vista simple)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "UUID (exacto) del producto" msgstr "UUID (exacto) del producto"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(icontains) Nombre del producto" msgstr "(icontains) Nombre del producto"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "" msgstr ""
"(lista) Nombres de categoría, sin distinción entre mayúsculas y minúsculas" "(lista) Nombres de categoría, sin distinción entre mayúsculas y minúsculas"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(exacto) Categoría UUID" msgstr "(exacto) Categoría UUID"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "" msgstr ""
"(lista) Nombres de etiquetas, sin distinción entre mayúsculas y minúsculas" "(lista) Nombres de etiquetas, sin distinción entre mayúsculas y minúsculas"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Precio mínimo de las acciones" msgstr "(gte) Precio mínimo de las acciones"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Precio máximo de las acciones" msgstr "(lte) Precio máximo de las acciones"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(exacto) Sólo productos activos" msgstr "(exacto) Sólo productos activos"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Marca" msgstr "(iexact) Marca"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Cantidad mínima de existencias" msgstr "(gt) Cantidad mínima de existencias"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(exacto) Babosa del producto" msgstr "(exacto) Babosa del producto"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(exacto) Digital frente a físico" msgstr "(exacto) Digital frente a físico"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -571,35 +571,35 @@ msgstr ""
"Lista separada por comas de campos por los que ordenar. Prefiérela con `-` para que sea descendente. \n" "Lista separada por comas de campos por los que ordenar. Prefiérela con `-` para que sea descendente. \n"
"**Permitido:** uuid, rating, name, slug, created, modified, price, random" "**Permitido:** uuid, rating, name, slug, created, modified, price, random"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Recuperar un solo producto (vista detallada)" msgstr "Recuperar un solo producto (vista detallada)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "UUID o babosa del producto" msgstr "UUID o babosa del producto"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Crear un producto" msgstr "Crear un producto"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "Reescribir un producto existente conservando los campos no editables" msgstr "Reescribir un producto existente conservando los campos no editables"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Actualizar algunos campos de un producto existente, conservando los campos " "Actualizar algunos campos de un producto existente, conservando los campos "
"no editables" "no editables"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Eliminar un producto" msgstr "Eliminar un producto"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "No se proporciona ningún término de búsqueda." msgstr "No se proporciona ningún término de búsqueda."
@ -654,7 +654,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive"
msgstr "Indique order_uuid o order_hr_id, ¡se excluyen mutuamente!" msgstr "Indique order_uuid o order_hr_id, ¡se excluyen mutuamente!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "" msgstr ""
"Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}" "Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}"
@ -847,7 +847,7 @@ msgstr "Códigos promocionales"
msgid "products on sale" msgid "products on sale"
msgstr "Productos a la venta" msgstr "Productos a la venta"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Promociones" msgstr "Promociones"
@ -863,11 +863,11 @@ msgstr "Vendedor"
msgid "product" msgid "product"
msgstr "Producto" msgstr "Producto"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Productos deseados" msgstr "Productos deseados"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Listas de deseos" msgstr "Listas de deseos"
@ -1014,8 +1014,8 @@ msgstr "Atributo de este valor"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "El producto específico asociado al valor de este atributo" msgstr "El producto específico asociado al valor de este atributo"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Producto asociado" msgstr "Producto asociado"
@ -1111,7 +1111,7 @@ msgstr "Si lo desea, puede asociar este producto a una marca"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Etiquetas que ayudan a describir o agrupar este producto" msgstr "Etiquetas que ayudan a describir o agrupar este producto"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Etiquetas del producto" msgstr "Etiquetas del producto"
@ -1131,7 +1131,7 @@ msgstr "Proporcionar un nombre que identifique claramente el producto"
msgid "product name" msgid "product name"
msgstr "Nombre del producto" msgstr "Nombre del producto"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Añada una descripción detallada del producto" msgstr "Añada una descripción detallada del producto"
@ -1234,7 +1234,7 @@ msgstr "Estado actual del pedido en su ciclo de vida"
msgid "order status" msgid "order status"
msgstr "Estado del pedido" msgstr "Estado del pedido"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"Estructura JSON de las notificaciones para mostrar a los usuarios, en la " "Estructura JSON de las notificaciones para mostrar a los usuarios, en la "
@ -1272,56 +1272,60 @@ msgstr "ID legible por humanos"
msgid "order" msgid "order"
msgstr "Pida" msgstr "Pida"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" 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" msgstr "No puede añadir productos a un pedido que no esté pendiente"
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "No se pueden añadir productos inactivos al pedido" msgstr "No se pueden añadir productos inactivos al pedido"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "No puede añadir más productos de los disponibles en stock" msgstr "No puede añadir más productos de los disponibles en stock"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} no existe: {product_uuid}" msgstr "{name} no existe: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" 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" msgstr "No puede eliminar productos de un pedido que no esté pendiente"
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} no existe con la consulta <{query}>" msgstr "{name} no existe con la consulta <{query}>"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Promocode no existe" msgstr "Promocode no existe"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"No puede comprar en este momento, por favor inténtelo de nuevo en unos " "No puede comprar en este momento, por favor inténtelo de nuevo en unos "
"minutos." "minutos."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Valor de fuerza no válido" msgstr "Valor de fuerza no válido"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "No se puede comprar un pedido vacío." msgstr "No se puede comprar un pedido vacío."
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Fondos insuficientes para completar el pedido" msgstr "Fondos insuficientes para completar el pedido"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1329,192 +1333,192 @@ msgstr ""
"no puede comprar sin registrarse, facilite la siguiente información: nombre " "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" "del cliente, correo electrónico del cliente, número de teléfono del cliente"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Método de pago no válido" msgstr "Método de pago no válido"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"no puede crear un pedido momental sin indicar una dirección de facturación" "no puede crear un pedido momental sin indicar una dirección de facturación"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" msgid "the price paid by the customer for this product at purchase time"
msgstr "" msgstr ""
"El precio pagado por el cliente por este producto en el momento de la compra" "El precio pagado por el cliente por este producto en el momento de la compra"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Precio de compra en el momento del pedido" msgstr "Precio de compra en el momento del pedido"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "" msgstr ""
"Comentarios internos para los administradores sobre este producto solicitado" "Comentarios internos para los administradores sobre este producto solicitado"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Comentarios internos" msgstr "Comentarios internos"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "Notificaciones a los usuarios" msgstr "Notificaciones a los usuarios"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "Representación JSON de los atributos de este elemento" msgstr "Representación JSON de los atributos de este elemento"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Atributos ordenados del producto" msgstr "Atributos ordenados del producto"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Referencia al pedido principal que contiene este producto" msgstr "Referencia al pedido principal que contiene este producto"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Orden de los padres" msgstr "Orden de los padres"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "El producto específico asociado a esta línea de pedido" msgstr "El producto específico asociado a esta línea de pedido"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Cantidad de este producto específico en el pedido" msgstr "Cantidad de este producto específico en el pedido"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Cantidad de productos" msgstr "Cantidad de productos"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Estado actual de este producto en el pedido" msgstr "Estado actual de este producto en el pedido"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Estado de la línea de productos" msgstr "Estado de la línea de productos"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Identificador interno de la etiqueta del producto" msgstr "Identificador interno de la etiqueta del producto"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Nombre de la etiqueta" msgstr "Nombre de la etiqueta"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "Nombre fácil de usar para la etiqueta del producto" msgstr "Nombre fácil de usar para la etiqueta del producto"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Nombre de la etiqueta" msgstr "Nombre de la etiqueta"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Etiqueta del producto" msgstr "Etiqueta del producto"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "" msgstr ""
"Proporcione un texto alternativo para la imagen en aras de la accesibilidad" "Proporcione un texto alternativo para la imagen en aras de la accesibilidad"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Texto alternativo de la imagen" msgstr "Texto alternativo de la imagen"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Cargar el archivo de imagen para este producto" msgstr "Cargar el archivo de imagen para este producto"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Imagen del producto" msgstr "Imagen del producto"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Determina el orden de visualización de las imágenes" msgstr "Determina el orden de visualización de las imágenes"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Prioridad de visualización" msgstr "Prioridad de visualización"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "El producto que representa esta imagen" msgstr "El producto que representa esta imagen"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Imágenes de productos" msgstr "Imágenes de productos"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "Código único utilizado por un usuario para canjear un descuento" msgstr "Código único utilizado por un usuario para canjear un descuento"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Promo code identifier" msgstr "Promo code identifier"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "Se aplica un descuento fijo si no se utiliza el porcentaje" msgstr "Se aplica un descuento fijo si no se utiliza el porcentaje"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Importe fijo del descuento" msgstr "Importe fijo del descuento"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "Porcentaje de descuento aplicado si no se utiliza el importe fijo" msgstr "Porcentaje de descuento aplicado si no se utiliza el importe fijo"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Porcentaje de descuento" msgstr "Porcentaje de descuento"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Fecha de caducidad del promocode" msgstr "Fecha de caducidad del promocode"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "Hora de fin de validez" msgstr "Hora de fin de validez"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Fecha a partir de la cual es válido este promocode" msgstr "Fecha a partir de la cual es válido este promocode"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Hora de inicio de validez" msgstr "Hora de inicio de validez"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
"Fecha en la que se utilizó el promocode, en blanco si aún no se ha utilizado" "Fecha en la que se utilizó el promocode, en blanco si aún no se ha utilizado"
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Marca de tiempo de uso" msgstr "Marca de tiempo de uso"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "Usuario asignado a este promocode si procede" msgstr "Usuario asignado a este promocode si procede"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Usuario asignado" msgstr "Usuario asignado"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Promo code" msgstr "Promo code"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Promo codes" msgstr "Promo codes"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1522,140 +1526,140 @@ msgstr ""
"Sólo debe definirse un tipo de descuento (importe o porcentaje), pero no " "Sólo debe definirse un tipo de descuento (importe o porcentaje), pero no "
"ambos ni ninguno." "ambos ni ninguno."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "El código promocional ya ha sido utilizado" msgstr "El código promocional ya ha sido utilizado"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Tipo de descuento no válido para promocode {self.uuid}" msgstr "Tipo de descuento no válido para promocode {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Porcentaje de descuento para los productos seleccionados" msgstr "Porcentaje de descuento para los productos seleccionados"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Porcentaje de descuento" msgstr "Porcentaje de descuento"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Proporcione un nombre único para esta promoción" msgstr "Proporcione un nombre único para esta promoción"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Nombre de la promoción" msgstr "Nombre de la promoción"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Descripción de la promoción" msgstr "Descripción de la promoción"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Seleccione los productos incluidos en esta promoción" msgstr "Seleccione los productos incluidos en esta promoción"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Productos incluidos" msgstr "Productos incluidos"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Promoción" msgstr "Promoción"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "El vendedor que suministra este producto dispone de" msgstr "El vendedor que suministra este producto dispone de"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Proveedor asociado" msgstr "Proveedor asociado"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Precio final al cliente después de márgenes" msgstr "Precio final al cliente después de márgenes"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Precio de venta" msgstr "Precio de venta"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "El producto asociado a esta entrada en stock" msgstr "El producto asociado a esta entrada en stock"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "El precio pagado al vendedor por este producto" msgstr "El precio pagado al vendedor por este producto"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Precio de compra al vendedor" msgstr "Precio de compra al vendedor"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Cantidad disponible del producto en stock" msgstr "Cantidad disponible del producto en stock"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Cantidad en stock" msgstr "Cantidad en stock"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "SKU asignada por el proveedor para identificar el producto" msgstr "SKU asignada por el proveedor para identificar el producto"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "SKU del vendedor" msgstr "SKU del vendedor"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "Archivo digital asociado a esta acción, si procede" msgstr "Archivo digital asociado a esta acción, si procede"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Archivo digital" msgstr "Archivo digital"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Entradas en existencias" msgstr "Entradas en existencias"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Productos que el usuario ha marcado como deseados" msgstr "Productos que el usuario ha marcado como deseados"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "Usuario propietario de esta lista de deseos" msgstr "Usuario propietario de esta lista de deseos"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Propietario de Wishlist" msgstr "Propietario de Wishlist"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Lista de deseos" msgstr "Lista de deseos"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Descargar" msgstr "Descargar"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Descargas" msgstr "Descargas"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" 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" msgstr "No puede descargar un activo digital para un pedido no finalizado"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Documental" msgstr "Documental"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Documentaries" msgstr "Documentaries"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Sin resolver" msgstr "Sin resolver"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -83,7 +83,7 @@ msgstr "Image"
msgid "images" msgid "images"
msgstr "Images" msgstr "Images"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Stock" msgstr "Stock"
@ -91,7 +91,7 @@ msgstr "Stock"
msgid "stocks" msgid "stocks"
msgstr "Stocks" msgstr "Stocks"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -99,35 +99,35 @@ msgstr "Stocks"
msgid "price" msgid "price"
msgstr "Prix" msgstr "Prix"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Evaluation du produit" msgstr "Evaluation du produit"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Informations de base" msgstr "Informations de base"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Important Dates" msgstr "Important Dates"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Traductions" msgstr "Traductions"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Commander un produit" msgstr "Commander un produit"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Commander des produits" msgstr "Commander des produits"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Est l'entreprise" msgstr "Est l'entreprise"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Config" msgstr "Config"
@ -519,55 +519,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "Liste de tous les produits (vue simple)" msgstr "Liste de tous les produits (vue simple)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "UUID (exact) du produit" msgstr "UUID (exact) du produit"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(icontains) Nom du produit" msgstr "(icontains) Nom du produit"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(liste) Noms de catégories, insensibles à la casse" msgstr "(liste) Noms de catégories, insensibles à la casse"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "UUID (exact) de la catégorie" msgstr "UUID (exact) de la catégorie"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(liste) Noms d'étiquettes, insensibles à la casse" msgstr "(liste) Noms d'étiquettes, insensibles à la casse"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Prix minimum de l'action" msgstr "(gte) Prix minimum de l'action"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Prix maximum de l'action" msgstr "(lte) Prix maximum de l'action"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(exact) Uniquement les produits actifs" msgstr "(exact) Uniquement les produits actifs"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Nom de marque" msgstr "(iexact) Nom de marque"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Quantité minimale en stock" msgstr "(gt) Quantité minimale en stock"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "UUID ou Slug du produit" msgstr "UUID ou Slug du produit"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(exact) Numérique ou physique" msgstr "(exact) Numérique ou physique"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -575,35 +575,35 @@ msgstr ""
"Liste de champs séparés par des virgules à trier. Préfixer avec `-` pour un tri descendant. \n" "Liste de champs séparés par des virgules à trier. Préfixer avec `-` pour un tri descendant. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Récupérer un seul produit (vue détaillée)" msgstr "Récupérer un seul produit (vue détaillée)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "UUID ou Slug du produit" msgstr "UUID ou Slug du produit"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Créer un produit" msgstr "Créer un produit"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "Réécrire un produit existant en préservant les champs non modifiables" msgstr "Réécrire un produit existant en préservant les champs non modifiables"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Mettre à jour certains champs d'un produit existant, en préservant les " "Mettre à jour certains champs d'un produit existant, en préservant les "
"champs non modifiables" "champs non modifiables"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Supprimer un produit" msgstr "Supprimer un produit"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "Aucun terme de recherche n'est fourni." msgstr "Aucun terme de recherche n'est fourni."
@ -660,7 +660,7 @@ msgstr ""
"mutuellement !" "mutuellement !"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "" msgstr ""
"Le mauvais type provient de la méthode order.buy() : {type(instance)!s}" "Le mauvais type provient de la méthode order.buy() : {type(instance)!s}"
@ -852,7 +852,7 @@ msgstr "Promocodes"
msgid "products on sale" msgid "products on sale"
msgstr "Produits en vente" msgstr "Produits en vente"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Promotions" msgstr "Promotions"
@ -868,11 +868,11 @@ msgstr "Vendeur"
msgid "product" msgid "product"
msgstr "Produit" msgstr "Produit"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Produits en liste de souhaits" msgstr "Produits en liste de souhaits"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Liste de souhaits" msgstr "Liste de souhaits"
@ -1020,8 +1020,8 @@ msgstr "Attribut de cette valeur"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "Le produit spécifique associé à la valeur de cet attribut" msgstr "Le produit spécifique associé à la valeur de cet attribut"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Produit associé" msgstr "Produit associé"
@ -1118,7 +1118,7 @@ msgstr "Possibilité d'associer ce produit à une marque"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Étiquettes permettant de décrire ou de regrouper ce produit" msgstr "Étiquettes permettant de décrire ou de regrouper ce produit"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Étiquettes du produit" msgstr "Étiquettes du produit"
@ -1138,7 +1138,7 @@ msgstr "Fournir un nom d'identification clair pour le produit"
msgid "product name" msgid "product name"
msgstr "Nom du produit" msgstr "Nom du produit"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Ajouter une description détaillée du produit" msgstr "Ajouter une description détaillée du produit"
@ -1240,7 +1240,7 @@ msgstr "Statut actuel de la commande dans son cycle de vie"
msgid "order status" msgid "order status"
msgstr "Statut de la commande" msgstr "Statut de la commande"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"Structure JSON des notifications à afficher aux utilisateurs ; dans " "Structure JSON des notifications à afficher aux utilisateurs ; dans "
@ -1278,61 +1278,65 @@ msgstr "ID lisible par l'homme"
msgid "order" msgid "order"
msgstr "Commande" msgstr "Commande"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" msgid "you cannot add products to an order that is not a pending one"
msgstr "" msgstr ""
"Vous ne pouvez pas ajouter de produits à une commande qui n'est pas en " "Vous ne pouvez pas ajouter de produits à une commande qui n'est pas en "
"cours." "cours."
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "Vous ne pouvez pas ajouter des produits inactifs à la commande" msgstr "Vous ne pouvez pas ajouter des produits inactifs à la commande"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "" msgstr ""
"Vous ne pouvez pas ajouter plus de produits que ceux disponibles en stock" "Vous ne pouvez pas ajouter plus de produits que ceux disponibles en stock"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} n'existe pas : {product_uuid}" msgstr "{name} n'existe pas : {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "" msgstr ""
"Vous ne pouvez pas retirer des produits d'une commande qui n'est pas en " "Vous ne pouvez pas retirer des produits d'une commande qui n'est pas en "
"cours." "cours."
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} n'existe pas avec la requête <{query}>" msgstr "{name} n'existe pas avec la requête <{query}>"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Le code promotionnel n'existe pas" msgstr "Le code promotionnel n'existe pas"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"Vous ne pouvez pas acheter en ce moment, veuillez réessayer dans quelques " "Vous ne pouvez pas acheter en ce moment, veuillez réessayer dans quelques "
"minutes." "minutes."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Valeur de force non valide" msgstr "Valeur de force non valide"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "Vous ne pouvez pas acheter une commande vide !" msgstr "Vous ne pouvez pas acheter une commande vide !"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Insuffisance de fonds pour compléter la commande" msgstr "Insuffisance de fonds pour compléter la commande"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1341,195 +1345,195 @@ msgstr ""
"informations suivantes : nom du client, courriel du client, numéro de " "informations suivantes : nom du client, courriel du client, numéro de "
"téléphone du client" "téléphone du client"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Méthode de paiement non valide" msgstr "Méthode de paiement non valide"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"vous ne pouvez pas créer une commande momentanée sans fournir d'adresse de " "vous ne pouvez pas créer une commande momentanée sans fournir d'adresse de "
"facturation" "facturation"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" 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" msgstr "Le prix payé par le client pour ce produit au moment de l'achat"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Prix d'achat au moment de la commande" msgstr "Prix d'achat au moment de la commande"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "" msgstr ""
"Commentaires internes pour les administrateurs sur ce produit commandé" "Commentaires internes pour les administrateurs sur ce produit commandé"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Commentaires internes" msgstr "Commentaires internes"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "Notifications aux utilisateurs" msgstr "Notifications aux utilisateurs"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "Représentation JSON des attributs de cet élément" msgstr "Représentation JSON des attributs de cet élément"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Attributs du produit ordonnés" msgstr "Attributs du produit ordonnés"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Référence à l'ordre parent qui contient ce produit" msgstr "Référence à l'ordre parent qui contient ce produit"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Ordonnance parentale" msgstr "Ordonnance parentale"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "Le produit spécifique associé à cette ligne de commande" msgstr "Le produit spécifique associé à cette ligne de commande"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Quantité de ce produit spécifique dans la commande" msgstr "Quantité de ce produit spécifique dans la commande"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Quantité de produits" msgstr "Quantité de produits"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Statut actuel de ce produit dans la commande" msgstr "Statut actuel de ce produit dans la commande"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Statut de la ligne de produits" msgstr "Statut de la ligne de produits"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Identifiant interne de l'étiquette du produit" msgstr "Identifiant interne de l'étiquette du produit"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Nom du jour" msgstr "Nom du jour"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "Nom convivial pour l'étiquette du produit" msgstr "Nom convivial pour l'étiquette du produit"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Nom d'affichage de l'étiquette" msgstr "Nom d'affichage de l'étiquette"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Étiquette du produit" msgstr "Étiquette du produit"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "Fournir un texte alternatif pour l'image afin d'en faciliter l'accès" msgstr "Fournir un texte alternatif pour l'image afin d'en faciliter l'accès"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Texte alt de l'image" msgstr "Texte alt de l'image"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Télécharger le fichier image pour ce produit" msgstr "Télécharger le fichier image pour ce produit"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Image du produit" msgstr "Image du produit"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Détermine l'ordre d'affichage des images" msgstr "Détermine l'ordre d'affichage des images"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Priorité à l'affichage" msgstr "Priorité à l'affichage"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "Le produit que cette image représente" msgstr "Le produit que cette image représente"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Images du produit" msgstr "Images du produit"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "" msgstr ""
"Code unique utilisé par un utilisateur pour bénéficier d'une réduction" "Code unique utilisé par un utilisateur pour bénéficier d'une réduction"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Identifiant du code promotionnel" msgstr "Identifiant du code promotionnel"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "" msgstr ""
"Montant fixe de la remise appliqué si le pourcentage n'est pas utilisé" "Montant fixe de la remise appliqué si le pourcentage n'est pas utilisé"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Montant de l'escompte fixe" msgstr "Montant de l'escompte fixe"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "" msgstr ""
"Pourcentage de réduction appliqué si le montant fixe n'est pas utilisé" "Pourcentage de réduction appliqué si le montant fixe n'est pas utilisé"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Pourcentage de réduction" msgstr "Pourcentage de réduction"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Date d'expiration du code promotionnel" msgstr "Date d'expiration du code promotionnel"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "Heure de fin de validité" msgstr "Heure de fin de validité"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Date à partir de laquelle ce code promotionnel est valable" msgstr "Date à partir de laquelle ce code promotionnel est valable"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Heure de début de validité" msgstr "Heure de début de validité"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
"Date à laquelle le code promotionnel a été utilisé, vide s'il n'a pas encore" "Date à laquelle le code promotionnel a été utilisé, vide s'il n'a pas encore"
" été utilisé." " été utilisé."
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Horodatage de l'utilisation" msgstr "Horodatage de l'utilisation"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "Utilisateur assigné à ce code promo, le cas échéant" msgstr "Utilisateur assigné à ce code promo, le cas échéant"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Utilisateur assigné" msgstr "Utilisateur assigné"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Code promo" msgstr "Code promo"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Codes promotionnels" msgstr "Codes promotionnels"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1537,142 +1541,142 @@ msgstr ""
"Un seul type de remise doit être défini (montant ou pourcentage), mais pas " "Un seul type de remise doit être défini (montant ou pourcentage), mais pas "
"les deux ni aucun des deux." "les deux ni aucun des deux."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "Le code promotionnel a déjà été utilisé" msgstr "Le code promotionnel a déjà été utilisé"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Type de réduction non valide pour le code promo {self.uuid}" msgstr "Type de réduction non valide pour le code promo {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Pourcentage de réduction pour les produits sélectionnés" msgstr "Pourcentage de réduction pour les produits sélectionnés"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Pourcentage de réduction" msgstr "Pourcentage de réduction"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Donnez un nom unique à cette promotion" msgstr "Donnez un nom unique à cette promotion"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Nom de la promotion" msgstr "Nom de la promotion"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Promotion description" msgstr "Promotion description"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Sélectionnez les produits inclus dans cette promotion" msgstr "Sélectionnez les produits inclus dans cette promotion"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Produits inclus" msgstr "Produits inclus"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Promotion" msgstr "Promotion"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "Le vendeur qui fournit ce stock de produits" msgstr "Le vendeur qui fournit ce stock de produits"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Vendeur associé" msgstr "Vendeur associé"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Prix final pour le client après majoration" msgstr "Prix final pour le client après majoration"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Prix de vente" msgstr "Prix de vente"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "Le produit associé à cette entrée de stock" msgstr "Le produit associé à cette entrée de stock"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "Le prix payé au vendeur pour ce produit" msgstr "Le prix payé au vendeur pour ce produit"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Prix d'achat du vendeur" msgstr "Prix d'achat du vendeur"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Quantité disponible du produit en stock" msgstr "Quantité disponible du produit en stock"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Quantité en stock" msgstr "Quantité en stock"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "SKU attribué par le fournisseur pour identifier le produit" msgstr "SKU attribué par le fournisseur pour identifier le produit"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "UGS du vendeur" msgstr "UGS du vendeur"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "Fichier numérique associé à ce stock, le cas échéant" msgstr "Fichier numérique associé à ce stock, le cas échéant"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Fichier numérique" msgstr "Fichier numérique"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Entrées de stock" msgstr "Entrées de stock"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Produits que l'utilisateur a marqués comme souhaités" msgstr "Produits que l'utilisateur a marqués comme souhaités"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "Utilisateur qui possède cette liste de souhaits" msgstr "Utilisateur qui possède cette liste de souhaits"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Propriétaire de la liste de souhaits" msgstr "Propriétaire de la liste de souhaits"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Liste de souhaits" msgstr "Liste de souhaits"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Télécharger" msgstr "Télécharger"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Téléchargements" msgstr "Téléchargements"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" msgid "you can not download a digital asset for a non-finished order"
msgstr "" msgstr ""
"Vous ne pouvez pas télécharger un bien numérique pour une commande non " "Vous ne pouvez pas télécharger un bien numérique pour une commande non "
"terminée." "terminée."
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Documentaire" msgstr "Documentaire"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Documentaires" msgstr "Documentaires"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Non résolu" msgstr "Non résolu"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -82,7 +82,7 @@ msgstr ""
msgid "images" msgid "images"
msgstr "" msgstr ""
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "" msgstr ""
@ -90,7 +90,7 @@ msgstr ""
msgid "stocks" msgid "stocks"
msgstr "" msgstr ""
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -98,35 +98,35 @@ msgstr ""
msgid "price" msgid "price"
msgstr "" msgstr ""
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "" msgstr ""
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "" msgstr ""
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "" msgstr ""
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "" msgstr ""
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "" msgstr ""
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "" msgstr ""
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "" msgstr ""
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "" msgstr ""
@ -471,88 +471,88 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for " "Comma-separated list of fields to sort by. Prefix with `-` for "
"descending. \n" "descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "" msgstr ""
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "" msgstr ""
@ -607,7 +607,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive"
msgstr "" msgstr ""
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "" msgstr ""
@ -789,7 +789,7 @@ msgstr ""
msgid "products on sale" msgid "products on sale"
msgstr "" msgstr ""
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "" msgstr ""
@ -805,11 +805,11 @@ msgstr ""
msgid "product" msgid "product"
msgstr "" msgstr ""
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "" msgstr ""
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "" msgstr ""
@ -955,7 +955,7 @@ msgstr ""
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "" msgstr ""
#: core/models.py:142 core/models.py:814 core/models.py:928 core/models.py:1094 #: core/models.py:142 core/models.py:819 core/models.py:933 core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "" msgstr ""
@ -1051,7 +1051,7 @@ msgstr ""
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "" msgstr ""
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "" msgstr ""
@ -1071,7 +1071,7 @@ msgstr ""
msgid "product name" msgid "product name"
msgstr "" msgstr ""
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "" msgstr ""
@ -1167,7 +1167,7 @@ msgstr ""
msgid "order status" msgid "order status"
msgstr "" msgstr ""
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
@ -1203,379 +1203,383 @@ msgstr ""
msgid "order" msgid "order"
msgstr "" msgstr ""
#: core/models.py:536 #: core/models.py:517
msgid "you cannot add products to an order that is not a pending one" msgid "a user must have only one pending order at a time"
msgstr "" msgstr ""
#: core/models.py:541 #: core/models.py:541
msgid "you cannot add products to an order that is not a pending one"
msgstr ""
#: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "" msgstr ""
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "" msgstr ""
#: core/models.py:567 core/models.py:584 core/models.py:608 core/models.py:1165 #: core/models.py:572 core/models.py:589 core/models.py:613 core/models.py:1170
#: core/models.py:1176 #: core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "" msgstr ""
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "" msgstr ""
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "" msgstr ""
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "" msgstr ""
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "" msgstr ""
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "" msgstr ""
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "" msgstr ""
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
msgstr "" msgstr ""
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "" msgstr ""
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" msgid "the price paid by the customer for this product at purchase time"
msgstr "" msgstr ""
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "" msgstr ""
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "" msgstr ""
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "" msgstr ""
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "" msgstr ""
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "" msgstr ""
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "" msgstr ""
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "" msgstr ""
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "" msgstr ""
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "" msgstr ""
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "" msgstr ""
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "" msgstr ""
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "" msgstr ""
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "" msgstr ""
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "" msgstr ""
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "" msgstr ""
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "" msgstr ""
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "" msgstr ""
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "" msgstr ""
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "" msgstr ""
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "" msgstr ""
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "" msgstr ""
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "" msgstr ""
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "" msgstr ""
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "" msgstr ""
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "" msgstr ""
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "" msgstr ""
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "" msgstr ""
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "" msgstr ""
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "" msgstr ""
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "" msgstr ""
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "" msgstr ""
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "" msgstr ""
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "" msgstr ""
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "" msgstr ""
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "" msgstr ""
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "" msgstr ""
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "" msgstr ""
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "" msgstr ""
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "" msgstr ""
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "" msgstr ""
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "" msgstr ""
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
msgstr "" msgstr ""
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "" msgstr ""
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "" msgstr ""
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "" msgstr ""
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "" msgstr ""
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "" msgstr ""
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "" msgstr ""
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "" msgstr ""
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "" msgstr ""
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "" msgstr ""
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "" msgstr ""
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "" msgstr ""
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "" msgstr ""
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "" msgstr ""
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "" msgstr ""
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "" msgstr ""
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "" msgstr ""
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "" msgstr ""
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "" msgstr ""
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "" msgstr ""
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "" msgstr ""
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "" msgstr ""
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "" msgstr ""
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "" msgstr ""
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "" msgstr ""
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "" msgstr ""
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "" msgstr ""
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "" msgstr ""
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "" msgstr ""
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "" msgstr ""
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "" msgstr ""
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" msgid "you can not download a digital asset for a non-finished order"
msgstr "" msgstr ""
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "" msgstr ""
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "" msgstr ""
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -83,7 +83,7 @@ msgstr "Immagine"
msgid "images" msgid "images"
msgstr "Immagini" msgstr "Immagini"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Stock" msgstr "Stock"
@ -91,7 +91,7 @@ msgstr "Stock"
msgid "stocks" msgid "stocks"
msgstr "Le scorte" msgstr "Le scorte"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -99,35 +99,35 @@ msgstr "Le scorte"
msgid "price" msgid "price"
msgstr "Prezzo" msgstr "Prezzo"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Valutazione del prodotto" msgstr "Valutazione del prodotto"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Informazioni di base" msgstr "Informazioni di base"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Date importanti" msgstr "Date importanti"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Traduzioni" msgstr "Traduzioni"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Ordina il prodotto" msgstr "Ordina il prodotto"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Ordinare i prodotti" msgstr "Ordinare i prodotti"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "È Business" msgstr "È Business"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Configurazione" msgstr "Configurazione"
@ -519,56 +519,56 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "Elenco di tutti i prodotti (visualizzazione semplice)" msgstr "Elenco di tutti i prodotti (visualizzazione semplice)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(esatto) UUID del prodotto" msgstr "(esatto) UUID del prodotto"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(icontains) Nome del prodotto" msgstr "(icontains) Nome del prodotto"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "" msgstr ""
"(elenco) Nomi di categoria, senza distinzione tra maiuscole e minuscole" "(elenco) Nomi di categoria, senza distinzione tra maiuscole e minuscole"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(esatto) UUID della categoria" msgstr "(esatto) UUID della categoria"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(elenco) Nomi di tag, senza distinzione tra maiuscole e minuscole" msgstr "(elenco) Nomi di tag, senza distinzione tra maiuscole e minuscole"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Prezzo minimo delle azioni" msgstr "(gte) Prezzo minimo delle azioni"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Prezzo massimo del titolo" msgstr "(lte) Prezzo massimo del titolo"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(esatto) Solo prodotti attivi" msgstr "(esatto) Solo prodotti attivi"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Nome del marchio" msgstr "(iexact) Nome del marchio"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Quantità minima di scorte" msgstr "(gt) Quantità minima di scorte"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(esatto) Prodotto slug" msgstr "(esatto) Prodotto slug"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(esatto) Digitale e fisico" msgstr "(esatto) Digitale e fisico"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -576,36 +576,36 @@ msgstr ""
"Elenco separato da virgole dei campi da ordinare. Prefisso con `-` per l'ordinamento discendente. \n" "Elenco separato da virgole dei campi da ordinare. Prefisso con `-` per l'ordinamento discendente. \n"
"**Consentito:** uuid, rating, nome, slug, creato, modificato, prezzo, casuale" "**Consentito:** uuid, rating, nome, slug, creato, modificato, prezzo, casuale"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Recuperare un singolo prodotto (vista dettagliata)" msgstr "Recuperare un singolo prodotto (vista dettagliata)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "UUID o Slug del prodotto" msgstr "UUID o Slug del prodotto"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Creare un prodotto" msgstr "Creare un prodotto"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Riscrivere un prodotto esistente, preservando i campi non modificabili" "Riscrivere un prodotto esistente, preservando i campi non modificabili"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Aggiornare alcuni campi di un prodotto esistente, preservando i campi non " "Aggiornare alcuni campi di un prodotto esistente, preservando i campi non "
"modificabili" "modificabili"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Eliminare un prodotto" msgstr "Eliminare un prodotto"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "Non è stato fornito alcun termine di ricerca." msgstr "Non è stato fornito alcun termine di ricerca."
@ -661,7 +661,7 @@ msgstr ""
"Si prega di fornire order_uuid o order_hr_id, che si escludono a vicenda!" "Si prega di fornire order_uuid o order_hr_id, che si escludono a vicenda!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "" msgstr ""
"Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}" "Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}"
@ -852,7 +852,7 @@ msgstr "Codici promozionali"
msgid "products on sale" msgid "products on sale"
msgstr "Prodotti in vendita" msgstr "Prodotti in vendita"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Promozioni" msgstr "Promozioni"
@ -868,11 +868,11 @@ msgstr "Venditore"
msgid "product" msgid "product"
msgstr "Prodotto" msgstr "Prodotto"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Prodotti desiderati" msgstr "Prodotti desiderati"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Liste dei desideri" msgstr "Liste dei desideri"
@ -1019,8 +1019,8 @@ msgstr "Attributo di questo valore"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "Il prodotto specifico associato al valore di questo attributo" msgstr "Il prodotto specifico associato al valore di questo attributo"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Prodotto associato" msgstr "Prodotto associato"
@ -1117,7 +1117,7 @@ msgstr "Associare facoltativamente questo prodotto a un marchio"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Tag che aiutano a descrivere o raggruppare questo prodotto" msgstr "Tag che aiutano a descrivere o raggruppare questo prodotto"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Tag del prodotto" msgstr "Tag del prodotto"
@ -1137,7 +1137,7 @@ msgstr "Fornire un nome identificativo chiaro per il prodotto"
msgid "product name" msgid "product name"
msgstr "Nome del prodotto" msgstr "Nome del prodotto"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Aggiungere una descrizione dettagliata del prodotto" msgstr "Aggiungere una descrizione dettagliata del prodotto"
@ -1237,7 +1237,7 @@ msgstr "Stato attuale dell'ordine nel suo ciclo di vita"
msgid "order status" msgid "order status"
msgstr "Stato dell'ordine" msgstr "Stato dell'ordine"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"Struttura JSON delle notifiche da mostrare agli utenti; nell'interfaccia " "Struttura JSON delle notifiche da mostrare agli utenti; nell'interfaccia "
@ -1275,56 +1275,60 @@ msgstr "ID leggibile dall'uomo"
msgid "order" msgid "order"
msgstr "Ordine" msgstr "Ordine"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" 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 corso." msgstr "Non è possibile aggiungere prodotti a un ordine che non sia in corso."
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "Non è possibile aggiungere all'ordine prodotti inattivi" msgstr "Non è possibile aggiungere all'ordine prodotti inattivi"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "" msgstr ""
"Non è possibile aggiungere più prodotti di quelli disponibili in magazzino" "Non è possibile aggiungere più prodotti di quelli disponibili in magazzino"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} non esiste: {product_uuid}" msgstr "{name} non esiste: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" 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." msgstr "Non è possibile rimuovere i prodotti da un ordine che non è in corso."
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} non esiste con la query <{query}>." msgstr "{name} non esiste con la query <{query}>."
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Il codice promozionale non esiste" msgstr "Il codice promozionale non esiste"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"In questo momento non è possibile acquistare, riprovare tra qualche minuto." "In questo momento non è possibile acquistare, riprovare tra qualche minuto."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Valore di forza non valido" msgstr "Valore di forza non valido"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "Non è possibile acquistare un ordine vuoto!" msgstr "Non è possibile acquistare un ordine vuoto!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Fondi insufficienti per completare l'ordine" msgstr "Fondi insufficienti per completare l'ordine"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1333,194 +1337,194 @@ msgstr ""
"seguenti informazioni: nome del cliente, email del cliente, numero di " "seguenti informazioni: nome del cliente, email del cliente, numero di "
"telefono del cliente" "telefono del cliente"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Metodo di pagamento non valido" msgstr "Metodo di pagamento non valido"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"non è possibile creare un ordine momentaneo senza fornire un indirizzo di " "non è possibile creare un ordine momentaneo senza fornire un indirizzo di "
"fatturazione" "fatturazione"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" msgid "the price paid by the customer for this product at purchase time"
msgstr "" msgstr ""
"Il prezzo pagato dal cliente per questo prodotto al momento dell'acquisto." "Il prezzo pagato dal cliente per questo prodotto al momento dell'acquisto."
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Prezzo di acquisto al momento dell'ordine" msgstr "Prezzo di acquisto al momento dell'ordine"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "Commenti interni per gli amministratori su questo prodotto ordinato" msgstr "Commenti interni per gli amministratori su questo prodotto ordinato"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Commenti interni" msgstr "Commenti interni"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "Notifiche degli utenti" msgstr "Notifiche degli utenti"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "Rappresentazione JSON degli attributi di questo elemento" msgstr "Rappresentazione JSON degli attributi di questo elemento"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Attributi del prodotto ordinati" msgstr "Attributi del prodotto ordinati"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Riferimento all'ordine padre che contiene questo prodotto" msgstr "Riferimento all'ordine padre che contiene questo prodotto"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Ordine dei genitori" msgstr "Ordine dei genitori"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "Il prodotto specifico associato a questa riga d'ordine" msgstr "Il prodotto specifico associato a questa riga d'ordine"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Quantità di questo prodotto specifico nell'ordine" msgstr "Quantità di questo prodotto specifico nell'ordine"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Quantità di prodotto" msgstr "Quantità di prodotto"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Stato attuale di questo prodotto nell'ordine" msgstr "Stato attuale di questo prodotto nell'ordine"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Stato della linea di prodotti" msgstr "Stato della linea di prodotti"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Identificatore interno dell'etichetta del prodotto" msgstr "Identificatore interno dell'etichetta del prodotto"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Nome del tag" msgstr "Nome del tag"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "Nome intuitivo per l'etichetta del prodotto" msgstr "Nome intuitivo per l'etichetta del prodotto"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Nome del tag" msgstr "Nome del tag"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Etichetta del prodotto" msgstr "Etichetta del prodotto"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "" msgstr ""
"Fornire un testo alternativo per l'immagine ai fini dell'accessibilità." "Fornire un testo alternativo per l'immagine ai fini dell'accessibilità."
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Testo alt dell'immagine" msgstr "Testo alt dell'immagine"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Caricare il file immagine per questo prodotto" msgstr "Caricare il file immagine per questo prodotto"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Immagine del prodotto" msgstr "Immagine del prodotto"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Determina l'ordine di visualizzazione delle immagini" msgstr "Determina l'ordine di visualizzazione delle immagini"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Priorità del display" msgstr "Priorità del display"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "Il prodotto che questa immagine rappresenta" msgstr "Il prodotto che questa immagine rappresenta"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Immagini del prodotto" msgstr "Immagini del prodotto"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "Codice univoco utilizzato da un utente per riscattare uno sconto" msgstr "Codice univoco utilizzato da un utente per riscattare uno sconto"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Identificatore del codice promozionale" msgstr "Identificatore del codice promozionale"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "" msgstr ""
"Importo fisso dello sconto applicato se non si utilizza la percentuale" "Importo fisso dello sconto applicato se non si utilizza la percentuale"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Importo fisso dello sconto" msgstr "Importo fisso dello sconto"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "Sconto percentuale applicato se l'importo fisso non viene utilizzato" msgstr "Sconto percentuale applicato se l'importo fisso non viene utilizzato"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Sconto percentuale" msgstr "Sconto percentuale"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Data di scadenza del codice promozionale" msgstr "Data di scadenza del codice promozionale"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "Tempo di validità finale" msgstr "Tempo di validità finale"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Data a partire dalla quale il codice promozionale è valido" msgstr "Data a partire dalla quale il codice promozionale è valido"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Tempo di validità iniziale" msgstr "Tempo di validità iniziale"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
"Timestamp in cui è stato utilizzato il codice promozionale, vuoto se non " "Timestamp in cui è stato utilizzato il codice promozionale, vuoto se non "
"ancora utilizzato" "ancora utilizzato"
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Timestamp d'uso" msgstr "Timestamp d'uso"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "Utente assegnato a questo codice promozionale, se applicabile" msgstr "Utente assegnato a questo codice promozionale, se applicabile"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Utente assegnato" msgstr "Utente assegnato"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Codice promozionale" msgstr "Codice promozionale"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Codici promozionali" msgstr "Codici promozionali"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1528,140 +1532,140 @@ msgstr ""
"È necessario definire un solo tipo di sconto (importo o percentuale), ma non" "È necessario definire un solo tipo di sconto (importo o percentuale), ma non"
" entrambi o nessuno dei due." " entrambi o nessuno dei due."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "Il codice promozionale è già stato utilizzato" msgstr "Il codice promozionale è già stato utilizzato"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Tipo di sconto non valido per il codice promozionale {self.uuid}" msgstr "Tipo di sconto non valido per il codice promozionale {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Percentuale di sconto per i prodotti selezionati" msgstr "Percentuale di sconto per i prodotti selezionati"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Percentuale di sconto" msgstr "Percentuale di sconto"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Fornite un nome unico per questa promozione" msgstr "Fornite un nome unico per questa promozione"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Nome della promozione" msgstr "Nome della promozione"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Descrizione della promozione" msgstr "Descrizione della promozione"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Selezionare i prodotti inclusi in questa promozione" msgstr "Selezionare i prodotti inclusi in questa promozione"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Prodotti inclusi" msgstr "Prodotti inclusi"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Promozione" msgstr "Promozione"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "Il venditore che fornisce questo stock di prodotti" msgstr "Il venditore che fornisce questo stock di prodotti"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Venditore associato" msgstr "Venditore associato"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Prezzo finale al cliente dopo i ricarichi" msgstr "Prezzo finale al cliente dopo i ricarichi"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Prezzo di vendita" msgstr "Prezzo di vendita"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "Il prodotto associato a questa voce di magazzino" msgstr "Il prodotto associato a questa voce di magazzino"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "Il prezzo pagato al venditore per questo prodotto" msgstr "Il prezzo pagato al venditore per questo prodotto"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Prezzo di acquisto del fornitore" msgstr "Prezzo di acquisto del fornitore"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Quantità disponibile del prodotto in magazzino" msgstr "Quantità disponibile del prodotto in magazzino"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Quantità in magazzino" msgstr "Quantità in magazzino"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "SKU assegnato dal fornitore per identificare il prodotto" msgstr "SKU assegnato dal fornitore per identificare il prodotto"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "SKU del venditore" msgstr "SKU del venditore"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "File digitale associato a questo stock, se applicabile" msgstr "File digitale associato a questo stock, se applicabile"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "File digitale" msgstr "File digitale"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Voci di magazzino" msgstr "Voci di magazzino"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Prodotti che l'utente ha contrassegnato come desiderati" msgstr "Prodotti che l'utente ha contrassegnato come desiderati"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "Utente che possiede questa wishlist" msgstr "Utente che possiede questa wishlist"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Proprietario della lista dei desideri" msgstr "Proprietario della lista dei desideri"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Lista dei desideri" msgstr "Lista dei desideri"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Scaricare" msgstr "Scaricare"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Scaricamento" msgstr "Scaricamento"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" 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." msgstr "Non è possibile scaricare un bene digitale per un ordine non finito."
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Documentario" msgstr "Documentario"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Documentari" msgstr "Documentari"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Non risolto" msgstr "Non risolto"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -79,7 +79,7 @@ msgstr "画像"
msgid "images" msgid "images"
msgstr "画像" msgstr "画像"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "在庫" msgstr "在庫"
@ -87,7 +87,7 @@ msgstr "在庫"
msgid "stocks" msgid "stocks"
msgstr "株式" msgstr "株式"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -95,35 +95,35 @@ msgstr "株式"
msgid "price" msgid "price"
msgstr "価格" msgstr "価格"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "製品評価" msgstr "製品評価"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "基本情報" msgstr "基本情報"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "重要な日程" msgstr "重要な日程"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "翻訳" msgstr "翻訳"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "商品のご注文" msgstr "商品のご注文"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "商品のご注文" msgstr "商品のご注文"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "ビジネス" msgstr "ビジネス"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "コンフィグ" msgstr "コンフィグ"
@ -477,55 +477,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "全商品を一覧表示(シンプル表示)" msgstr "全商品を一覧表示(シンプル表示)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(正確には製品UUID" msgstr "(正確には製品UUID"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(アイコン) 製品名" msgstr "(アイコン) 製品名"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(リスト)カテゴリー名、大文字と小文字は区別しない" msgstr "(リスト)カテゴリー名、大文字と小文字は区別しない"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(正確にはカテゴリーUUID" msgstr "(正確にはカテゴリーUUID"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(リスト) タグ名、大文字と小文字は区別されない" msgstr "(リスト) タグ名、大文字と小文字は区別されない"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(最低株価" msgstr "(最低株価"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(最大株価" msgstr "(最大株価"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(正確には)アクティブ製品のみ" msgstr "(正確には)アクティブ製品のみ"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(商品名" msgstr "(商品名"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(最低在庫量" msgstr "(最低在庫量"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(正確には)製品スラッグ" msgstr "(正確には)製品スラッグ"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(正確には)デジタルとフィジカル" msgstr "(正確には)デジタルとフィジカル"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -533,33 +533,33 @@ msgstr ""
"カンマ区切りの並べ替えフィールドのリスト。降順の場合は `-` をプレフィックスとしてつける。 \n" "カンマ区切りの並べ替えフィールドのリスト。降順の場合は `-` をプレフィックスとしてつける。 \n"
"**許可:** uuid, rating, name, slug, created, modified, price, random" "**許可:** uuid, rating, name, slug, created, modified, price, random"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "単一の製品を取得する(詳細表示)" msgstr "単一の製品を取得する(詳細表示)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "製品UUIDまたはスラグ" msgstr "製品UUIDまたはスラグ"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "製品を作る" msgstr "製品を作る"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "編集不可能なフィールドを保持したまま、既存の製品を書き換える。" msgstr "編集不可能なフィールドを保持したまま、既存の製品を書き換える。"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "編集不可能なフィールドを保持したまま、既存の製品の一部のフィールドを更新する。" msgstr "編集不可能なフィールドを保持したまま、既存の製品の一部のフィールドを更新する。"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "製品を削除する" msgstr "製品を削除する"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "検索語はありません。" msgstr "検索語はありません。"
@ -614,7 +614,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive"
msgstr "order_uuidまたはorder_hr_idを入力してください" msgstr "order_uuidまたはorder_hr_idを入力してください"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "order.buy()メソッドから間違った型が来た:{type(instance)!s}。" msgstr "order.buy()メソッドから間違った型が来た:{type(instance)!s}。"
@ -797,7 +797,7 @@ msgstr "プロモコード"
msgid "products on sale" msgid "products on sale"
msgstr "販売商品" msgstr "販売商品"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "プロモーション" msgstr "プロモーション"
@ -813,11 +813,11 @@ msgstr "ベンダー"
msgid "product" msgid "product"
msgstr "製品" msgstr "製品"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "ウィッシュリスト掲載商品" msgstr "ウィッシュリスト掲載商品"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "ウィッシュリスト" msgstr "ウィッシュリスト"
@ -963,8 +963,8 @@ msgstr "この値の属性"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "この属性の値に関連する特定の製品" msgstr "この属性の値に関連する特定の製品"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "関連製品" msgstr "関連製品"
@ -1060,7 +1060,7 @@ msgstr "オプションでこの製品をブランドと関連付ける"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "この商品の説明やグループ分けに役立つタグ" msgstr "この商品の説明やグループ分けに役立つタグ"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "商品タグ" msgstr "商品タグ"
@ -1080,7 +1080,7 @@ msgstr "製品の明確な識別名を提供する"
msgid "product name" msgid "product name"
msgstr "商品名" msgstr "商品名"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "商品の詳細説明を追加する" msgstr "商品の詳細説明を追加する"
@ -1177,7 +1177,7 @@ msgstr "ライフサイクルにおける現在の注文状況"
msgid "order status" msgid "order status"
msgstr "注文状況" msgstr "注文状況"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" msgstr "ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。"
@ -1213,379 +1213,383 @@ msgstr "人間が読めるID"
msgid "order" msgid "order"
msgstr "オーダー" msgstr "オーダー"
#: core/models.py:536 #: core/models.py:517
msgid "a user must have only one pending order at a time"
msgstr "ユーザーは一度に1つの未決注文しか持つことができません"
#: core/models.py:541
msgid "you cannot add products to an order that is not a pending one" msgid "you cannot add products to an order that is not a pending one"
msgstr "保留中の注文以外の注文に商品を追加することはできません。" msgstr "保留中の注文以外の注文に商品を追加することはできません。"
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "アクティブでない商品を注文に追加することはできません。" msgstr "アクティブでない商品を注文に追加することはできません。"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "在庫以上の商品を追加することはできません。" msgstr "在庫以上の商品を追加することはできません。"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name}が存在しません:{product_uuid}が存在しません。" msgstr "{name}が存在しません:{product_uuid}が存在しません。"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "保留中の注文以外の注文から商品を削除することはできません。" msgstr "保留中の注文以外の注文から商品を削除することはできません。"
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "クエリ<{query}>で{name}が存在しません。" msgstr "クエリ<{query}>で{name}が存在しません。"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "プロモコードが存在しない" msgstr "プロモコードが存在しない"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "現在ご購入いただけません。数分後にもう一度お試しください。" msgstr "現在ご購入いただけません。数分後にもう一度お試しください。"
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "無効なフォース値" msgstr "無効なフォース値"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "空注文はできません!" msgstr "空注文はできません!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "注文を完了するための資金不足" msgstr "注文を完了するための資金不足"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
msgstr "ご登録がない場合はご購入いただけませんので、以下の情報をお知らせくださいお客様のお名前、お客様のEメール、お客様の電話番号" msgstr "ご登録がない場合はご購入いただけませんので、以下の情報をお知らせくださいお客様のお名前、お客様のEメール、お客様の電話番号"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "無効な支払い方法" msgstr "無効な支払い方法"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "請求先住所を記入せずに、モーメンタルの注文を作成することはできません。" msgstr "請求先住所を記入せずに、モーメンタルの注文を作成することはできません。"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" msgid "the price paid by the customer for this product at purchase time"
msgstr "この商品の購入時に顧客が支払った価格" msgstr "この商品の購入時に顧客が支払った価格"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "注文時の購入価格" msgstr "注文時の購入価格"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "この注文商品に関する管理者への内部コメント" msgstr "この注文商品に関する管理者への内部コメント"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "社内コメント" msgstr "社内コメント"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "ユーザー通知" msgstr "ユーザー通知"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "このアイテムの属性のJSON表現" msgstr "このアイテムの属性のJSON表現"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "製品属性の順序" msgstr "製品属性の順序"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "この商品を含む親注文への参照" msgstr "この商品を含む親注文への参照"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "親注文" msgstr "親注文"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "この注文ラインに関連する特定の製品" msgstr "この注文ラインに関連する特定の製品"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "注文に含まれる特定の商品の数量" msgstr "注文に含まれる特定の商品の数量"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "製品数量" msgstr "製品数量"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "この商品の現在のご注文状況" msgstr "この商品の現在のご注文状況"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "製品ラインの状況" msgstr "製品ラインの状況"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "商品タグの内部タグ識別子" msgstr "商品タグの内部タグ識別子"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "タグ名" msgstr "タグ名"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "商品タグのユーザーフレンドリーな名前" msgstr "商品タグのユーザーフレンドリーな名前"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "タグ表示名" msgstr "タグ表示名"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "商品タグ" msgstr "商品タグ"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "アクセシビリティのために、画像に代替テキストを提供する。" msgstr "アクセシビリティのために、画像に代替テキストを提供する。"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "画像のaltテキスト" msgstr "画像のaltテキスト"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "この商品の画像ファイルをアップロードする" msgstr "この商品の画像ファイルをアップロードする"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "商品画像" msgstr "商品画像"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "画像の表示順を決める" msgstr "画像の表示順を決める"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "表示優先度" msgstr "表示優先度"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "この画像が表す製品" msgstr "この画像が表す製品"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "商品画像" msgstr "商品画像"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "ユーザーが割引を利用する際に使用する固有のコード" msgstr "ユーザーが割引を利用する際に使用する固有のコード"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "プロモコード識別子" msgstr "プロモコード識別子"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "パーセントを使用しない場合に適用される固定割引額" msgstr "パーセントを使用しない場合に適用される固定割引額"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "固定割引額" msgstr "固定割引額"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "定額を使用しない場合に適用される割引率" msgstr "定額を使用しない場合に適用される割引率"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "割引率" msgstr "割引率"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "プロモコードの有効期限が切れるタイムスタンプ" msgstr "プロモコードの有効期限が切れるタイムスタンプ"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "終了有効時間" msgstr "終了有効時間"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "このプロモコードが有効なタイムスタンプ" msgstr "このプロモコードが有効なタイムスタンプ"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "開始有効時間" msgstr "開始有効時間"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "プロモコードが使用されたタイムスタンプ、未使用の場合は空白" msgstr "プロモコードが使用されたタイムスタンプ、未使用の場合は空白"
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "使用タイムスタンプ" msgstr "使用タイムスタンプ"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "該当する場合、このプロモコードに割り当てられたユーザー" msgstr "該当する場合、このプロモコードに割り当てられたユーザー"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "担当ユーザー" msgstr "担当ユーザー"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "プロモコード" msgstr "プロモコード"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "プロモコード" msgstr "プロモコード"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
msgstr "割引の種類は1つだけ金額またはパーセント定義されるべきで、両方またはどちらも定義してはならない。" msgstr "割引の種類は1つだけ金額またはパーセント定義されるべきで、両方またはどちらも定義してはならない。"
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "プロモコードはすでに使用されています" msgstr "プロモコードはすでに使用されています"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "プロモコード {self.uuid} の割引タイプが無効です。" msgstr "プロモコード {self.uuid} の割引タイプが無効です。"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "選択した商品の割引率" msgstr "選択した商品の割引率"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "割引率" msgstr "割引率"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "このプロモーションのユニークな名前を入力してください。" msgstr "このプロモーションのユニークな名前を入力してください。"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "プロモーション名" msgstr "プロモーション名"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "プロモーション内容" msgstr "プロモーション内容"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "キャンペーン対象商品をお選びください。" msgstr "キャンペーン対象商品をお選びください。"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "含まれる製品" msgstr "含まれる製品"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "プロモーション" msgstr "プロモーション"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "この製品の在庫を供給しているベンダー" msgstr "この製品の在庫を供給しているベンダー"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "関連ベンダー" msgstr "関連ベンダー"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "マークアップ後の顧客への最終価格" msgstr "マークアップ後の顧客への最終価格"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "販売価格" msgstr "販売価格"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "このストックエントリーに関連する製品" msgstr "このストックエントリーに関連する製品"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "この製品に対してベンダーに支払われた価格" msgstr "この製品に対してベンダーに支払われた価格"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "ベンダーの購入価格" msgstr "ベンダーの購入価格"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "在庫数" msgstr "在庫数"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "在庫数" msgstr "在庫数"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "製品を識別するためにベンダーが割り当てたSKU" msgstr "製品を識別するためにベンダーが割り当てたSKU"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "ベンダーのSKU" msgstr "ベンダーのSKU"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "この銘柄に関連するデジタルファイル(該当する場合" msgstr "この銘柄に関連するデジタルファイル(該当する場合"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "デジタルファイル" msgstr "デジタルファイル"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "ストックエントリー" msgstr "ストックエントリー"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "ユーザーが欲しいとマークした商品" msgstr "ユーザーが欲しいとマークした商品"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "このウィッシュリストを所有しているユーザー" msgstr "このウィッシュリストを所有しているユーザー"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "ウィッシュリストのオーナー" msgstr "ウィッシュリストのオーナー"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "ウィッシュリスト" msgstr "ウィッシュリスト"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "ダウンロード" msgstr "ダウンロード"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "ダウンロード" msgstr "ダウンロード"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" msgid "you can not download a digital asset for a non-finished order"
msgstr "未完成の注文のデジタル資産をダウンロードすることはできません。" msgstr "未完成の注文のデジタル資産をダウンロードすることはできません。"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "ドキュメンタリー" msgstr "ドキュメンタリー"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "ドキュメンタリー" msgstr "ドキュメンタリー"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "未解決" msgstr "未解決"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -82,7 +82,7 @@ msgstr ""
msgid "images" msgid "images"
msgstr "" msgstr ""
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "" msgstr ""
@ -90,7 +90,7 @@ msgstr ""
msgid "stocks" msgid "stocks"
msgstr "" msgstr ""
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -98,35 +98,35 @@ msgstr ""
msgid "price" msgid "price"
msgstr "" msgstr ""
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "" msgstr ""
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "" msgstr ""
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "" msgstr ""
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "" msgstr ""
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "" msgstr ""
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "" msgstr ""
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "" msgstr ""
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "" msgstr ""
@ -471,88 +471,88 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for " "Comma-separated list of fields to sort by. Prefix with `-` for "
"descending. \n" "descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "" msgstr ""
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "" msgstr ""
@ -607,7 +607,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive"
msgstr "" msgstr ""
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "" msgstr ""
@ -789,7 +789,7 @@ msgstr ""
msgid "products on sale" msgid "products on sale"
msgstr "" msgstr ""
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "" msgstr ""
@ -805,11 +805,11 @@ msgstr ""
msgid "product" msgid "product"
msgstr "" msgstr ""
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "" msgstr ""
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "" msgstr ""
@ -955,7 +955,7 @@ msgstr ""
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "" msgstr ""
#: core/models.py:142 core/models.py:814 core/models.py:928 core/models.py:1094 #: core/models.py:142 core/models.py:819 core/models.py:933 core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "" msgstr ""
@ -1051,7 +1051,7 @@ msgstr ""
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "" msgstr ""
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "" msgstr ""
@ -1071,7 +1071,7 @@ msgstr ""
msgid "product name" msgid "product name"
msgstr "" msgstr ""
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "" msgstr ""
@ -1167,7 +1167,7 @@ msgstr ""
msgid "order status" msgid "order status"
msgstr "" msgstr ""
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
@ -1203,379 +1203,383 @@ msgstr ""
msgid "order" msgid "order"
msgstr "" msgstr ""
#: core/models.py:536 #: core/models.py:517
msgid "you cannot add products to an order that is not a pending one" msgid "a user must have only one pending order at a time"
msgstr "" msgstr ""
#: core/models.py:541 #: core/models.py:541
msgid "you cannot add products to an order that is not a pending one"
msgstr ""
#: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "" msgstr ""
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "" msgstr ""
#: core/models.py:567 core/models.py:584 core/models.py:608 core/models.py:1165 #: core/models.py:572 core/models.py:589 core/models.py:613 core/models.py:1170
#: core/models.py:1176 #: core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "" msgstr ""
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "" msgstr ""
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "" msgstr ""
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "" msgstr ""
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "" msgstr ""
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "" msgstr ""
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "" msgstr ""
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
msgstr "" msgstr ""
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "" msgstr ""
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" msgid "the price paid by the customer for this product at purchase time"
msgstr "" msgstr ""
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "" msgstr ""
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "" msgstr ""
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "" msgstr ""
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "" msgstr ""
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "" msgstr ""
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "" msgstr ""
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "" msgstr ""
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "" msgstr ""
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "" msgstr ""
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "" msgstr ""
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "" msgstr ""
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "" msgstr ""
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "" msgstr ""
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "" msgstr ""
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "" msgstr ""
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "" msgstr ""
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "" msgstr ""
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "" msgstr ""
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "" msgstr ""
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "" msgstr ""
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "" msgstr ""
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "" msgstr ""
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "" msgstr ""
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "" msgstr ""
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "" msgstr ""
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "" msgstr ""
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "" msgstr ""
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "" msgstr ""
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "" msgstr ""
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "" msgstr ""
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "" msgstr ""
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "" msgstr ""
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "" msgstr ""
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "" msgstr ""
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "" msgstr ""
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "" msgstr ""
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "" msgstr ""
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "" msgstr ""
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "" msgstr ""
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "" msgstr ""
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "" msgstr ""
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
msgstr "" msgstr ""
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "" msgstr ""
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "" msgstr ""
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "" msgstr ""
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "" msgstr ""
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "" msgstr ""
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "" msgstr ""
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "" msgstr ""
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "" msgstr ""
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "" msgstr ""
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "" msgstr ""
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "" msgstr ""
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "" msgstr ""
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "" msgstr ""
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "" msgstr ""
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "" msgstr ""
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "" msgstr ""
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "" msgstr ""
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "" msgstr ""
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "" msgstr ""
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "" msgstr ""
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "" msgstr ""
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "" msgstr ""
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "" msgstr ""
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "" msgstr ""
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "" msgstr ""
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "" msgstr ""
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "" msgstr ""
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "" msgstr ""
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "" msgstr ""
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "" msgstr ""
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" msgid "you can not download a digital asset for a non-finished order"
msgstr "" msgstr ""
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "" msgstr ""
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "" msgstr ""
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -81,7 +81,7 @@ msgstr "Afbeelding"
msgid "images" msgid "images"
msgstr "Afbeeldingen" msgstr "Afbeeldingen"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Voorraad" msgstr "Voorraad"
@ -89,7 +89,7 @@ msgstr "Voorraad"
msgid "stocks" msgid "stocks"
msgstr "Aandelen" msgstr "Aandelen"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -97,35 +97,35 @@ msgstr "Aandelen"
msgid "price" msgid "price"
msgstr "Prijs" msgstr "Prijs"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Productbeoordeling" msgstr "Productbeoordeling"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Basisinformatie" msgstr "Basisinformatie"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Belangrijke data" msgstr "Belangrijke data"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Vertalingen" msgstr "Vertalingen"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Product bestellen" msgstr "Product bestellen"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Producten bestellen" msgstr "Producten bestellen"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Is zakelijk" msgstr "Is zakelijk"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Config" msgstr "Config"
@ -519,55 +519,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "Alle producten weergeven (eenvoudige weergave)" msgstr "Alle producten weergeven (eenvoudige weergave)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(exacte) UUID van product" msgstr "(exacte) UUID van product"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(pictogrammen) Productnaam" msgstr "(pictogrammen) Productnaam"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(lijst) Categorienamen, hoofdlettergevoelig" msgstr "(lijst) Categorienamen, hoofdlettergevoelig"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(exacte) UUID van categorie" msgstr "(exacte) UUID van categorie"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(lijst) Labelnamen, hoofdlettergevoelig" msgstr "(lijst) Labelnamen, hoofdlettergevoelig"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Minimale aandelenprijs" msgstr "(gte) Minimale aandelenprijs"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Maximale aandelenprijs" msgstr "(lte) Maximale aandelenprijs"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(exact) Alleen actieve producten" msgstr "(exact) Alleen actieve producten"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Merknaam" msgstr "(iexact) Merknaam"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Minimumvoorraad" msgstr "(gt) Minimumvoorraad"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(exacte) productnaam" msgstr "(exacte) productnaam"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(exact) Digitaal vs. fysiek" msgstr "(exact) Digitaal vs. fysiek"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -575,36 +575,36 @@ msgstr ""
"Door komma's gescheiden lijst van velden om op te sorteren. Voorvoegsel met `-` voor aflopend. \n" "Door komma's gescheiden lijst van velden om op te sorteren. Voorvoegsel met `-` voor aflopend. \n"
"**Toegestaan:** uuid, beoordeling, naam, slug, gemaakt, gewijzigd, prijs, willekeurig" "**Toegestaan:** uuid, beoordeling, naam, slug, gemaakt, gewijzigd, prijs, willekeurig"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Een enkel product ophalen (gedetailleerde weergave)" msgstr "Een enkel product ophalen (gedetailleerde weergave)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "Product UUID of Slug" msgstr "Product UUID of Slug"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Een product maken" msgstr "Een product maken"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Een bestaand product herschrijven met behoud van niet-wijzigbare velden" "Een bestaand product herschrijven met behoud van niet-wijzigbare velden"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Enkele velden van een bestaand product bijwerken, met behoud van niet-" "Enkele velden van een bestaand product bijwerken, met behoud van niet-"
"wijzigbare velden" "wijzigbare velden"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Een product verwijderen" msgstr "Een product verwijderen"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "Geen zoekterm opgegeven." msgstr "Geen zoekterm opgegeven."
@ -659,7 +659,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive"
msgstr "Geef order_uuid of order_hr_id - wederzijds exclusief!" msgstr "Geef order_uuid of order_hr_id - wederzijds exclusief!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "Verkeerd type kwam uit order.buy() methode: {type(instance)!s}" msgstr "Verkeerd type kwam uit order.buy() methode: {type(instance)!s}"
@ -849,7 +849,7 @@ msgstr "Promocodes"
msgid "products on sale" msgid "products on sale"
msgstr "Producten te koop" msgstr "Producten te koop"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Promoties" msgstr "Promoties"
@ -865,11 +865,11 @@ msgstr "Verkoper"
msgid "product" msgid "product"
msgstr "Product" msgstr "Product"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Gewenste producten" msgstr "Gewenste producten"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Verlanglijst" msgstr "Verlanglijst"
@ -1017,8 +1017,8 @@ msgstr "Attribuut van deze waarde"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "Het specifieke product geassocieerd met de waarde van dit kenmerk" msgstr "Het specifieke product geassocieerd met de waarde van dit kenmerk"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Bijbehorend product" msgstr "Bijbehorend product"
@ -1114,7 +1114,7 @@ msgstr "Dit product optioneel koppelen aan een merk"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Tags die dit product helpen beschrijven of groeperen" msgstr "Tags die dit product helpen beschrijven of groeperen"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Product tags" msgstr "Product tags"
@ -1134,7 +1134,7 @@ msgstr "Zorg voor een duidelijke identificerende naam voor het product"
msgid "product name" msgid "product name"
msgstr "Naam product" msgstr "Naam product"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Voeg een gedetailleerde beschrijving van het product toe" msgstr "Voeg een gedetailleerde beschrijving van het product toe"
@ -1236,7 +1236,7 @@ msgstr "Huidige status van de order in zijn levenscyclus"
msgid "order status" msgid "order status"
msgstr "Bestelstatus" msgstr "Bestelstatus"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"JSON-structuur van meldingen om weer te geven aan gebruikers, in admin UI " "JSON-structuur van meldingen om weer te geven aan gebruikers, in admin UI "
@ -1274,59 +1274,63 @@ msgstr "menselijk leesbare ID"
msgid "order" msgid "order"
msgstr "Bestel" msgstr "Bestel"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" msgid "you cannot add products to an order that is not a pending one"
msgstr "" msgstr ""
"U kunt geen producten toevoegen aan een bestelling die niet in behandeling " "U kunt geen producten toevoegen aan een bestelling die niet in behandeling "
"is." "is."
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "U kunt geen inactieve producten toevoegen aan uw bestelling" msgstr "U kunt geen inactieve producten toevoegen aan uw bestelling"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "Je kunt niet meer producten toevoegen dan er op voorraad zijn" msgstr "Je kunt niet meer producten toevoegen dan er op voorraad zijn"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} bestaat niet: {product_uuid}" msgstr "{name} bestaat niet: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "" msgstr ""
"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" "U kunt geen producten verwijderen uit een bestelling die niet in behandeling"
" is." " is."
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} bestaat niet met query <{query}>" msgstr "{name} bestaat niet met query <{query}>"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Promocode bestaat niet" msgstr "Promocode bestaat niet"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"U kunt op dit moment niet kopen. Probeer het over een paar minuten nog eens." "U kunt op dit moment niet kopen. Probeer het over een paar minuten nog eens."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Ongeldige krachtwaarde" msgstr "Ongeldige krachtwaarde"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "Je kunt geen lege bestelling kopen!" msgstr "Je kunt geen lege bestelling kopen!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Onvoldoende fondsen om de bestelling te voltooien" msgstr "Onvoldoende fondsen om de bestelling te voltooien"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1334,193 +1338,193 @@ msgstr ""
"u niet kunt kopen zonder registratie, geef dan de volgende informatie: " "u niet kunt kopen zonder registratie, geef dan de volgende informatie: "
"klantnaam, e-mail klant, telefoonnummer klant" "klantnaam, e-mail klant, telefoonnummer klant"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Ongeldige betaalmethode" msgstr "Ongeldige betaalmethode"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"je kunt geen momentbestelling maken zonder een factuuradres op te geven" "je kunt geen momentbestelling maken zonder een factuuradres op te geven"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" 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" msgstr "De prijs die de klant bij aankoop voor dit product heeft betaald"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Aankoopprijs bij bestelling" msgstr "Aankoopprijs bij bestelling"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "Interne opmerkingen voor beheerders over dit bestelde product" msgstr "Interne opmerkingen voor beheerders over dit bestelde product"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Interne opmerkingen" msgstr "Interne opmerkingen"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "Meldingen van gebruikers" msgstr "Meldingen van gebruikers"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "JSON weergave van de attributen van dit item" msgstr "JSON weergave van de attributen van dit item"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Geordende producteigenschappen" msgstr "Geordende producteigenschappen"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Verwijzing naar de bovenliggende bestelling die dit product bevat" msgstr "Verwijzing naar de bovenliggende bestelling die dit product bevat"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Ouderlijk bevel" msgstr "Ouderlijk bevel"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "Het specifieke product dat bij deze bestelregel hoort" msgstr "Het specifieke product dat bij deze bestelregel hoort"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Hoeveelheid van dit specifieke product in de bestelling" msgstr "Hoeveelheid van dit specifieke product in de bestelling"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Hoeveelheid product" msgstr "Hoeveelheid product"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Huidige status van dit product in de bestelling" msgstr "Huidige status van dit product in de bestelling"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Status productlijn" msgstr "Status productlijn"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Interne tagidentifier voor de producttag" msgstr "Interne tagidentifier voor de producttag"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Tag naam" msgstr "Tag naam"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "Gebruiksvriendelijke naam voor de producttag" msgstr "Gebruiksvriendelijke naam voor de producttag"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Tag weergavenaam" msgstr "Tag weergavenaam"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Productlabel" msgstr "Productlabel"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "Geef alternatieve tekst voor de afbeelding voor toegankelijkheid" msgstr "Geef alternatieve tekst voor de afbeelding voor toegankelijkheid"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Alt-tekst afbeelding" msgstr "Alt-tekst afbeelding"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Upload het afbeeldingsbestand voor dit product" msgstr "Upload het afbeeldingsbestand voor dit product"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Product afbeelding" msgstr "Product afbeelding"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Bepaalt de volgorde waarin afbeeldingen worden weergegeven" msgstr "Bepaalt de volgorde waarin afbeeldingen worden weergegeven"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Prioriteit weergeven" msgstr "Prioriteit weergeven"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "Het product dat deze afbeelding vertegenwoordigt" msgstr "Het product dat deze afbeelding vertegenwoordigt"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Product afbeeldingen" msgstr "Product afbeeldingen"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "Unieke code die een gebruiker gebruikt om een korting te verzilveren" msgstr "Unieke code die een gebruiker gebruikt om een korting te verzilveren"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Promo code identificatie" msgstr "Promo code identificatie"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "" msgstr ""
"Vast kortingsbedrag dat wordt toegepast als percentage niet wordt gebruikt" "Vast kortingsbedrag dat wordt toegepast als percentage niet wordt gebruikt"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Vast kortingsbedrag" msgstr "Vast kortingsbedrag"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "" msgstr ""
"Kortingspercentage dat wordt toegepast als het vaste bedrag niet wordt " "Kortingspercentage dat wordt toegepast als het vaste bedrag niet wordt "
"gebruikt" "gebruikt"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Kortingspercentage" msgstr "Kortingspercentage"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Tijdstempel wanneer de promocode verloopt" msgstr "Tijdstempel wanneer de promocode verloopt"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "Geldigheidsduur einde" msgstr "Geldigheidsduur einde"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Tijdstempel vanaf wanneer deze promocode geldig is" msgstr "Tijdstempel vanaf wanneer deze promocode geldig is"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Begin geldigheidsduur" msgstr "Begin geldigheidsduur"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
"Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet " "Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet "
"gebruikt" "gebruikt"
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Gebruik tijdstempel" msgstr "Gebruik tijdstempel"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "Gebruiker toegewezen aan deze promocode indien van toepassing" msgstr "Gebruiker toegewezen aan deze promocode indien van toepassing"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Toegewezen gebruiker" msgstr "Toegewezen gebruiker"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Kortingscode" msgstr "Kortingscode"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Actiecodes" msgstr "Actiecodes"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1528,141 +1532,141 @@ msgstr ""
"Er moet slechts één type korting worden gedefinieerd (bedrag of percentage)," "Er moet slechts één type korting worden gedefinieerd (bedrag of percentage),"
" maar niet beide of geen van beide." " maar niet beide of geen van beide."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "Promocode is al gebruikt" msgstr "Promocode is al gebruikt"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Ongeldig kortingstype voor promocode {self.uuid}" msgstr "Ongeldig kortingstype voor promocode {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Kortingspercentage voor de geselecteerde producten" msgstr "Kortingspercentage voor de geselecteerde producten"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Kortingspercentage" msgstr "Kortingspercentage"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Geef deze promotie een unieke naam" msgstr "Geef deze promotie een unieke naam"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Naam promotie" msgstr "Naam promotie"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Promotie beschrijving" msgstr "Promotie beschrijving"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Selecteer welke producten onder deze promotie vallen" msgstr "Selecteer welke producten onder deze promotie vallen"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Meegeleverde producten" msgstr "Meegeleverde producten"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Promotie" msgstr "Promotie"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "De verkoper die dit product levert" msgstr "De verkoper die dit product levert"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Geassocieerde verkoper" msgstr "Geassocieerde verkoper"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Eindprijs voor de klant na winstmarges" msgstr "Eindprijs voor de klant na winstmarges"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Verkoopprijs" msgstr "Verkoopprijs"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "Het product dat bij deze voorraadvermelding hoort" msgstr "Het product dat bij deze voorraadvermelding hoort"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "De prijs die voor dit product aan de verkoper is betaald" msgstr "De prijs die voor dit product aan de verkoper is betaald"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Aankoopprijs verkoper" msgstr "Aankoopprijs verkoper"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Beschikbare hoeveelheid van het product in voorraad" msgstr "Beschikbare hoeveelheid van het product in voorraad"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Hoeveelheid op voorraad" msgstr "Hoeveelheid op voorraad"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "Door de verkoper toegewezen SKU om het product te identificeren" msgstr "Door de verkoper toegewezen SKU om het product te identificeren"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "Verkoper SKU" msgstr "Verkoper SKU"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "Digitaal bestand gekoppeld aan deze voorraad indien van toepassing" msgstr "Digitaal bestand gekoppeld aan deze voorraad indien van toepassing"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Digitaal bestand" msgstr "Digitaal bestand"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Voorraadboekingen" msgstr "Voorraadboekingen"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Producten die de gebruiker als gewenst heeft gemarkeerd" msgstr "Producten die de gebruiker als gewenst heeft gemarkeerd"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "Gebruiker die eigenaar is van deze verlanglijst" msgstr "Gebruiker die eigenaar is van deze verlanglijst"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Eigenaar verlanglijstje" msgstr "Eigenaar verlanglijstje"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Verlanglijst" msgstr "Verlanglijst"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Downloaden" msgstr "Downloaden"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Downloads" msgstr "Downloads"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" msgid "you can not download a digital asset for a non-finished order"
msgstr "" msgstr ""
"U kunt geen digitale activa downloaden voor een niet-afgeronde bestelling" "U kunt geen digitale activa downloaden voor een niet-afgeronde bestelling"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Documentaire" msgstr "Documentaire"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Documentaires" msgstr "Documentaires"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Onopgelost" msgstr "Onopgelost"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -83,7 +83,7 @@ msgstr "Obraz"
msgid "images" msgid "images"
msgstr "Obrazy" msgstr "Obrazy"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Stan magazynowy" msgstr "Stan magazynowy"
@ -91,7 +91,7 @@ msgstr "Stan magazynowy"
msgid "stocks" msgid "stocks"
msgstr "Akcje" msgstr "Akcje"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -99,35 +99,35 @@ msgstr "Akcje"
msgid "price" msgid "price"
msgstr "Cena" msgstr "Cena"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Ocena" msgstr "Ocena"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Podstawowe informacje" msgstr "Podstawowe informacje"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Ważne daty" msgstr "Ważne daty"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Tłumaczenia" msgstr "Tłumaczenia"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Zamów produkt" msgstr "Zamów produkt"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Zamawianie produktów" msgstr "Zamawianie produktów"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Czy biznes" msgstr "Czy biznes"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Konfiguracja" msgstr "Konfiguracja"
@ -514,55 +514,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "Lista wszystkich produktów (widok prosty)" msgstr "Lista wszystkich produktów (widok prosty)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(dokładny) UUID produktu" msgstr "(dokładny) UUID produktu"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(ikony) Nazwa produktu" msgstr "(ikony) Nazwa produktu"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(lista) Nazwy kategorii, wielkość liter nie ma znaczenia" msgstr "(lista) Nazwy kategorii, wielkość liter nie ma znaczenia"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(dokładny) UUID kategorii" msgstr "(dokładny) UUID kategorii"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(lista) Nazwy tagów, wielkość liter nie ma znaczenia" msgstr "(lista) Nazwy tagów, wielkość liter nie ma znaczenia"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Minimalna cena akcji" msgstr "(gte) Minimalna cena akcji"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Maksymalna cena akcji" msgstr "(lte) Maksymalna cena akcji"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(dokładnie) Tylko aktywne produkty" msgstr "(dokładnie) Tylko aktywne produkty"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Nazwa marki" msgstr "(iexact) Nazwa marki"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Minimalna ilość zapasów" msgstr "(gt) Minimalna ilość zapasów"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(dokładny) Ślimak produktu" msgstr "(dokładny) Ślimak produktu"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(dokładnie) Cyfrowe vs. fizyczne" msgstr "(dokładnie) Cyfrowe vs. fizyczne"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -570,35 +570,35 @@ msgstr ""
"Rozdzielana przecinkami lista pól do posortowania. Prefiks z `-` dla sortowania malejącego. \n" "Rozdzielana przecinkami lista pól do posortowania. Prefiks z `-` dla sortowania malejącego. \n"
"**Dozwolone:** uuid, rating, name, slug, created, modified, price, random" "**Dozwolone:** uuid, rating, name, slug, created, modified, price, random"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Pobieranie pojedynczego produktu (widok szczegółowy)" msgstr "Pobieranie pojedynczego produktu (widok szczegółowy)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "UUID produktu lub Slug" msgstr "UUID produktu lub Slug"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Tworzenie produktu" msgstr "Tworzenie produktu"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "Przepisz istniejący produkt, zachowując nieedytowalne pola" msgstr "Przepisz istniejący produkt, zachowując nieedytowalne pola"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Aktualizacja niektórych pól istniejącego produktu z zachowaniem pól " "Aktualizacja niektórych pól istniejącego produktu z zachowaniem pól "
"nieedytowalnych" "nieedytowalnych"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Usuń produkt" msgstr "Usuń produkt"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "Nie podano wyszukiwanego hasła." msgstr "Nie podano wyszukiwanego hasła."
@ -653,7 +653,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ą!" msgstr "Podaj albo order_uuid albo order_hr_id - wzajemnie się wykluczają!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "Nieprawidłowy typ pochodzi z metody order.buy(): {type(instance)!s}" msgstr "Nieprawidłowy typ pochodzi z metody order.buy(): {type(instance)!s}"
@ -842,7 +842,7 @@ msgstr "Promocodes"
msgid "products on sale" msgid "products on sale"
msgstr "Produkty w sprzedaży" msgstr "Produkty w sprzedaży"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Promocje" msgstr "Promocje"
@ -858,11 +858,11 @@ msgstr "Sprzedawca"
msgid "product" msgid "product"
msgstr "Produkt" msgstr "Produkt"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Produkty z listy życzeń" msgstr "Produkty z listy życzeń"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Listy życzeń" msgstr "Listy życzeń"
@ -1008,8 +1008,8 @@ msgstr "Atrybut tej wartości"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "Konkretny produkt powiązany z wartością tego atrybutu" msgstr "Konkretny produkt powiązany z wartością tego atrybutu"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Produkt powiązany" msgstr "Produkt powiązany"
@ -1105,7 +1105,7 @@ msgstr "Opcjonalnie można powiązać ten produkt z marką"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Tagi, które pomagają opisać lub pogrupować ten produkt" msgstr "Tagi, które pomagają opisać lub pogrupować ten produkt"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Tagi produktu" msgstr "Tagi produktu"
@ -1125,7 +1125,7 @@ msgstr "Wyraźna nazwa identyfikująca produkt"
msgid "product name" msgid "product name"
msgstr "Nazwa produktu" msgstr "Nazwa produktu"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Dodaj szczegółowy opis produktu" msgstr "Dodaj szczegółowy opis produktu"
@ -1226,7 +1226,7 @@ msgstr "Aktualny status zamówienia w jego cyklu życia"
msgid "order status" msgid "order status"
msgstr "Status zamówienia" msgstr "Status zamówienia"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"Struktura JSON powiadomień do wyświetlenia użytkownikom, w interfejsie " "Struktura JSON powiadomień do wyświetlenia użytkownikom, w interfejsie "
@ -1264,59 +1264,64 @@ msgstr "Identyfikator czytelny dla człowieka"
msgid "order" msgid "order"
msgstr "Zamówienie" msgstr "Zamówienie"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" msgid "you cannot add products to an order that is not a pending one"
msgstr "" msgstr ""
"Nie można dodać produktów do zamówienia, które nie jest zamówieniem " "Nie można dodać produktów do zamówienia, które nie jest zamówieniem "
"oczekującym." "oczekującym."
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "Nie można dodać nieaktywnych produktów do zamówienia" msgstr "Nie można dodać nieaktywnych produktów do zamówienia"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" 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" msgstr "Nie można dodać więcej produktów niż jest dostępnych w magazynie"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} nie istnieje: {product_uuid}" msgstr "{name} nie istnieje: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "" msgstr ""
"Nie można usunąć produktów z zamówienia, które nie jest zamówieniem " "Nie można usunąć produktów z zamówienia, które nie jest zamówieniem "
"oczekującym." "oczekującym."
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} nie istnieje z zapytaniem <{query}>." msgstr "{name} nie istnieje z zapytaniem <{query}>."
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Kod promocyjny nie istnieje" msgstr "Kod promocyjny nie istnieje"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"W tej chwili nie możesz dokonać zakupu, spróbuj ponownie za kilka minut." "W tej chwili nie możesz dokonać zakupu, spróbuj ponownie za kilka minut."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Nieprawidłowa wartość siły" msgstr "Nieprawidłowa wartość siły"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "Nie można kupić pustego zamówienia!" msgstr "Nie można kupić pustego zamówienia!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Niewystarczające środki do zrealizowania zamówienia" msgstr "Niewystarczające środki do zrealizowania zamówienia"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1325,193 +1330,193 @@ msgstr ""
"informacje: imię i nazwisko klienta, adres e-mail klienta, numer telefonu " "informacje: imię i nazwisko klienta, adres e-mail klienta, numer telefonu "
"klienta." "klienta."
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Nieprawidłowa metoda płatności" msgstr "Nieprawidłowa metoda płatności"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"Nie można utworzyć zamówienia chwilowego bez podania adresu rozliczeniowego." "Nie można utworzyć zamówienia chwilowego bez podania adresu rozliczeniowego."
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" 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." msgstr "Cena zapłacona przez klienta za ten produkt w momencie zakupu."
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Cena zakupu w momencie zamówienia" msgstr "Cena zakupu w momencie zamówienia"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "" msgstr ""
"Wewnętrzne komentarze dla administratorów dotyczące tego zamówionego " "Wewnętrzne komentarze dla administratorów dotyczące tego zamówionego "
"produktu" "produktu"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Uwagi wewnętrzne" msgstr "Uwagi wewnętrzne"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "Powiadomienia użytkownika" msgstr "Powiadomienia użytkownika"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "Reprezentacja JSON atrybutów tego elementu" msgstr "Reprezentacja JSON atrybutów tego elementu"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Zamówione atrybuty produktu" msgstr "Zamówione atrybuty produktu"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Odniesienie do zamówienia nadrzędnego zawierającego ten produkt" msgstr "Odniesienie do zamówienia nadrzędnego zawierającego ten produkt"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Zamówienie nadrzędne" msgstr "Zamówienie nadrzędne"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "Konkretny produkt powiązany z tą linią zamówienia" msgstr "Konkretny produkt powiązany z tą linią zamówienia"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Ilość tego konkretnego produktu w zamówieniu" msgstr "Ilość tego konkretnego produktu w zamówieniu"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Ilość produktu" msgstr "Ilość produktu"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Aktualny status tego produktu w zamówieniu" msgstr "Aktualny status tego produktu w zamówieniu"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Status linii produktów" msgstr "Status linii produktów"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Wewnętrzny identyfikator tagu produktu" msgstr "Wewnętrzny identyfikator tagu produktu"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Nazwa tagu" msgstr "Nazwa tagu"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "Przyjazna dla użytkownika nazwa etykiety produktu" msgstr "Przyjazna dla użytkownika nazwa etykiety produktu"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Wyświetlana nazwa znacznika" msgstr "Wyświetlana nazwa znacznika"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Etykieta produktu" msgstr "Etykieta produktu"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "" msgstr ""
"Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" "Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Tekst alternatywny obrazu" msgstr "Tekst alternatywny obrazu"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Prześlij plik obrazu dla tego produktu" msgstr "Prześlij plik obrazu dla tego produktu"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Obraz produktu" msgstr "Obraz produktu"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Określa kolejność wyświetlania obrazów" msgstr "Określa kolejność wyświetlania obrazów"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Priorytet wyświetlania" msgstr "Priorytet wyświetlania"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "Produkt, który przedstawia ten obraz" msgstr "Produkt, który przedstawia ten obraz"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Zdjęcia produktów" msgstr "Zdjęcia produktów"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "Unikalny kod używany przez użytkownika do realizacji rabatu." msgstr "Unikalny kod używany przez użytkownika do realizacji rabatu."
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Identyfikator kodu promocyjnego" msgstr "Identyfikator kodu promocyjnego"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "Stała kwota rabatu stosowana, jeśli procent nie jest używany" msgstr "Stała kwota rabatu stosowana, jeśli procent nie jest używany"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Stała kwota rabatu" msgstr "Stała kwota rabatu"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "Rabat procentowy stosowany w przypadku niewykorzystania stałej kwoty" msgstr "Rabat procentowy stosowany w przypadku niewykorzystania stałej kwoty"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Rabat procentowy" msgstr "Rabat procentowy"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Znacznik czasu wygaśnięcia kodu promocyjnego" msgstr "Znacznik czasu wygaśnięcia kodu promocyjnego"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "Końcowy czas ważności" msgstr "Końcowy czas ważności"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Znacznik czasu, od którego ten kod promocyjny jest ważny" msgstr "Znacznik czasu, od którego ten kod promocyjny jest ważny"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Czas rozpoczęcia ważności" msgstr "Czas rozpoczęcia ważności"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
"Znacznik czasu użycia kodu promocyjnego, pusty, jeśli nie został jeszcze " "Znacznik czasu użycia kodu promocyjnego, pusty, jeśli nie został jeszcze "
"użyty." "użyty."
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Znacznik czasu użycia" msgstr "Znacznik czasu użycia"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "Użytkownik przypisany do tego kodu promocyjnego, jeśli dotyczy" msgstr "Użytkownik przypisany do tego kodu promocyjnego, jeśli dotyczy"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Przypisany użytkownik" msgstr "Przypisany użytkownik"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Kod promocyjny" msgstr "Kod promocyjny"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Kody promocyjne" msgstr "Kody promocyjne"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1519,140 +1524,140 @@ msgstr ""
"Należy zdefiniować tylko jeden rodzaj rabatu (kwotowy lub procentowy), ale " "Należy zdefiniować tylko jeden rodzaj rabatu (kwotowy lub procentowy), ale "
"nie oba lub żaden z nich." "nie oba lub żaden z nich."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "Kod promocyjny został już wykorzystany" msgstr "Kod promocyjny został już wykorzystany"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Nieprawidłowy typ rabatu dla kodu promocyjnego {self.uuid}." msgstr "Nieprawidłowy typ rabatu dla kodu promocyjnego {self.uuid}."
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Rabat procentowy na wybrane produkty" msgstr "Rabat procentowy na wybrane produkty"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Procent rabatu" msgstr "Procent rabatu"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Podaj unikalną nazwę tej promocji" msgstr "Podaj unikalną nazwę tej promocji"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Nazwa promocji" msgstr "Nazwa promocji"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Opis promocji" msgstr "Opis promocji"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Wybierz produkty objęte promocją" msgstr "Wybierz produkty objęte promocją"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Dołączone produkty" msgstr "Dołączone produkty"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Promocja" msgstr "Promocja"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "Sprzedawca dostarczający ten produkt" msgstr "Sprzedawca dostarczający ten produkt"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Powiązany sprzedawca" msgstr "Powiązany sprzedawca"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Ostateczna cena dla klienta po uwzględnieniu marży" msgstr "Ostateczna cena dla klienta po uwzględnieniu marży"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Cena sprzedaży" msgstr "Cena sprzedaży"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "Produkt powiązany z tym wpisem magazynowym" msgstr "Produkt powiązany z tym wpisem magazynowym"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "Cena zapłacona sprzedawcy za ten produkt" msgstr "Cena zapłacona sprzedawcy za ten produkt"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Cena zakupu przez sprzedawcę" msgstr "Cena zakupu przez sprzedawcę"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Dostępna ilość produktu w magazynie" msgstr "Dostępna ilość produktu w magazynie"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Ilość w magazynie" msgstr "Ilość w magazynie"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "Jednostki SKU przypisane przez dostawcę w celu identyfikacji produktu" msgstr "Jednostki SKU przypisane przez dostawcę w celu identyfikacji produktu"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "SKU sprzedawcy" msgstr "SKU sprzedawcy"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "Plik cyfrowy powiązany z tymi zapasami, jeśli dotyczy" msgstr "Plik cyfrowy powiązany z tymi zapasami, jeśli dotyczy"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Plik cyfrowy" msgstr "Plik cyfrowy"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Zapisy magazynowe" msgstr "Zapisy magazynowe"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Produkty, które użytkownik oznaczył jako poszukiwane" msgstr "Produkty, które użytkownik oznaczył jako poszukiwane"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "Użytkownik posiadający tę listę życzeń" msgstr "Użytkownik posiadający tę listę życzeń"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Właściciel listy życzeń" msgstr "Właściciel listy życzeń"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Lista życzeń" msgstr "Lista życzeń"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Pobierz" msgstr "Pobierz"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Pliki do pobrania" msgstr "Pliki do pobrania"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" 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." msgstr "Nie można pobrać zasobu cyfrowego dla nieukończonego zamówienia."
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Film dokumentalny" msgstr "Film dokumentalny"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Filmy dokumentalne" msgstr "Filmy dokumentalne"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Nierozwiązany" msgstr "Nierozwiązany"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -83,7 +83,7 @@ msgstr "Imagem"
msgid "images" msgid "images"
msgstr "Imagens" msgstr "Imagens"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Estoque" msgstr "Estoque"
@ -91,7 +91,7 @@ msgstr "Estoque"
msgid "stocks" msgid "stocks"
msgstr "Ações" msgstr "Ações"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -99,35 +99,35 @@ msgstr "Ações"
msgid "price" msgid "price"
msgstr "Preço" msgstr "Preço"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Avaliação do produto" msgstr "Avaliação do produto"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Informações básicas" msgstr "Informações básicas"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Datas importantes" msgstr "Datas importantes"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Traduções" msgstr "Traduções"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Pedido de produto" msgstr "Pedido de produto"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Solicitar produtos" msgstr "Solicitar produtos"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "É um negócio" msgstr "É um negócio"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Configuração" msgstr "Configuração"
@ -506,56 +506,56 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "Listar todos os produtos (visualização simples)" msgstr "Listar todos os produtos (visualização simples)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "UUID (exato) do produto" msgstr "UUID (exato) do produto"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(icontains) Nome do produto" msgstr "(icontains) Nome do produto"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "" msgstr ""
"(lista) Nomes de categorias, sem distinção entre maiúsculas e minúsculas" "(lista) Nomes de categorias, sem distinção entre maiúsculas e minúsculas"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(exato) UUID da categoria" msgstr "(exato) UUID da categoria"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(lista) Nomes de tags, sem distinção entre maiúsculas e minúsculas" msgstr "(lista) Nomes de tags, sem distinção entre maiúsculas e minúsculas"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Preço mínimo das ações" msgstr "(gte) Preço mínimo das ações"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Preço máximo da ação" msgstr "(lte) Preço máximo da ação"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(exato) Somente produtos ativos" msgstr "(exato) Somente produtos ativos"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Nome da marca" msgstr "(iexact) Nome da marca"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Quantidade mínima em estoque" msgstr "(gt) Quantidade mínima em estoque"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(exato) Slug do produto" msgstr "(exato) Slug do produto"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(exato) Digital vs. físico" msgstr "(exato) Digital vs. físico"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -563,35 +563,35 @@ msgstr ""
"Lista de campos separada por vírgulas para classificação. Prefixe com `-` para classificação decrescente. \n" "Lista de campos separada por vírgulas para classificação. Prefixe com `-` para classificação decrescente. \n"
"**Permitido:** uuid, classificação, nome, slug, criado, modificado, preço, aleatório" "**Permitido:** uuid, classificação, nome, slug, criado, modificado, preço, aleatório"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Recuperar um único produto (visualização detalhada)" msgstr "Recuperar um único produto (visualização detalhada)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "UUID ou Slug do produto" msgstr "UUID ou Slug do produto"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Criar um produto" msgstr "Criar um produto"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "Reescrever um produto existente, preservando os campos não editáveis" msgstr "Reescrever um produto existente, preservando os campos não editáveis"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Atualizar alguns campos de um produto existente, preservando os campos não " "Atualizar alguns campos de um produto existente, preservando os campos não "
"editáveis" "editáveis"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Excluir um produto" msgstr "Excluir um produto"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "Nenhum termo de pesquisa foi fornecido." msgstr "Nenhum termo de pesquisa foi fornecido."
@ -646,7 +646,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive"
msgstr "Forneça order_uuid ou order_hr_id - mutuamente exclusivos!" msgstr "Forneça order_uuid ou order_hr_id - mutuamente exclusivos!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "O tipo errado veio do método order.buy(): {type(instance)!s}" msgstr "O tipo errado veio do método order.buy(): {type(instance)!s}"
@ -834,7 +834,7 @@ msgstr "Códigos promocionais"
msgid "products on sale" msgid "products on sale"
msgstr "Produtos à venda" msgstr "Produtos à venda"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Promoções" msgstr "Promoções"
@ -850,11 +850,11 @@ msgstr "Vendor"
msgid "product" msgid "product"
msgstr "Produto" msgstr "Produto"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Produtos da lista de desejos" msgstr "Produtos da lista de desejos"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Listas de desejos" msgstr "Listas de desejos"
@ -1001,8 +1001,8 @@ msgstr "Atributo desse valor"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "O produto específico associado ao valor desse atributo" msgstr "O produto específico associado ao valor desse atributo"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Produto associado" msgstr "Produto associado"
@ -1098,7 +1098,7 @@ msgstr "Opcionalmente, associe esse produto a uma marca"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Tags que ajudam a descrever ou agrupar este produto" msgstr "Tags que ajudam a descrever ou agrupar este produto"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Etiquetas do produto" msgstr "Etiquetas do produto"
@ -1118,7 +1118,7 @@ msgstr "Fornecer um nome de identificação claro para o produto"
msgid "product name" msgid "product name"
msgstr "Nome do produto" msgstr "Nome do produto"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Adicione uma descrição detalhada do produto" msgstr "Adicione uma descrição detalhada do produto"
@ -1220,7 +1220,7 @@ msgstr "Status atual do pedido em seu ciclo de vida"
msgid "order status" msgid "order status"
msgstr "Status do pedido" msgstr "Status do pedido"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"Estrutura JSON de notificações a serem exibidas aos usuários; na interface " "Estrutura JSON de notificações a serem exibidas aos usuários; na interface "
@ -1258,56 +1258,60 @@ msgstr "ID legível por humanos"
msgid "order" msgid "order"
msgstr "Pedido" msgstr "Pedido"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" 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" msgstr "Não é possível adicionar produtos a um pedido que não esteja pendente"
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "Não é possível adicionar produtos inativos ao pedido" msgstr "Não é possível adicionar produtos inativos ao pedido"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "" msgstr ""
"Não é possível adicionar mais produtos do que os disponíveis em estoque" "Não é possível adicionar mais produtos do que os disponíveis em estoque"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} não existe: {product_uuid}" msgstr "{name} não existe: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" 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" msgstr "Não é possível remover produtos de um pedido que não esteja pendente"
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} não existe com a consulta <{query}>" msgstr "{name} não existe com a consulta <{query}>"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "O código promocional não existe" msgstr "O código promocional não existe"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"Não é possível comprar neste momento, tente novamente em alguns minutos." "Não é possível comprar neste momento, tente novamente em alguns minutos."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Valor de força inválido" msgstr "Valor de força inválido"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "Você não pode comprar um pedido vazio!" msgstr "Você não pode comprar um pedido vazio!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Fundos insuficientes para concluir o pedido" msgstr "Fundos insuficientes para concluir o pedido"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1315,194 +1319,194 @@ msgstr ""
"Não é possível comprar sem registro, forneça as seguintes informações: nome " "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" "do cliente, e-mail do cliente, número de telefone do cliente"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Método de pagamento inválido" msgstr "Método de pagamento inválido"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"não é possível criar um pedido de compra sem fornecer um endereço de " "não é possível criar um pedido de compra sem fornecer um endereço de "
"cobrança" "cobrança"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" 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" msgstr "O preço pago pelo cliente por esse produto no momento da compra"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Preço de compra no momento do pedido" msgstr "Preço de compra no momento do pedido"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "" msgstr ""
"Comentários internos para administradores sobre este produto encomendado" "Comentários internos para administradores sobre este produto encomendado"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Comentários internos" msgstr "Comentários internos"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "Notificações do usuário" msgstr "Notificações do usuário"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "Representação JSON dos atributos desse item" msgstr "Representação JSON dos atributos desse item"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Atributos ordenados do produto" msgstr "Atributos ordenados do produto"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Referência ao pedido pai que contém esse produto" msgstr "Referência ao pedido pai que contém esse produto"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Ordem dos pais" msgstr "Ordem dos pais"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "O produto específico associado a essa linha de pedido" msgstr "O produto específico associado a essa linha de pedido"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Quantidade desse produto específico no pedido" msgstr "Quantidade desse produto específico no pedido"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Quantidade do produto" msgstr "Quantidade do produto"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Status atual desse produto no pedido" msgstr "Status atual desse produto no pedido"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Status da linha de produtos" msgstr "Status da linha de produtos"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Identificador de tag interno para a tag do produto" msgstr "Identificador de tag interno para a tag do produto"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Nome da etiqueta" msgstr "Nome da etiqueta"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "Nome de fácil utilização para a etiqueta do produto" msgstr "Nome de fácil utilização para a etiqueta do produto"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Nome de exibição da tag" msgstr "Nome de exibição da tag"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Etiqueta do produto" msgstr "Etiqueta do produto"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "" msgstr ""
"Forneça um texto alternativo para a imagem para fins de acessibilidade" "Forneça um texto alternativo para a imagem para fins de acessibilidade"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Texto alternativo da imagem" msgstr "Texto alternativo da imagem"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Faça o upload do arquivo de imagem para este produto" msgstr "Faça o upload do arquivo de imagem para este produto"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Imagem do produto" msgstr "Imagem do produto"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Determina a ordem em que as imagens são exibidas" msgstr "Determina a ordem em que as imagens são exibidas"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Prioridade de exibição" msgstr "Prioridade de exibição"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "O produto que esta imagem representa" msgstr "O produto que esta imagem representa"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Imagens do produto" msgstr "Imagens do produto"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "Código exclusivo usado por um usuário para resgatar um desconto" msgstr "Código exclusivo usado por um usuário para resgatar um desconto"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Identificador de código promocional" msgstr "Identificador de código promocional"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "Valor de desconto fixo aplicado se a porcentagem não for usada" msgstr "Valor de desconto fixo aplicado se a porcentagem não for usada"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Valor do desconto fixo" msgstr "Valor do desconto fixo"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "Desconto percentual aplicado se o valor fixo não for usado" msgstr "Desconto percentual aplicado se o valor fixo não for usado"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Desconto percentual" msgstr "Desconto percentual"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Registro de data e hora em que o código promocional expira" msgstr "Registro de data e hora em que o código promocional expira"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "Tempo de validade final" msgstr "Tempo de validade final"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "" msgstr ""
"Registro de data e hora a partir do qual esse código promocional é válido" "Registro de data e hora a partir do qual esse código promocional é válido"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Hora de início da validade" msgstr "Hora de início da validade"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
"Registro de data e hora em que o código promocional foi usado, em branco se " "Registro de data e hora em que o código promocional foi usado, em branco se "
"ainda não tiver sido usado" "ainda não tiver sido usado"
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Registro de data e hora de uso" msgstr "Registro de data e hora de uso"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "Usuário atribuído a esse código promocional, se aplicável" msgstr "Usuário atribuído a esse código promocional, se aplicável"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Usuário atribuído" msgstr "Usuário atribuído"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Código promocional" msgstr "Código promocional"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Códigos promocionais" msgstr "Códigos promocionais"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1510,142 +1514,142 @@ msgstr ""
"Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não" "Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não"
" ambos ou nenhum." " ambos ou nenhum."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "O código promocional já foi usado" msgstr "O código promocional já foi usado"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Tipo de desconto inválido para o código promocional {self.uuid}" msgstr "Tipo de desconto inválido para o código promocional {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Desconto percentual para os produtos selecionados" msgstr "Desconto percentual para os produtos selecionados"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Porcentagem de desconto" msgstr "Porcentagem de desconto"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Forneça um nome exclusivo para essa promoção" msgstr "Forneça um nome exclusivo para essa promoção"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Nome da promoção" msgstr "Nome da promoção"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Descrição da promoção" msgstr "Descrição da promoção"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Selecione quais produtos estão incluídos nessa promoção" msgstr "Selecione quais produtos estão incluídos nessa promoção"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Produtos incluídos" msgstr "Produtos incluídos"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Promoção" msgstr "Promoção"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "O fornecedor que fornece esse estoque de produtos" msgstr "O fornecedor que fornece esse estoque de produtos"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Fornecedor associado" msgstr "Fornecedor associado"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Preço final para o cliente após as marcações" msgstr "Preço final para o cliente após as marcações"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Preço de venda" msgstr "Preço de venda"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "O produto associado a essa entrada em estoque" msgstr "O produto associado a essa entrada em estoque"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "O preço pago ao fornecedor por esse produto" msgstr "O preço pago ao fornecedor por esse produto"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Preço de compra do fornecedor" msgstr "Preço de compra do fornecedor"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Quantidade disponível do produto em estoque" msgstr "Quantidade disponível do produto em estoque"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Quantidade em estoque" msgstr "Quantidade em estoque"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "SKU atribuído pelo fornecedor para identificar o produto" msgstr "SKU atribuído pelo fornecedor para identificar o produto"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "SKU do fornecedor" msgstr "SKU do fornecedor"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "Arquivo digital associado a esse estoque, se aplicável" msgstr "Arquivo digital associado a esse estoque, se aplicável"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Arquivo digital" msgstr "Arquivo digital"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Entradas de estoque" msgstr "Entradas de estoque"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Produtos que o usuário marcou como desejados" msgstr "Produtos que o usuário marcou como desejados"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "Usuário que possui esta lista de desejos" msgstr "Usuário que possui esta lista de desejos"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Proprietário da lista de desejos" msgstr "Proprietário da lista de desejos"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Lista de desejos" msgstr "Lista de desejos"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Baixar" msgstr "Baixar"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Downloads" msgstr "Downloads"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" msgid "you can not download a digital asset for a non-finished order"
msgstr "" msgstr ""
"Não é possível fazer download de um ativo digital para um pedido não " "Não é possível fazer download de um ativo digital para um pedido não "
"concluído" "concluído"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Documentário" msgstr "Documentário"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Documentários" msgstr "Documentários"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Não resolvido" msgstr "Não resolvido"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -83,7 +83,7 @@ msgstr "Imagine"
msgid "images" msgid "images"
msgstr "Imagini" msgstr "Imagini"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Stoc" msgstr "Stoc"
@ -91,7 +91,7 @@ msgstr "Stoc"
msgid "stocks" msgid "stocks"
msgstr "Stocuri" msgstr "Stocuri"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -99,35 +99,35 @@ msgstr "Stocuri"
msgid "price" msgid "price"
msgstr "Preț" msgstr "Preț"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Evaluarea produsului" msgstr "Evaluarea produsului"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Informații de bază" msgstr "Informații de bază"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Date importante" msgstr "Date importante"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Traduceri" msgstr "Traduceri"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Comanda Produs" msgstr "Comanda Produs"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Comandați produse" msgstr "Comandați produse"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Este o afacere" msgstr "Este o afacere"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Configurare" msgstr "Configurare"
@ -515,55 +515,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "Listează toate produsele (vizualizare simplă)" msgstr "Listează toate produsele (vizualizare simplă)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(exact) UUID al produsului" msgstr "(exact) UUID al produsului"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(icontains) Denumirea produsului" msgstr "(icontains) Denumirea produsului"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(listă) Numele categoriilor, fără deosebire de majuscule" msgstr "(listă) Numele categoriilor, fără deosebire de majuscule"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(exact) UUID al categoriei" msgstr "(exact) UUID al categoriei"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(listă) Nume de etichete, fără diferențiere de majuscule" msgstr "(listă) Nume de etichete, fără diferențiere de majuscule"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Prețul minim al acțiunilor" msgstr "(gte) Prețul minim al acțiunilor"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Prețul maxim al acțiunilor" msgstr "(lte) Prețul maxim al acțiunilor"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(exact) Numai produse active" msgstr "(exact) Numai produse active"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Denumire comercială" msgstr "(iexact) Denumire comercială"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Cantitatea minimă de stoc" msgstr "(gt) Cantitatea minimă de stoc"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(exact) Limbajul produsului" msgstr "(exact) Limbajul produsului"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(exact) Digital vs. fizic" msgstr "(exact) Digital vs. fizic"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -571,36 +571,36 @@ msgstr ""
"Lista de câmpuri separate prin virgulă după care se face sortarea. Prefixați cu `-` pentru descrescător. \n" "Lista de câmpuri separate prin virgulă după care se face sortarea. Prefixați cu `-` pentru descrescător. \n"
"**Autorizate:** uuid, rating, nume, slug, creat, modificat, preț, aleatoriu" "**Autorizate:** uuid, rating, nume, slug, creat, modificat, preț, aleatoriu"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Recuperarea unui singur produs (vedere detaliată)" msgstr "Recuperarea unui singur produs (vedere detaliată)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "UUID sau Slug al produsului" msgstr "UUID sau Slug al produsului"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Creați un produs" msgstr "Creați un produs"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Rescrierea unui produs existent, păstrând câmpurile care nu pot fi editate" "Rescrierea unui produs existent, păstrând câmpurile care nu pot fi editate"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Actualizarea unor câmpuri ale unui produs existent, păstrând câmpurile " "Actualizarea unor câmpuri ale unui produs existent, păstrând câmpurile "
"needitabile" "needitabile"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Ștergeți un produs" msgstr "Ștergeți un produs"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "Nu a fost furnizat niciun termen de căutare." msgstr "Nu a fost furnizat niciun termen de căutare."
@ -656,7 +656,7 @@ msgstr ""
"Vă rugăm să furnizați fie order_uuid sau order_hr_id - se exclud reciproc!" "Vă rugăm să furnizați fie order_uuid sau order_hr_id - se exclud reciproc!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "Metoda order.buy() a generat un tip greșit: {type(instance)!s}" msgstr "Metoda order.buy() a generat un tip greșit: {type(instance)!s}"
@ -847,7 +847,7 @@ msgstr "Coduri promoționale"
msgid "products on sale" msgid "products on sale"
msgstr "Produse scoase la vânzare" msgstr "Produse scoase la vânzare"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Promoții" msgstr "Promoții"
@ -863,11 +863,11 @@ msgstr "Furnizor"
msgid "product" msgid "product"
msgstr "Produs" msgstr "Produs"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Produse dorite" msgstr "Produse dorite"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Liste de dorințe" msgstr "Liste de dorințe"
@ -1015,8 +1015,8 @@ msgstr "Atributul acestei valori"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "Produsul specific asociat cu valoarea acestui atribut" msgstr "Produsul specific asociat cu valoarea acestui atribut"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Produs asociat" msgstr "Produs asociat"
@ -1113,7 +1113,7 @@ msgstr "Opțional, asociați acest produs cu un brand"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Etichete care ajută la descrierea sau gruparea acestui produs" msgstr "Etichete care ajută la descrierea sau gruparea acestui produs"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Etichete de produs" msgstr "Etichete de produs"
@ -1133,7 +1133,7 @@ msgstr "Furnizați o denumire clară de identificare a produsului"
msgid "product name" msgid "product name"
msgstr "Denumirea produsului" msgstr "Denumirea produsului"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Adăugați o descriere detaliată a produsului" msgstr "Adăugați o descriere detaliată a produsului"
@ -1236,7 +1236,7 @@ msgstr "Stadiul actual al comenzii în ciclul său de viață"
msgid "order status" msgid "order status"
msgstr "Stadiul comenzii" msgstr "Stadiul comenzii"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"Structura JSON a notificărilor care urmează să fie afișate utilizatorilor, " "Structura JSON a notificărilor care urmează să fie afișate utilizatorilor, "
@ -1274,57 +1274,62 @@ msgstr "ID lizibil de către om"
msgid "order" msgid "order"
msgstr "Comandă" msgstr "Comandă"
#: core/models.py:536 #: core/models.py:517
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:541
msgid "you cannot add products to an order that is not a pending one" 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" msgstr "Nu puteți adăuga produse la o comandă care nu este în așteptare"
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "Nu puteți adăuga produse inactive la comandă" msgstr "Nu puteți adăuga produse inactive la comandă"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" 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" msgstr "Nu puteți adăuga mai multe produse decât cele disponibile în stoc"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} nu există: {product_uuid}" msgstr "{name} nu există: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "" msgstr ""
"Nu puteți elimina produse dintr-o comandă care nu este o comandă în curs" "Nu puteți elimina produse dintr-o comandă care nu este o comandă în curs"
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} nu există cu interogarea <{query}>" msgstr "{name} nu există cu interogarea <{query}>"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Codul promoțional nu există" msgstr "Codul promoțional nu există"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"Nu puteți achiziționa în acest moment, vă rugăm să încercați din nou în " "Nu puteți achiziționa în acest moment, vă rugăm să încercați din nou în "
"câteva minute." "câteva minute."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Valoare forță invalidă" msgstr "Valoare forță invalidă"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "Nu puteți achiziționa o comandă goală!" msgstr "Nu puteți achiziționa o comandă goală!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Insuficiența fondurilor pentru finalizarea comenzii" msgstr "Insuficiența fondurilor pentru finalizarea comenzii"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1332,191 +1337,191 @@ msgstr ""
"nu puteți cumpăra fără înregistrare, vă rugăm să furnizați următoarele " "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" "informații: nume client, e-mail client, număr de telefon client"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Metodă de plată invalidă" msgstr "Metodă de plată invalidă"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"nu puteți crea o comandă momental fără a furniza o adresă de facturare" "nu puteți crea o comandă momental fără a furniza o adresă de facturare"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" 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" msgstr "Prețul plătit de client pentru acest produs la momentul achiziției"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Prețul de achiziție la momentul comenzii" msgstr "Prețul de achiziție la momentul comenzii"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "" msgstr ""
"Comentarii interne pentru administratori cu privire la acest produs comandat" "Comentarii interne pentru administratori cu privire la acest produs comandat"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Observații interne" msgstr "Observații interne"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "Notificări pentru utilizatori" msgstr "Notificări pentru utilizatori"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "Reprezentarea JSON a atributelor acestui element" msgstr "Reprezentarea JSON a atributelor acestui element"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Atribute de produs ordonate" msgstr "Atribute de produs ordonate"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Trimitere la comanda mamă care conține acest produs" msgstr "Trimitere la comanda mamă care conține acest produs"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Ordinul părinților" msgstr "Ordinul părinților"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "Produsul specific asociat cu această linie de comandă" msgstr "Produsul specific asociat cu această linie de comandă"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Cantitatea acestui produs specific din comandă" msgstr "Cantitatea acestui produs specific din comandă"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Cantitatea produsului" msgstr "Cantitatea produsului"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Starea actuală a acestui produs în comandă" msgstr "Starea actuală a acestui produs în comandă"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Starea liniei de produse" msgstr "Starea liniei de produse"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Identificator intern de etichetă pentru eticheta produsului" msgstr "Identificator intern de etichetă pentru eticheta produsului"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Nume etichetă" msgstr "Nume etichetă"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "Nume ușor de utilizat pentru eticheta produsului" msgstr "Nume ușor de utilizat pentru eticheta produsului"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Nume afișare etichetă" msgstr "Nume afișare etichetă"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Etichetă produs" msgstr "Etichetă produs"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "Furnizați text alternativ pentru imagine pentru accesibilitate" msgstr "Furnizați text alternativ pentru imagine pentru accesibilitate"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Textul alt al imaginii" msgstr "Textul alt al imaginii"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Încărcați fișierul de imagine pentru acest produs" msgstr "Încărcați fișierul de imagine pentru acest produs"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Imaginea produsului" msgstr "Imaginea produsului"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Determină ordinea în care sunt afișate imaginile" msgstr "Determină ordinea în care sunt afișate imaginile"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Prioritatea afișării" msgstr "Prioritatea afișării"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "Produsul pe care îl reprezintă această imagine" msgstr "Produsul pe care îl reprezintă această imagine"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Imagini ale produsului" msgstr "Imagini ale produsului"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" 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" msgstr "Cod unic utilizat de un utilizator pentru a răscumpăra o reducere"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Cod promoțional de identificare" msgstr "Cod promoțional de identificare"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "Valoarea fixă a reducerii aplicate dacă procentul nu este utilizat" msgstr "Valoarea fixă a reducerii aplicate dacă procentul nu este utilizat"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Valoarea fixă a reducerii" msgstr "Valoarea fixă a reducerii"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "Procentul de reducere aplicat dacă suma fixă nu este utilizată" msgstr "Procentul de reducere aplicat dacă suma fixă nu este utilizată"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Reducere procentuală" msgstr "Reducere procentuală"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Data la care expiră codul promoțional" msgstr "Data la care expiră codul promoțional"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "Timpul final de valabilitate" msgstr "Timpul final de valabilitate"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Timestamp de la care acest cod promoțional este valabil" msgstr "Timestamp de la care acest cod promoțional este valabil"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Ora de începere a valabilității" msgstr "Ora de începere a valabilității"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
"Momentul în care codul promoțional a fost utilizat, gol dacă nu a fost " "Momentul în care codul promoțional a fost utilizat, gol dacă nu a fost "
"utilizat încă" "utilizat încă"
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Timestamp de utilizare" msgstr "Timestamp de utilizare"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "Utilizatorul atribuit acestui cod promoțional, dacă este cazul" msgstr "Utilizatorul atribuit acestui cod promoțional, dacă este cazul"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Utilizator atribuit" msgstr "Utilizator atribuit"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Cod promoțional" msgstr "Cod promoțional"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Coduri promoționale" msgstr "Coduri promoționale"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1524,140 +1529,140 @@ msgstr ""
"Trebuie definit un singur tip de reducere (sumă sau procent), dar nu ambele " "Trebuie definit un singur tip de reducere (sumă sau procent), dar nu ambele "
"sau niciuna." "sau niciuna."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "Codul promoțional a fost deja utilizat" msgstr "Codul promoțional a fost deja utilizat"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Tip de reducere invalid pentru codul promoțional {self.uuid}" msgstr "Tip de reducere invalid pentru codul promoțional {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Procentul de reducere pentru produsele selectate" msgstr "Procentul de reducere pentru produsele selectate"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Procent de reducere" msgstr "Procent de reducere"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Furnizați un nume unic pentru această promoție" msgstr "Furnizați un nume unic pentru această promoție"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Numele promoției" msgstr "Numele promoției"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Descrierea promoției" msgstr "Descrierea promoției"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Selectați ce produse sunt incluse în această promoție" msgstr "Selectați ce produse sunt incluse în această promoție"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Produse incluse" msgstr "Produse incluse"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Promovare" msgstr "Promovare"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "Furnizorul care furnizează acest stoc de produse" msgstr "Furnizorul care furnizează acest stoc de produse"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Furnizor asociat" msgstr "Furnizor asociat"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Prețul final pentru client după majorări" msgstr "Prețul final pentru client după majorări"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Prețul de vânzare" msgstr "Prețul de vânzare"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "Produsul asociat cu această intrare în stoc" msgstr "Produsul asociat cu această intrare în stoc"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "Prețul plătit vânzătorului pentru acest produs" msgstr "Prețul plătit vânzătorului pentru acest produs"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Prețul de achiziție al furnizorului" msgstr "Prețul de achiziție al furnizorului"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Cantitatea disponibilă a produsului în stoc" msgstr "Cantitatea disponibilă a produsului în stoc"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Cantitate în stoc" msgstr "Cantitate în stoc"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "SKU atribuit de furnizor pentru identificarea produsului" msgstr "SKU atribuit de furnizor pentru identificarea produsului"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "SKU al furnizorului" msgstr "SKU al furnizorului"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "Fișier digital asociat cu acest stoc, dacă este cazul" msgstr "Fișier digital asociat cu acest stoc, dacă este cazul"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Fișier digital" msgstr "Fișier digital"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Intrări pe stoc" msgstr "Intrări pe stoc"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Produse pe care utilizatorul le-a marcat ca fiind dorite" msgstr "Produse pe care utilizatorul le-a marcat ca fiind dorite"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "Utilizatorul care deține această listă de dorințe" msgstr "Utilizatorul care deține această listă de dorințe"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Proprietarul listei de dorințe" msgstr "Proprietarul listei de dorințe"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Lista dorințelor" msgstr "Lista dorințelor"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Descărcare" msgstr "Descărcare"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Descărcări" msgstr "Descărcări"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" 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ă" msgstr "Nu puteți descărca un bun digital pentru o comandă nefinalizată"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Documentar" msgstr "Documentar"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Documentare" msgstr "Documentare"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Nerezolvat" msgstr "Nerezolvat"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -83,7 +83,7 @@ msgstr "Изображение"
msgid "images" msgid "images"
msgstr "Изображения" msgstr "Изображения"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "Наличие" msgstr "Наличие"
@ -91,7 +91,7 @@ msgstr "Наличие"
msgid "stocks" msgid "stocks"
msgstr "Наличия" msgstr "Наличия"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -99,35 +99,35 @@ msgstr "Наличия"
msgid "price" msgid "price"
msgstr "Цена" msgstr "Цена"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "Рейтинг продукции" msgstr "Рейтинг продукции"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "Основная информация" msgstr "Основная информация"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "Важные даты" msgstr "Важные даты"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "Переводы" msgstr "Переводы"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "Заказать товар" msgstr "Заказать товар"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "Заказать товары" msgstr "Заказать товары"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Бизнес" msgstr "Бизнес"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "Конфигурация" msgstr "Конфигурация"
@ -517,55 +517,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "Список всех продуктов (простой вид)" msgstr "Список всех продуктов (простой вид)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(точный) UUID продукта" msgstr "(точный) UUID продукта"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(иконки) Название продукта" msgstr "(иконки) Название продукта"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(список) Названия категорий, без учета регистра" msgstr "(список) Названия категорий, без учета регистра"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(точный) UUID категории" msgstr "(точный) UUID категории"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(список) Имена тегов, нечувствительные к регистру" msgstr "(список) Имена тегов, нечувствительные к регистру"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) Минимальная цена акции" msgstr "(gte) Минимальная цена акции"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) Максимальная цена акции" msgstr "(lte) Максимальная цена акции"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(точно) Только активные продукты" msgstr "(точно) Только активные продукты"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) Торговое название" msgstr "(iexact) Торговое название"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) Минимальное количество на складе" msgstr "(gt) Минимальное количество на складе"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(точный) Артикул" msgstr "(точный) Артикул"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(точно) Цифровые и физические" msgstr "(точно) Цифровые и физические"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -573,35 +573,35 @@ msgstr ""
"Список полей для сортировки, разделенных запятыми. Для сортировки по убыванию используйте префикс `-`. \n" "Список полей для сортировки, разделенных запятыми. Для сортировки по убыванию используйте префикс `-`. \n"
"**Разрешенные:** uuid, рейтинг, название, slug, created, modified, price, random" "**Разрешенные:** uuid, рейтинг, название, slug, created, modified, price, random"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "Получение одного продукта (подробный просмотр)" msgstr "Получение одного продукта (подробный просмотр)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "UUID или Slug продукта" msgstr "UUID или Slug продукта"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "Создать продукт" msgstr "Создать продукт"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "Переписать существующий продукт, сохранив нередактируемые поля" msgstr "Переписать существующий продукт, сохранив нередактируемые поля"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "" msgstr ""
"Обновление некоторых полей существующего продукта с сохранением " "Обновление некоторых полей существующего продукта с сохранением "
"нередактируемых полей" "нередактируемых полей"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "Удалить продукт" msgstr "Удалить продукт"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "Поисковый запрос не предоставлен." msgstr "Поисковый запрос не предоставлен."
@ -658,7 +658,7 @@ msgstr ""
"варианты!" "варианты!"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "Неправильный тип получен из метода order.buy(): {type(instance)!s}" msgstr "Неправильный тип получен из метода order.buy(): {type(instance)!s}"
@ -849,7 +849,7 @@ msgstr "Промокоды"
msgid "products on sale" msgid "products on sale"
msgstr "Продукты в продаже" msgstr "Продукты в продаже"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "Акции" msgstr "Акции"
@ -865,11 +865,11 @@ msgstr "Поставщик"
msgid "product" msgid "product"
msgstr "Продукт" msgstr "Продукт"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "Продукты из списка желаний" msgstr "Продукты из списка желаний"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "Списки желаний" msgstr "Списки желаний"
@ -1017,8 +1017,8 @@ msgstr "Атрибут этого значения"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "Конкретный продукт, связанный со значением этого атрибута" msgstr "Конкретный продукт, связанный со значением этого атрибута"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "Сопутствующий товар" msgstr "Сопутствующий товар"
@ -1114,7 +1114,7 @@ msgstr "По желанию ассоциируйте этот продукт с
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "Теги, которые помогают описать или сгруппировать этот продукт" msgstr "Теги, которые помогают описать или сгруппировать этот продукт"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "Теги товара" msgstr "Теги товара"
@ -1134,7 +1134,7 @@ msgstr "Обеспечьте четкое идентификационное н
msgid "product name" msgid "product name"
msgstr "Название продукта" msgstr "Название продукта"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "Добавьте подробное описание продукта" msgstr "Добавьте подробное описание продукта"
@ -1234,7 +1234,7 @@ msgstr "Текущий статус заказа в его жизненном ц
msgid "order status" msgid "order status"
msgstr "Статус заказа" msgstr "Статус заказа"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "" msgstr ""
"JSON-структура уведомлений для отображения пользователям, в административном" "JSON-структура уведомлений для отображения пользователям, в административном"
@ -1272,57 +1272,61 @@ msgstr "человекочитаемый идентификатор"
msgid "order" msgid "order"
msgstr "Заказать" msgstr "Заказать"
#: core/models.py:536 #: core/models.py:517
msgid "a user must have only one pending order at a time"
msgstr "Пользователь может одновременно иметь только один отложенный ордер!"
#: core/models.py:541
msgid "you cannot add products to an order that is not a pending one" msgid "you cannot add products to an order that is not a pending one"
msgstr "Вы не можете добавить товары в заказ, который не является отложенным." msgstr "Вы не можете добавить товары в заказ, который не является отложенным."
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "Вы не можете добавить неактивные товары в заказ" msgstr "Вы не можете добавить неактивные товары в заказ"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "Вы не можете добавить больше товаров, чем есть на складе" msgstr "Вы не можете добавить больше товаров, чем есть на складе"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} не существует: {product_uuid}" msgstr "{name} не существует: {product_uuid}"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "" msgstr ""
"Вы не можете удалить товары из заказа, который не является отложенным." "Вы не можете удалить товары из заказа, который не является отложенным."
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "{name} не существует в запросе <{query}>." msgstr "{name} не существует в запросе <{query}>."
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "Промокод не существует" msgstr "Промокод не существует"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "" msgstr ""
"В данный момент вы не можете совершить покупку, пожалуйста, повторите " "В данный момент вы не можете совершить покупку, пожалуйста, повторите "
"попытку через несколько минут." "попытку через несколько минут."
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "Недопустимое значение силы" msgstr "Недопустимое значение силы"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "Вы не можете приобрести пустой заказ!" msgstr "Вы не можете приобрести пустой заказ!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "Недостаточно средств для выполнения заказа" msgstr "Недостаточно средств для выполнения заказа"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
@ -1330,194 +1334,194 @@ msgstr ""
"Вы не можете купить без регистрации, пожалуйста, предоставьте следующую " "Вы не можете купить без регистрации, пожалуйста, предоставьте следующую "
"информацию: имя клиента, электронная почта клиента, номер телефона клиента" "информацию: имя клиента, электронная почта клиента, номер телефона клиента"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "Неверный метод оплаты" msgstr "Неверный метод оплаты"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "" msgstr ""
"Вы не можете создать заказ momental, не указав адрес для выставления счета" "Вы не можете создать заказ momental, не указав адрес для выставления счета"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" msgid "the price paid by the customer for this product at purchase time"
msgstr "Цена, уплаченная клиентом за данный продукт на момент покупки" msgstr "Цена, уплаченная клиентом за данный продукт на момент покупки"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "Покупная цена на момент заказа" msgstr "Покупная цена на момент заказа"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "" msgstr ""
"Внутренние комментарии для администраторов об этом заказанном продукте" "Внутренние комментарии для администраторов об этом заказанном продукте"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "Внутренние комментарии" msgstr "Внутренние комментарии"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "Уведомления пользователей" msgstr "Уведомления пользователей"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "JSON-представление атрибутов этого элемента" msgstr "JSON-представление атрибутов этого элемента"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "Атрибуты заказанного продукта" msgstr "Атрибуты заказанного продукта"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "Ссылка на родительский заказ, содержащий данный продукт" msgstr "Ссылка на родительский заказ, содержащий данный продукт"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "Родительский приказ" msgstr "Родительский приказ"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "Конкретный продукт, связанный с этой линией заказа" msgstr "Конкретный продукт, связанный с этой линией заказа"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "Количество данного товара в заказе" msgstr "Количество данного товара в заказе"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "Количество продукта" msgstr "Количество продукта"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "Текущий статус этого продукта в заказе" msgstr "Текущий статус этого продукта в заказе"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "Состояние продуктовой линейки" msgstr "Состояние продуктовой линейки"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "Внутренний идентификатор тега для тега продукта" msgstr "Внутренний идентификатор тега для тега продукта"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "Название тега" msgstr "Название тега"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "Удобное название для метки продукта" msgstr "Удобное название для метки продукта"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "Отображаемое имя тега" msgstr "Отображаемое имя тега"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "Метка продукта" msgstr "Метка продукта"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "" msgstr ""
"Предоставьте альтернативный текст для изображения, чтобы обеспечить " "Предоставьте альтернативный текст для изображения, чтобы обеспечить "
"доступность" "доступность"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "Альтовый текст изображения" msgstr "Альтовый текст изображения"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "Загрузите файл изображения для этого продукта" msgstr "Загрузите файл изображения для этого продукта"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "Изображение продукта" msgstr "Изображение продукта"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "Определяет порядок отображения изображений" msgstr "Определяет порядок отображения изображений"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "Приоритет отображения" msgstr "Приоритет отображения"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "Продукт, который представлен на этом изображении" msgstr "Продукт, который представлен на этом изображении"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "Изображения продуктов" msgstr "Изображения продуктов"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "Уникальный код, используемый пользователем для получения скидки" msgstr "Уникальный код, используемый пользователем для получения скидки"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "Идентификатор промо-кода" msgstr "Идентификатор промо-кода"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "Фиксированная сумма скидки, применяемая, если процент не используется" msgstr "Фиксированная сумма скидки, применяемая, если процент не используется"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "Фиксированная сумма скидки" msgstr "Фиксированная сумма скидки"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "" msgstr ""
"Процентная скидка, применяемая, если фиксированная сумма не используется" "Процентная скидка, применяемая, если фиксированная сумма не используется"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "Процентная скидка" msgstr "Процентная скидка"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "Временная метка, когда истекает срок действия промокода" msgstr "Временная метка, когда истекает срок действия промокода"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "Время окончания срока действия" msgstr "Время окончания срока действия"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "Время, с которого действует этот промокод" msgstr "Время, с которого действует этот промокод"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "Время начала действия" msgstr "Время начала действия"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "" msgstr ""
"Временная метка, когда был использован промокод, пустая, если он еще не " "Временная метка, когда был использован промокод, пустая, если он еще не "
"использовался" "использовался"
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "Временная метка использования" msgstr "Временная метка использования"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "Пользователь, назначенный на этот промокод, если применимо" msgstr "Пользователь, назначенный на этот промокод, если применимо"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "Назначенный пользователь" msgstr "Назначенный пользователь"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "Промокод" msgstr "Промокод"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "Промокоды" msgstr "Промокоды"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
@ -1525,140 +1529,140 @@ msgstr ""
"Следует определить только один тип скидки (сумма или процент), но не оба или" "Следует определить только один тип скидки (сумма или процент), но не оба или"
" ни один из них." " ни один из них."
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "Промокоды" msgstr "Промокоды"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "Неверный тип скидки для промокода {self.uuid}" msgstr "Неверный тип скидки для промокода {self.uuid}"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "Процентная скидка на выбранные продукты" msgstr "Процентная скидка на выбранные продукты"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "Процент скидки" msgstr "Процент скидки"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "Укажите уникальное имя для этой акции" msgstr "Укажите уникальное имя для этой акции"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "Название акции" msgstr "Название акции"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "Описание акции" msgstr "Описание акции"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "Выберите, какие продукты участвуют в этой акции" msgstr "Выберите, какие продукты участвуют в этой акции"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "Включенные продукты" msgstr "Включенные продукты"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "Продвижение" msgstr "Продвижение"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "Поставщик, поставляющий данный товар на склад" msgstr "Поставщик, поставляющий данный товар на склад"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "Ассоциированный поставщик" msgstr "Ассоциированный поставщик"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "Окончательная цена для покупателя после наценок" msgstr "Окончательная цена для покупателя после наценок"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "Цена продажи" msgstr "Цена продажи"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "Продукт, связанный с этой складской записью" msgstr "Продукт, связанный с этой складской записью"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "Цена, уплаченная продавцу за этот продукт" msgstr "Цена, уплаченная продавцу за этот продукт"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "Цена покупки у поставщика" msgstr "Цена покупки у поставщика"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "Доступное количество продукта на складе" msgstr "Доступное количество продукта на складе"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "Количество на складе" msgstr "Количество на складе"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "Присвоенный поставщиком SKU для идентификации продукта" msgstr "Присвоенный поставщиком SKU для идентификации продукта"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "SKU поставщика" msgstr "SKU поставщика"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "Цифровой файл, связанный с этой акцией, если применимо" msgstr "Цифровой файл, связанный с этой акцией, если применимо"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "Цифровой файл" msgstr "Цифровой файл"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "Проводки по запасам" msgstr "Проводки по запасам"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "Продукты, которые пользователь отметил как желаемые" msgstr "Продукты, которые пользователь отметил как желаемые"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "Пользователь, владеющий этим списком желаний" msgstr "Пользователь, владеющий этим списком желаний"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "Владелец вишлиста" msgstr "Владелец вишлиста"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "Список желаний" msgstr "Список желаний"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "Скачать" msgstr "Скачать"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "Скачать" msgstr "Скачать"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" msgid "you can not download a digital asset for a non-finished order"
msgstr "Вы не можете загрузить цифровой актив для незавершенного заказа" msgstr "Вы не можете загрузить цифровой актив для незавершенного заказа"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "Документальный фильм" msgstr "Документальный фильм"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "Документальные фильмы" msgstr "Документальные фильмы"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "Неразрешенные" msgstr "Неразрешенные"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 15:33+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -79,7 +79,7 @@ msgstr "图片"
msgid "images" msgid "images"
msgstr "图片" msgstr "图片"
#: core/admin.py:160 core/models.py:1127 #: core/admin.py:160 core/models.py:1132
msgid "stock" msgid "stock"
msgstr "库存" msgstr "库存"
@ -87,7 +87,7 @@ msgstr "库存"
msgid "stocks" msgid "stocks"
msgstr "股票" msgstr "股票"
#: core/admin.py:191 core/graphene/object_types.py:320 #: core/admin.py:192 core/graphene/object_types.py:320
#: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_created_email.html:109
#: core/templates/digital_order_delivered_email.html:109 #: core/templates/digital_order_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95 #: core/templates/shipped_order_created_email.html:95
@ -95,35 +95,35 @@ msgstr "股票"
msgid "price" msgid "price"
msgstr "价格" msgstr "价格"
#: core/admin.py:196 #: core/admin.py:197
msgid "rating" msgid "rating"
msgstr "产品评级" msgstr "产品评级"
#: core/admin.py:200 #: core/admin.py:201
msgid "basic info" msgid "basic info"
msgstr "基本信息" msgstr "基本信息"
#: core/admin.py:214 #: core/admin.py:215
msgid "important dates" msgid "important dates"
msgstr "重要日期" msgstr "重要日期"
#: core/admin.py:215 #: core/admin.py:216
msgid "translations" msgid "translations"
msgstr "翻译" msgstr "翻译"
#: core/admin.py:253 core/models.py:837 #: core/admin.py:254 core/models.py:842
msgid "order product" msgid "order product"
msgstr "订购产品" msgstr "订购产品"
#: core/admin.py:254 core/graphene/object_types.py:242 core/models.py:838 #: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843
msgid "order products" msgid "order products"
msgstr "订购产品" msgstr "订购产品"
#: core/admin.py:273 #: core/admin.py:274
msgid "is business" msgid "is business"
msgstr "Is Business" msgstr "Is Business"
#: core/admin.py:381 #: core/admin.py:382
msgid "config" msgid "config"
msgstr "配置" msgstr "配置"
@ -475,55 +475,55 @@ msgstr ""
msgid "list all products (simple view)" msgid "list all products (simple view)"
msgstr "列出所有产品(简单视图)" msgstr "列出所有产品(简单视图)"
#: core/docs/drf/viewsets.py:278 #: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID" msgid "(exact) Product UUID"
msgstr "(产品 UUID" msgstr "(产品 UUID"
#: core/docs/drf/viewsets.py:279 #: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name" msgid "(icontains) Product name"
msgstr "(图示) 产品名称" msgstr "(图示) 产品名称"
#: core/docs/drf/viewsets.py:280 #: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive" msgid "(list) Category names, case-insensitive"
msgstr "(列表) 类别名称,不区分大小写" msgstr "(列表) 类别名称,不区分大小写"
#: core/docs/drf/viewsets.py:282 #: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID" msgid "(exact) Category UUID"
msgstr "(类别 UUID" msgstr "(类别 UUID"
#: core/docs/drf/viewsets.py:283 #: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive" msgid "(list) Tag names, case-insensitive"
msgstr "(标签名称,不区分大小写" msgstr "(标签名称,不区分大小写"
#: core/docs/drf/viewsets.py:284 #: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price" msgid "(gte) Minimum stock price"
msgstr "(gte) 最低股价" msgstr "(gte) 最低股价"
#: core/docs/drf/viewsets.py:285 #: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price" msgid "(lte) Maximum stock price"
msgstr "(lte) 最高股价" msgstr "(lte) 最高股价"
#: core/docs/drf/viewsets.py:286 #: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products" msgid "(exact) Only active products"
msgstr "(准确)只有活性产品" msgstr "(准确)只有活性产品"
#: core/docs/drf/viewsets.py:287 #: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name" msgid "(iexact) Brand name"
msgstr "(iexact) 品牌名称" msgstr "(iexact) 品牌名称"
#: core/docs/drf/viewsets.py:289 #: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity" msgid "(gt) Minimum stock quantity"
msgstr "(gt) 最低库存量" msgstr "(gt) 最低库存量"
#: core/docs/drf/viewsets.py:290 #: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug" msgid "(exact) Product slug"
msgstr "(准确) 产品标题" msgstr "(准确) 产品标题"
#: core/docs/drf/viewsets.py:291 #: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical" msgid "(exact) Digital vs. physical"
msgstr "(准确)数字与实物" msgstr "(准确)数字与实物"
#: core/docs/drf/viewsets.py:295 #: core/docs/drf/viewsets.py:360
msgid "" msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**Allowed:** uuid, rating, name, slug, created, modified, price, random" "**Allowed:** uuid, rating, name, slug, created, modified, price, random"
@ -531,33 +531,33 @@ msgstr ""
"用逗号分隔的要排序的字段列表。前缀为 `-` 表示降序。 \n" "用逗号分隔的要排序的字段列表。前缀为 `-` 表示降序。 \n"
"**允许:** uuid、评分、名称、标签、创建、修改、价格、随机" "**允许:** uuid、评分、名称、标签、创建、修改、价格、随机"
#: core/docs/drf/viewsets.py:310 #: core/docs/drf/viewsets.py:374
msgid "retrieve a single product (detailed view)" msgid "retrieve a single product (detailed view)"
msgstr "检索单个产品(详细视图)" msgstr "检索单个产品(详细视图)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320 #: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330 #: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug" msgid "Product UUID or slug"
msgstr "产品 UUID 或 Slug" msgstr "产品 UUID 或 Slug"
#: core/docs/drf/viewsets.py:315 #: core/docs/drf/viewsets.py:389
msgid "create a product" msgid "create a product"
msgstr "创建产品" msgstr "创建产品"
#: core/docs/drf/viewsets.py:319 #: core/docs/drf/viewsets.py:396
msgid "rewrite an existing product, preserving non-editable fields" msgid "rewrite an existing product, preserving non-editable fields"
msgstr "重写现有产品,保留不可编辑字段" msgstr "重写现有产品,保留不可编辑字段"
#: core/docs/drf/viewsets.py:324 #: core/docs/drf/viewsets.py:411
msgid "" msgid ""
"update some fields of an existing product, preserving non-editable fields" "update some fields of an existing product, preserving non-editable fields"
msgstr "更新现有产品的某些字段,保留不可编辑的字段" msgstr "更新现有产品的某些字段,保留不可编辑的字段"
#: core/docs/drf/viewsets.py:329 #: core/docs/drf/viewsets.py:426
msgid "delete a product" msgid "delete a product"
msgstr "删除产品" msgstr "删除产品"
#: core/elasticsearch/__init__.py:39 #: core/elasticsearch/__init__.py:40
msgid "no search term provided." msgid "no search term provided."
msgstr "未提供搜索条件。" msgstr "未提供搜索条件。"
@ -612,7 +612,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive"
msgstr "请提供 order_uuid 或 order_hr_id互斥" msgstr "请提供 order_uuid 或 order_hr_id互斥"
#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 #: core/graphene/mutations.py:201 core/graphene/mutations.py:355
#: core/graphene/mutations.py:389 core/viewsets.py:248 #: core/graphene/mutations.py:389 core/viewsets.py:253
msgid "wrong type came from order.buy() method: {type(instance)!s}" msgid "wrong type came from order.buy() method: {type(instance)!s}"
msgstr "order.buy() 方法中的类型有误:{type(instance)!s}" msgstr "order.buy() 方法中的类型有误:{type(instance)!s}"
@ -795,7 +795,7 @@ msgstr "促销代码"
msgid "products on sale" msgid "products on sale"
msgstr "销售产品" msgstr "销售产品"
#: core/graphene/object_types.py:405 core/models.py:1068 #: core/graphene/object_types.py:405 core/models.py:1073
msgid "promotions" msgid "promotions"
msgstr "促销活动" msgstr "促销活动"
@ -811,11 +811,11 @@ msgstr "供应商"
msgid "product" msgid "product"
msgstr "产品" msgstr "产品"
#: core/graphene/object_types.py:421 core/models.py:1138 #: core/graphene/object_types.py:421 core/models.py:1143
msgid "wishlisted products" msgid "wishlisted products"
msgstr "心愿单上的产品" msgstr "心愿单上的产品"
#: core/graphene/object_types.py:427 core/models.py:1155 #: core/graphene/object_types.py:427 core/models.py:1160
msgid "wishlists" msgid "wishlists"
msgstr "愿望清单" msgstr "愿望清单"
@ -961,8 +961,8 @@ msgstr "该值的属性"
msgid "the specific product associated with this attribute's value" msgid "the specific product associated with this attribute's value"
msgstr "与该属性值相关的特定产品" msgstr "与该属性值相关的特定产品"
#: core/models.py:142 core/models.py:814 core/models.py:928 #: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1094 #: core/models.py:1099
msgid "associated product" msgid "associated product"
msgstr "相关产品" msgstr "相关产品"
@ -1058,7 +1058,7 @@ msgstr "可选择将该产品与某个品牌联系起来"
msgid "tags that help describe or group this product" msgid "tags that help describe or group this product"
msgstr "有助于描述或归类该产品的标签" msgstr "有助于描述或归类该产品的标签"
#: core/models.py:280 core/models.py:902 #: core/models.py:280 core/models.py:907
msgid "product tags" msgid "product tags"
msgstr "产品标签" msgstr "产品标签"
@ -1078,7 +1078,7 @@ msgstr "为产品提供一个明确的标识名称"
msgid "product name" msgid "product name"
msgstr "产品名称" msgstr "产品名称"
#: core/models.py:297 core/models.py:1056 #: core/models.py:297 core/models.py:1061
msgid "add a detailed description of the product" msgid "add a detailed description of the product"
msgstr "添加产品的详细描述" msgstr "添加产品的详细描述"
@ -1175,7 +1175,7 @@ msgstr "订单在其生命周期中的当前状态"
msgid "order status" msgid "order status"
msgstr "订单状态" msgstr "订单状态"
#: core/models.py:471 core/models.py:791 #: core/models.py:471 core/models.py:796
msgid "json structure of notifications to display to users" msgid "json structure of notifications to display to users"
msgstr "向用户显示的通知的 JSON 结构,在管理用户界面中使用表格视图" msgstr "向用户显示的通知的 JSON 结构,在管理用户界面中使用表格视图"
@ -1211,379 +1211,383 @@ msgstr "人类可读 ID"
msgid "order" msgid "order"
msgstr "订购" msgstr "订购"
#: core/models.py:536 #: core/models.py:517
msgid "a user must have only one pending order at a time"
msgstr "用户每次只能有一个挂单!"
#: core/models.py:541
msgid "you cannot add products to an order that is not a pending one" msgid "you cannot add products to an order that is not a pending one"
msgstr "您不能向非待处理订单添加产品" msgstr "您不能向非待处理订单添加产品"
#: core/models.py:541 #: core/models.py:546
msgid "you cannot add inactive products to order" msgid "you cannot add inactive products to order"
msgstr "您不能在订单中添加非活动产品" msgstr "您不能在订单中添加非活动产品"
#: core/models.py:558 #: core/models.py:563
msgid "you cannot add more products than available in stock" msgid "you cannot add more products than available in stock"
msgstr "添加的产品数量不能超过现有库存" msgstr "添加的产品数量不能超过现有库存"
#: core/models.py:567 core/models.py:584 core/models.py:608 #: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1165 core/models.py:1176 #: core/models.py:1170 core/models.py:1181
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {product_uuid}" msgid "{name} does not exist: {product_uuid}"
msgstr "{name} 不存在:{product_uuid} 不存在" msgstr "{name} 不存在:{product_uuid} 不存在"
#: core/models.py:571 core/models.py:592 core/models.py:600 #: core/models.py:576 core/models.py:597 core/models.py:605
msgid "you cannot remove products from an order that is not a pending one" msgid "you cannot remove products from an order that is not a pending one"
msgstr "您不能从非待处理订单中删除产品" msgstr "您不能从非待处理订单中删除产品"
#: core/models.py:588 #: core/models.py:593
#, python-brace-format #, python-brace-format
msgid "{name} does not exist with query <{query}>" msgid "{name} does not exist with query <{query}>"
msgstr "查询 <{query}> 时 {name} 不存在" msgstr "查询 <{query}> 时 {name} 不存在"
#: core/models.py:619 #: core/models.py:624
msgid "promocode does not exist" msgid "promocode does not exist"
msgstr "促销代码不存在" msgstr "促销代码不存在"
#: core/models.py:626 core/models.py:665 #: core/models.py:631 core/models.py:670
msgid "you can not buy at this moment, please try again in a few minutes" msgid "you can not buy at this moment, please try again in a few minutes"
msgstr "您现在无法购买,请稍后再试。" msgstr "您现在无法购买,请稍后再试。"
#: core/models.py:629 #: core/models.py:634
msgid "invalid force value" msgid "invalid force value"
msgstr "力值无效" msgstr "力值无效"
#: core/models.py:632 core/models.py:668 #: core/models.py:637 core/models.py:673
msgid "you cannot purchase an empty order!" msgid "you cannot purchase an empty order!"
msgstr "您不能购买空单!" msgstr "您不能购买空单!"
#: core/models.py:647 #: core/models.py:652
msgid "insufficient funds to complete the order" msgid "insufficient funds to complete the order"
msgstr "资金不足,无法完成订单" msgstr "资金不足,无法完成订单"
#: core/models.py:677 #: core/models.py:682
msgid "" msgid ""
"you cannot buy without registration, please provide the following " "you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number" "information: customer name, customer email, customer phone number"
msgstr "未经注册不能购买,请提供以下信息:客户姓名、客户电子邮件、客户电话号码" msgstr "未经注册不能购买,请提供以下信息:客户姓名、客户电子邮件、客户电话号码"
#: core/models.py:685 #: core/models.py:690
msgid "invalid payment method" msgid "invalid payment method"
msgstr "付款方式无效" msgstr "付款方式无效"
#: core/models.py:701 #: core/models.py:706
msgid "you cannot create a momental order without providing a billing address" msgid "you cannot create a momental order without providing a billing address"
msgstr "如果不提供账单地址,就无法创建妈妈订单" msgstr "如果不提供账单地址,就无法创建妈妈订单"
#: core/models.py:779 #: core/models.py:784
msgid "the price paid by the customer for this product at purchase time" msgid "the price paid by the customer for this product at purchase time"
msgstr "客户购买该产品时支付的价格" msgstr "客户购买该产品时支付的价格"
#: core/models.py:780 #: core/models.py:785
msgid "purchase price at order time" msgid "purchase price at order time"
msgstr "订购时的购买价格" msgstr "订购时的购买价格"
#: core/models.py:785 #: core/models.py:790
msgid "internal comments for admins about this ordered product" msgid "internal comments for admins about this ordered product"
msgstr "管理员对该订购产品的内部评论" msgstr "管理员对该订购产品的内部评论"
#: core/models.py:786 #: core/models.py:791
msgid "internal comments" msgid "internal comments"
msgstr "内部意见" msgstr "内部意见"
#: core/models.py:792 #: core/models.py:797
msgid "user notifications" msgid "user notifications"
msgstr "用户通知" msgstr "用户通知"
#: core/models.py:797 #: core/models.py:802
msgid "json representation of this item's attributes" msgid "json representation of this item's attributes"
msgstr "该项属性的 JSON 表示形式" msgstr "该项属性的 JSON 表示形式"
#: core/models.py:798 #: core/models.py:803
msgid "ordered product attributes" msgid "ordered product attributes"
msgstr "有序的产品属性" msgstr "有序的产品属性"
#: core/models.py:803 #: core/models.py:808
msgid "reference to the parent order that contains this product" msgid "reference to the parent order that contains this product"
msgstr "对包含该产品的父订单的引用" msgstr "对包含该产品的父订单的引用"
#: core/models.py:804 #: core/models.py:809
msgid "parent order" msgid "parent order"
msgstr "父顺序" msgstr "父顺序"
#: core/models.py:813 #: core/models.py:818
msgid "the specific product associated with this order line" msgid "the specific product associated with this order line"
msgstr "与该订单项目相关的具体产品" msgstr "与该订单项目相关的具体产品"
#: core/models.py:820 #: core/models.py:825
msgid "quantity of this specific product in the order" msgid "quantity of this specific product in the order"
msgstr "订单中该特定产品的数量" msgstr "订单中该特定产品的数量"
#: core/models.py:821 #: core/models.py:826
msgid "product quantity" msgid "product quantity"
msgstr "产品数量" msgstr "产品数量"
#: core/models.py:828 #: core/models.py:833
msgid "current status of this product in the order" msgid "current status of this product in the order"
msgstr "订单中该产品的当前状态" msgstr "订单中该产品的当前状态"
#: core/models.py:829 #: core/models.py:834
msgid "product line status" msgid "product line status"
msgstr "产品系列状态" msgstr "产品系列状态"
#: core/models.py:887 #: core/models.py:892
msgid "internal tag identifier for the product tag" msgid "internal tag identifier for the product tag"
msgstr "产品标签的内部标签标识符" msgstr "产品标签的内部标签标识符"
#: core/models.py:888 #: core/models.py:893
msgid "tag name" msgid "tag name"
msgstr "标签名称" msgstr "标签名称"
#: core/models.py:892 #: core/models.py:897
msgid "user-friendly name for the product tag" msgid "user-friendly name for the product tag"
msgstr "方便用户使用的产品标签名称" msgstr "方便用户使用的产品标签名称"
#: core/models.py:893 #: core/models.py:898
msgid "tag display name" msgid "tag display name"
msgstr "标签显示名称" msgstr "标签显示名称"
#: core/models.py:901 #: core/models.py:906
msgid "product tag" msgid "product tag"
msgstr "产品标签" msgstr "产品标签"
#: core/models.py:910 #: core/models.py:915
msgid "provide alternative text for the image for accessibility" msgid "provide alternative text for the image for accessibility"
msgstr "为图像提供替代文字,以便于访问" msgstr "为图像提供替代文字,以便于访问"
#: core/models.py:911 #: core/models.py:916
msgid "image alt text" msgid "image alt text"
msgstr "图片 alt 文本" msgstr "图片 alt 文本"
#: core/models.py:914 #: core/models.py:919
msgid "upload the image file for this product" msgid "upload the image file for this product"
msgstr "上传该产品的图片文件" msgstr "上传该产品的图片文件"
#: core/models.py:915 core/models.py:940 #: core/models.py:920 core/models.py:945
msgid "product image" msgid "product image"
msgstr "产品图片" msgstr "产品图片"
#: core/models.py:921 #: core/models.py:926
msgid "determines the order in which images are displayed" msgid "determines the order in which images are displayed"
msgstr "确定图像的显示顺序" msgstr "确定图像的显示顺序"
#: core/models.py:922 #: core/models.py:927
msgid "display priority" msgid "display priority"
msgstr "显示优先级" msgstr "显示优先级"
#: core/models.py:927 #: core/models.py:932
msgid "the product that this image represents" msgid "the product that this image represents"
msgstr "该图片所代表的产品" msgstr "该图片所代表的产品"
#: core/models.py:941 #: core/models.py:946
msgid "product images" msgid "product images"
msgstr "产品图片" msgstr "产品图片"
#: core/models.py:951 #: core/models.py:956
msgid "unique code used by a user to redeem a discount" msgid "unique code used by a user to redeem a discount"
msgstr "用户用于兑换折扣的唯一代码" msgstr "用户用于兑换折扣的唯一代码"
#: core/models.py:952 #: core/models.py:957
msgid "promo code identifier" msgid "promo code identifier"
msgstr "促销代码标识符" msgstr "促销代码标识符"
#: core/models.py:959 #: core/models.py:964
msgid "fixed discount amount applied if percent is not used" msgid "fixed discount amount applied if percent is not used"
msgstr "如果不使用百分比,则使用固定折扣额" msgstr "如果不使用百分比,则使用固定折扣额"
#: core/models.py:960 #: core/models.py:965
msgid "fixed discount amount" msgid "fixed discount amount"
msgstr "固定折扣额" msgstr "固定折扣额"
#: core/models.py:966 #: core/models.py:971
msgid "percentage discount applied if fixed amount is not used" msgid "percentage discount applied if fixed amount is not used"
msgstr "未使用固定金额时适用的折扣百分比" msgstr "未使用固定金额时适用的折扣百分比"
#: core/models.py:967 #: core/models.py:972
msgid "percentage discount" msgid "percentage discount"
msgstr "折扣百分比" msgstr "折扣百分比"
#: core/models.py:972 #: core/models.py:977
msgid "timestamp when the promocode expires" msgid "timestamp when the promocode expires"
msgstr "促销代码过期的时间戳" msgstr "促销代码过期的时间戳"
#: core/models.py:973 #: core/models.py:978
msgid "end validity time" msgid "end validity time"
msgstr "结束有效时间" msgstr "结束有效时间"
#: core/models.py:978 #: core/models.py:983
msgid "timestamp from which this promocode is valid" msgid "timestamp from which this promocode is valid"
msgstr "该促销代码有效的时间戳" msgstr "该促销代码有效的时间戳"
#: core/models.py:979 #: core/models.py:984
msgid "start validity time" msgid "start validity time"
msgstr "开始有效时间" msgstr "开始有效时间"
#: core/models.py:984 #: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet" msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "使用促销代码的时间戳,如果尚未使用,则留空" msgstr "使用促销代码的时间戳,如果尚未使用,则留空"
#: core/models.py:985 #: core/models.py:990
msgid "usage timestamp" msgid "usage timestamp"
msgstr "使用时间戳" msgstr "使用时间戳"
#: core/models.py:990 #: core/models.py:995
msgid "user assigned to this promocode if applicable" msgid "user assigned to this promocode if applicable"
msgstr "分配给此促销代码的用户(如适用" msgstr "分配给此促销代码的用户(如适用"
#: core/models.py:991 #: core/models.py:996
msgid "assigned user" msgid "assigned user"
msgstr "指定用户" msgstr "指定用户"
#: core/models.py:998 #: core/models.py:1003
msgid "promo code" msgid "promo code"
msgstr "促销代码" msgstr "促销代码"
#: core/models.py:999 #: core/models.py:1004
msgid "promo codes" msgid "promo codes"
msgstr "促销代码" msgstr "促销代码"
#: core/models.py:1006 #: core/models.py:1011
msgid "" msgid ""
"only one type of discount should be defined (amount or percent), but not " "only one type of discount should be defined (amount or percent), but not "
"both or neither." "both or neither."
msgstr "只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。" msgstr "只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。"
#: core/models.py:1021 #: core/models.py:1026
msgid "promocode already used" msgid "promocode already used"
msgstr "促销代码已被使用" msgstr "促销代码已被使用"
#: core/models.py:1033 #: core/models.py:1038
#, python-brace-format #, python-brace-format
msgid "invalid discount type for promocode {self.uuid}" msgid "invalid discount type for promocode {self.uuid}"
msgstr "促销代码 {self.uuid} 的折扣类型无效" msgstr "促销代码 {self.uuid} 的折扣类型无效"
#: core/models.py:1044 #: core/models.py:1049
msgid "percentage discount for the selected products" msgid "percentage discount for the selected products"
msgstr "所选产品的折扣百分比" msgstr "所选产品的折扣百分比"
#: core/models.py:1045 #: core/models.py:1050
msgid "discount percentage" msgid "discount percentage"
msgstr "折扣百分比" msgstr "折扣百分比"
#: core/models.py:1050 #: core/models.py:1055
msgid "provide a unique name for this promotion" msgid "provide a unique name for this promotion"
msgstr "为该促销活动提供一个独特的名称" msgstr "为该促销活动提供一个独特的名称"
#: core/models.py:1051 #: core/models.py:1056
msgid "promotion name" msgid "promotion name"
msgstr "推广名称" msgstr "推广名称"
#: core/models.py:1057 #: core/models.py:1062
msgid "promotion description" msgid "promotion description"
msgstr "促销说明" msgstr "促销说明"
#: core/models.py:1062 #: core/models.py:1067
msgid "select which products are included in this promotion" msgid "select which products are included in this promotion"
msgstr "选择促销活动包括哪些产品" msgstr "选择促销活动包括哪些产品"
#: core/models.py:1063 #: core/models.py:1068
msgid "included products" msgid "included products"
msgstr "包括产品" msgstr "包括产品"
#: core/models.py:1067 #: core/models.py:1072
msgid "promotion" msgid "promotion"
msgstr "促销活动" msgstr "促销活动"
#: core/models.py:1082 #: core/models.py:1087
msgid "the vendor supplying this product stock" msgid "the vendor supplying this product stock"
msgstr "提供该产品库存的供应商" msgstr "提供该产品库存的供应商"
#: core/models.py:1083 #: core/models.py:1088
msgid "associated vendor" msgid "associated vendor"
msgstr "相关供应商" msgstr "相关供应商"
#: core/models.py:1087 #: core/models.py:1092
msgid "final price to the customer after markups" msgid "final price to the customer after markups"
msgstr "加价后给客户的最终价格" msgstr "加价后给客户的最终价格"
#: core/models.py:1088 #: core/models.py:1093
msgid "selling price" msgid "selling price"
msgstr "销售价格" msgstr "销售价格"
#: core/models.py:1093 #: core/models.py:1098
msgid "the product associated with this stock entry" msgid "the product associated with this stock entry"
msgstr "与该库存条目相关的产品" msgstr "与该库存条目相关的产品"
#: core/models.py:1101 #: core/models.py:1106
msgid "the price paid to the vendor for this product" msgid "the price paid to the vendor for this product"
msgstr "为该产品支付给供应商的价格" msgstr "为该产品支付给供应商的价格"
#: core/models.py:1102 #: core/models.py:1107
msgid "vendor purchase price" msgid "vendor purchase price"
msgstr "供应商购买价格" msgstr "供应商购买价格"
#: core/models.py:1106 #: core/models.py:1111
msgid "available quantity of the product in stock" msgid "available quantity of the product in stock"
msgstr "产品的可用库存量" msgstr "产品的可用库存量"
#: core/models.py:1107 #: core/models.py:1112
msgid "quantity in stock" msgid "quantity in stock"
msgstr "库存数量" msgstr "库存数量"
#: core/models.py:1111 #: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product" msgid "vendor-assigned SKU for identifying the product"
msgstr "供应商指定的 SKU用于识别产品" msgstr "供应商指定的 SKU用于识别产品"
#: core/models.py:1112 #: core/models.py:1117
msgid "vendor sku" msgid "vendor sku"
msgstr "供应商 SKU" msgstr "供应商 SKU"
#: core/models.py:1118 #: core/models.py:1123
msgid "digital file associated with this stock if applicable" msgid "digital file associated with this stock if applicable"
msgstr "与该库存相关的数字文件(如适用" msgstr "与该库存相关的数字文件(如适用"
#: core/models.py:1119 #: core/models.py:1124
msgid "digital file" msgid "digital file"
msgstr "数字文件" msgstr "数字文件"
#: core/models.py:1128 #: core/models.py:1133
msgid "stock entries" msgid "stock entries"
msgstr "库存条目" msgstr "库存条目"
#: core/models.py:1137 #: core/models.py:1142
msgid "products that the user has marked as wanted" msgid "products that the user has marked as wanted"
msgstr "用户标记为想要的产品" msgstr "用户标记为想要的产品"
#: core/models.py:1145 #: core/models.py:1150
msgid "user who owns this wishlist" msgid "user who owns this wishlist"
msgstr "拥有此愿望清单的用户" msgstr "拥有此愿望清单的用户"
#: core/models.py:1146 #: core/models.py:1151
msgid "wishlist owner" msgid "wishlist owner"
msgstr "心愿单所有者" msgstr "心愿单所有者"
#: core/models.py:1154 #: core/models.py:1159
msgid "wishlist" msgid "wishlist"
msgstr "愿望清单" msgstr "愿望清单"
#: core/models.py:1194 #: core/models.py:1199
msgid "download" msgid "download"
msgstr "下载" msgstr "下载"
#: core/models.py:1195 #: core/models.py:1200
msgid "downloads" msgid "downloads"
msgstr "下载" msgstr "下载"
#: core/models.py:1203 #: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order" msgid "you can not download a digital asset for a non-finished order"
msgstr "您无法下载未完成订单的数字资产" msgstr "您无法下载未完成订单的数字资产"
#: core/models.py:1215 #: core/models.py:1220
msgid "documentary" msgid "documentary"
msgstr "纪录片" msgstr "纪录片"
#: core/models.py:1216 #: core/models.py:1221
msgid "documentaries" msgid "documentaries"
msgstr "纪录片" msgstr "纪录片"
#: core/models.py:1226 #: core/models.py:1231
msgid "unresolved" msgid "unresolved"
msgstr "未解决" msgstr "未解决"

View file

@ -39,8 +39,8 @@ from mptt.models import MPTTModel
from core.abstract import NiceModel from core.abstract import NiceModel
from core.choices import ORDER_PRODUCT_STATUS_CHOICES, ORDER_STATUS_CHOICES from core.choices import ORDER_PRODUCT_STATUS_CHOICES, ORDER_STATUS_CHOICES
from core.errors import NotEnoughMoneyError, DisabledCommerceError from core.errors import DisabledCommerceError, NotEnoughMoneyError
from core.utils import get_product_uuid_as_path, get_random_code, generate_human_readable_id from core.utils import generate_human_readable_id, get_product_uuid_as_path, get_random_code
from core.utils.lists import FAILED_STATUSES from core.utils.lists import FAILED_STATUSES
from core.validators import validate_category_image_dimensions from core.validators import validate_category_image_dimensions
from evibes.settings import CURRENCY_CODE from evibes.settings import CURRENCY_CODE
@ -512,6 +512,11 @@ class Order(NiceModel):
def is_business(self) -> bool: def is_business(self) -> bool:
return self.attributes.get("is_business", False) if self.attributes else False return self.attributes.get("is_business", False) if self.attributes else False
def save(self, **kwargs):
if self.user.orders.filter(status="PENDING").count() > 1 and self.status == "PENDING":
raise ValueError(_("a user must have only one pending order at a time"))
return super().save(**kwargs)
@property @property
def total_price(self) -> float: def total_price(self) -> float:
return ( return (

View file

@ -223,9 +223,14 @@ class OrderViewSet(EvibesViewSet):
@action(detail=False, methods=["get"], url_path="current") @action(detail=False, methods=["get"], url_path="current")
def current(self, request, *_args, **kwargs): def current(self, request, *_args, **kwargs):
if not request.user.is_authenticated:
raise PermissionDenied(permission_denied_message)
order = Order.objects.get(user=request.user, status="PENDING")
if not request.user == order.user:
raise PermissionDenied(permission_denied_message)
return Response( return Response(
status=status.HTTP_200_OK, status=status.HTTP_200_OK,
data=OrderDetailSerializer(Order.objects.filter(user=request.user)).data, data=OrderDetailSerializer(order).data,
) )
@action(detail=True, methods=["post"], url_path="buy") @action(detail=True, methods=["post"], url_path="buy")
@ -377,9 +382,14 @@ class WishlistViewSet(EvibesViewSet):
@action(detail=False, methods=["get"], url_path="current") @action(detail=False, methods=["get"], url_path="current")
def current(self, request, *_args, **kwargs): def current(self, request, *_args, **kwargs):
if not request.user.is_authenticated:
raise PermissionDenied(permission_denied_message)
wishlist = Wishlist.objects.get(user=request.user)
if not request.user == wishlist.user:
raise PermissionDenied(permission_denied_message)
return Response( return Response(
status=status.HTTP_200_OK, status=status.HTTP_200_OK,
data=WishlistDetailSerializer(Wishlist.objects.get(user=request.user)).data, data=WishlistDetailSerializer().data,
) )
@action(detail=True, methods=["post"], url_path="add_wishlist_product") @action(detail=True, methods=["post"], url_path="add_wishlist_product")
@ -396,7 +406,7 @@ class WishlistViewSet(EvibesViewSet):
) )
return Response(status=status.HTTP_200_OK, data=WishlistDetailSerializer(wishlist).data) return Response(status=status.HTTP_200_OK, data=WishlistDetailSerializer(wishlist).data)
except Order.DoesNotExist: except Wishlist.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND) return Response(status=status.HTTP_404_NOT_FOUND)
@action(detail=True, methods=["post"], url_path="remove_wishlist_product") @action(detail=True, methods=["post"], url_path="remove_wishlist_product")
@ -413,7 +423,7 @@ class WishlistViewSet(EvibesViewSet):
) )
return Response(status=status.HTTP_200_OK, data=WishlistDetailSerializer(wishlist).data) return Response(status=status.HTTP_200_OK, data=WishlistDetailSerializer(wishlist).data)
except Order.DoesNotExist: except Wishlist.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND) return Response(status=status.HTTP_404_NOT_FOUND)
@action(detail=True, methods=["post"], url_path="bulk_add_wishlist_product") @action(detail=True, methods=["post"], url_path="bulk_add_wishlist_product")

View file

@ -2,7 +2,7 @@ import logging
from os import getenv from os import getenv
from pathlib import Path from pathlib import Path
EVIBES_VERSION = "2.6.1" EVIBES_VERSION = "2.6.2"
BASE_DIR = Path(__file__).resolve().parent.parent.parent BASE_DIR = Path(__file__).resolve().parent.parent.parent
@ -297,6 +297,8 @@ if getenv("SENTRY_DSN"):
ignore_errors = [ ignore_errors = [
"flower.views.error.NotFoundErrorHandler", "flower.views.error.NotFoundErrorHandler",
"django.http.response.Http404", "django.http.response.Http404",
"django.core.exceptions.PermissionDenied",
"django.core.exceptions.BadRequest",
"billiard.exceptions.SoftTimeLimitExceeded", "billiard.exceptions.SoftTimeLimitExceeded",
"core.models.Attribute.DoesNotExist", "core.models.Attribute.DoesNotExist",
"core.models.AttributeGroup.DoesNotExist", "core.models.AttributeGroup.DoesNotExist",

View file

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "eVibes" name = "eVibes"
version = "2.6.1" version = "2.6.2"
description = "eVibes is an open-source eCommerce backend service built with Django. Its 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." description = "eVibes is an open-source eCommerce backend service built with Django. Its 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 <contact@fureunoir.com>"] authors = ["fureunoir <contact@fureunoir.com>"]
readme = "README.md" readme = "README.md"

View file

View file

View file

@ -0,0 +1,70 @@
from django.utils.translation import gettext_lazy as _
from drf_spectacular.utils import extend_schema, inline_serializer
from rest_framework import serializers, status
from core.docs.drf import error
from vibes_auth.serializers import (
TokenObtainPairSerializer,
TokenRefreshSerializer,
TokenVerifySerializer,
UserSerializer,
)
TOKEN_OBTAIN_SCHEMA = {
"post": extend_schema(
summary=_("obtain a token pair"),
description=_("obtain a token pair (refresh and access) for authentication."),
request=TokenObtainPairSerializer,
responses={
status.HTTP_200_OK: inline_serializer(
"TokenObtain",
fields={
"refresh": serializers.CharField(),
"access": serializers.CharField(),
"user": UserSerializer(),
},
),
status.HTTP_400_BAD_REQUEST: error,
status.HTTP_401_UNAUTHORIZED: error,
},
)
}
TOKEN_REFRESH_SCHEMA = {
"post": extend_schema(
summary=_("refresh a token pair"),
description=_("refresh a token pair (refresh and access)."),
request=TokenRefreshSerializer,
responses={
status.HTTP_200_OK: inline_serializer(
"TokenRefreshResponse",
fields={
"refresh": serializers.CharField(),
"access": serializers.CharField(),
"user": UserSerializer(),
},
),
status.HTTP_400_BAD_REQUEST: error,
status.HTTP_401_UNAUTHORIZED: error,
},
)
}
TOKEN_VERIFY_SCHEMA = {
"post": extend_schema(
summary=_("verify a token"),
description=_("Verify a token (refresh or access)."),
request=TokenVerifySerializer,
responses={
status.HTTP_200_OK: inline_serializer(
"TokenVerifyResponse",
fields={
"token": serializers.CharField(choices=["valid", "no valid"]),
"user": UserSerializer(),
},
),
status.HTTP_400_BAD_REQUEST: error,
status.HTTP_401_UNAUTHORIZED: error,
},
)
}

View file

@ -0,0 +1,66 @@
from django.utils.translation import gettext_lazy as _
from drf_spectacular.utils import extend_schema
from rest_framework import status
from core.docs.drf import BASE_ERRORS
from vibes_auth.serializers import (
ActivateEmailSerializer,
ConfirmPasswordResetSerializer,
ResetPasswordSerializer,
UserSerializer,
)
USER_SCHEMA = {
"create": extend_schema(
summary=_("create a new user"),
responses={status.HTTP_201_CREATED: UserSerializer, **BASE_ERRORS},
),
"retrieve": extend_schema(
summary=_("retrieve a user's details"),
responses={status.HTTP_200_OK: UserSerializer, **BASE_ERRORS},
),
"update": extend_schema(
summary=_("update a user's details"),
request=UserSerializer,
responses={status.HTTP_200_OK: UserSerializer}, **BASE_ERRORS,
),
"destroy": extend_schema(
summary=_("delete a user"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"reset_password": extend_schema(
summary=_("reset a user's password by sending a reset password email"),
request=ResetPasswordSerializer,
responses={
status.HTTP_200_OK: {},
**BASE_ERRORS
},
),
"upload_avatar": extend_schema(
summary=_("handle avatar upload for a user"),
responses={
status.HTTP_200_OK: UserSerializer,
status.HTTP_400_BAD_REQUEST: {"description": "Invalid Request"},
status.HTTP_403_FORBIDDEN: {"description": "Bad credentials"},
**BASE_ERRORS
},
),
"confirm_password_reset": extend_schema(
summary=_("confirm a user's password reset"),
request=ConfirmPasswordResetSerializer,
responses={
status.HTTP_200_OK: {"description": "Password reset successfully"},
status.HTTP_400_BAD_REQUEST: {"description": _("passwords do not match")},
**BASE_ERRORS
},
),
"activate": extend_schema(
summary=_("activate a user's account"),
request=ActivateEmailSerializer,
responses={
status.HTTP_200_OK: UserSerializer,
status.HTTP_400_BAD_REQUEST: {"description": _("activation link is invalid or account already activated")},
**BASE_ERRORS
},
),
}

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: ar-AR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,73 @@ msgstr "معلومات إضافية"
msgid "authentication" msgid "authentication"
msgstr "المصادقة" msgstr "المصادقة"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "الحصول على زوج رمزي"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "الحصول على زوج رمز مميز (التحديث والوصول) للمصادقة."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "تحديث زوج من الرمز المميز"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "تحديث زوج الرموز (التحديث والوصول)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "التحقق من الرمز المميز"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "التحقق من الرمز المميز (التحديث أو الوصول)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "إنشاء مستخدم جديد"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "استرداد تفاصيل المستخدم"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "تحديث تفاصيل المستخدم"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "حذف مستخدم"
#: vibes_auth/docs/drf/viewsets.py:32
msgid "reset a user's password by sending a reset password email"
msgstr ""
"إعادة تعيين كلمة مرور المستخدم عن طريق إرسال بريد إلكتروني لإعادة تعيين كلمة"
" المرور"
#: vibes_auth/docs/drf/viewsets.py:40
msgid "handle avatar upload for a user"
msgstr "التعامل مع تحميل الصورة الرمزية للمستخدم"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "تأكيد إعادة تعيين كلمة مرور المستخدم"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "كلمات المرور غير متطابقة"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "تنشيط حساب مستخدم"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "رابط التفعيل غير صالح أو أن الحساب مفعل بالفعل"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "معرّف المستخدم الذي تم ترميزه بـ b64 الذي أحال المستخدم الجديد إلينا." msgstr "معرّف المستخدم الذي تم ترميزه بـ b64 الذي أحال المستخدم الجديد إلينا."
@ -74,7 +136,8 @@ msgstr "رقم هاتف مشوّه: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "تنسيق السمة غير صالح: {attribute_pair}" msgstr "تنسيق السمة غير صالح: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "رابط التفعيل غير صالح!" msgstr "رابط التفعيل غير صالح!"
@ -86,11 +149,7 @@ msgstr "تم تفعيل الحساب بالفعل..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "حدث خطأ ما: {e!s}" msgstr "حدث خطأ ما: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "كلمات المرور غير متطابقة"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "الرمز غير صالح!" msgstr "الرمز غير صالح!"
@ -345,3 +404,19 @@ msgid ""
msgstr "" msgstr ""
"تنسيق رقم الهاتف غير صالح. يجب إدخال الرقم بالصيغة: \"+999999999\". يُسمح " "تنسيق رقم الهاتف غير صالح. يجب إدخال الرقم بالصيغة: \"+999999999\". يُسمح "
"بإدخال 15 رقماً كحد أقصى." "بإدخال 15 رقماً كحد أقصى."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "الرمز المميز صالح"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "الرمز المميز غير صالح"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "تمت إعادة تعيين كلمة المرور بنجاح!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "لقد قمت بتفعيل الحساب بالفعل..."

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: cs-CZ\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,71 @@ msgstr "Další informace"
msgid "authentication" msgid "authentication"
msgstr "Ověřování" msgstr "Ověřování"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Získání páru tokenů"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "Získat pár tokenů (obnovení a přístup) pro ověření."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Obnovení páru tokenů"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Obnovení dvojice tokenů (obnovení a přístup)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Ověření tokenu"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Ověření tokenu (obnovení nebo přístup)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Vytvoření nového uživatele"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Získání údajů o uživateli"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Aktualizace údajů uživatele"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Odstranění uživatele"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
msgid "handle avatar upload for a user"
msgstr "Zpracování nahrávání avataru pro uživatele"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Potvrzení obnovení hesla uživatele"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Hesla se neshodují"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Aktivace účtu uživatele"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "Aktivační odkaz je neplatný nebo je účet již aktivován"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "Uuid uživatele s kódem b64, který nám nového uživatele doporučil." msgstr "Uuid uživatele s kódem b64, který nám nového uživatele doporučil."
@ -74,7 +134,8 @@ msgstr "Chybně zadané telefonní číslo: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Nesprávný formát atributu: {attribute_pair}" msgstr "Nesprávný formát atributu: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Aktivační odkaz je neplatný!" msgstr "Aktivační odkaz je neplatný!"
@ -86,11 +147,7 @@ msgstr "Účet byl již aktivován..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Něco se pokazilo: {e!s}" msgstr "Něco se pokazilo: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Hesla se neshodují"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token je neplatný!" msgstr "Token je neplatný!"
@ -311,8 +368,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující " "Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující adresu URL\n"
"adresu URL\n"
" do webového prohlížeče:" " do webového prohlížeče:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -346,3 +402,19 @@ msgid ""
msgstr "" msgstr ""
"Nesprávný formát telefonního čísla. Číslo musí být zadáno ve formátu: " "Nesprávný formát telefonního čísla. Číslo musí být zadáno ve formátu: "
"\"+999999999\". Povoleno je až 15 číslic." "\"+999999999\". Povoleno je až 15 číslic."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "Token je platný"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "Token je neplatný"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "Heslo bylo úspěšně resetováno!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "Účet jste již aktivovali..."

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: da-DK\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,73 @@ msgstr "Yderligere information"
msgid "authentication" msgid "authentication"
msgstr "Autentificering" msgstr "Autentificering"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Få et token-par"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "Hent et tokenpar (refresh og access) til autentificering."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Opdater et token-par"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Opdater et tokenpar (refresh og access)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Bekræft et token"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Bekræft et token (opdatering eller adgang)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Opret en ny bruger"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Hent oplysninger om en bruger"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Opdater en brugers oplysninger"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Slet en bruger"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
msgid "handle avatar upload for a user"
msgstr "Håndter upload af avatar for en bruger"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Bekræft nulstilling af en brugers adgangskode"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Adgangskoderne stemmer ikke overens"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Aktivér en brugers konto"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "Aktiveringslinket er ugyldigt, eller kontoen er allerede aktiveret"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "Brugerens b64-kodede uuid, som henviste den nye bruger til os." msgstr "Brugerens b64-kodede uuid, som henviste den nye bruger til os."
@ -74,7 +136,8 @@ msgstr "Misdannet telefonnummer: {phone_number}."
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Ugyldigt attributformat: {attribute_pair}" msgstr "Ugyldigt attributformat: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Aktiveringslinket er ugyldigt!" msgstr "Aktiveringslinket er ugyldigt!"
@ -86,11 +149,7 @@ msgstr "Kontoen er allerede aktiveret..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Noget gik galt: {e!s}" msgstr "Noget gik galt: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Adgangskoderne stemmer ikke overens"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token er ugyldig!" msgstr "Token er ugyldig!"
@ -312,8 +371,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende " "Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende URL\n"
"URL\n"
" i din webbrowser:" " i din webbrowser:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -347,3 +405,19 @@ msgid ""
msgstr "" msgstr ""
"Ugyldigt telefonnummerformat. Nummeret skal indtastes i formatet: " "Ugyldigt telefonnummerformat. Nummeret skal indtastes i formatet: "
"\"+999999999\". Op til 15 cifre er tilladt." "\"+999999999\". Op til 15 cifre er tilladt."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "Tokenet er gyldigt"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "Tokenet er ugyldigt"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "Adgangskoden er blevet nulstillet med succes!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "Du har allerede aktiveret kontoen..."

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: de-DE\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,74 @@ msgstr "Zusätzliche Informationen"
msgid "authentication" msgid "authentication"
msgstr "Authentifizierung" msgstr "Authentifizierung"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Erhalten Sie ein Token-Paar"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr ""
"Beziehen Sie ein Token-Paar (Refresh und Access) für die Authentifizierung."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Ein Token-Paar aktualisieren"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Auffrischen eines Tokenpaares (Refresh und Access)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Überprüfen eines Tokens"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Überprüfen eines Tokens (Aktualisierung oder Zugriff)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Einen neuen Benutzer anlegen"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Abrufen der Details eines Benutzers"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Aktualisieren der Benutzerdaten"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Einen Benutzer löschen"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
msgid "handle avatar upload for a user"
msgstr "Avatar-Upload für einen Benutzer verwalten"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Bestätigen Sie das Zurücksetzen des Passworts eines Benutzers"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Passwörter stimmen nicht überein"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Aktivieren eines Benutzerkontos"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "Aktivierungslink ist ungültig oder Konto bereits aktiviert"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
@ -76,7 +139,8 @@ msgstr "Fehlerhafte Telefonnummer: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Ungültiges Attributformat: {attribute_pair}" msgstr "Ungültiges Attributformat: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Der Aktivierungslink ist ungültig!" msgstr "Der Aktivierungslink ist ungültig!"
@ -88,11 +152,7 @@ msgstr "Das Konto wurde bereits aktiviert..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Etwas ist schief gelaufen: {e!s}" msgstr "Etwas ist schief gelaufen: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Passwörter stimmen nicht überein"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token ist ungültig!" msgstr "Token ist ungültig!"
@ -276,8 +336,8 @@ msgstr ""
#: vibes_auth/templates/user_reset_password_email.html:88 #: vibes_auth/templates/user_reset_password_email.html:88
msgid "if you did not send this request, please ignore this email." msgid "if you did not send this request, please ignore this email."
msgstr "" msgstr ""
"Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese E-" "Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese "
"Mail." "E-Mail."
#: vibes_auth/templates/user_reset_password_email.html:89 #: vibes_auth/templates/user_reset_password_email.html:89
#, python-format #, python-format
@ -316,8 +376,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die " "Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die folgende URL und fügen Sie sie in Ihren Browser ein\n"
"folgende URL und fügen Sie sie in Ihren Browser ein\n"
" in Ihren Webbrowser ein:" " in Ihren Webbrowser ein:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -351,3 +410,19 @@ msgid ""
msgstr "" msgstr ""
"Ungültiges Telefonnummernformat. Die Nummer muss in dem Format eingegeben " "Ungültiges Telefonnummernformat. Die Nummer muss in dem Format eingegeben "
"werden: \"+999999999\". Bis zu 15 Ziffern sind erlaubt." "werden: \"+999999999\". Bis zu 15 Ziffern sind erlaubt."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "Das Token ist gültig"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "Das Token ist ungültig"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "Das Passwort wurde erfolgreich zurückgesetzt!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "Sie haben das Konto bereits aktiviert..."

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -51,6 +51,71 @@ msgstr "Additional Info"
msgid "authentication" msgid "authentication"
msgstr "Authentication" msgstr "Authentication"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Obtain a token pair"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "Obtain a token pair (refresh and access) for authentication."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Refresh a token pair"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Refresh a token pair (refresh and access)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Verify a token"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Verify a token (refresh or access)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Create a new user"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Retrieve a user's details"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Update a user's details"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Delete a user"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
msgid "handle avatar upload for a user"
msgstr "Handle avatar upload for a user"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Confirm a user's password reset"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Passwords do not match"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Activate a user's account"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "Activation link is invalid or account already activated"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "The user's b64-encoded uuid who referred the new user to us." msgstr "The user's b64-encoded uuid who referred the new user to us."
@ -74,7 +139,8 @@ msgstr "Malformed phone number: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Invalid attribute format: {attribute_pair}" msgstr "Invalid attribute format: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Activation link is invalid!" msgstr "Activation link is invalid!"
@ -86,11 +152,7 @@ msgstr "Account has been already activated..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Something went wrong: {e!s}" msgstr "Something went wrong: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Passwords do not match"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token is invalid!" msgstr "Token is invalid!"
@ -345,3 +407,19 @@ msgid ""
msgstr "" msgstr ""
"Invalid phone number format. The number must be entered in the format: " "Invalid phone number format. The number must be entered in the format: "
"\"+999999999\". Up to 15 digits allowed." "\"+999999999\". Up to 15 digits allowed."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "The token is valid"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "The token is invalid"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "Password has been reset successfully!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "You have already activated the account..."

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: en-US\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,71 @@ msgstr "Additional Info"
msgid "authentication" msgid "authentication"
msgstr "Authentication" msgstr "Authentication"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Obtain a token pair"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "Obtain a token pair (refresh and access) for authentication."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Refresh a token pair"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Refresh a token pair (refresh and access)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Verify a token"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Verify a token (refresh or access)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Create a new user"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Retrieve a user's details"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Update a user's details"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Delete a user"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
msgid "handle avatar upload for a user"
msgstr "Handle avatar upload for a user"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Confirm a user's password reset"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Passwords do not match"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Activate a user's account"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "Activation link is invalid or account already activated"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "The user's b64-encoded uuid who referred the new user to us." msgstr "The user's b64-encoded uuid who referred the new user to us."
@ -74,7 +134,8 @@ msgstr "Malformed phone number: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Invalid attribute format: {attribute_pair}" msgstr "Invalid attribute format: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Activation link is invalid!" msgstr "Activation link is invalid!"
@ -86,11 +147,7 @@ msgstr "Account has been already activated..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Something went wrong: {e!s}" msgstr "Something went wrong: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Passwords do not match"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token is invalid!" msgstr "Token is invalid!"
@ -345,3 +402,19 @@ msgid ""
msgstr "" msgstr ""
"Invalid phone number format. The number must be entered in the format: " "Invalid phone number format. The number must be entered in the format: "
"\"+999999999\". Up to 15 digits allowed." "\"+999999999\". Up to 15 digits allowed."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "The token is valid"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "The token is invalid"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "Password has been reset successfully!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "You have already activated the account..."

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: es-ES\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,73 @@ msgstr "Información adicional"
msgid "authentication" msgid "authentication"
msgstr "Autenticación" msgstr "Autenticación"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Obtener un par de fichas"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "Obtener un par de tokens (refresco y acceso) para la autenticación."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Actualizar un par de fichas"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Refrescar un par de fichas (refrescar y acceder)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Verificar un token"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Verificar un token (actualización o acceso)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Crear un nuevo usuario"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Recuperar los datos de un usuario"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Actualizar los datos de un usuario"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Eliminar un usuario"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
msgid "handle avatar upload for a user"
msgstr "Gestionar la subida de avatares de un usuario"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Confirmar el restablecimiento de la contraseña de un usuario"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Las contraseñas no coinciden"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Activar la cuenta de un usuario"
#: vibes_auth/docs/drf/viewsets.py:62
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/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
@ -75,7 +137,8 @@ msgstr "Número de teléfono malformado: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Formato de atributo no válido: {attribute_pair}" msgstr "Formato de atributo no válido: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "El enlace de activación no es válido." msgstr "El enlace de activación no es válido."
@ -87,11 +150,7 @@ msgstr "La cuenta ya ha sido activada..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Algo salió mal: {e!s}." msgstr "Algo salió mal: {e!s}."
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Las contraseñas no coinciden"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "¡La ficha no es válida!" msgstr "¡La ficha no es válida!"
@ -346,3 +405,19 @@ msgid ""
msgstr "" msgstr ""
"Formato de número de teléfono no válido. El número debe introducirse con el " "Formato de número de teléfono no válido. El número debe introducirse con el "
"formato \"+999999999\". Se permiten hasta 15 dígitos." "formato \"+999999999\". Se permiten hasta 15 dígitos."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "El token es válido"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "El token no es válido"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "La contraseña se ha restablecido correctamente."
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "Ya ha activado la cuenta..."

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: fr-FR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,75 @@ msgstr "Informations complémentaires"
msgid "authentication" msgid "authentication"
msgstr "Authentification" msgstr "Authentification"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Obtenir une paire de jetons"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr ""
"Obtenir une paire de jetons (rafraîchissement et accès) pour "
"l'authentification."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Rafraîchir une paire de jetons"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Rafraîchir une paire de jetons (rafraîchir et accéder)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Vérifier un jeton"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Vérifier un jeton (rafraîchissement ou accès)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Créer un nouvel utilisateur"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Récupérer les données d'un utilisateur"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Mettre à jour les coordonnées d'un utilisateur"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Supprimer un utilisateur"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
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:49
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:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Les mots de passe ne correspondent pas"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Activer le compte d'un utilisateur"
#: vibes_auth/docs/drf/viewsets.py:62
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/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
@ -76,7 +140,8 @@ msgstr "Numéro de téléphone malformé : {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Format d'attribut non valide : {attribute_pair}" msgstr "Format d'attribut non valide : {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Le lien d'activation n'est pas valide !" msgstr "Le lien d'activation n'est pas valide !"
@ -88,11 +153,7 @@ msgstr "Le compte a déjà été activé..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Quelque chose a mal tourné : {e!s}" msgstr "Quelque chose a mal tourné : {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Les mots de passe ne correspondent pas"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Le jeton n'est pas valide !" msgstr "Le jeton n'est pas valide !"
@ -230,7 +291,8 @@ msgstr "Jeton non valide"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:196
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "Aucune revendication d'uuid d'utilisateur n'est présente dans le jeton" msgstr ""
"Aucune revendication d'uuid d'utilisateur n'est présente dans le jeton"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:198
msgid "user does not exist" msgid "user does not exist"
@ -278,7 +340,8 @@ msgstr ""
#: vibes_auth/templates/user_reset_password_email.html:88 #: vibes_auth/templates/user_reset_password_email.html:88
msgid "if you did not send this request, please ignore this email." msgid "if you did not send this request, please ignore this email."
msgstr "Si vous n'avez pas envoyé cette demande, veuillez ignorer ce courriel." msgstr ""
"Si vous n'avez pas envoyé cette demande, veuillez ignorer ce courriel."
#: vibes_auth/templates/user_reset_password_email.html:89 #: vibes_auth/templates/user_reset_password_email.html:89
#, python-format #, python-format
@ -317,8 +380,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL " "Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL suivante\n"
"suivante\n"
" suivante dans votre navigateur web :" " suivante dans votre navigateur web :"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -352,3 +414,19 @@ msgid ""
msgstr "" msgstr ""
"Format de numéro de téléphone non valide. Le numéro doit être saisi au " "Format de numéro de téléphone non valide. Le numéro doit être saisi au "
"format : \"+999999999\". Un maximum de 15 chiffres est autorisé." "format : \"+999999999\". Un maximum de 15 chiffres est autorisé."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "Le jeton est valide"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "Le jeton n'est pas valide"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "Le mot de passe a été réinitialisé avec succès !"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "Vous avez déjà activé le compte..."

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -50,6 +50,71 @@ msgstr ""
msgid "authentication" msgid "authentication"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr ""
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr ""
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr ""
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr ""
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr ""
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:32
msgid "reset a user's password by sending a reset password email"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:40
msgid "handle avatar upload for a user"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr ""
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
@ -73,7 +138,8 @@ msgstr ""
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "" msgstr ""
@ -85,11 +151,7 @@ msgstr ""
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr ""
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "" msgstr ""
@ -332,3 +394,19 @@ msgid ""
"invalid phone number format. the number must be entered in the format: " "invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed." "\"+999999999\". up to 15 digits allowed."
msgstr "" msgstr ""
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr ""
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr ""
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr ""
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr ""

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: it-IT\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,74 @@ msgstr "Ulteriori informazioni"
msgid "authentication" msgid "authentication"
msgstr "Autenticazione" msgstr "Autenticazione"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Ottenere una coppia di token"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr ""
"Ottenere una coppia di token (aggiornamento e accesso) per l'autenticazione."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Aggiornare una coppia di token"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Aggiorna una coppia di token (refresh e access)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Verifica di un token"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Verifica di un token (aggiornamento o accesso)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Creare un nuovo utente"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Recuperare i dettagli di un utente"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Aggiornare i dettagli di un utente"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Eliminare un utente"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
msgid "handle avatar upload for a user"
msgstr "Gestire il caricamento dell'avatar per un utente"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Confermare la reimpostazione della password di un utente"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Le password non corrispondono"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Attivare l'account di un utente"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "Il link di attivazione non è valido o l'account è già stato attivato."
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "L'uuid b64-encoded dell'utente che ci ha segnalato il nuovo utente." msgstr "L'uuid b64-encoded dell'utente che ci ha segnalato il nuovo utente."
@ -74,7 +137,8 @@ msgstr "Numero di telefono malformato: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Formato attributo non valido: {attribute_pair}" msgstr "Formato attributo non valido: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Il link di attivazione non è valido!" msgstr "Il link di attivazione non è valido!"
@ -86,11 +150,7 @@ msgstr "L'account è già stato attivato..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Qualcosa è andato storto: {e!s}" msgstr "Qualcosa è andato storto: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Le password non corrispondono"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Il gettone non è valido!" msgstr "Il gettone non è valido!"
@ -347,3 +407,19 @@ msgid ""
msgstr "" msgstr ""
"Formato del numero di telefono non valido. Il numero deve essere inserito " "Formato del numero di telefono non valido. Il numero deve essere inserito "
"nel formato: \"+999999999\". Sono consentite fino a 15 cifre." "nel formato: \"+999999999\". Sono consentite fino a 15 cifre."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "Il token è valido"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "Il token non è valido"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "La password è stata reimpostata con successo!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "Avete già attivato l'account..."

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: ja-JP\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,71 @@ msgstr "追加情報"
msgid "authentication" msgid "authentication"
msgstr "認証" msgstr "認証"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "トークン・ペアの取得"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "認証用のトークンペア(リフレッシュとアクセス)を取得する。"
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "トークン・ペアのリフレッシュ"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "トークン・ペアをリフレッシュする(リフレッシュとアクセス)。"
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "トークンの検証"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "トークンを確認する(リフレッシュまたはアクセス)。"
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "新規ユーザーの作成"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "ユーザーの詳細を取得する"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "ユーザー情報の更新"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "ユーザーを削除する"
#: vibes_auth/docs/drf/viewsets.py:32
msgid "reset a user's password by sending a reset password email"
msgstr "パスワード再設定メールを送信して、ユーザーのパスワードを再設定する。"
#: vibes_auth/docs/drf/viewsets.py:40
msgid "handle avatar upload for a user"
msgstr "ユーザーのアバターアップロードを処理する"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "ユーザーのパスワード・リセットを確認する"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "パスワードが一致しない"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "ユーザーアカウントの有効化"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "アクティベーションリンクが無効であるか、アカウントがすでにアクティベーションされています。"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "新規ユーザーを紹介したユーザーのb64エンコードされたuuid。" msgstr "新規ユーザーを紹介したユーザーのb64エンコードされたuuid。"
@ -74,7 +134,8 @@ msgstr "不正な電話番号:{phone_number}。"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "無効な属性形式です:{attribute_pair}。" msgstr "無効な属性形式です:{attribute_pair}。"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "アクティベーションリンクが無効です!" msgstr "アクティベーションリンクが無効です!"
@ -86,11 +147,7 @@ msgstr "アカウントはすでに有効になっています..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "何かが間違っていた:{e!s}" msgstr "何かが間違っていた:{e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "パスワードが一致しない"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "トークンが無効です!" msgstr "トークンが無効です!"
@ -254,9 +311,7 @@ msgstr "こんにちは、%(user_first_name)sです、"
msgid "" msgid ""
"we have received a request to reset your password. please reset your " "we have received a request to reset your password. please reset your "
"password by clicking the button below:" "password by clicking the button below:"
msgstr "" msgstr "パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワードをリセットしてください:"
"パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワー"
"ドをリセットしてください:"
#: vibes_auth/templates/user_reset_password_email.html:84 #: vibes_auth/templates/user_reset_password_email.html:84
msgid "reset password" msgid "reset password"
@ -266,9 +321,7 @@ msgstr "パスワードのリセット"
msgid "" msgid ""
"if the button above does not work, please copy and paste the following URL " "if the button above does not work, please copy and paste the following URL "
"into your web browser:" "into your web browser:"
msgstr "" msgstr "上記のボタンが機能しない場合は、以下のURLをコピーしてウェブブラウザに貼り付けてください"
"上記のボタンが機能しない場合は、以下のURLをコピーしてウェブブラウザに貼り付け"
"てください:"
#: vibes_auth/templates/user_reset_password_email.html:88 #: vibes_auth/templates/user_reset_password_email.html:88
msgid "if you did not send this request, please ignore this email." msgid "if you did not send this request, please ignore this email."
@ -294,9 +347,7 @@ msgstr "アカウントの有効化"
msgid "" msgid ""
"thank you for signing up for %(project_name)s. please activate your account " "thank you for signing up for %(project_name)s. please activate your account "
"by clicking the button below:" "by clicking the button below:"
msgstr "" msgstr "%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックしてアカウントを有効にしてください"
"%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックし"
"てアカウントを有効にしてください:"
#: vibes_auth/templates/user_verification_email.html:95 #: vibes_auth/templates/user_verification_email.html:95
msgid "" msgid ""
@ -311,8 +362,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けて" "上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けてください。\n"
"ください。\n"
" をウェブブラウザに貼り付けてください:" " をウェブブラウザに貼り付けてください:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -343,6 +393,20 @@ msgstr "{config.PROJECT_NAME}。| パスワードのリセット"
msgid "" msgid ""
"invalid phone number format. the number must be entered in the format: " "invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed." "\"+999999999\". up to 15 digits allowed."
msgstr "" msgstr "電話番号の形式が無効です。電話番号は次の形式で入力してください:\"+999999999\".15桁まで入力可能です。"
"電話番号の形式が無効です。電話番号は次の形式で入力してください:"
"\"+999999999\".15桁まで入力可能です。" #: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "トークンは有効です"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "トークンが無効"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "パスワードのリセットに成功しました!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "あなたはすでにアカウントを有効にしています..."

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -50,6 +50,71 @@ msgstr ""
msgid "authentication" msgid "authentication"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr ""
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr ""
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr ""
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr ""
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr ""
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:32
msgid "reset a user's password by sending a reset password email"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:40
msgid "handle avatar upload for a user"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr ""
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr ""
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
@ -73,7 +138,8 @@ msgstr ""
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "" msgstr ""
@ -85,11 +151,7 @@ msgstr ""
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr ""
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "" msgstr ""
@ -332,3 +394,19 @@ msgid ""
"invalid phone number format. the number must be entered in the format: " "invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed." "\"+999999999\". up to 15 digits allowed."
msgstr "" msgstr ""
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr ""
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr ""
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr ""
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr ""

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: nl-NL\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,73 @@ msgstr "Extra info"
msgid "authentication" msgid "authentication"
msgstr "Authenticatie" msgstr "Authenticatie"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Een tokenpaar verkrijgen"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "Verkrijg een tokenpaar (refresh en access) voor verificatie."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Een tokenpaar vernieuwen"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Een tokenpaar verversen (refresh en access)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Een token verifiëren"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Een token verifiëren (verversen of toegang)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Een nieuwe gebruiker maken"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "De gegevens van een gebruiker ophalen"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "De gegevens van een gebruiker bijwerken"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Een gebruiker verwijderen"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
msgid "handle avatar upload for a user"
msgstr "Avatar uploaden voor een gebruiker afhandelen"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Bevestig het resetten van het wachtwoord van een gebruiker"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Wachtwoorden komen niet overeen"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Een gebruikersaccount activeren"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "Activeringslink is ongeldig of account is al geactiveerd"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
@ -76,7 +138,8 @@ msgstr "Misvormd telefoonnummer: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Ongeldig attribuutformaat: {attribute_pair}" msgstr "Ongeldig attribuutformaat: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Activeringslink is ongeldig!" msgstr "Activeringslink is ongeldig!"
@ -88,11 +151,7 @@ msgstr "Account is al geactiveerd..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Er ging iets mis: {e!s}" msgstr "Er ging iets mis: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Wachtwoorden komen niet overeen"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token is invalid!" msgstr "Token is invalid!"
@ -347,3 +406,19 @@ msgid ""
msgstr "" msgstr ""
"Ongeldig formaat telefoonnummer. Het nummer moet worden ingevoerd in de " "Ongeldig formaat telefoonnummer. Het nummer moet worden ingevoerd in de "
"indeling: \"+999999999\". Maximaal 15 cijfers toegestaan." "indeling: \"+999999999\". Maximaal 15 cijfers toegestaan."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "The token is valid"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "Het token is ongeldig"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "Wachtwoord is succesvol gereset!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "Je hebt de account al geactiveerd..."

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -46,6 +46,74 @@ msgstr "Dodatkowe informacje"
msgid "authentication" msgid "authentication"
msgstr "Uwierzytelnianie" msgstr "Uwierzytelnianie"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Uzyskanie pary tokenów"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr ""
"Uzyskanie pary tokenów (odświeżenie i dostęp) w celu uwierzytelnienia."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Odśwież parę tokenów"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Odświeżenie pary tokenów (odświeżenie i dostęp)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Weryfikacja tokena"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Weryfikacja tokena (odświeżenie lub dostęp)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Tworzenie nowego użytkownika"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Pobieranie danych użytkownika"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Aktualizacja danych użytkownika"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Usuwanie użytkownika"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
msgid "handle avatar upload for a user"
msgstr "Obsługa przesyłania awatara dla użytkownika"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Potwierdzenie zresetowania hasła użytkownika"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Hasła nie są zgodne"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Aktywacja konta użytkownika"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "Link aktywacyjny jest nieprawidłowy lub konto zostało już aktywowane."
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
@ -71,7 +139,8 @@ msgstr "Zniekształcony numer telefonu: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Nieprawidłowy format atrybutu: {attribute_pair}" msgstr "Nieprawidłowy format atrybutu: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Link aktywacyjny jest nieprawidłowy!" msgstr "Link aktywacyjny jest nieprawidłowy!"
@ -83,11 +152,7 @@ msgstr "Konto zostało już aktywowane..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Coś poszło nie tak: {e!s}" msgstr "Coś poszło nie tak: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Hasła nie są zgodne"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token jest nieprawidłowy!" msgstr "Token jest nieprawidłowy!"
@ -342,3 +407,19 @@ msgid ""
msgstr "" msgstr ""
"Nieprawidłowy format numeru telefonu. Numer musi być wprowadzony w formacie:" "Nieprawidłowy format numeru telefonu. Numer musi być wprowadzony w formacie:"
" \"+999999999\". Dozwolone do 15 cyfr." " \"+999999999\". Dozwolone do 15 cyfr."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "Token jest ważny"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "Token jest nieprawidłowy"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "Hasło zostało pomyślnie zresetowane!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "Konto zostało już aktywowane..."

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: pt-BR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,72 @@ msgstr "Informações adicionais"
msgid "authentication" msgid "authentication"
msgstr "Autenticação" msgstr "Autenticação"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Obter um par de tokens"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "Obter um par de tokens (atualização e acesso) para autenticação."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Atualizar um par de tokens"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Atualizar um par de tokens (atualizar e acessar)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Verificar um token"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Verificar um token (atualização ou acesso)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Criar um novo usuário"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Recuperar os detalhes de um usuário"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Atualizar os detalhes de um usuário"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Excluir um usuário"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
msgid "handle avatar upload for a user"
msgstr "Manipular o upload do avatar de um usuário"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Confirmar a redefinição de senha de um usuário"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "As senhas não correspondem"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Ativar a conta de um usuário"
#: vibes_auth/docs/drf/viewsets.py:62
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/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "O uuid codificado em b64 do usuário que nos indicou o novo usuário." msgstr "O uuid codificado em b64 do usuário que nos indicou o novo usuário."
@ -74,7 +135,8 @@ msgstr "Número de telefone malformado: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Formato de atributo inválido: {attribute_pair}" msgstr "Formato de atributo inválido: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "O link de ativação é inválido!" msgstr "O link de ativação é inválido!"
@ -86,11 +148,7 @@ msgstr "A conta já foi ativada..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Algo deu errado: {e!s}" msgstr "Algo deu errado: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "As senhas não correspondem"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "O token é inválido!" msgstr "O token é inválido!"
@ -345,3 +403,19 @@ msgid ""
msgstr "" msgstr ""
"Formato de número telefônico inválido. O número deve ser inserido no " "Formato de número telefônico inválido. O número deve ser inserido no "
"formato: \"+999999999\". São permitidos até 15 dígitos." "formato: \"+999999999\". São permitidos até 15 dígitos."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "O token é válido"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "O token é inválido"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "A senha foi redefinida com sucesso!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "Você já ativou a conta..."

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: ro-RO\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,74 @@ msgstr "Informații suplimentare"
msgid "authentication" msgid "authentication"
msgstr "Autentificare" msgstr "Autentificare"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Obțineți o pereche de jetoane"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr ""
"Obțineți o pereche de jetoane (refresh și access) pentru autentificare."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Reîmprospătați o pereche de jetoane"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Actualizați o pereche de jetoane (actualizare și acces)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Verificarea unui jeton"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Verificarea unui jeton (reîmprospătare sau acces)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Creați un utilizator nou"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Recuperarea detaliilor unui utilizator"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Actualizarea detaliilor unui utilizator"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Ștergeți un utilizator"
#: vibes_auth/docs/drf/viewsets.py:32
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:40
msgid "handle avatar upload for a user"
msgstr "Gestionarea încărcării avatarului pentru un utilizator"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Confirmați resetarea parolei unui utilizator"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Parolele nu se potrivesc"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Activați contul unui utilizator"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "Linkul de activare este invalid sau contul este deja activat"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
@ -75,7 +138,8 @@ msgstr "Număr de telefon malformat: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Format de atribut invalid: {attribute_pair}" msgstr "Format de atribut invalid: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Linkul de activare este invalid!" msgstr "Linkul de activare este invalid!"
@ -87,11 +151,7 @@ msgstr "Contul a fost deja activat..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Ceva nu a mers bine: {e!s}" msgstr "Ceva nu a mers bine: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Parolele nu se potrivesc"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token-ul nu este valabil!" msgstr "Token-ul nu este valabil!"
@ -312,8 +372,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți " "Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți următoarea adresă URL\n"
"următoarea adresă URL\n"
" în browserul dvs. web:" " în browserul dvs. web:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -347,3 +406,19 @@ msgid ""
msgstr "" msgstr ""
"Format invalid al numărului de telefon. Numărul trebuie să fie introdus în " "Format invalid al numărului de telefon. Numărul trebuie să fie introdus în "
"formatul: \"+999999999\". Sunt permise până la 15 cifre." "formatul: \"+999999999\". Sunt permise până la 15 cifre."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "Jetonul este valid"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "Jetonul nu este valabil"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "Parola a fost resetată cu succes!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "Ați activat deja contul..."

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: ru-RU\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,73 @@ msgstr "Дополнительная информация"
msgid "authentication" msgid "authentication"
msgstr "Аутентификация" msgstr "Аутентификация"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Получение пары маркеров"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "Получите пару маркеров (refresh и access) для аутентификации."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "Обновить пару маркеров"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "Обновление пары маркеров (обновление и доступ)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "Проверка маркера"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "Проверка маркера (обновление или доступ)."
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "Создайте нового пользователя"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "Получение информации о пользователе"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "Обновление данных пользователя"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "Удалить пользователя"
#: vibes_auth/docs/drf/viewsets.py:32
msgid "reset a user's password by sending a reset password email"
msgstr ""
"Сброс пароля пользователя путем отправки электронного сообщения о сбросе "
"пароля"
#: vibes_auth/docs/drf/viewsets.py:40
msgid "handle avatar upload for a user"
msgstr "Обработка загрузки аватара для пользователя"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "Подтверждение сброса пароля пользователя"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "Пароли не совпадают"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "Активация учетной записи пользователя"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "Ссылка на активацию недействительна или аккаунт уже активирован"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
@ -76,7 +138,8 @@ msgstr "Некорректный номер телефона: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Недопустимый формат атрибута: {attribute_pair}" msgstr "Недопустимый формат атрибута: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Ссылка на активацию недействительна!" msgstr "Ссылка на активацию недействительна!"
@ -88,11 +151,7 @@ msgstr "Аккаунт уже активирован..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Что-то пошло не так: {e!s}" msgstr "Что-то пошло не так: {e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "Пароли не совпадают"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Токен недействителен!" msgstr "Токен недействителен!"
@ -314,8 +373,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий " "Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий URL-адрес\n"
"URL-адрес\n"
" в свой веб-браузер:" " в свой веб-браузер:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -349,3 +407,19 @@ msgid ""
msgstr "" msgstr ""
"Неверный формат телефонного номера. Номер должен быть введен в формате: " "Неверный формат телефонного номера. Номер должен быть введен в формате: "
"\"+999999999\". Допускается до 15 цифр." "\"+999999999\". Допускается до 15 цифр."
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "Токен действителен"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "Токен недействителен"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "Пароль был успешно сброшен!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "Вы уже активировали учетную запись..."

View file

@ -1,18 +1,13 @@
# eVibes Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-08 14:48+0100\n" "POT-Creation-Date: 2025-05-13 20:44+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: BRITISH ENGLISH\n" "Language: zh-hans\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,71 @@ msgstr "其他信息"
msgid "authentication" msgid "authentication"
msgstr "认证" msgstr "认证"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "获取令牌对"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "获取用于身份验证的令牌对(刷新和访问)。"
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "刷新令牌对"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "刷新令牌对(刷新和访问)。"
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "验证令牌"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "验证令牌(刷新或访问)。"
#: vibes_auth/docs/drf/viewsets.py:15
msgid "create a new user"
msgstr "创建新用户"
#: vibes_auth/docs/drf/viewsets.py:19
msgid "retrieve a user's details"
msgstr "读取用户详细信息"
#: vibes_auth/docs/drf/viewsets.py:23
msgid "update a user's details"
msgstr "更新用户信息"
#: vibes_auth/docs/drf/viewsets.py:28
msgid "delete a user"
msgstr "删除用户"
#: vibes_auth/docs/drf/viewsets.py:32
msgid "reset a user's password by sending a reset password email"
msgstr "通过发送重置密码电子邮件重置用户密码"
#: vibes_auth/docs/drf/viewsets.py:40
msgid "handle avatar upload for a user"
msgstr "处理用户的头像上传"
#: vibes_auth/docs/drf/viewsets.py:49
msgid "confirm a user's password reset"
msgstr "确认用户密码重置"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305
#: vibes_auth/viewsets.py:72
msgid "passwords do not match"
msgstr "密码不匹配"
#: vibes_auth/docs/drf/viewsets.py:58
msgid "activate a user's account"
msgstr "激活用户帐户"
#: vibes_auth/docs/drf/viewsets.py:62
msgid "activation link is invalid or account already activated"
msgstr "激活链接无效或账户已激活"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:40
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "将新用户推荐给我们的用户的 b64-encoded uuid。" msgstr "将新用户推荐给我们的用户的 b64-encoded uuid。"
@ -74,7 +134,8 @@ msgstr "畸形电话号码: {phone_number}"
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "属性格式无效:{attribute_pair}" msgstr "属性格式无效:{attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 #: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "激活链接无效!" msgstr "激活链接无效!"
@ -86,11 +147,7 @@ msgstr "帐户已激活..."
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "出了问题:{e!s}" msgstr "出了问题:{e!s}"
#: vibes_auth/graphene/mutations.py:305 #: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "passwords do not match"
msgstr "密码不匹配"
#: vibes_auth/graphene/mutations.py:312
msgid "token is invalid!" msgid "token is invalid!"
msgstr "令牌无效!" msgstr "令牌无效!"
@ -336,5 +393,20 @@ msgstr "{config.PROJECT_NAME} 重置密码| 重置密码"
msgid "" msgid ""
"invalid phone number format. the number must be entered in the format: " "invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed." "\"+999999999\". up to 15 digits allowed."
msgstr "" msgstr "电话号码格式无效。电话号码必须按格式输入:\"+999999999\".最多允许 15 位数字。"
"电话号码格式无效。电话号码必须按格式输入:\"+999999999\".最多允许 15 位数字。"
#: vibes_auth/views.py:168
msgid "the token is valid"
msgstr "令牌有效"
#: vibes_auth/views.py:170
msgid "the token is invalid"
msgstr "令牌无效"
#: vibes_auth/viewsets.py:85
msgid "password reset successfully"
msgstr "密码已重置成功!"
#: vibes_auth/viewsets.py:112
msgid "account already activated!"
msgstr "您已经激活了账户..."

View file

@ -1,6 +1,7 @@
import logging import logging
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.utils.translation import gettext_lazy as _
from django_ratelimit.decorators import ratelimit from django_ratelimit.decorators import ratelimit
from drf_spectacular.utils import ( from drf_spectacular.utils import (
OpenApiExample, OpenApiExample,
@ -67,7 +68,6 @@ class TokenObtainPairView(TokenViewBase):
) )
@method_decorator(ratelimit(key="ip", rate="5/h")) @method_decorator(ratelimit(key="ip", rate="5/h"))
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
logger.debug("Got to super post")
return super().post(request, *args, **kwargs) return super().post(request, *args, **kwargs)
@ -128,8 +128,7 @@ class TokenVerifyView(TokenViewBase):
200: inline_serializer( 200: inline_serializer(
name="TokenVerifyResponse", name="TokenVerifyResponse",
fields={ fields={
"refresh": serializers.CharField(), "token": serializers.CharField(choices=["valid", "no valid"]),
"access": serializers.CharField(),
"user": UserSerializer(), "user": UserSerializer(),
}, },
), ),
@ -166,6 +165,6 @@ class TokenVerifyView(TokenViewBase):
serializer = self.get_serializer(data=request.data) serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
user_data = serializer.validated_data.pop("user", None) user_data = serializer.validated_data.pop("user", None)
return Response({"token": "The token is valid", "user": user_data}) return Response({"token": _("the token is valid"), "user": user_data})
except TokenError: except TokenError:
return Response({"detail": "The token is invalid"}, status=status.HTTP_400_BAD_REQUEST) return Response({"detail": _("the token is invalid")}, status=status.HTTP_400_BAD_REQUEST)

View file

@ -1,11 +1,13 @@
import logging import logging
from contextlib import suppress
from secrets import compare_digest from secrets import compare_digest
from django.contrib.auth.tokens import PasswordResetTokenGenerator from django.contrib.auth.tokens import PasswordResetTokenGenerator
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.utils.http import urlsafe_base64_decode from django.utils.http import urlsafe_base64_decode
from django.utils.translation import gettext_lazy as _
from django_ratelimit.decorators import ratelimit from django_ratelimit.decorators import ratelimit
from drf_spectacular.utils import extend_schema from drf_spectacular.utils import extend_schema_view
from rest_framework import mixins, status from rest_framework import mixins, status
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.permissions import AllowAny, IsAuthenticated from rest_framework.permissions import AllowAny, IsAuthenticated
@ -13,11 +15,11 @@ from rest_framework.response import Response
from rest_framework.viewsets import GenericViewSet from rest_framework.viewsets import GenericViewSet
from rest_framework_simplejwt.tokens import RefreshToken from rest_framework_simplejwt.tokens import RefreshToken
from evibes.settings import DEBUG
from vibes_auth.docs.drf.viewsets import USER_SCHEMA
from vibes_auth.models import User from vibes_auth.models import User
from vibes_auth.serializers import ( from vibes_auth.serializers import (
ActivateEmailSerializer,
ConfirmPasswordResetSerializer, ConfirmPasswordResetSerializer,
ResetPasswordSerializer,
UserSerializer, UserSerializer,
) )
from vibes_auth.utils.emailing import send_reset_password_email_task from vibes_auth.utils.emailing import send_reset_password_email_task
@ -25,6 +27,7 @@ from vibes_auth.utils.emailing import send_reset_password_email_task
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@extend_schema_view(**USER_SCHEMA)
class UserViewSet( class UserViewSet(
mixins.CreateModelMixin, mixins.CreateModelMixin,
mixins.RetrieveModelMixin, mixins.RetrieveModelMixin,
@ -36,36 +39,18 @@ class UserViewSet(
queryset = User.objects.filter(is_active=True) queryset = User.objects.filter(is_active=True)
permission_classes = [AllowAny] permission_classes = [AllowAny]
@extend_schema(
description="Reset a user's password by sending a reset password email.",
request=ResetPasswordSerializer(),
responses={200: {}, 400: {"description": "Email does not exist"}},
)
@action(detail=False, methods=["post"]) @action(detail=False, methods=["post"])
@method_decorator(ratelimit(key="ip", rate="2/h")) @method_decorator(ratelimit(key="ip", rate="2/h" if not DEBUG else "888/h"))
def reset_password(self, request): def reset_password(self, request):
try: user = None
with suppress(User.DoesNotExist):
user = User.objects.get(email=request.data.get("email")) user = User.objects.get(email=request.data.get("email"))
except User.DoesNotExist: if user:
return Response(
status=status.HTTP_400_BAD_REQUEST,
data={"error": "Email does not exist"},
)
send_reset_password_email_task.delay(user_pk=user.uuid) send_reset_password_email_task.delay(user_pk=user.uuid)
return Response(status=status.HTTP_200_OK) return Response(status=status.HTTP_200_OK)
@extend_schema(
description="Handle avatar upload for a user.",
methods=["PUT"],
responses={
200: UserSerializer(),
400: {"description": "Invalid Request"},
403: {"description": "Bad credentials"},
},
)
@action(detail=True, methods=["put"], permission_classes=[IsAuthenticated]) @action(detail=True, methods=["put"], permission_classes=[IsAuthenticated])
@method_decorator(ratelimit(key="ip", rate="2/h")) @method_decorator(ratelimit(key="ip", rate="2/h" if not DEBUG else "888/h"))
def upload_avatar(self, request): def upload_avatar(self, request):
user = self.get_object() user = self.get_object()
if request.user != user: if request.user != user:
@ -76,23 +61,15 @@ class UserViewSet(
return Response(status=status.HTTP_200_OK, data=self.serializer_class(user).data) return Response(status=status.HTTP_200_OK, data=self.serializer_class(user).data)
return Response(status=status.HTTP_400_BAD_REQUEST) return Response(status=status.HTTP_400_BAD_REQUEST)
@extend_schema(
description="Confirm a password reset for a user.",
request=ConfirmPasswordResetSerializer(),
responses={
200: {"description": "Password reset successfully"},
400: {"description": "Invalid uid!"},
},
)
@action(detail=False, methods=["post"]) @action(detail=False, methods=["post"])
@method_decorator(ratelimit(key="ip", rate="2/h")) @method_decorator(ratelimit(key="ip", rate="2/h" if not DEBUG else "888/h"))
def confirm_password_reset(self): def confirm_password_reset(self):
try: try:
data = ConfirmPasswordResetSerializer(self.request.data).data data = ConfirmPasswordResetSerializer(self.request.data).data
if not compare_digest(data.get("password"), data.get("confirm_password")): if not compare_digest(data.get("password"), data.get("confirm_password")):
return Response( return Response(
{"error": "Passwords do not match"}, {"error": _("passwords do not match")},
status=status.HTTP_400_BAD_REQUEST, status=status.HTTP_400_BAD_REQUEST,
) )
@ -101,53 +78,38 @@ class UserViewSet(
password_reset_token = PasswordResetTokenGenerator() password_reset_token = PasswordResetTokenGenerator()
if not password_reset_token.check_token(user, data.get("token")): if not password_reset_token.check_token(user, data.get("token")):
return Response({"error": "Token is invalid!"}, status=status.HTTP_400_BAD_REQUEST) return Response({"error": _("token is invalid!")}, status=status.HTTP_400_BAD_REQUEST)
user.set_password(data.get("password")) user.set_password(data.get("password"))
user.save() user.save()
return Response({"message": "Password reset successfully"}, status=status.HTTP_200_OK) return Response({"message": _("password reset successfully")}, status=status.HTTP_200_OK)
except (TypeError, ValueError, OverflowError, User.DoesNotExist) as e: except (TypeError, ValueError, OverflowError, User.DoesNotExist) as e:
logger.error(str(e)) return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
return Response({"error": "Invalid uuid!"}, status=status.HTTP_400_BAD_REQUEST)
@extend_schema( @method_decorator(ratelimit(key="ip", rate="3/h" if not DEBUG else "888/h"))
request=UserSerializer,
description="Create a new user. An activation email will be sent after creation.",
responses={201: UserSerializer()},
)
@method_decorator(ratelimit(key="ip", rate="3/h"))
def create(self, request, *args, **kwargs): def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data) serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
user = serializer.save() user = serializer.save()
user.save() user.save()
# send_email_confirmation.delay(user.pk)
headers = self.get_success_headers(serializer.data) headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
@extend_schema(
description="Activate a user's account.",
responses={
200: UserSerializer(),
400: {"description": "Activation link is invalid!"},
},
request=ActivateEmailSerializer(),
)
@action(detail=False, methods=["post"]) @action(detail=False, methods=["post"])
@method_decorator(ratelimit(key="ip", rate="2/h")) @method_decorator(ratelimit(key="ip", rate="2/h" if not DEBUG else "888/h"))
def activate(self, request): def activate(self, request):
try: try:
uuid = urlsafe_base64_decode(request.data.get("uidb64")).decode() uuid = urlsafe_base64_decode(request.data.get("uidb64")).decode()
user = User.objects.get(pk=uuid) user = User.objects.get(pk=uuid)
if not user.check_token(request.data.get("token")): if not user.check_token(request.data.get("token")):
return Response( return Response(
{"error": "Activation link is invalid!"}, {"error": _("activation link is invalid!")},
status=status.HTTP_400_BAD_REQUEST, status=status.HTTP_400_BAD_REQUEST,
) )
if user.is_active: if user.is_active:
return Response( return Response(
{"error": "Account already activated!"}, {"error": _("account already activated!")},
status=status.HTTP_400_BAD_REQUEST, status=status.HTTP_400_BAD_REQUEST,
) )
user.is_active = True user.is_active = True
@ -158,7 +120,7 @@ class UserViewSet(
logger.error(str(e)) logger.error(str(e))
if user is None: if user is None:
return Response( return Response(
{"error": "Activation link is invalid!"}, {"error": _("activation link is invalid!")},
status=status.HTTP_400_BAD_REQUEST, status=status.HTTP_400_BAD_REQUEST,
) )
else: else:
@ -168,16 +130,11 @@ class UserViewSet(
response_data["access"] = str(tokens.access_token) response_data["access"] = str(tokens.access_token)
return Response(response_data, status=status.HTTP_200_OK) return Response(response_data, status=status.HTTP_200_OK)
@extend_schema(description="Retrieve a user's details.")
def retrieve(self, request, pk=None, *args, **kwargs): def retrieve(self, request, pk=None, *args, **kwargs):
instance = self.get_object() instance = self.get_object()
serializer = self.get_serializer(instance) serializer = self.get_serializer(instance)
return Response(serializer.data) return Response(serializer.data)
@extend_schema(
description="Update a user's details.",
request=UserSerializer,
)
def update(self, request, pk=None, *args, **kwargs): def update(self, request, pk=None, *args, **kwargs):
return Response( return Response(
self.get_serializer(self.get_object()).update(instance=self.get_object(), validated_data=request.data).data self.get_serializer(self.get_object()).update(instance=self.get_object(), validated_data=request.data).data