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

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -82,7 +82,7 @@ msgstr "Obrázek"
msgid "images"
msgstr "Obrázky"
#: core/admin.py:160 core/models.py:1127
#: core/admin.py:160 core/models.py:1132
msgid "stock"
msgstr "Stock"
@ -90,7 +90,7 @@ msgstr "Stock"
msgid "stocks"
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_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95
@ -98,35 +98,35 @@ msgstr "Zásoby"
msgid "price"
msgstr "Cena"
#: core/admin.py:196
#: core/admin.py:197
msgid "rating"
msgstr "Hodnocení produktu"
#: core/admin.py:200
#: core/admin.py:201
msgid "basic info"
msgstr "Základní informace"
#: core/admin.py:214
#: core/admin.py:215
msgid "important dates"
msgstr "Důležitá data"
#: core/admin.py:215
#: core/admin.py:216
msgid "translations"
msgstr "Překlady"
#: core/admin.py:253 core/models.py:837
#: core/admin.py:254 core/models.py:842
msgid "order product"
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"
msgstr "Objednat produkty"
#: core/admin.py:273
#: core/admin.py:274
msgid "is business"
msgstr "Je podnikání"
#: core/admin.py:381
#: core/admin.py:382
msgid "config"
msgstr "Konfigurace"
@ -503,55 +503,55 @@ msgstr ""
msgid "list all products (simple view)"
msgstr "Seznam všech produktů (jednoduché zobrazení)"
#: core/docs/drf/viewsets.py:278
#: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID"
msgstr "(přesně) UUID produktu"
#: core/docs/drf/viewsets.py:279
#: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name"
msgstr "(icontains) Název produktu"
#: core/docs/drf/viewsets.py:280
#: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive"
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"
msgstr "(přesně) Kategorie UUID"
#: core/docs/drf/viewsets.py:283
#: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive"
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"
msgstr "(gte) Minimální cena akcií"
#: core/docs/drf/viewsets.py:285
#: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price"
msgstr "(lte) Maximální cena akcií"
#: core/docs/drf/viewsets.py:286
#: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products"
msgstr "(přesně) Pouze aktivní produkty"
#: core/docs/drf/viewsets.py:287
#: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name"
msgstr "(iexact) Obchodní značka"
#: core/docs/drf/viewsets.py:289
#: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity"
msgstr "(gt) Minimální skladové množství"
#: core/docs/drf/viewsets.py:290
#: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug"
msgstr "(přesně) Product slug"
#: core/docs/drf/viewsets.py:291
#: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical"
msgstr "(přesně) Digitální vs. fyzické"
#: core/docs/drf/viewsets.py:295
#: core/docs/drf/viewsets.py:360
msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**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"
"**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)"
msgstr "Vyhledání jednoho produktu (podrobné zobrazení)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330
#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug"
msgstr "Identifikátor UUID produktu nebo Slug"
#: core/docs/drf/viewsets.py:315
#: core/docs/drf/viewsets.py:389
msgid "create a product"
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"
msgstr ""
"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 ""
"update some fields of an existing product, preserving non-editable fields"
msgstr ""
"Aktualizace některých polí existujícího produktu se zachováním polí, která "
"nelze upravovat."
#: core/docs/drf/viewsets.py:329
#: core/docs/drf/viewsets.py:426
msgid "delete a product"
msgstr "Odstranění produktu"
#: core/elasticsearch/__init__.py:39
#: core/elasticsearch/__init__.py:40
msgid "no search term provided."
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í!"
#: 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}"
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"
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"
msgstr "Propagační akce"
@ -848,11 +848,11 @@ msgstr "Prodejce"
msgid "product"
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"
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"
msgstr "Seznamy přání"
@ -999,8 +999,8 @@ msgstr "Atribut této hodnoty"
msgid "the specific product associated with this attribute's value"
msgstr "Konkrétní produkt spojený s hodnotou tohoto atributu"
#: 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"
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"
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"
msgstr "Štítky produktu"
@ -1116,7 +1116,7 @@ msgstr "Uveďte jasný identifikační název výrobku"
msgid "product name"
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"
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"
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"
msgstr ""
"JSON struktura oznámení pro zobrazení uživatelům, v uživatelském rozhraní "
@ -1255,56 +1255,60 @@ msgstr "lidsky čitelné ID"
msgid "order"
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"
msgstr ""
"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"
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"
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:1165 core/models.py:1176
#: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1170 core/models.py:1181
#, python-brace-format
msgid "{name} does not exist: {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"
msgstr "Nelze odebrat produkty z objednávky, která není nevyřízená."
#: core/models.py:588
#: core/models.py:593
#, python-brace-format
msgid "{name} does not exist with query <{query}>"
msgstr "{name} neexistuje s dotazem <{query}>"
#: core/models.py:619
#: core/models.py:624
msgid "promocode does not exist"
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"
msgstr ""
"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"
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!"
msgstr "Nelze zakoupit prázdnou objednávku!"
#: core/models.py:647
#: core/models.py:652
msgid "insufficient funds to complete the order"
msgstr "Nedostatek finančních prostředků na dokončení objednávky"
#: core/models.py:677
#: core/models.py:682
msgid ""
"you cannot buy without registration, please provide the following "
"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 "
"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"
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"
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"
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"
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"
msgstr "Interní komentáře pro administrátory k tomuto objednanému produktu"
#: core/models.py:786
#: core/models.py:791
msgid "internal comments"
msgstr "Interní připomínky"
#: core/models.py:792
#: core/models.py:797
msgid "user notifications"
msgstr "Oznámení uživatele"
#: core/models.py:797
#: core/models.py:802
msgid "json representation of this item's attributes"
msgstr "JSON reprezentace atributů této položky"
#: core/models.py:798
#: core/models.py:803
msgid "ordered product attributes"
msgstr "Objednané atributy produktu"
#: core/models.py:803
#: core/models.py:808
msgid "reference to the parent order that contains this product"
msgstr "Odkaz na nadřazenou objednávku, která obsahuje tento produkt"
#: core/models.py:804
#: core/models.py:809
msgid "parent order"
msgstr "Objednávka rodičů"
#: core/models.py:813
#: core/models.py:818
msgid "the specific product associated with this order line"
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"
msgstr "Množství tohoto konkrétního produktu v objednávce"
#: core/models.py:821
#: core/models.py:826
msgid "product quantity"
msgstr "Množství produktu"
#: core/models.py:828
#: core/models.py:833
msgid "current status of this product in the order"
msgstr "Aktuální stav tohoto produktu v objednávce"
#: core/models.py:829
#: core/models.py:834
msgid "product line status"
msgstr "Stav produktové řady"
#: core/models.py:887
#: core/models.py:892
msgid "internal tag identifier for the product tag"
msgstr "Interní identifikátor značky produktu"
#: core/models.py:888
#: core/models.py:893
msgid "tag name"
msgstr "Název štítku"
#: core/models.py:892
#: core/models.py:897
msgid "user-friendly name for the product tag"
msgstr "Uživatelsky přívětivý název pro značku produktu"
#: core/models.py:893
#: core/models.py:898
msgid "tag display name"
msgstr "Zobrazení názvu štítku"
#: core/models.py:901
#: core/models.py:906
msgid "product tag"
msgstr "Štítek produktu"
#: core/models.py:910
#: core/models.py:915
msgid "provide alternative text for the image for accessibility"
msgstr "Poskytněte alternativní text k obrázku kvůli přístupnosti."
#: core/models.py:911
#: core/models.py:916
msgid "image alt text"
msgstr "Text alt obrázku"
#: core/models.py:914
#: core/models.py:919
msgid "upload the image file for this product"
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"
msgstr "Obrázek produktu"
#: core/models.py:921
#: core/models.py:926
msgid "determines the order in which images are displayed"
msgstr "Určuje pořadí, v jakém se obrázky zobrazují."
#: core/models.py:922
#: core/models.py:927
msgid "display priority"
msgstr "Priorita zobrazení"
#: core/models.py:927
#: core/models.py:932
msgid "the product that this image represents"
msgstr "Výrobek, který tento obrázek představuje"
#: core/models.py:941
#: core/models.py:946
msgid "product images"
msgstr "Obrázky produktů"
#: core/models.py:951
#: core/models.py:956
msgid "unique code used by a user to redeem a discount"
msgstr "Jedinečný kód, který uživatel použije k uplatnění slevy."
#: core/models.py:952
#: core/models.py:957
msgid "promo code identifier"
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"
msgstr "Pevná výše slevy, pokud není použito procento"
#: core/models.py:960
#: core/models.py:965
msgid "fixed discount amount"
msgstr "Pevná výše slevy"
#: core/models.py:966
#: core/models.py:971
msgid "percentage discount applied if fixed amount is not used"
msgstr "Procentuální sleva uplatněná v případě nevyužití pevné částky"
#: core/models.py:967
#: core/models.py:972
msgid "percentage discount"
msgstr "Procentuální sleva"
#: core/models.py:972
#: core/models.py:977
msgid "timestamp when the promocode expires"
msgstr "Časové razítko ukončení platnosti promokódu"
#: core/models.py:973
#: core/models.py:978
msgid "end validity time"
msgstr "Doba ukončení platnosti"
#: core/models.py:978
#: core/models.py:983
msgid "timestamp from which this promocode is valid"
msgstr "Časové razítko, od kterého je tento promokód platný"
#: core/models.py:979
#: core/models.py:984
msgid "start validity time"
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"
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"
msgstr "Časové razítko použití"
#: core/models.py:990
#: core/models.py:995
msgid "user assigned to this promocode if applicable"
msgstr "Uživatel přiřazený k tomuto promokódu, je-li to relevantní"
#: core/models.py:991
#: core/models.py:996
msgid "assigned user"
msgstr "Přiřazený uživatel"
#: core/models.py:998
#: core/models.py:1003
msgid "promo code"
msgstr "Propagační kód"
#: core/models.py:999
#: core/models.py:1004
msgid "promo codes"
msgstr "Propagační kódy"
#: core/models.py:1006
#: core/models.py:1011
msgid ""
"only one type of discount should be defined (amount or percent), but not "
"both or neither."
@ -1500,140 +1504,140 @@ msgstr ""
"Měl by být definován pouze jeden typ slevy (částka nebo procento), nikoli "
"však oba typy slev nebo žádný z nich."
#: core/models.py:1021
#: core/models.py:1026
msgid "promocode already used"
msgstr "Promo kód byl již použit"
#: core/models.py:1033
#: core/models.py:1038
#, python-brace-format
msgid "invalid discount type for 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"
msgstr "Procentuální sleva na vybrané produkty"
#: core/models.py:1045
#: core/models.py:1050
msgid "discount percentage"
msgstr "Procento slevy"
#: core/models.py:1050
#: core/models.py:1055
msgid "provide a unique name for this promotion"
msgstr "Uveďte jedinečný název této propagační akce"
#: core/models.py:1051
#: core/models.py:1056
msgid "promotion name"
msgstr "Název akce"
#: core/models.py:1057
#: core/models.py:1062
msgid "promotion description"
msgstr "Popis propagace"
#: core/models.py:1062
#: core/models.py:1067
msgid "select which products are included in this promotion"
msgstr "Vyberte, které produkty jsou zahrnuty do této akce"
#: core/models.py:1063
#: core/models.py:1068
msgid "included products"
msgstr "Zahrnuté produkty"
#: core/models.py:1067
#: core/models.py:1072
msgid "promotion"
msgstr "Propagace"
#: core/models.py:1082
#: core/models.py:1087
msgid "the vendor supplying this product stock"
msgstr "Prodejce dodávající tento výrobek na sklad"
#: core/models.py:1083
#: core/models.py:1088
msgid "associated vendor"
msgstr "Přidružený prodejce"
#: core/models.py:1087
#: core/models.py:1092
msgid "final price to the customer after markups"
msgstr "Konečná cena pro zákazníka po přirážkách"
#: core/models.py:1088
#: core/models.py:1093
msgid "selling price"
msgstr "Prodejní cena"
#: core/models.py:1093
#: core/models.py:1098
msgid "the product associated with this stock entry"
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"
msgstr "Cena zaplacená prodejci za tento výrobek"
#: core/models.py:1102
#: core/models.py:1107
msgid "vendor purchase price"
msgstr "Kupní cena prodejce"
#: core/models.py:1106
#: core/models.py:1111
msgid "available quantity of the product in stock"
msgstr "Dostupné množství produktu na skladě"
#: core/models.py:1107
#: core/models.py:1112
msgid "quantity in stock"
msgstr "Množství na skladě"
#: core/models.py:1111
#: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product"
msgstr "SKU přidělený prodejcem pro identifikaci výrobku"
#: core/models.py:1112
#: core/models.py:1117
msgid "vendor sku"
msgstr "SKU prodejce"
#: core/models.py:1118
#: core/models.py:1123
msgid "digital file associated with this stock if applicable"
msgstr "Digitální soubor spojený s touto zásobou, je-li to vhodné"
#: core/models.py:1119
#: core/models.py:1124
msgid "digital file"
msgstr "Digitální soubor"
#: core/models.py:1128
#: core/models.py:1133
msgid "stock entries"
msgstr "Zápisy do zásob"
#: core/models.py:1137
#: core/models.py:1142
msgid "products that the user has marked as wanted"
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"
msgstr "Uživatel, který vlastní tento seznam přání"
#: core/models.py:1146
#: core/models.py:1151
msgid "wishlist owner"
msgstr "Majitel seznamu přání"
#: core/models.py:1154
#: core/models.py:1159
msgid "wishlist"
msgstr "Seznam přání"
#: core/models.py:1194
#: core/models.py:1199
msgid "download"
msgstr "Stáhnout"
#: core/models.py:1195
#: core/models.py:1200
msgid "downloads"
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"
msgstr "Digitální aktivum pro nedokončenou objednávku nelze stáhnout."
#: core/models.py:1215
#: core/models.py:1220
msgid "documentary"
msgstr "Dokumentární film"
#: core/models.py:1216
#: core/models.py:1221
msgid "documentaries"
msgstr "Dokumentární filmy"
#: core/models.py:1226
#: core/models.py:1231
msgid "unresolved"
msgstr "Nevyřešené"

View file

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

View file

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

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -81,7 +81,7 @@ msgstr "Image"
msgid "images"
msgstr "Images"
#: core/admin.py:160 core/models.py:1127
#: core/admin.py:160 core/models.py:1132
msgid "stock"
msgstr "Stock"
@ -89,7 +89,7 @@ msgstr "Stock"
msgid "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_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95
@ -97,35 +97,35 @@ msgstr "Stocks"
msgid "price"
msgstr "Price"
#: core/admin.py:196
#: core/admin.py:197
msgid "rating"
msgstr "Rating"
#: core/admin.py:200
#: core/admin.py:201
msgid "basic info"
msgstr "Basic Info"
#: core/admin.py:214
#: core/admin.py:215
msgid "important dates"
msgstr "Important Dates"
#: core/admin.py:215
#: core/admin.py:216
msgid "translations"
msgstr "Translations"
#: core/admin.py:253 core/models.py:837
#: core/admin.py:254 core/models.py:842
msgid "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"
msgstr "Order Products"
#: core/admin.py:273
#: core/admin.py:274
msgid "is business"
msgstr "Is Business"
#: core/admin.py:381
#: core/admin.py:382
msgid "config"
msgstr "Config"
@ -489,55 +489,55 @@ msgstr ""
msgid "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"
msgstr "(exact) Product UUID"
#: core/docs/drf/viewsets.py:279
#: core/docs/drf/viewsets.py:287
msgid "(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"
msgstr "(list) Category names, case-insensitive"
#: core/docs/drf/viewsets.py:282
#: core/docs/drf/viewsets.py:299
msgid "(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"
msgstr "(list) Tag names, case-insensitive"
#: core/docs/drf/viewsets.py:284
#: core/docs/drf/viewsets.py:311
msgid "(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"
msgstr "(lte) Maximum stock price"
#: core/docs/drf/viewsets.py:286
#: core/docs/drf/viewsets.py:323
msgid "(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"
msgstr "(iexact) Brand name"
#: core/docs/drf/viewsets.py:289
#: core/docs/drf/viewsets.py:341
msgid "(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"
msgstr "(exact) Product slug"
#: core/docs/drf/viewsets.py:291
#: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical"
msgstr "(exact) Digital vs. physical"
#: core/docs/drf/viewsets.py:295
#: core/docs/drf/viewsets.py:360
msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**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"
"**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)"
msgstr "Retrieve a single product (detailed view)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330
#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "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"
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"
msgstr "Rewrite an existing product, preserving non-editable fields"
#: core/docs/drf/viewsets.py:324
#: core/docs/drf/viewsets.py:411
msgid ""
"update some fields of an existing product, preserving non-editable fields"
msgstr ""
"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"
msgstr "Delete a product"
#: core/elasticsearch/__init__.py:39
#: core/elasticsearch/__init__.py:40
msgid "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!"
#: 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}"
msgstr "Wrong type came from order.buy() method: {type(instance)!s}"
@ -815,7 +815,7 @@ msgstr "Promocodes"
msgid "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"
msgstr "Promotions"
@ -831,11 +831,11 @@ msgstr "Vendor"
msgid "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"
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"
msgstr "Wishlists"
@ -981,8 +981,8 @@ msgstr "Attribute of this value"
msgid "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:1094
#: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1099
msgid "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"
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"
msgstr "Product tags"
@ -1098,7 +1098,7 @@ msgstr "Provide a clear identifying name for the product"
msgid "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"
msgstr "Add a detailed description of the product"
@ -1197,7 +1197,7 @@ msgstr "Current status of the order in its lifecycle"
msgid "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"
msgstr ""
"JSON structure of notifications to display to users, in admin UI the table-"
@ -1235,55 +1235,59 @@ msgstr "human-readable ID"
msgid "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"
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"
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"
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:1165 core/models.py:1176
#: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1170 core/models.py:1181
#, python-brace-format
msgid "{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"
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
msgid "{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"
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"
msgstr ""
"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"
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!"
msgstr "You cannot purchase an empty order!"
#: core/models.py:647
#: core/models.py:652
msgid "insufficient funds to complete the order"
msgstr "Insufficient funds to complete the order"
#: core/models.py:677
#: core/models.py:682
msgid ""
"you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number"
@ -1291,188 +1295,188 @@ msgstr ""
"you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number"
#: core/models.py:685
#: core/models.py:690
msgid "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"
msgstr ""
"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"
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"
msgstr "Purchase price at order time"
#: core/models.py:785
#: core/models.py:790
msgid "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"
msgstr "Internal comments"
#: core/models.py:792
#: core/models.py:797
msgid "user notifications"
msgstr "User notifications"
#: core/models.py:797
#: core/models.py:802
msgid "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"
msgstr "Ordered product attributes"
#: core/models.py:803
#: core/models.py:808
msgid "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"
msgstr "Parent order"
#: core/models.py:813
#: core/models.py:818
msgid "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"
msgstr "Quantity of this specific product in the order"
#: core/models.py:821
#: core/models.py:826
msgid "product quantity"
msgstr "Product quantity"
#: core/models.py:828
#: core/models.py:833
msgid "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"
msgstr "Product line status"
#: core/models.py:887
#: core/models.py:892
msgid "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"
msgstr "Tag name"
#: core/models.py:892
#: core/models.py:897
msgid "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"
msgstr "Tag display name"
#: core/models.py:901
#: core/models.py:906
msgid "product tag"
msgstr "Product tag"
#: core/models.py:910
#: core/models.py:915
msgid "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"
msgstr "Image alt text"
#: core/models.py:914
#: core/models.py:919
msgid "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"
msgstr "Product image"
#: core/models.py:921
#: core/models.py:926
msgid "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"
msgstr "Display priority"
#: core/models.py:927
#: core/models.py:932
msgid "the product that this image represents"
msgstr "The product that this image represents"
#: core/models.py:941
#: core/models.py:946
msgid "product images"
msgstr "Product images"
#: core/models.py:951
#: core/models.py:956
msgid "unique code used by a user to redeem a discount"
msgstr "Unique code used by a user to redeem a discount"
#: core/models.py:952
#: core/models.py:957
msgid "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"
msgstr "Fixed discount amount applied if percent is not used"
#: core/models.py:960
#: core/models.py:965
msgid "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"
msgstr "Percentage discount applied if fixed amount is not used"
#: core/models.py:967
#: core/models.py:972
msgid "percentage discount"
msgstr "Percentage discount"
#: core/models.py:972
#: core/models.py:977
msgid "timestamp when the promocode expires"
msgstr "Timestamp when the promocode expires"
#: core/models.py:973
#: core/models.py:978
msgid "end validity time"
msgstr "End validity time"
#: core/models.py:978
#: core/models.py:983
msgid "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"
msgstr "Start validity time"
#: core/models.py:984
#: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "Timestamp when the promocode was used, blank if not used yet"
#: core/models.py:985
#: core/models.py:990
msgid "usage timestamp"
msgstr "Usage timestamp"
#: core/models.py:990
#: core/models.py:995
msgid "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"
msgstr "Assigned user"
#: core/models.py:998
#: core/models.py:1003
msgid "promo code"
msgstr "Promo code"
#: core/models.py:999
#: core/models.py:1004
msgid "promo codes"
msgstr "Promo codes"
#: core/models.py:1006
#: core/models.py:1011
msgid ""
"only one type of discount should be defined (amount or percent), but not "
"both or neither."
@ -1480,140 +1484,140 @@ msgstr ""
"Only one type of discount should be defined (amount or percent), but not "
"both or neither."
#: core/models.py:1021
#: core/models.py:1026
msgid "promocode already used"
msgstr "Promocode has been used already"
#: core/models.py:1033
#: core/models.py:1038
#, python-brace-format
msgid "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"
msgstr "Percentage discount for the selected products"
#: core/models.py:1045
#: core/models.py:1050
msgid "discount percentage"
msgstr "Discount percentage"
#: core/models.py:1050
#: core/models.py:1055
msgid "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"
msgstr "Promotion name"
#: core/models.py:1057
#: core/models.py:1062
msgid "promotion description"
msgstr "Promotion description"
#: core/models.py:1062
#: core/models.py:1067
msgid "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"
msgstr "Included products"
#: core/models.py:1067
#: core/models.py:1072
msgid "promotion"
msgstr "Promotion"
#: core/models.py:1082
#: core/models.py:1087
msgid "the vendor supplying this product stock"
msgstr "The vendor supplying this product stock"
#: core/models.py:1083
#: core/models.py:1088
msgid "associated vendor"
msgstr "Associated vendor"
#: core/models.py:1087
#: core/models.py:1092
msgid "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"
msgstr "Selling price"
#: core/models.py:1093
#: core/models.py:1098
msgid "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"
msgstr "The price paid to the vendor for this product"
#: core/models.py:1102
#: core/models.py:1107
msgid "vendor purchase price"
msgstr "Vendor purchase price"
#: core/models.py:1106
#: core/models.py:1111
msgid "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"
msgstr "Quantity in stock"
#: core/models.py:1111
#: core/models.py:1116
msgid "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"
msgstr "Vendor's SKU"
#: core/models.py:1118
#: core/models.py:1123
msgid "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"
msgstr "Digital file"
#: core/models.py:1128
#: core/models.py:1133
msgid "stock entries"
msgstr "Stock entries"
#: core/models.py:1137
#: core/models.py:1142
msgid "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"
msgstr "User who owns this wishlist"
#: core/models.py:1146
#: core/models.py:1151
msgid "wishlist owner"
msgstr "Wishlist's Owner"
#: core/models.py:1154
#: core/models.py:1159
msgid "wishlist"
msgstr "Wishlist"
#: core/models.py:1194
#: core/models.py:1199
msgid "download"
msgstr "Download"
#: core/models.py:1195
#: core/models.py:1200
msgid "downloads"
msgstr "Downloads"
#: core/models.py:1203
#: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order"
msgstr "You can not download a digital asset for a non-finished order"
#: core/models.py:1215
#: core/models.py:1220
msgid "documentary"
msgstr "Documentary"
#: core/models.py:1216
#: core/models.py:1221
msgid "documentaries"
msgstr "Documentaries"
#: core/models.py:1226
#: core/models.py:1231
msgid "unresolved"
msgstr "Unresolved"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -81,7 +81,7 @@ msgstr "Image"
msgid "images"
msgstr "Images"
#: core/admin.py:160 core/models.py:1127
#: core/admin.py:160 core/models.py:1132
msgid "stock"
msgstr "Stock"
@ -89,7 +89,7 @@ msgstr "Stock"
msgid "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_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95
@ -97,35 +97,35 @@ msgstr "Stocks"
msgid "price"
msgstr "Price"
#: core/admin.py:196
#: core/admin.py:197
msgid "rating"
msgstr "Product rating"
#: core/admin.py:200
#: core/admin.py:201
msgid "basic info"
msgstr "Basic Info"
#: core/admin.py:214
#: core/admin.py:215
msgid "important dates"
msgstr "Important dates"
#: core/admin.py:215
#: core/admin.py:216
msgid "translations"
msgstr "Translations"
#: core/admin.py:253 core/models.py:837
#: core/admin.py:254 core/models.py:842
msgid "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"
msgstr "Order Products"
#: core/admin.py:273
#: core/admin.py:274
msgid "is business"
msgstr "Is Business"
#: core/admin.py:381
#: core/admin.py:382
msgid "config"
msgstr "Config"
@ -489,55 +489,55 @@ msgstr ""
msgid "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"
msgstr "(exact) Product UUID"
#: core/docs/drf/viewsets.py:279
#: core/docs/drf/viewsets.py:287
msgid "(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"
msgstr "(list) Category names, case-insensitive"
#: core/docs/drf/viewsets.py:282
#: core/docs/drf/viewsets.py:299
msgid "(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"
msgstr "(list) Tag names, case-insensitive"
#: core/docs/drf/viewsets.py:284
#: core/docs/drf/viewsets.py:311
msgid "(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"
msgstr "(lte) Maximum stock price"
#: core/docs/drf/viewsets.py:286
#: core/docs/drf/viewsets.py:323
msgid "(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"
msgstr "(iexact) Brand name"
#: core/docs/drf/viewsets.py:289
#: core/docs/drf/viewsets.py:341
msgid "(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"
msgstr "(exact) Product slug"
#: core/docs/drf/viewsets.py:291
#: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical"
msgstr "(exact) Digital vs. physical"
#: core/docs/drf/viewsets.py:295
#: core/docs/drf/viewsets.py:360
msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**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"
"**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)"
msgstr "Retrieve a single product (detailed view)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330
#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "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"
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"
msgstr "Rewrite an existing product, preserving non-editable fields"
#: core/docs/drf/viewsets.py:324
#: core/docs/drf/viewsets.py:411
msgid ""
"update some fields of an existing product, preserving non-editable fields"
msgstr ""
"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"
msgstr "Delete a product"
#: core/elasticsearch/__init__.py:39
#: core/elasticsearch/__init__.py:40
msgid "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!"
#: 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}"
msgstr "Wrong type came from order.buy() method: {type(instance)!s}"
@ -815,7 +815,7 @@ msgstr "Promocodes"
msgid "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"
msgstr "Promotions"
@ -831,11 +831,11 @@ msgstr "Vendor"
msgid "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"
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"
msgstr "Wishlists"
@ -981,8 +981,8 @@ msgstr "Attribute of this value"
msgid "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:1094
#: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1099
msgid "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"
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"
msgstr "Product tags"
@ -1098,7 +1098,7 @@ msgstr "Provide a clear identifying name for the product"
msgid "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"
msgstr "Add a detailed description of the product"
@ -1197,7 +1197,7 @@ msgstr "Current status of the order in its lifecycle"
msgid "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"
msgstr ""
"JSON structure of notifications to display to users, in admin UI the table-"
@ -1235,55 +1235,59 @@ msgstr "human-readable ID"
msgid "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"
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"
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"
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:1165 core/models.py:1176
#: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1170 core/models.py:1181
#, python-brace-format
msgid "{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"
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
msgid "{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"
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"
msgstr ""
"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"
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!"
msgstr "You cannot purchase an empty order!"
#: core/models.py:647
#: core/models.py:652
msgid "insufficient funds to complete the order"
msgstr "Insufficient funds to complete the order"
#: core/models.py:677
#: core/models.py:682
msgid ""
"you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number"
@ -1291,188 +1295,188 @@ msgstr ""
"you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number"
#: core/models.py:685
#: core/models.py:690
msgid "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"
msgstr ""
"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"
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"
msgstr "Purchase price at order time"
#: core/models.py:785
#: core/models.py:790
msgid "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"
msgstr "Internal comments"
#: core/models.py:792
#: core/models.py:797
msgid "user notifications"
msgstr "User notifications"
#: core/models.py:797
#: core/models.py:802
msgid "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"
msgstr "Ordered product attributes"
#: core/models.py:803
#: core/models.py:808
msgid "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"
msgstr "Parent order"
#: core/models.py:813
#: core/models.py:818
msgid "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"
msgstr "Quantity of this specific product in the order"
#: core/models.py:821
#: core/models.py:826
msgid "product quantity"
msgstr "Product quantity"
#: core/models.py:828
#: core/models.py:833
msgid "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"
msgstr "Product line status"
#: core/models.py:887
#: core/models.py:892
msgid "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"
msgstr "Tag name"
#: core/models.py:892
#: core/models.py:897
msgid "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"
msgstr "Tag display name"
#: core/models.py:901
#: core/models.py:906
msgid "product tag"
msgstr "Product tag"
#: core/models.py:910
#: core/models.py:915
msgid "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"
msgstr "Image alt text"
#: core/models.py:914
#: core/models.py:919
msgid "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"
msgstr "Product image"
#: core/models.py:921
#: core/models.py:926
msgid "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"
msgstr "Display priority"
#: core/models.py:927
#: core/models.py:932
msgid "the product that this image represents"
msgstr "The product that this image represents"
#: core/models.py:941
#: core/models.py:946
msgid "product images"
msgstr "Product images"
#: core/models.py:951
#: core/models.py:956
msgid "unique code used by a user to redeem a discount"
msgstr "Unique code used by a user to redeem a discount"
#: core/models.py:952
#: core/models.py:957
msgid "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"
msgstr "Fixed discount amount applied if percent is not used"
#: core/models.py:960
#: core/models.py:965
msgid "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"
msgstr "Percentage discount applied if fixed amount is not used"
#: core/models.py:967
#: core/models.py:972
msgid "percentage discount"
msgstr "Percentage discount"
#: core/models.py:972
#: core/models.py:977
msgid "timestamp when the promocode expires"
msgstr "Timestamp when the promocode expires"
#: core/models.py:973
#: core/models.py:978
msgid "end validity time"
msgstr "End validity time"
#: core/models.py:978
#: core/models.py:983
msgid "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"
msgstr "Start validity time"
#: core/models.py:984
#: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet"
msgstr "Timestamp when the promocode was used, blank if not used yet"
#: core/models.py:985
#: core/models.py:990
msgid "usage timestamp"
msgstr "Usage timestamp"
#: core/models.py:990
#: core/models.py:995
msgid "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"
msgstr "Assigned user"
#: core/models.py:998
#: core/models.py:1003
msgid "promo code"
msgstr "Promo code"
#: core/models.py:999
#: core/models.py:1004
msgid "promo codes"
msgstr "Promo codes"
#: core/models.py:1006
#: core/models.py:1011
msgid ""
"only one type of discount should be defined (amount or percent), but not "
"both or neither."
@ -1480,140 +1484,140 @@ msgstr ""
"Only one type of discount should be defined (amount or percent), but not "
"both or neither."
#: core/models.py:1021
#: core/models.py:1026
msgid "promocode already used"
msgstr "Promocode has been used already"
#: core/models.py:1033
#: core/models.py:1038
#, python-brace-format
msgid "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"
msgstr "Percentage discount for the selected products"
#: core/models.py:1045
#: core/models.py:1050
msgid "discount percentage"
msgstr "Discount percentage"
#: core/models.py:1050
#: core/models.py:1055
msgid "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"
msgstr "Promotion name"
#: core/models.py:1057
#: core/models.py:1062
msgid "promotion description"
msgstr "Promotion description"
#: core/models.py:1062
#: core/models.py:1067
msgid "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"
msgstr "Included products"
#: core/models.py:1067
#: core/models.py:1072
msgid "promotion"
msgstr "Promotion"
#: core/models.py:1082
#: core/models.py:1087
msgid "the vendor supplying this product stock"
msgstr "The vendor supplying this product stock"
#: core/models.py:1083
#: core/models.py:1088
msgid "associated vendor"
msgstr "Associated vendor"
#: core/models.py:1087
#: core/models.py:1092
msgid "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"
msgstr "Selling price"
#: core/models.py:1093
#: core/models.py:1098
msgid "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"
msgstr "The price paid to the vendor for this product"
#: core/models.py:1102
#: core/models.py:1107
msgid "vendor purchase price"
msgstr "Vendor purchase price"
#: core/models.py:1106
#: core/models.py:1111
msgid "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"
msgstr "Quantity in stock"
#: core/models.py:1111
#: core/models.py:1116
msgid "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"
msgstr "Vendor's SKU"
#: core/models.py:1118
#: core/models.py:1123
msgid "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"
msgstr "Digital file"
#: core/models.py:1128
#: core/models.py:1133
msgid "stock entries"
msgstr "Stock entries"
#: core/models.py:1137
#: core/models.py:1142
msgid "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"
msgstr "User who owns this wishlist"
#: core/models.py:1146
#: core/models.py:1151
msgid "wishlist owner"
msgstr "Wishlist's Owner"
#: core/models.py:1154
#: core/models.py:1159
msgid "wishlist"
msgstr "Wishlist"
#: core/models.py:1194
#: core/models.py:1199
msgid "download"
msgstr "Download"
#: core/models.py:1195
#: core/models.py:1200
msgid "downloads"
msgstr "Downloads"
#: core/models.py:1203
#: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order"
msgstr "You can not download a digital asset for a non-finished order"
#: core/models.py:1215
#: core/models.py:1220
msgid "documentary"
msgstr "Documentary"
#: core/models.py:1216
#: core/models.py:1221
msgid "documentaries"
msgstr "Documentaries"
#: core/models.py:1226
#: core/models.py:1231
msgid "unresolved"
msgstr "Unresolved"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -83,7 +83,7 @@ msgstr "Imagen"
msgid "images"
msgstr "Imágenes"
#: core/admin.py:160 core/models.py:1127
#: core/admin.py:160 core/models.py:1132
msgid "stock"
msgstr "Stock"
@ -91,7 +91,7 @@ msgstr "Stock"
msgid "stocks"
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_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95
@ -99,35 +99,35 @@ msgstr "Acciones"
msgid "price"
msgstr "Precio"
#: core/admin.py:196
#: core/admin.py:197
msgid "rating"
msgstr "Valoración del producto"
#: core/admin.py:200
#: core/admin.py:201
msgid "basic info"
msgstr "Información básica"
#: core/admin.py:214
#: core/admin.py:215
msgid "important dates"
msgstr "Fechas importantes"
#: core/admin.py:215
#: core/admin.py:216
msgid "translations"
msgstr "Traducciones"
#: core/admin.py:253 core/models.py:837
#: core/admin.py:254 core/models.py:842
msgid "order product"
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"
msgstr "Pedir productos"
#: core/admin.py:273
#: core/admin.py:274
msgid "is business"
msgstr "Es Negocio"
#: core/admin.py:381
#: core/admin.py:382
msgid "config"
msgstr "Configurar"
@ -513,57 +513,57 @@ msgstr ""
msgid "list all products (simple view)"
msgstr "Listar todos los productos (vista simple)"
#: core/docs/drf/viewsets.py:278
#: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID"
msgstr "UUID (exacto) del producto"
#: core/docs/drf/viewsets.py:279
#: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name"
msgstr "(icontains) Nombre del producto"
#: core/docs/drf/viewsets.py:280
#: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive"
msgstr ""
"(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"
msgstr "(exacto) Categoría UUID"
#: core/docs/drf/viewsets.py:283
#: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive"
msgstr ""
"(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"
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"
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"
msgstr "(exacto) Sólo productos activos"
#: core/docs/drf/viewsets.py:287
#: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name"
msgstr "(iexact) Marca"
#: core/docs/drf/viewsets.py:289
#: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity"
msgstr "(gt) Cantidad mínima de existencias"
#: core/docs/drf/viewsets.py:290
#: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug"
msgstr "(exacto) Babosa del producto"
#: core/docs/drf/viewsets.py:291
#: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical"
msgstr "(exacto) Digital frente a físico"
#: core/docs/drf/viewsets.py:295
#: core/docs/drf/viewsets.py:360
msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**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"
"**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)"
msgstr "Recuperar un solo producto (vista detallada)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330
#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug"
msgstr "UUID o babosa del producto"
#: core/docs/drf/viewsets.py:315
#: core/docs/drf/viewsets.py:389
msgid "create a product"
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"
msgstr "Reescribir un producto existente conservando los campos no editables"
#: core/docs/drf/viewsets.py:324
#: core/docs/drf/viewsets.py:411
msgid ""
"update some fields of an existing product, preserving non-editable fields"
msgstr ""
"Actualizar algunos campos de un producto existente, conservando los campos "
"no editables"
#: core/docs/drf/viewsets.py:329
#: core/docs/drf/viewsets.py:426
msgid "delete a product"
msgstr "Eliminar un producto"
#: core/elasticsearch/__init__.py:39
#: core/elasticsearch/__init__.py:40
msgid "no search term provided."
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!"
#: 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}"
msgstr ""
"Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}"
@ -847,7 +847,7 @@ msgstr "Códigos promocionales"
msgid "products on sale"
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"
msgstr "Promociones"
@ -863,11 +863,11 @@ msgstr "Vendedor"
msgid "product"
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"
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"
msgstr "Listas de deseos"
@ -1014,8 +1014,8 @@ msgstr "Atributo de este valor"
msgid "the specific product associated with this attribute's value"
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:1094
#: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1099
msgid "associated product"
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"
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"
msgstr "Etiquetas del producto"
@ -1131,7 +1131,7 @@ msgstr "Proporcionar un nombre que identifique claramente el producto"
msgid "product name"
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"
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"
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"
msgstr ""
"Estructura JSON de las notificaciones para mostrar a los usuarios, en la "
@ -1272,56 +1272,60 @@ msgstr "ID legible por humanos"
msgid "order"
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"
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"
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"
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:1165 core/models.py:1176
#: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1170 core/models.py:1181
#, python-brace-format
msgid "{name} does not exist: {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"
msgstr "No puede eliminar productos de un pedido que no esté pendiente"
#: core/models.py:588
#: core/models.py:593
#, python-brace-format
msgid "{name} does not exist with query <{query}>"
msgstr "{name} no existe con la consulta <{query}>"
#: core/models.py:619
#: core/models.py:624
msgid "promocode does not exist"
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"
msgstr ""
"No puede comprar en este momento, por favor inténtelo de nuevo en unos "
"minutos."
#: core/models.py:629
#: core/models.py:634
msgid "invalid force value"
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!"
msgstr "No se puede comprar un pedido vacío."
#: core/models.py:647
#: core/models.py:652
msgid "insufficient funds to complete the order"
msgstr "Fondos insuficientes para completar el pedido"
#: core/models.py:677
#: core/models.py:682
msgid ""
"you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number"
@ -1329,192 +1333,192 @@ msgstr ""
"no puede comprar sin registrarse, facilite la siguiente información: nombre "
"del cliente, correo electrónico del cliente, número de teléfono del cliente"
#: core/models.py:685
#: core/models.py:690
msgid "invalid payment method"
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"
msgstr ""
"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"
msgstr ""
"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"
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"
msgstr ""
"Comentarios internos para los administradores sobre este producto solicitado"
#: core/models.py:786
#: core/models.py:791
msgid "internal comments"
msgstr "Comentarios internos"
#: core/models.py:792
#: core/models.py:797
msgid "user notifications"
msgstr "Notificaciones a los usuarios"
#: core/models.py:797
#: core/models.py:802
msgid "json representation of this item's attributes"
msgstr "Representación JSON de los atributos de este elemento"
#: core/models.py:798
#: core/models.py:803
msgid "ordered product attributes"
msgstr "Atributos ordenados del producto"
#: core/models.py:803
#: core/models.py:808
msgid "reference to the parent order that contains this product"
msgstr "Referencia al pedido principal que contiene este producto"
#: core/models.py:804
#: core/models.py:809
msgid "parent order"
msgstr "Orden de los padres"
#: core/models.py:813
#: core/models.py:818
msgid "the specific product associated with this order line"
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"
msgstr "Cantidad de este producto específico en el pedido"
#: core/models.py:821
#: core/models.py:826
msgid "product quantity"
msgstr "Cantidad de productos"
#: core/models.py:828
#: core/models.py:833
msgid "current status of this product in the order"
msgstr "Estado actual de este producto en el pedido"
#: core/models.py:829
#: core/models.py:834
msgid "product line status"
msgstr "Estado de la línea de productos"
#: core/models.py:887
#: core/models.py:892
msgid "internal tag identifier for the product tag"
msgstr "Identificador interno de la etiqueta del producto"
#: core/models.py:888
#: core/models.py:893
msgid "tag name"
msgstr "Nombre de la etiqueta"
#: core/models.py:892
#: core/models.py:897
msgid "user-friendly name for the product tag"
msgstr "Nombre fácil de usar para la etiqueta del producto"
#: core/models.py:893
#: core/models.py:898
msgid "tag display name"
msgstr "Nombre de la etiqueta"
#: core/models.py:901
#: core/models.py:906
msgid "product tag"
msgstr "Etiqueta del producto"
#: core/models.py:910
#: core/models.py:915
msgid "provide alternative text for the image for accessibility"
msgstr ""
"Proporcione un texto alternativo para la imagen en aras de la accesibilidad"
#: core/models.py:911
#: core/models.py:916
msgid "image alt text"
msgstr "Texto alternativo de la imagen"
#: core/models.py:914
#: core/models.py:919
msgid "upload the image file for this product"
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"
msgstr "Imagen del producto"
#: core/models.py:921
#: core/models.py:926
msgid "determines the order in which images are displayed"
msgstr "Determina el orden de visualización de las imágenes"
#: core/models.py:922
#: core/models.py:927
msgid "display priority"
msgstr "Prioridad de visualización"
#: core/models.py:927
#: core/models.py:932
msgid "the product that this image represents"
msgstr "El producto que representa esta imagen"
#: core/models.py:941
#: core/models.py:946
msgid "product images"
msgstr "Imágenes de productos"
#: core/models.py:951
#: core/models.py:956
msgid "unique code used by a user to redeem a discount"
msgstr "Código único utilizado por un usuario para canjear un descuento"
#: core/models.py:952
#: core/models.py:957
msgid "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"
msgstr "Se aplica un descuento fijo si no se utiliza el porcentaje"
#: core/models.py:960
#: core/models.py:965
msgid "fixed discount amount"
msgstr "Importe fijo del descuento"
#: core/models.py:966
#: core/models.py:971
msgid "percentage discount applied if fixed amount is not used"
msgstr "Porcentaje de descuento aplicado si no se utiliza el importe fijo"
#: core/models.py:967
#: core/models.py:972
msgid "percentage discount"
msgstr "Porcentaje de descuento"
#: core/models.py:972
#: core/models.py:977
msgid "timestamp when the promocode expires"
msgstr "Fecha de caducidad del promocode"
#: core/models.py:973
#: core/models.py:978
msgid "end validity time"
msgstr "Hora de fin de validez"
#: core/models.py:978
#: core/models.py:983
msgid "timestamp from which this promocode is valid"
msgstr "Fecha a partir de la cual es válido este promocode"
#: core/models.py:979
#: core/models.py:984
msgid "start validity time"
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"
msgstr ""
"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"
msgstr "Marca de tiempo de uso"
#: core/models.py:990
#: core/models.py:995
msgid "user assigned to this promocode if applicable"
msgstr "Usuario asignado a este promocode si procede"
#: core/models.py:991
#: core/models.py:996
msgid "assigned user"
msgstr "Usuario asignado"
#: core/models.py:998
#: core/models.py:1003
msgid "promo code"
msgstr "Promo code"
#: core/models.py:999
#: core/models.py:1004
msgid "promo codes"
msgstr "Promo codes"
#: core/models.py:1006
#: core/models.py:1011
msgid ""
"only one type of discount should be defined (amount or percent), but not "
"both or neither."
@ -1522,140 +1526,140 @@ msgstr ""
"Sólo debe definirse un tipo de descuento (importe o porcentaje), pero no "
"ambos ni ninguno."
#: core/models.py:1021
#: core/models.py:1026
msgid "promocode already used"
msgstr "El código promocional ya ha sido utilizado"
#: core/models.py:1033
#: core/models.py:1038
#, python-brace-format
msgid "invalid discount type for 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"
msgstr "Porcentaje de descuento para los productos seleccionados"
#: core/models.py:1045
#: core/models.py:1050
msgid "discount percentage"
msgstr "Porcentaje de descuento"
#: core/models.py:1050
#: core/models.py:1055
msgid "provide a unique name for this promotion"
msgstr "Proporcione un nombre único para esta promoción"
#: core/models.py:1051
#: core/models.py:1056
msgid "promotion name"
msgstr "Nombre de la promoción"
#: core/models.py:1057
#: core/models.py:1062
msgid "promotion description"
msgstr "Descripción de la promoción"
#: core/models.py:1062
#: core/models.py:1067
msgid "select which products are included in this promotion"
msgstr "Seleccione los productos incluidos en esta promoción"
#: core/models.py:1063
#: core/models.py:1068
msgid "included products"
msgstr "Productos incluidos"
#: core/models.py:1067
#: core/models.py:1072
msgid "promotion"
msgstr "Promoción"
#: core/models.py:1082
#: core/models.py:1087
msgid "the vendor supplying this product stock"
msgstr "El vendedor que suministra este producto dispone de"
#: core/models.py:1083
#: core/models.py:1088
msgid "associated vendor"
msgstr "Proveedor asociado"
#: core/models.py:1087
#: core/models.py:1092
msgid "final price to the customer after markups"
msgstr "Precio final al cliente después de márgenes"
#: core/models.py:1088
#: core/models.py:1093
msgid "selling price"
msgstr "Precio de venta"
#: core/models.py:1093
#: core/models.py:1098
msgid "the product associated with this stock entry"
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"
msgstr "El precio pagado al vendedor por este producto"
#: core/models.py:1102
#: core/models.py:1107
msgid "vendor purchase price"
msgstr "Precio de compra al vendedor"
#: core/models.py:1106
#: core/models.py:1111
msgid "available quantity of the product in stock"
msgstr "Cantidad disponible del producto en stock"
#: core/models.py:1107
#: core/models.py:1112
msgid "quantity in stock"
msgstr "Cantidad en stock"
#: core/models.py:1111
#: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product"
msgstr "SKU asignada por el proveedor para identificar el producto"
#: core/models.py:1112
#: core/models.py:1117
msgid "vendor sku"
msgstr "SKU del vendedor"
#: core/models.py:1118
#: core/models.py:1123
msgid "digital file associated with this stock if applicable"
msgstr "Archivo digital asociado a esta acción, si procede"
#: core/models.py:1119
#: core/models.py:1124
msgid "digital file"
msgstr "Archivo digital"
#: core/models.py:1128
#: core/models.py:1133
msgid "stock entries"
msgstr "Entradas en existencias"
#: core/models.py:1137
#: core/models.py:1142
msgid "products that the user has marked as wanted"
msgstr "Productos que el usuario ha marcado como deseados"
#: core/models.py:1145
#: core/models.py:1150
msgid "user who owns this wishlist"
msgstr "Usuario propietario de esta lista de deseos"
#: core/models.py:1146
#: core/models.py:1151
msgid "wishlist owner"
msgstr "Propietario de Wishlist"
#: core/models.py:1154
#: core/models.py:1159
msgid "wishlist"
msgstr "Lista de deseos"
#: core/models.py:1194
#: core/models.py:1199
msgid "download"
msgstr "Descargar"
#: core/models.py:1195
#: core/models.py:1200
msgid "downloads"
msgstr "Descargas"
#: core/models.py:1203
#: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order"
msgstr "No puede descargar un activo digital para un pedido no finalizado"
#: core/models.py:1215
#: core/models.py:1220
msgid "documentary"
msgstr "Documental"
#: core/models.py:1216
#: core/models.py:1221
msgid "documentaries"
msgstr "Documentaries"
#: core/models.py:1226
#: core/models.py:1231
msgid "unresolved"
msgstr "Sin resolver"

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -81,7 +81,7 @@ msgstr "Afbeelding"
msgid "images"
msgstr "Afbeeldingen"
#: core/admin.py:160 core/models.py:1127
#: core/admin.py:160 core/models.py:1132
msgid "stock"
msgstr "Voorraad"
@ -89,7 +89,7 @@ msgstr "Voorraad"
msgid "stocks"
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_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95
@ -97,35 +97,35 @@ msgstr "Aandelen"
msgid "price"
msgstr "Prijs"
#: core/admin.py:196
#: core/admin.py:197
msgid "rating"
msgstr "Productbeoordeling"
#: core/admin.py:200
#: core/admin.py:201
msgid "basic info"
msgstr "Basisinformatie"
#: core/admin.py:214
#: core/admin.py:215
msgid "important dates"
msgstr "Belangrijke data"
#: core/admin.py:215
#: core/admin.py:216
msgid "translations"
msgstr "Vertalingen"
#: core/admin.py:253 core/models.py:837
#: core/admin.py:254 core/models.py:842
msgid "order product"
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"
msgstr "Producten bestellen"
#: core/admin.py:273
#: core/admin.py:274
msgid "is business"
msgstr "Is zakelijk"
#: core/admin.py:381
#: core/admin.py:382
msgid "config"
msgstr "Config"
@ -519,55 +519,55 @@ msgstr ""
msgid "list all products (simple view)"
msgstr "Alle producten weergeven (eenvoudige weergave)"
#: core/docs/drf/viewsets.py:278
#: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID"
msgstr "(exacte) UUID van product"
#: core/docs/drf/viewsets.py:279
#: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name"
msgstr "(pictogrammen) Productnaam"
#: core/docs/drf/viewsets.py:280
#: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive"
msgstr "(lijst) Categorienamen, hoofdlettergevoelig"
#: core/docs/drf/viewsets.py:282
#: core/docs/drf/viewsets.py:299
msgid "(exact) Category UUID"
msgstr "(exacte) UUID van categorie"
#: core/docs/drf/viewsets.py:283
#: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive"
msgstr "(lijst) Labelnamen, hoofdlettergevoelig"
#: core/docs/drf/viewsets.py:284
#: core/docs/drf/viewsets.py:311
msgid "(gte) Minimum stock price"
msgstr "(gte) Minimale aandelenprijs"
#: core/docs/drf/viewsets.py:285
#: core/docs/drf/viewsets.py:317
msgid "(lte) Maximum stock price"
msgstr "(lte) Maximale aandelenprijs"
#: core/docs/drf/viewsets.py:286
#: core/docs/drf/viewsets.py:323
msgid "(exact) Only active products"
msgstr "(exact) Alleen actieve producten"
#: core/docs/drf/viewsets.py:287
#: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name"
msgstr "(iexact) Merknaam"
#: core/docs/drf/viewsets.py:289
#: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity"
msgstr "(gt) Minimumvoorraad"
#: core/docs/drf/viewsets.py:290
#: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug"
msgstr "(exacte) productnaam"
#: core/docs/drf/viewsets.py:291
#: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical"
msgstr "(exact) Digitaal vs. fysiek"
#: core/docs/drf/viewsets.py:295
#: core/docs/drf/viewsets.py:360
msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**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"
"**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)"
msgstr "Een enkel product ophalen (gedetailleerde weergave)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330
#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug"
msgstr "Product UUID of Slug"
#: core/docs/drf/viewsets.py:315
#: core/docs/drf/viewsets.py:389
msgid "create a product"
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"
msgstr ""
"Een bestaand product herschrijven met behoud van niet-wijzigbare velden"
#: core/docs/drf/viewsets.py:324
#: core/docs/drf/viewsets.py:411
msgid ""
"update some fields of an existing product, preserving non-editable fields"
msgstr ""
"Enkele velden van een bestaand product bijwerken, met behoud van niet-"
"wijzigbare velden"
#: core/docs/drf/viewsets.py:329
#: core/docs/drf/viewsets.py:426
msgid "delete a product"
msgstr "Een product verwijderen"
#: core/elasticsearch/__init__.py:39
#: core/elasticsearch/__init__.py:40
msgid "no search term provided."
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!"
#: 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}"
msgstr "Verkeerd type kwam uit order.buy() methode: {type(instance)!s}"
@ -849,7 +849,7 @@ msgstr "Promocodes"
msgid "products on sale"
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"
msgstr "Promoties"
@ -865,11 +865,11 @@ msgstr "Verkoper"
msgid "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"
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"
msgstr "Verlanglijst"
@ -1017,8 +1017,8 @@ msgstr "Attribuut van deze waarde"
msgid "the specific product associated with this attribute's value"
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:1094
#: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1099
msgid "associated 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"
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"
msgstr "Product tags"
@ -1134,7 +1134,7 @@ msgstr "Zorg voor een duidelijke identificerende naam voor het product"
msgid "product name"
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"
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"
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"
msgstr ""
"JSON-structuur van meldingen om weer te geven aan gebruikers, in admin UI "
@ -1274,59 +1274,63 @@ msgstr "menselijk leesbare ID"
msgid "order"
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"
msgstr ""
"U kunt geen producten toevoegen aan een bestelling die niet in behandeling "
"is."
#: core/models.py:541
#: core/models.py:546
msgid "you cannot add inactive products to order"
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"
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:1165 core/models.py:1176
#: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1170 core/models.py:1181
#, python-brace-format
msgid "{name} does not exist: {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"
msgstr ""
"U kunt geen producten verwijderen uit een bestelling die niet in behandeling"
" is."
#: core/models.py:588
#: core/models.py:593
#, python-brace-format
msgid "{name} does not exist with query <{query}>"
msgstr "{name} bestaat niet met query <{query}>"
#: core/models.py:619
#: core/models.py:624
msgid "promocode does not exist"
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"
msgstr ""
"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"
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!"
msgstr "Je kunt geen lege bestelling kopen!"
#: core/models.py:647
#: core/models.py:652
msgid "insufficient funds to complete the order"
msgstr "Onvoldoende fondsen om de bestelling te voltooien"
#: core/models.py:677
#: core/models.py:682
msgid ""
"you cannot buy without registration, please provide the following "
"information: customer name, customer email, customer phone number"
@ -1334,193 +1338,193 @@ msgstr ""
"u niet kunt kopen zonder registratie, geef dan de volgende informatie: "
"klantnaam, e-mail klant, telefoonnummer klant"
#: core/models.py:685
#: core/models.py:690
msgid "invalid payment method"
msgstr "Ongeldige betaalmethode"
#: core/models.py:701
#: core/models.py:706
msgid "you cannot create a momental order without providing a billing address"
msgstr ""
"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"
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"
msgstr "Aankoopprijs bij bestelling"
#: core/models.py:785
#: core/models.py:790
msgid "internal comments for admins about this ordered product"
msgstr "Interne opmerkingen voor beheerders over dit bestelde product"
#: core/models.py:786
#: core/models.py:791
msgid "internal comments"
msgstr "Interne opmerkingen"
#: core/models.py:792
#: core/models.py:797
msgid "user notifications"
msgstr "Meldingen van gebruikers"
#: core/models.py:797
#: core/models.py:802
msgid "json representation of this item's attributes"
msgstr "JSON weergave van de attributen van dit item"
#: core/models.py:798
#: core/models.py:803
msgid "ordered product attributes"
msgstr "Geordende producteigenschappen"
#: core/models.py:803
#: core/models.py:808
msgid "reference to the parent order that contains this product"
msgstr "Verwijzing naar de bovenliggende bestelling die dit product bevat"
#: core/models.py:804
#: core/models.py:809
msgid "parent order"
msgstr "Ouderlijk bevel"
#: core/models.py:813
#: core/models.py:818
msgid "the specific product associated with this order line"
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"
msgstr "Hoeveelheid van dit specifieke product in de bestelling"
#: core/models.py:821
#: core/models.py:826
msgid "product quantity"
msgstr "Hoeveelheid product"
#: core/models.py:828
#: core/models.py:833
msgid "current status of this product in the order"
msgstr "Huidige status van dit product in de bestelling"
#: core/models.py:829
#: core/models.py:834
msgid "product line status"
msgstr "Status productlijn"
#: core/models.py:887
#: core/models.py:892
msgid "internal tag identifier for the product tag"
msgstr "Interne tagidentifier voor de producttag"
#: core/models.py:888
#: core/models.py:893
msgid "tag name"
msgstr "Tag naam"
#: core/models.py:892
#: core/models.py:897
msgid "user-friendly name for the product tag"
msgstr "Gebruiksvriendelijke naam voor de producttag"
#: core/models.py:893
#: core/models.py:898
msgid "tag display name"
msgstr "Tag weergavenaam"
#: core/models.py:901
#: core/models.py:906
msgid "product tag"
msgstr "Productlabel"
#: core/models.py:910
#: core/models.py:915
msgid "provide alternative text for the image for accessibility"
msgstr "Geef alternatieve tekst voor de afbeelding voor toegankelijkheid"
#: core/models.py:911
#: core/models.py:916
msgid "image alt text"
msgstr "Alt-tekst afbeelding"
#: core/models.py:914
#: core/models.py:919
msgid "upload the image file for this 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"
msgstr "Product afbeelding"
#: core/models.py:921
#: core/models.py:926
msgid "determines the order in which images are displayed"
msgstr "Bepaalt de volgorde waarin afbeeldingen worden weergegeven"
#: core/models.py:922
#: core/models.py:927
msgid "display priority"
msgstr "Prioriteit weergeven"
#: core/models.py:927
#: core/models.py:932
msgid "the product that this image represents"
msgstr "Het product dat deze afbeelding vertegenwoordigt"
#: core/models.py:941
#: core/models.py:946
msgid "product images"
msgstr "Product afbeeldingen"
#: core/models.py:951
#: core/models.py:956
msgid "unique code used by a user to redeem a discount"
msgstr "Unieke code die een gebruiker gebruikt om een korting te verzilveren"
#: core/models.py:952
#: core/models.py:957
msgid "promo code identifier"
msgstr "Promo code identificatie"
#: core/models.py:959
#: core/models.py:964
msgid "fixed discount amount applied if percent is not used"
msgstr ""
"Vast kortingsbedrag dat wordt toegepast als percentage niet wordt gebruikt"
#: core/models.py:960
#: core/models.py:965
msgid "fixed discount amount"
msgstr "Vast kortingsbedrag"
#: core/models.py:966
#: core/models.py:971
msgid "percentage discount applied if fixed amount is not used"
msgstr ""
"Kortingspercentage dat wordt toegepast als het vaste bedrag niet wordt "
"gebruikt"
#: core/models.py:967
#: core/models.py:972
msgid "percentage discount"
msgstr "Kortingspercentage"
#: core/models.py:972
#: core/models.py:977
msgid "timestamp when the promocode expires"
msgstr "Tijdstempel wanneer de promocode verloopt"
#: core/models.py:973
#: core/models.py:978
msgid "end validity time"
msgstr "Geldigheidsduur einde"
#: core/models.py:978
#: core/models.py:983
msgid "timestamp from which this promocode is valid"
msgstr "Tijdstempel vanaf wanneer deze promocode geldig is"
#: core/models.py:979
#: core/models.py:984
msgid "start validity time"
msgstr "Begin geldigheidsduur"
#: core/models.py:984
#: core/models.py:989
msgid "timestamp when the promocode was used, blank if not used yet"
msgstr ""
"Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet "
"gebruikt"
#: core/models.py:985
#: core/models.py:990
msgid "usage timestamp"
msgstr "Gebruik tijdstempel"
#: core/models.py:990
#: core/models.py:995
msgid "user assigned to this promocode if applicable"
msgstr "Gebruiker toegewezen aan deze promocode indien van toepassing"
#: core/models.py:991
#: core/models.py:996
msgid "assigned user"
msgstr "Toegewezen gebruiker"
#: core/models.py:998
#: core/models.py:1003
msgid "promo code"
msgstr "Kortingscode"
#: core/models.py:999
#: core/models.py:1004
msgid "promo codes"
msgstr "Actiecodes"
#: core/models.py:1006
#: core/models.py:1011
msgid ""
"only one type of discount should be defined (amount or percent), but not "
"both or neither."
@ -1528,141 +1532,141 @@ msgstr ""
"Er moet slechts één type korting worden gedefinieerd (bedrag of percentage),"
" maar niet beide of geen van beide."
#: core/models.py:1021
#: core/models.py:1026
msgid "promocode already used"
msgstr "Promocode is al gebruikt"
#: core/models.py:1033
#: core/models.py:1038
#, python-brace-format
msgid "invalid discount type for 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"
msgstr "Kortingspercentage voor de geselecteerde producten"
#: core/models.py:1045
#: core/models.py:1050
msgid "discount percentage"
msgstr "Kortingspercentage"
#: core/models.py:1050
#: core/models.py:1055
msgid "provide a unique name for this promotion"
msgstr "Geef deze promotie een unieke naam"
#: core/models.py:1051
#: core/models.py:1056
msgid "promotion name"
msgstr "Naam promotie"
#: core/models.py:1057
#: core/models.py:1062
msgid "promotion description"
msgstr "Promotie beschrijving"
#: core/models.py:1062
#: core/models.py:1067
msgid "select which products are included in this promotion"
msgstr "Selecteer welke producten onder deze promotie vallen"
#: core/models.py:1063
#: core/models.py:1068
msgid "included products"
msgstr "Meegeleverde producten"
#: core/models.py:1067
#: core/models.py:1072
msgid "promotion"
msgstr "Promotie"
#: core/models.py:1082
#: core/models.py:1087
msgid "the vendor supplying this product stock"
msgstr "De verkoper die dit product levert"
#: core/models.py:1083
#: core/models.py:1088
msgid "associated vendor"
msgstr "Geassocieerde verkoper"
#: core/models.py:1087
#: core/models.py:1092
msgid "final price to the customer after markups"
msgstr "Eindprijs voor de klant na winstmarges"
#: core/models.py:1088
#: core/models.py:1093
msgid "selling price"
msgstr "Verkoopprijs"
#: core/models.py:1093
#: core/models.py:1098
msgid "the product associated with this stock entry"
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"
msgstr "De prijs die voor dit product aan de verkoper is betaald"
#: core/models.py:1102
#: core/models.py:1107
msgid "vendor purchase price"
msgstr "Aankoopprijs verkoper"
#: core/models.py:1106
#: core/models.py:1111
msgid "available quantity of the product in stock"
msgstr "Beschikbare hoeveelheid van het product in voorraad"
#: core/models.py:1107
#: core/models.py:1112
msgid "quantity in stock"
msgstr "Hoeveelheid op voorraad"
#: core/models.py:1111
#: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product"
msgstr "Door de verkoper toegewezen SKU om het product te identificeren"
#: core/models.py:1112
#: core/models.py:1117
msgid "vendor sku"
msgstr "Verkoper SKU"
#: core/models.py:1118
#: core/models.py:1123
msgid "digital file associated with this stock if applicable"
msgstr "Digitaal bestand gekoppeld aan deze voorraad indien van toepassing"
#: core/models.py:1119
#: core/models.py:1124
msgid "digital file"
msgstr "Digitaal bestand"
#: core/models.py:1128
#: core/models.py:1133
msgid "stock entries"
msgstr "Voorraadboekingen"
#: core/models.py:1137
#: core/models.py:1142
msgid "products that the user has marked as wanted"
msgstr "Producten die de gebruiker als gewenst heeft gemarkeerd"
#: core/models.py:1145
#: core/models.py:1150
msgid "user who owns this wishlist"
msgstr "Gebruiker die eigenaar is van deze verlanglijst"
#: core/models.py:1146
#: core/models.py:1151
msgid "wishlist owner"
msgstr "Eigenaar verlanglijstje"
#: core/models.py:1154
#: core/models.py:1159
msgid "wishlist"
msgstr "Verlanglijst"
#: core/models.py:1194
#: core/models.py:1199
msgid "download"
msgstr "Downloaden"
#: core/models.py:1195
#: core/models.py:1200
msgid "downloads"
msgstr "Downloads"
#: core/models.py:1203
#: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order"
msgstr ""
"U kunt geen digitale activa downloaden voor een niet-afgeronde bestelling"
#: core/models.py:1215
#: core/models.py:1220
msgid "documentary"
msgstr "Documentaire"
#: core/models.py:1216
#: core/models.py:1221
msgid "documentaries"
msgstr "Documentaires"
#: core/models.py:1226
#: core/models.py:1231
msgid "unresolved"
msgstr "Onopgelost"

View file

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

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -83,7 +83,7 @@ msgstr "Imagem"
msgid "images"
msgstr "Imagens"
#: core/admin.py:160 core/models.py:1127
#: core/admin.py:160 core/models.py:1132
msgid "stock"
msgstr "Estoque"
@ -91,7 +91,7 @@ msgstr "Estoque"
msgid "stocks"
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_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95
@ -99,35 +99,35 @@ msgstr "Ações"
msgid "price"
msgstr "Preço"
#: core/admin.py:196
#: core/admin.py:197
msgid "rating"
msgstr "Avaliação do produto"
#: core/admin.py:200
#: core/admin.py:201
msgid "basic info"
msgstr "Informações básicas"
#: core/admin.py:214
#: core/admin.py:215
msgid "important dates"
msgstr "Datas importantes"
#: core/admin.py:215
#: core/admin.py:216
msgid "translations"
msgstr "Traduções"
#: core/admin.py:253 core/models.py:837
#: core/admin.py:254 core/models.py:842
msgid "order product"
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"
msgstr "Solicitar produtos"
#: core/admin.py:273
#: core/admin.py:274
msgid "is business"
msgstr "É um negócio"
#: core/admin.py:381
#: core/admin.py:382
msgid "config"
msgstr "Configuração"
@ -506,56 +506,56 @@ msgstr ""
msgid "list all products (simple view)"
msgstr "Listar todos os produtos (visualização simples)"
#: core/docs/drf/viewsets.py:278
#: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID"
msgstr "UUID (exato) do produto"
#: core/docs/drf/viewsets.py:279
#: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name"
msgstr "(icontains) Nome do produto"
#: core/docs/drf/viewsets.py:280
#: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive"
msgstr ""
"(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"
msgstr "(exato) UUID da categoria"
#: core/docs/drf/viewsets.py:283
#: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive"
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"
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"
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"
msgstr "(exato) Somente produtos ativos"
#: core/docs/drf/viewsets.py:287
#: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name"
msgstr "(iexact) Nome da marca"
#: core/docs/drf/viewsets.py:289
#: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity"
msgstr "(gt) Quantidade mínima em estoque"
#: core/docs/drf/viewsets.py:290
#: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug"
msgstr "(exato) Slug do produto"
#: core/docs/drf/viewsets.py:291
#: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical"
msgstr "(exato) Digital vs. físico"
#: core/docs/drf/viewsets.py:295
#: core/docs/drf/viewsets.py:360
msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**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"
"**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)"
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:325 core/docs/drf/viewsets.py:330
#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug"
msgstr "UUID ou Slug do produto"
#: core/docs/drf/viewsets.py:315
#: core/docs/drf/viewsets.py:389
msgid "create a product"
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"
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 ""
"update some fields of an existing product, preserving non-editable fields"
msgstr ""
"Atualizar alguns campos de um produto existente, preservando os campos não "
"editáveis"
#: core/docs/drf/viewsets.py:329
#: core/docs/drf/viewsets.py:426
msgid "delete a product"
msgstr "Excluir um produto"
#: core/elasticsearch/__init__.py:39
#: core/elasticsearch/__init__.py:40
msgid "no search term provided."
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!"
#: 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}"
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"
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"
msgstr "Promoções"
@ -850,11 +850,11 @@ msgstr "Vendor"
msgid "product"
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"
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"
msgstr "Listas de desejos"
@ -1001,8 +1001,8 @@ msgstr "Atributo desse valor"
msgid "the specific product associated with this attribute's value"
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:1094
#: core/models.py:142 core/models.py:819 core/models.py:933
#: core/models.py:1099
msgid "associated product"
msgstr "Produto associado"
@ -1098,7 +1098,7 @@ msgstr "Opcionalmente, associe esse produto a uma marca"
msgid "tags that help describe or group this product"
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"
msgstr "Etiquetas do produto"
@ -1118,7 +1118,7 @@ msgstr "Fornecer um nome de identificação claro para o produto"
msgid "product name"
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"
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"
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"
msgstr ""
"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"
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"
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"
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"
msgstr ""
"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:1165 core/models.py:1176
#: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1170 core/models.py:1181
#, python-brace-format
msgid "{name} does not exist: {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"
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
msgid "{name} does not exist with query <{query}>"
msgstr "{name} não existe com a consulta <{query}>"
#: core/models.py:619
#: core/models.py:624
msgid "promocode does not exist"
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"
msgstr ""
"Não é possível comprar neste momento, tente novamente em alguns minutos."
#: core/models.py:629
#: core/models.py:634
msgid "invalid force value"
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!"
msgstr "Você não pode comprar um pedido vazio!"
#: core/models.py:647
#: core/models.py:652
msgid "insufficient funds to complete the order"
msgstr "Fundos insuficientes para concluir o pedido"
#: core/models.py:677
#: core/models.py:682
msgid ""
"you cannot buy without registration, please provide the following "
"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 "
"do cliente, e-mail do cliente, número de telefone do cliente"
#: core/models.py:685
#: core/models.py:690
msgid "invalid payment method"
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"
msgstr ""
"não é possível criar um pedido de compra sem fornecer um endereço de "
"cobrança"
#: core/models.py:779
#: core/models.py:784
msgid "the price paid by the customer for this product at purchase time"
msgstr "O preço pago pelo cliente por esse produto no momento da compra"
#: core/models.py:780
#: core/models.py:785
msgid "purchase price at order time"
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"
msgstr ""
"Comentários internos para administradores sobre este produto encomendado"
#: core/models.py:786
#: core/models.py:791
msgid "internal comments"
msgstr "Comentários internos"
#: core/models.py:792
#: core/models.py:797
msgid "user notifications"
msgstr "Notificações do usuário"
#: core/models.py:797
#: core/models.py:802
msgid "json representation of this item's attributes"
msgstr "Representação JSON dos atributos desse item"
#: core/models.py:798
#: core/models.py:803
msgid "ordered product attributes"
msgstr "Atributos ordenados do produto"
#: core/models.py:803
#: core/models.py:808
msgid "reference to the parent order that contains this product"
msgstr "Referência ao pedido pai que contém esse produto"
#: core/models.py:804
#: core/models.py:809
msgid "parent order"
msgstr "Ordem dos pais"
#: core/models.py:813
#: core/models.py:818
msgid "the specific product associated with this order line"
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"
msgstr "Quantidade desse produto específico no pedido"
#: core/models.py:821
#: core/models.py:826
msgid "product quantity"
msgstr "Quantidade do produto"
#: core/models.py:828
#: core/models.py:833
msgid "current status of this product in the order"
msgstr "Status atual desse produto no pedido"
#: core/models.py:829
#: core/models.py:834
msgid "product line status"
msgstr "Status da linha de produtos"
#: core/models.py:887
#: core/models.py:892
msgid "internal tag identifier for the product tag"
msgstr "Identificador de tag interno para a tag do produto"
#: core/models.py:888
#: core/models.py:893
msgid "tag name"
msgstr "Nome da etiqueta"
#: core/models.py:892
#: core/models.py:897
msgid "user-friendly name for the product tag"
msgstr "Nome de fácil utilização para a etiqueta do produto"
#: core/models.py:893
#: core/models.py:898
msgid "tag display name"
msgstr "Nome de exibição da tag"
#: core/models.py:901
#: core/models.py:906
msgid "product tag"
msgstr "Etiqueta do produto"
#: core/models.py:910
#: core/models.py:915
msgid "provide alternative text for the image for accessibility"
msgstr ""
"Forneça um texto alternativo para a imagem para fins de acessibilidade"
#: core/models.py:911
#: core/models.py:916
msgid "image alt text"
msgstr "Texto alternativo da imagem"
#: core/models.py:914
#: core/models.py:919
msgid "upload the image file for this product"
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"
msgstr "Imagem do produto"
#: core/models.py:921
#: core/models.py:926
msgid "determines the order in which images are displayed"
msgstr "Determina a ordem em que as imagens são exibidas"
#: core/models.py:922
#: core/models.py:927
msgid "display priority"
msgstr "Prioridade de exibição"
#: core/models.py:927
#: core/models.py:932
msgid "the product that this image represents"
msgstr "O produto que esta imagem representa"
#: core/models.py:941
#: core/models.py:946
msgid "product images"
msgstr "Imagens do produto"
#: core/models.py:951
#: core/models.py:956
msgid "unique code used by a user to redeem a discount"
msgstr "Código exclusivo usado por um usuário para resgatar um desconto"
#: core/models.py:952
#: core/models.py:957
msgid "promo code identifier"
msgstr "Identificador de código promocional"
#: core/models.py:959
#: core/models.py:964
msgid "fixed discount amount applied if percent is not used"
msgstr "Valor de desconto fixo aplicado se a porcentagem não for usada"
#: core/models.py:960
#: core/models.py:965
msgid "fixed discount amount"
msgstr "Valor do desconto fixo"
#: core/models.py:966
#: core/models.py:971
msgid "percentage discount applied if fixed amount is not used"
msgstr "Desconto percentual aplicado se o valor fixo não for usado"
#: core/models.py:967
#: core/models.py:972
msgid "percentage discount"
msgstr "Desconto percentual"
#: core/models.py:972
#: core/models.py:977
msgid "timestamp when the promocode expires"
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"
msgstr "Tempo de validade final"
#: core/models.py:978
#: core/models.py:983
msgid "timestamp from which this promocode is valid"
msgstr ""
"Registro de data e hora a partir do qual esse código promocional é válido"
#: core/models.py:979
#: core/models.py:984
msgid "start validity time"
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"
msgstr ""
"Registro de data e hora em que o código promocional foi usado, em branco se "
"ainda não tiver sido usado"
#: core/models.py:985
#: core/models.py:990
msgid "usage timestamp"
msgstr "Registro de data e hora de uso"
#: core/models.py:990
#: core/models.py:995
msgid "user assigned to this promocode if applicable"
msgstr "Usuário atribuído a esse código promocional, se aplicável"
#: core/models.py:991
#: core/models.py:996
msgid "assigned user"
msgstr "Usuário atribuído"
#: core/models.py:998
#: core/models.py:1003
msgid "promo code"
msgstr "Código promocional"
#: core/models.py:999
#: core/models.py:1004
msgid "promo codes"
msgstr "Códigos promocionais"
#: core/models.py:1006
#: core/models.py:1011
msgid ""
"only one type of discount should be defined (amount or percent), but not "
"both or neither."
@ -1510,142 +1514,142 @@ msgstr ""
"Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não"
" ambos ou nenhum."
#: core/models.py:1021
#: core/models.py:1026
msgid "promocode already used"
msgstr "O código promocional já foi usado"
#: core/models.py:1033
#: core/models.py:1038
#, python-brace-format
msgid "invalid discount type for promocode {self.uuid}"
msgstr "Tipo de desconto inválido para o código promocional {self.uuid}"
#: core/models.py:1044
#: core/models.py:1049
msgid "percentage discount for the selected products"
msgstr "Desconto percentual para os produtos selecionados"
#: core/models.py:1045
#: core/models.py:1050
msgid "discount percentage"
msgstr "Porcentagem de desconto"
#: core/models.py:1050
#: core/models.py:1055
msgid "provide a unique name for this promotion"
msgstr "Forneça um nome exclusivo para essa promoção"
#: core/models.py:1051
#: core/models.py:1056
msgid "promotion name"
msgstr "Nome da promoção"
#: core/models.py:1057
#: core/models.py:1062
msgid "promotion description"
msgstr "Descrição da promoção"
#: core/models.py:1062
#: core/models.py:1067
msgid "select which products are included in this promotion"
msgstr "Selecione quais produtos estão incluídos nessa promoção"
#: core/models.py:1063
#: core/models.py:1068
msgid "included products"
msgstr "Produtos incluídos"
#: core/models.py:1067
#: core/models.py:1072
msgid "promotion"
msgstr "Promoção"
#: core/models.py:1082
#: core/models.py:1087
msgid "the vendor supplying this product stock"
msgstr "O fornecedor que fornece esse estoque de produtos"
#: core/models.py:1083
#: core/models.py:1088
msgid "associated vendor"
msgstr "Fornecedor associado"
#: core/models.py:1087
#: core/models.py:1092
msgid "final price to the customer after markups"
msgstr "Preço final para o cliente após as marcações"
#: core/models.py:1088
#: core/models.py:1093
msgid "selling price"
msgstr "Preço de venda"
#: core/models.py:1093
#: core/models.py:1098
msgid "the product associated with this stock entry"
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"
msgstr "O preço pago ao fornecedor por esse produto"
#: core/models.py:1102
#: core/models.py:1107
msgid "vendor purchase price"
msgstr "Preço de compra do fornecedor"
#: core/models.py:1106
#: core/models.py:1111
msgid "available quantity of the product in stock"
msgstr "Quantidade disponível do produto em estoque"
#: core/models.py:1107
#: core/models.py:1112
msgid "quantity in stock"
msgstr "Quantidade em estoque"
#: core/models.py:1111
#: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product"
msgstr "SKU atribuído pelo fornecedor para identificar o produto"
#: core/models.py:1112
#: core/models.py:1117
msgid "vendor sku"
msgstr "SKU do fornecedor"
#: core/models.py:1118
#: core/models.py:1123
msgid "digital file associated with this stock if applicable"
msgstr "Arquivo digital associado a esse estoque, se aplicável"
#: core/models.py:1119
#: core/models.py:1124
msgid "digital file"
msgstr "Arquivo digital"
#: core/models.py:1128
#: core/models.py:1133
msgid "stock entries"
msgstr "Entradas de estoque"
#: core/models.py:1137
#: core/models.py:1142
msgid "products that the user has marked as wanted"
msgstr "Produtos que o usuário marcou como desejados"
#: core/models.py:1145
#: core/models.py:1150
msgid "user who owns this wishlist"
msgstr "Usuário que possui esta lista de desejos"
#: core/models.py:1146
#: core/models.py:1151
msgid "wishlist owner"
msgstr "Proprietário da lista de desejos"
#: core/models.py:1154
#: core/models.py:1159
msgid "wishlist"
msgstr "Lista de desejos"
#: core/models.py:1194
#: core/models.py:1199
msgid "download"
msgstr "Baixar"
#: core/models.py:1195
#: core/models.py:1200
msgid "downloads"
msgstr "Downloads"
#: core/models.py:1203
#: core/models.py:1208
msgid "you can not download a digital asset for a non-finished order"
msgstr ""
"Não é possível fazer download de um ativo digital para um pedido não "
"concluído"
#: core/models.py:1215
#: core/models.py:1220
msgid "documentary"
msgstr "Documentário"
#: core/models.py:1216
#: core/models.py:1221
msgid "documentaries"
msgstr "Documentários"
#: core/models.py:1226
#: core/models.py:1231
msgid "unresolved"
msgstr "Não resolvido"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -83,7 +83,7 @@ msgstr "Imagine"
msgid "images"
msgstr "Imagini"
#: core/admin.py:160 core/models.py:1127
#: core/admin.py:160 core/models.py:1132
msgid "stock"
msgstr "Stoc"
@ -91,7 +91,7 @@ msgstr "Stoc"
msgid "stocks"
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_delivered_email.html:109
#: core/templates/shipped_order_created_email.html:95
@ -99,35 +99,35 @@ msgstr "Stocuri"
msgid "price"
msgstr "Preț"
#: core/admin.py:196
#: core/admin.py:197
msgid "rating"
msgstr "Evaluarea produsului"
#: core/admin.py:200
#: core/admin.py:201
msgid "basic info"
msgstr "Informații de bază"
#: core/admin.py:214
#: core/admin.py:215
msgid "important dates"
msgstr "Date importante"
#: core/admin.py:215
#: core/admin.py:216
msgid "translations"
msgstr "Traduceri"
#: core/admin.py:253 core/models.py:837
#: core/admin.py:254 core/models.py:842
msgid "order product"
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"
msgstr "Comandați produse"
#: core/admin.py:273
#: core/admin.py:274
msgid "is business"
msgstr "Este o afacere"
#: core/admin.py:381
#: core/admin.py:382
msgid "config"
msgstr "Configurare"
@ -515,55 +515,55 @@ msgstr ""
msgid "list all products (simple view)"
msgstr "Listează toate produsele (vizualizare simplă)"
#: core/docs/drf/viewsets.py:278
#: core/docs/drf/viewsets.py:281
msgid "(exact) Product UUID"
msgstr "(exact) UUID al produsului"
#: core/docs/drf/viewsets.py:279
#: core/docs/drf/viewsets.py:287
msgid "(icontains) Product name"
msgstr "(icontains) Denumirea produsului"
#: core/docs/drf/viewsets.py:280
#: core/docs/drf/viewsets.py:293
msgid "(list) Category names, case-insensitive"
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"
msgstr "(exact) UUID al categoriei"
#: core/docs/drf/viewsets.py:283
#: core/docs/drf/viewsets.py:305
msgid "(list) Tag names, case-insensitive"
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"
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"
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"
msgstr "(exact) Numai produse active"
#: core/docs/drf/viewsets.py:287
#: core/docs/drf/viewsets.py:329
msgid "(iexact) Brand name"
msgstr "(iexact) Denumire comercială"
#: core/docs/drf/viewsets.py:289
#: core/docs/drf/viewsets.py:341
msgid "(gt) Minimum stock quantity"
msgstr "(gt) Cantitatea minimă de stoc"
#: core/docs/drf/viewsets.py:290
#: core/docs/drf/viewsets.py:347
msgid "(exact) Product slug"
msgstr "(exact) Limbajul produsului"
#: core/docs/drf/viewsets.py:291
#: core/docs/drf/viewsets.py:353
msgid "(exact) Digital vs. physical"
msgstr "(exact) Digital vs. fizic"
#: core/docs/drf/viewsets.py:295
#: core/docs/drf/viewsets.py:360
msgid ""
"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n"
"**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"
"**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)"
msgstr "Recuperarea unui singur produs (vedere detaliată)"
#: core/docs/drf/viewsets.py:311 core/docs/drf/viewsets.py:320
#: core/docs/drf/viewsets.py:325 core/docs/drf/viewsets.py:330
#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401
#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431
msgid "Product UUID or slug"
msgstr "UUID sau Slug al produsului"
#: core/docs/drf/viewsets.py:315
#: core/docs/drf/viewsets.py:389
msgid "create a product"
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"
msgstr ""
"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 ""
"update some fields of an existing product, preserving non-editable fields"
msgstr ""
"Actualizarea unor câmpuri ale unui produs existent, păstrând câmpurile "
"needitabile"
#: core/docs/drf/viewsets.py:329
#: core/docs/drf/viewsets.py:426
msgid "delete a product"
msgstr "Ștergeți un produs"
#: core/elasticsearch/__init__.py:39
#: core/elasticsearch/__init__.py:40
msgid "no search term provided."
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!"
#: 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}"
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"
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"
msgstr "Promoții"
@ -863,11 +863,11 @@ msgstr "Furnizor"
msgid "product"
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"
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"
msgstr "Liste de dorințe"
@ -1015,8 +1015,8 @@ msgstr "Atributul acestei valori"
msgid "the specific product associated with this attribute's value"
msgstr "Produsul specific asociat cu valoarea acestui atribut"
#: 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"
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"
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"
msgstr "Etichete de produs"
@ -1133,7 +1133,7 @@ msgstr "Furnizați o denumire clară de identificare a produsului"
msgid "product name"
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"
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"
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"
msgstr ""
"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"
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"
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"
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"
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:1165 core/models.py:1176
#: core/models.py:572 core/models.py:589 core/models.py:613
#: core/models.py:1170 core/models.py:1181
#, python-brace-format
msgid "{name} does not 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"
msgstr ""
"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
msgid "{name} does not exist with query <{query}>"
msgstr "{name} nu există cu interogarea <{query}>"
#: core/models.py:619
#: core/models.py:624
msgid "promocode does not 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"
msgstr ""
"Nu puteți achiziționa în acest moment, vă rugăm să încercați din nou în "
"câteva minute."
#: core/models.py:629
#: core/models.py:634
msgid "invalid force value"
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!"
msgstr "Nu puteți achiziționa o comandă goală!"
#: core/models.py:647
#: core/models.py:652
msgid "insufficient funds to complete the order"
msgstr "Insuficiența fondurilor pentru finalizarea comenzii"
#: core/models.py:677
#: core/models.py:682
msgid ""
"you cannot buy without registration, please provide the following "
"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 "
"informații: nume client, e-mail client, număr de telefon client"
#: core/models.py:685
#: core/models.py:690
msgid "invalid payment method"
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"
msgstr ""
"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"
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"
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"
msgstr ""
"Comentarii interne pentru administratori cu privire la acest produs comandat"
#: core/models.py:786
#: core/models.py:791
msgid "internal comments"
msgstr "Observații interne"
#: core/models.py:792
#: core/models.py:797
msgid "user notifications"
msgstr "Notificări pentru utilizatori"
#: core/models.py:797
#: core/models.py:802
msgid "json representation of this item's attributes"
msgstr "Reprezentarea JSON a atributelor acestui element"
#: core/models.py:798
#: core/models.py:803
msgid "ordered product attributes"
msgstr "Atribute de produs ordonate"
#: core/models.py:803
#: core/models.py:808
msgid "reference to the parent order that contains this product"
msgstr "Trimitere la comanda mamă care conține acest produs"
#: core/models.py:804
#: core/models.py:809
msgid "parent order"
msgstr "Ordinul părinților"
#: core/models.py:813
#: core/models.py:818
msgid "the specific product associated with this order line"
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"
msgstr "Cantitatea acestui produs specific din comandă"
#: core/models.py:821
#: core/models.py:826
msgid "product quantity"
msgstr "Cantitatea produsului"
#: core/models.py:828
#: core/models.py:833
msgid "current status of this product in the order"
msgstr "Starea actuală a acestui produs în comandă"
#: core/models.py:829
#: core/models.py:834
msgid "product line status"
msgstr "Starea liniei de produse"
#: core/models.py:887
#: core/models.py:892
msgid "internal tag identifier for the product tag"
msgstr "Identificator intern de etichetă pentru eticheta produsului"
#: core/models.py:888
#: core/models.py:893
msgid "tag name"
msgstr "Nume etichetă"
#: core/models.py:892
#: core/models.py:897
msgid "user-friendly name for the product tag"
msgstr "Nume ușor de utilizat pentru eticheta produsului"
#: core/models.py:893
#: core/models.py:898
msgid "tag display name"
msgstr "Nume afișare etichetă"
#: core/models.py:901
#: core/models.py:906
msgid "product tag"
msgstr "Etichetă produs"
#: core/models.py:910
#: core/models.py:915
msgid "provide alternative text for the image for accessibility"
msgstr "Furnizați text alternativ pentru imagine pentru accesibilitate"
#: core/models.py:911
#: core/models.py:916
msgid "image alt text"
msgstr "Textul alt al imaginii"
#: core/models.py:914
#: core/models.py:919
msgid "upload the image file for this product"
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"
msgstr "Imaginea produsului"
#: core/models.py:921
#: core/models.py:926
msgid "determines the order in which images are displayed"
msgstr "Determină ordinea în care sunt afișate imaginile"
#: core/models.py:922
#: core/models.py:927
msgid "display priority"
msgstr "Prioritatea afișării"
#: core/models.py:927
#: core/models.py:932
msgid "the product that this image represents"
msgstr "Produsul pe care îl reprezintă această imagine"
#: core/models.py:941
#: core/models.py:946
msgid "product images"
msgstr "Imagini ale produsului"
#: core/models.py:951
#: core/models.py:956
msgid "unique code used by a user to redeem a discount"
msgstr "Cod unic utilizat de un utilizator pentru a răscumpăra o reducere"
#: core/models.py:952
#: core/models.py:957
msgid "promo code identifier"
msgstr "Cod promoțional de identificare"
#: core/models.py:959
#: core/models.py:964
msgid "fixed discount amount applied if percent is not used"
msgstr "Valoarea fixă a reducerii aplicate dacă procentul nu este utilizat"
#: core/models.py:960
#: core/models.py:965
msgid "fixed discount amount"
msgstr "Valoarea fixă a reducerii"
#: core/models.py:966
#: core/models.py:971
msgid "percentage discount applied if fixed amount is not used"
msgstr "Procentul de reducere aplicat dacă suma fixă nu este utilizată"
#: core/models.py:967
#: core/models.py:972
msgid "percentage discount"
msgstr "Reducere procentuală"
#: core/models.py:972
#: core/models.py:977
msgid "timestamp when the promocode expires"
msgstr "Data la care expiră codul promoțional"
#: core/models.py:973
#: core/models.py:978
msgid "end validity time"
msgstr "Timpul final de valabilitate"
#: core/models.py:978
#: core/models.py:983
msgid "timestamp from which this promocode is valid"
msgstr "Timestamp de la care acest cod promoțional este valabil"
#: core/models.py:979
#: core/models.py:984
msgid "start validity time"
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"
msgstr ""
"Momentul în care codul promoțional a fost utilizat, gol dacă nu a fost "
"utilizat încă"
#: core/models.py:985
#: core/models.py:990
msgid "usage timestamp"
msgstr "Timestamp de utilizare"
#: core/models.py:990
#: core/models.py:995
msgid "user assigned to this promocode if applicable"
msgstr "Utilizatorul atribuit acestui cod promoțional, dacă este cazul"
#: core/models.py:991
#: core/models.py:996
msgid "assigned user"
msgstr "Utilizator atribuit"
#: core/models.py:998
#: core/models.py:1003
msgid "promo code"
msgstr "Cod promoțional"
#: core/models.py:999
#: core/models.py:1004
msgid "promo codes"
msgstr "Coduri promoționale"
#: core/models.py:1006
#: core/models.py:1011
msgid ""
"only one type of discount should be defined (amount or percent), but not "
"both or neither."
@ -1524,140 +1529,140 @@ msgstr ""
"Trebuie definit un singur tip de reducere (sumă sau procent), dar nu ambele "
"sau niciuna."
#: core/models.py:1021
#: core/models.py:1026
msgid "promocode already used"
msgstr "Codul promoțional a fost deja utilizat"
#: core/models.py:1033
#: core/models.py:1038
#, python-brace-format
msgid "invalid discount type for promocode {self.uuid}"
msgstr "Tip de reducere invalid pentru codul promoțional {self.uuid}"
#: core/models.py:1044
#: core/models.py:1049
msgid "percentage discount for the selected products"
msgstr "Procentul de reducere pentru produsele selectate"
#: core/models.py:1045
#: core/models.py:1050
msgid "discount percentage"
msgstr "Procent de reducere"
#: core/models.py:1050
#: core/models.py:1055
msgid "provide a unique name for this promotion"
msgstr "Furnizați un nume unic pentru această promoție"
#: core/models.py:1051
#: core/models.py:1056
msgid "promotion name"
msgstr "Numele promoției"
#: core/models.py:1057
#: core/models.py:1062
msgid "promotion description"
msgstr "Descrierea promoției"
#: core/models.py:1062
#: core/models.py:1067
msgid "select which products are included in this promotion"
msgstr "Selectați ce produse sunt incluse în această promoție"
#: core/models.py:1063
#: core/models.py:1068
msgid "included products"
msgstr "Produse incluse"
#: core/models.py:1067
#: core/models.py:1072
msgid "promotion"
msgstr "Promovare"
#: core/models.py:1082
#: core/models.py:1087
msgid "the vendor supplying this product stock"
msgstr "Furnizorul care furnizează acest stoc de produse"
#: core/models.py:1083
#: core/models.py:1088
msgid "associated vendor"
msgstr "Furnizor asociat"
#: core/models.py:1087
#: core/models.py:1092
msgid "final price to the customer after markups"
msgstr "Prețul final pentru client după majorări"
#: core/models.py:1088
#: core/models.py:1093
msgid "selling price"
msgstr "Prețul de vânzare"
#: core/models.py:1093
#: core/models.py:1098
msgid "the product associated with this stock entry"
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"
msgstr "Prețul plătit vânzătorului pentru acest produs"
#: core/models.py:1102
#: core/models.py:1107
msgid "vendor purchase price"
msgstr "Prețul de achiziție al furnizorului"
#: core/models.py:1106
#: core/models.py:1111
msgid "available quantity of the product in stock"
msgstr "Cantitatea disponibilă a produsului în stoc"
#: core/models.py:1107
#: core/models.py:1112
msgid "quantity in stock"
msgstr "Cantitate în stoc"
#: core/models.py:1111
#: core/models.py:1116
msgid "vendor-assigned SKU for identifying the product"
msgstr "SKU atribuit de furnizor pentru identificarea produsului"
#: core/models.py:1112
#: core/models.py:1117
msgid "vendor sku"
msgstr "SKU al furnizorului"
#: core/models.py:1118
#: core/models.py:1123
msgid "digital file associated with this stock if applicable"
msgstr "Fișier digital asociat cu acest stoc, dacă este cazul"
#: core/models.py:1119
#: core/models.py:1124
msgid "digital file"
msgstr "Fișier digital"
#: core/models.py:1128
#: core/models.py:1133
msgid "stock entries"
msgstr "Intrări pe stoc"
#: core/models.py:1137
#: core/models.py:1142
msgid "products that the user has marked as wanted"
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"
msgstr "Utilizatorul care deține această listă de dorințe"
#: core/models.py:1146
#: core/models.py:1151
msgid "wishlist owner"
msgstr "Proprietarul listei de dorințe"
#: core/models.py:1154
#: core/models.py:1159
msgid "wishlist"
msgstr "Lista dorințelor"
#: core/models.py:1194
#: core/models.py:1199
msgid "download"
msgstr "Descărcare"
#: core/models.py:1195
#: core/models.py:1200
msgid "downloads"
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"
msgstr "Nu puteți descărca un bun digital pentru o comandă nefinalizată"
#: core/models.py:1215
#: core/models.py:1220
msgid "documentary"
msgstr "Documentar"
#: core/models.py:1216
#: core/models.py:1221
msgid "documentaries"
msgstr "Documentare"
#: core/models.py:1226
#: core/models.py:1231
msgid "unresolved"
msgstr "Nerezolvat"

View file

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

View file

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

View file

@ -39,8 +39,8 @@ from mptt.models import MPTTModel
from core.abstract import NiceModel
from core.choices import ORDER_PRODUCT_STATUS_CHOICES, ORDER_STATUS_CHOICES
from core.errors import NotEnoughMoneyError, DisabledCommerceError
from core.utils import get_product_uuid_as_path, get_random_code, generate_human_readable_id
from core.errors import DisabledCommerceError, NotEnoughMoneyError
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.validators import validate_category_image_dimensions
from evibes.settings import CURRENCY_CODE
@ -512,19 +512,24 @@ class Order(NiceModel):
def is_business(self) -> bool:
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
def total_price(self) -> float:
return (
round(
sum(
order_product.buy_price * order_product.quantity
if order_product.status not in FAILED_STATUSES and order_product.buy_price is not None
else 0.0
for order_product in self.order_products.all()
),
2,
)
or 0.0
round(
sum(
order_product.buy_price * order_product.quantity
if order_product.status not in FAILED_STATUSES and order_product.buy_price is not None
else 0.0
for order_product in self.order_products.all()
),
2,
)
or 0.0
)
@property
@ -620,7 +625,7 @@ class Order(NiceModel):
return promocode.use(self)
def buy(
self, force_balance: bool = False, force_payment: bool = False, promocode_uuid: str | None = None
self, force_balance: bool = False, force_payment: bool = False, promocode_uuid: str | None = None
) -> Self | Transaction | None:
if config.DISABLED_COMMERCE:
raise DisabledCommerceError(_("you can not buy at this moment, please try again in a few minutes"))
@ -691,12 +696,12 @@ class Order(NiceModel):
billing_customer_address_line = billing_customer_address.pop("customer_address_line")
if not all(
[
billing_customer_city,
billing_customer_country,
billing_customer_postal_code,
billing_customer_address_line,
]
[
billing_customer_city,
billing_customer_country,
billing_customer_postal_code,
billing_customer_address_line,
]
):
raise ValueError(_("you cannot create a momental order without providing a billing address"))
@ -755,16 +760,16 @@ class Order(NiceModel):
def finalize(self):
if (
self.order_products.filter(
status__in=[
"ACCEPTED",
"FAILED",
"RETURNED",
"CANCELED",
"FINISHED",
]
).count()
== self.order_products.count()
self.order_products.filter(
status__in=[
"ACCEPTED",
"FAILED",
"RETURNED",
"CANCELED",
"FINISHED",
]
).count()
== self.order_products.count()
):
self.status = "FINISHED"
self.save()
@ -1000,7 +1005,7 @@ class PromoCode(NiceModel):
def save(self, **kwargs):
if (self.discount_amount is not None and self.discount_percent is not None) or (
self.discount_amount is None and self.discount_percent is None
self.discount_amount is None and self.discount_percent is None
):
raise ValidationError(
_("only one type of discount should be defined (amount or percent), but not both or neither.")

View file

@ -223,9 +223,14 @@ class OrderViewSet(EvibesViewSet):
@action(detail=False, methods=["get"], url_path="current")
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(
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")
@ -377,9 +382,14 @@ class WishlistViewSet(EvibesViewSet):
@action(detail=False, methods=["get"], url_path="current")
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(
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")
@ -396,7 +406,7 @@ class WishlistViewSet(EvibesViewSet):
)
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)
@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)
except Order.DoesNotExist:
except Wishlist.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
@action(detail=True, methods=["post"], url_path="bulk_add_wishlist_product")

View file

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

View file

@ -1,6 +1,6 @@
[tool.poetry]
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."
authors = ["fureunoir <contact@fureunoir.com>"]
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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,73 @@ msgstr "معلومات إضافية"
msgid "authentication"
msgstr "المصادقة"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "الحصول على زوج رمزي"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "الحصول على زوج رمز مميز (التحديث والوصول) للمصادقة."
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "تحديث زوج من الرمز المميز"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "تحديث زوج الرموز (التحديث والوصول)."
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "التحقق من الرمز المميز"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "التحقق من الرمز المميز (التحديث أو الوصول)."
#: vibes_auth/docs/drf/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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "معرّف المستخدم الذي تم ترميزه بـ b64 الذي أحال المستخدم الجديد إلينا."
@ -74,7 +136,8 @@ msgstr "رقم هاتف مشوّه: {phone_number}"
msgid "Invalid attribute format: {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!"
msgstr "رابط التفعيل غير صالح!"
@ -86,11 +149,7 @@ msgstr "تم تفعيل الحساب بالفعل..."
msgid "something went wrong: {e!s}"
msgstr "حدث خطأ ما: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "كلمات المرور غير متطابقة"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "الرمز غير صالح!"
@ -345,3 +404,19 @@ msgid ""
msgstr ""
"تنسيق رقم الهاتف غير صالح. يجب إدخال الرقم بالصيغة: \"+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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,71 @@ msgstr "Další informace"
msgid "authentication"
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
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."
@ -74,7 +134,8 @@ msgstr "Chybně zadané telefonní číslo: {phone_number}"
msgid "Invalid attribute format: {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!"
msgstr "Aktivační odkaz je neplatný!"
@ -86,11 +147,7 @@ msgstr "Účet byl již aktivován..."
msgid "something went wrong: {e!s}"
msgstr "Něco se pokazilo: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Hesla se neshodují"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "Token je neplatný!"
@ -311,8 +368,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n"
" into your web browser:"
msgstr ""
"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující "
"adresu URL\n"
"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující adresu URL\n"
" do webového prohlížeče:"
#: vibes_auth/templates/user_verification_email.html:101
@ -346,3 +402,19 @@ msgid ""
msgstr ""
"Nesprávný formát telefonního čísla. Číslo musí být zadáno ve formátu: "
"\"+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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,73 @@ msgstr "Yderligere information"
msgid "authentication"
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
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."
@ -74,7 +136,8 @@ msgstr "Misdannet telefonnummer: {phone_number}."
msgid "Invalid attribute format: {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!"
msgstr "Aktiveringslinket er ugyldigt!"
@ -86,11 +149,7 @@ msgstr "Kontoen er allerede aktiveret..."
msgid "something went wrong: {e!s}"
msgstr "Noget gik galt: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Adgangskoderne stemmer ikke overens"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "Token er ugyldig!"
@ -312,8 +371,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n"
" into your web browser:"
msgstr ""
"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende "
"URL\n"
"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende URL\n"
" i din webbrowser:"
#: vibes_auth/templates/user_verification_email.html:101
@ -347,3 +405,19 @@ msgid ""
msgstr ""
"Ugyldigt telefonnummerformat. Nummeret skal indtastes i formatet: "
"\"+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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,11 +46,79 @@ msgstr "Zusätzliche Informationen"
msgid "authentication"
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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr ""
"Die b64-kodierte uuid des Benutzers, der den neuen Benutzer an uns verwiesen "
"hat."
"Die b64-kodierte uuid des Benutzers, der den neuen Benutzer an uns verwiesen"
" hat."
#: vibes_auth/graphene/mutations.py:103
#, python-brace-format
@ -76,7 +139,8 @@ msgstr "Fehlerhafte Telefonnummer: {phone_number}"
msgid "Invalid attribute format: {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!"
msgstr "Der Aktivierungslink ist ungültig!"
@ -88,11 +152,7 @@ msgstr "Das Konto wurde bereits aktiviert..."
msgid "something went wrong: {e!s}"
msgstr "Etwas ist schief gelaufen: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Passwörter stimmen nicht überein"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "Token ist ungültig!"
@ -276,8 +336,8 @@ msgstr ""
#: vibes_auth/templates/user_reset_password_email.html:88
msgid "if you did not send this request, please ignore this email."
msgstr ""
"Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese E-"
"Mail."
"Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese "
"E-Mail."
#: vibes_auth/templates/user_reset_password_email.html:89
#, python-format
@ -316,8 +376,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n"
" into your web browser:"
msgstr ""
"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die "
"folgende URL und fügen Sie sie in Ihren Browser ein\n"
"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die folgende URL und fügen Sie sie in Ihren Browser ein\n"
" in Ihren Webbrowser ein:"
#: vibes_auth/templates/user_verification_email.html:101
@ -351,3 +410,19 @@ msgid ""
msgstr ""
"Ungültiges Telefonnummernformat. Die Nummer muss in dem Format eingegeben "
"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

@ -3,12 +3,12 @@
# This file is distributed under the same license as the eVibes package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
#
# ,fuzzy
#,fuzzy
msgid ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -51,6 +51,71 @@ msgstr "Additional Info"
msgid "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
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."
@ -74,7 +139,8 @@ msgstr "Malformed phone number: {phone_number}"
msgid "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!"
msgstr "Activation link is invalid!"
@ -86,11 +152,7 @@ msgstr "Account has been already activated..."
msgid "something went wrong: {e!s}"
msgstr "Something went wrong: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Passwords do not match"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "Token is invalid!"
@ -345,3 +407,19 @@ msgid ""
msgstr ""
"Invalid phone number format. The number must be entered in the format: "
"\"+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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,71 @@ msgstr "Additional Info"
msgid "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
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."
@ -74,7 +134,8 @@ msgstr "Malformed phone number: {phone_number}"
msgid "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!"
msgstr "Activation link is invalid!"
@ -86,11 +147,7 @@ msgstr "Account has been already activated..."
msgid "something went wrong: {e!s}"
msgstr "Something went wrong: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Passwords do not match"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "Token is invalid!"
@ -345,3 +402,19 @@ msgid ""
msgstr ""
"Invalid phone number format. The number must be entered in the format: "
"\"+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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,73 @@ msgstr "Información adicional"
msgid "authentication"
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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr ""
@ -75,7 +137,8 @@ msgstr "Número de teléfono malformado: {phone_number}"
msgid "Invalid attribute format: {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!"
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}"
msgstr "Algo salió mal: {e!s}."
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Las contraseñas no coinciden"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "¡La ficha no es válida!"
@ -346,3 +405,19 @@ msgid ""
msgstr ""
"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."
#: 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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,75 @@ msgstr "Informations complémentaires"
msgid "authentication"
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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr ""
@ -76,7 +140,8 @@ msgstr "Numéro de téléphone malformé : {phone_number}"
msgid "Invalid attribute format: {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!"
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}"
msgstr "Quelque chose a mal tourné : {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Les mots de passe ne correspondent pas"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "Le jeton n'est pas valide !"
@ -230,7 +291,8 @@ msgstr "Jeton non valide"
#: vibes_auth/serializers.py:196
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
msgid "user does not exist"
@ -278,7 +340,8 @@ msgstr ""
#: vibes_auth/templates/user_reset_password_email.html:88
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
#, python-format
@ -301,8 +364,8 @@ msgid ""
"thank you for signing up for %(project_name)s. please activate your account "
"by clicking the button below:"
msgstr ""
"Merci de vous être inscrit à %(project_name)s. Veuillez activer votre compte "
"en cliquant sur le bouton ci-dessous :"
"Merci de vous être inscrit à %(project_name)s. Veuillez activer votre compte"
" en cliquant sur le bouton ci-dessous :"
#: vibes_auth/templates/user_verification_email.html:95
msgid ""
@ -317,8 +380,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n"
" into your web browser:"
msgstr ""
"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL "
"suivante\n"
"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL suivante\n"
" suivante dans votre navigateur web :"
#: vibes_auth/templates/user_verification_email.html:101
@ -352,3 +414,19 @@ msgid ""
msgstr ""
"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é."
#: 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 ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -50,6 +50,71 @@ msgstr ""
msgid "authentication"
msgstr ""
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr ""
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr ""
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr ""
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr ""
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr ""
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr ""
#: vibes_auth/docs/drf/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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr ""
@ -73,7 +138,8 @@ msgstr ""
msgid "Invalid attribute format: {attribute_pair}"
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!"
msgstr ""
@ -85,11 +151,7 @@ msgstr ""
msgid "something went wrong: {e!s}"
msgstr ""
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr ""
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr ""
@ -332,3 +394,19 @@ msgid ""
"invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed."
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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,74 @@ msgstr "Ulteriori informazioni"
msgid "authentication"
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
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."
@ -74,7 +137,8 @@ msgstr "Numero di telefono malformato: {phone_number}"
msgid "Invalid attribute format: {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!"
msgstr "Il link di attivazione non è valido!"
@ -86,11 +150,7 @@ msgstr "L'account è già stato attivato..."
msgid "something went wrong: {e!s}"
msgstr "Qualcosa è andato storto: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Le password non corrispondono"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "Il gettone non è valido!"
@ -347,3 +407,19 @@ msgid ""
msgstr ""
"Formato del numero di telefono non valido. Il numero deve essere inserito "
"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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,71 @@ msgstr "追加情報"
msgid "authentication"
msgstr "認証"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "トークン・ペアの取得"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "認証用のトークンペア(リフレッシュとアクセス)を取得する。"
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "トークン・ペアのリフレッシュ"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "トークン・ペアをリフレッシュする(リフレッシュとアクセス)。"
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "トークンの検証"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "トークンを確認する(リフレッシュまたはアクセス)。"
#: vibes_auth/docs/drf/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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "新規ユーザーを紹介したユーザーのb64エンコードされたuuid。"
@ -74,7 +134,8 @@ msgstr "不正な電話番号:{phone_number}。"
msgid "Invalid attribute format: {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!"
msgstr "アクティベーションリンクが無効です!"
@ -86,11 +147,7 @@ msgstr "アカウントはすでに有効になっています..."
msgid "something went wrong: {e!s}"
msgstr "何かが間違っていた:{e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "パスワードが一致しない"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "トークンが無効です!"
@ -254,9 +311,7 @@ msgstr "こんにちは、%(user_first_name)sです、"
msgid ""
"we have received a request to reset your password. please reset your "
"password by clicking the button below:"
msgstr ""
"パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワー"
"ドをリセットしてください:"
msgstr "パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワードをリセットしてください:"
#: vibes_auth/templates/user_reset_password_email.html:84
msgid "reset password"
@ -266,9 +321,7 @@ msgstr "パスワードのリセット"
msgid ""
"if the button above does not work, please copy and paste the following URL "
"into your web browser:"
msgstr ""
"上記のボタンが機能しない場合は、以下のURLをコピーしてウェブブラウザに貼り付け"
"てください:"
msgstr "上記のボタンが機能しない場合は、以下のURLをコピーしてウェブブラウザに貼り付けてください"
#: vibes_auth/templates/user_reset_password_email.html:88
msgid "if you did not send this request, please ignore this email."
@ -294,9 +347,7 @@ msgstr "アカウントの有効化"
msgid ""
"thank you for signing up for %(project_name)s. please activate your account "
"by clicking the button below:"
msgstr ""
"%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックし"
"てアカウントを有効にしてください:"
msgstr "%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックしてアカウントを有効にしてください"
#: vibes_auth/templates/user_verification_email.html:95
msgid ""
@ -311,8 +362,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n"
" into your web browser:"
msgstr ""
"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けて"
"ください。\n"
"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けてください。\n"
" をウェブブラウザに貼り付けてください:"
#: vibes_auth/templates/user_verification_email.html:101
@ -343,6 +393,20 @@ msgstr "{config.PROJECT_NAME}。| パスワードのリセット"
msgid ""
"invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed."
msgstr ""
"電話番号の形式が無効です。電話番号は次の形式で入力してください:"
"\"+999999999\".15桁まで入力可能です。"
msgstr "電話番号の形式が無効です。電話番号は次の形式で入力してください:\"+999999999\".15桁まで入力可能です。"
#: vibes_auth/views.py: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 ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -50,6 +50,71 @@ msgstr ""
msgid "authentication"
msgstr ""
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr ""
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr ""
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr ""
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr ""
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr ""
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr ""
#: vibes_auth/docs/drf/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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr ""
@ -73,7 +138,8 @@ msgstr ""
msgid "Invalid attribute format: {attribute_pair}"
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!"
msgstr ""
@ -85,11 +151,7 @@ msgstr ""
msgid "something went wrong: {e!s}"
msgstr ""
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr ""
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr ""
@ -332,3 +394,19 @@ msgid ""
"invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed."
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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,73 @@ msgstr "Extra info"
msgid "authentication"
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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr ""
@ -76,7 +138,8 @@ msgstr "Misvormd telefoonnummer: {phone_number}"
msgid "Invalid attribute format: {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!"
msgstr "Activeringslink is ongeldig!"
@ -88,11 +151,7 @@ msgstr "Account is al geactiveerd..."
msgid "something went wrong: {e!s}"
msgstr "Er ging iets mis: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Wachtwoorden komen niet overeen"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "Token is invalid!"
@ -257,8 +316,8 @@ msgid ""
"we have received a request to reset your password. please reset your "
"password by clicking the button below:"
msgstr ""
"We hebben een verzoek ontvangen om je wachtwoord opnieuw in te stellen. Klik "
"op de knop hieronder om je wachtwoord opnieuw in te stellen:"
"We hebben een verzoek ontvangen om je wachtwoord opnieuw in te stellen. Klik"
" op de knop hieronder om je wachtwoord opnieuw in te stellen:"
#: vibes_auth/templates/user_reset_password_email.html:84
msgid "reset password"
@ -297,8 +356,8 @@ msgid ""
"thank you for signing up for %(project_name)s. please activate your account "
"by clicking the button below:"
msgstr ""
"Bedankt voor het aanmelden bij %(project_name)s. Activeer je account door op "
"de onderstaande knop te klikken:"
"Bedankt voor het aanmelden bij %(project_name)s. Activeer je account door op"
" de onderstaande knop te klikken:"
#: vibes_auth/templates/user_verification_email.html:95
msgid ""
@ -347,3 +406,19 @@ msgid ""
msgstr ""
"Ongeldig formaat telefoonnummer. Het nummer moet worden ingevoerd in de "
"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 ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -46,6 +46,74 @@ msgstr "Dodatkowe informacje"
msgid "authentication"
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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr ""
@ -71,7 +139,8 @@ msgstr "Zniekształcony numer telefonu: {phone_number}"
msgid "Invalid attribute format: {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!"
msgstr "Link aktywacyjny jest nieprawidłowy!"
@ -83,11 +152,7 @@ msgstr "Konto zostało już aktywowane..."
msgid "something went wrong: {e!s}"
msgstr "Coś poszło nie tak: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Hasła nie są zgodne"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "Token jest nieprawidłowy!"
@ -340,5 +405,21 @@ msgid ""
"invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed."
msgstr ""
"Nieprawidłowy format numeru telefonu. Numer musi być wprowadzony w formacie: "
"\"+999999999\". Dozwolone do 15 cyfr."
"Nieprawidłowy format numeru telefonu. Numer musi być wprowadzony w formacie:"
" \"+999999999\". Dozwolone do 15 cyfr."
#: vibes_auth/views.py: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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,72 @@ msgstr "Informações adicionais"
msgid "authentication"
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
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."
@ -74,7 +135,8 @@ msgstr "Número de telefone malformado: {phone_number}"
msgid "Invalid attribute format: {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!"
msgstr "O link de ativação é inválido!"
@ -86,11 +148,7 @@ msgstr "A conta já foi ativada..."
msgid "something went wrong: {e!s}"
msgstr "Algo deu errado: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "As senhas não correspondem"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "O token é inválido!"
@ -267,8 +325,8 @@ msgid ""
"if the button above does not work, please copy and paste the following URL "
"into your web browser:"
msgstr ""
"Se o botão acima não funcionar, copie e cole o seguinte URL em seu navegador "
"da Web:"
"Se o botão acima não funcionar, copie e cole o seguinte URL em seu navegador"
" da Web:"
#: vibes_auth/templates/user_reset_password_email.html:88
msgid "if you did not send this request, please ignore this email."
@ -345,3 +403,19 @@ msgid ""
msgstr ""
"Formato de número telefônico inválido. O número deve ser inserido no "
"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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,74 @@ msgstr "Informații suplimentare"
msgid "authentication"
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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr ""
@ -75,7 +138,8 @@ msgstr "Număr de telefon malformat: {phone_number}"
msgid "Invalid attribute format: {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!"
msgstr "Linkul de activare este invalid!"
@ -87,11 +151,7 @@ msgstr "Contul a fost deja activat..."
msgid "something went wrong: {e!s}"
msgstr "Ceva nu a mers bine: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Parolele nu se potrivesc"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
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"
" into your web browser:"
msgstr ""
"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți "
"următoarea adresă URL\n"
"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți următoarea adresă URL\n"
" în browserul dvs. web:"
#: vibes_auth/templates/user_verification_email.html:101
@ -347,3 +406,19 @@ msgid ""
msgstr ""
"Format invalid al numărului de telefon. Numărul trebuie să fie introdus în "
"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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,73 @@ msgstr "Дополнительная информация"
msgid "authentication"
msgstr "Аутентификация"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "Получение пары маркеров"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "Получите пару маркеров (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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr ""
@ -76,7 +138,8 @@ msgstr "Некорректный номер телефона: {phone_number}"
msgid "Invalid attribute format: {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!"
msgstr "Ссылка на активацию недействительна!"
@ -88,11 +151,7 @@ msgstr "Аккаунт уже активирован..."
msgid "something went wrong: {e!s}"
msgstr "Что-то пошло не так: {e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "Пароли не совпадают"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "Токен недействителен!"
@ -314,8 +373,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n"
" into your web browser:"
msgstr ""
"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий "
"URL-адрес\n"
"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий URL-адрес\n"
" в свой веб-браузер:"
#: vibes_auth/templates/user_verification_email.html:101
@ -349,3 +407,19 @@ msgid ""
msgstr ""
"Неверный формат телефонного номера. Номер должен быть введен в формате: "
"\"+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 ""
msgstr ""
"Project-Id-Version: 1\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"
"Last-Translator: EGOR GORBUNOV <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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -51,6 +46,71 @@ msgstr "其他信息"
msgid "authentication"
msgstr "认证"
#: vibes_auth/docs/drf/views.py:15
msgid "obtain a token pair"
msgstr "获取令牌对"
#: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication."
msgstr "获取用于身份验证的令牌对(刷新和访问)。"
#: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair"
msgstr "刷新令牌对"
#: vibes_auth/docs/drf/views.py:36
msgid "refresh a token pair (refresh and access)."
msgstr "刷新令牌对(刷新和访问)。"
#: vibes_auth/docs/drf/views.py:55
msgid "verify a token"
msgstr "验证令牌"
#: vibes_auth/docs/drf/views.py:56
msgid "Verify a token (refresh or access)."
msgstr "验证令牌(刷新或访问)。"
#: vibes_auth/docs/drf/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
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "将新用户推荐给我们的用户的 b64-encoded uuid。"
@ -74,7 +134,8 @@ msgstr "畸形电话号码: {phone_number}"
msgid "Invalid attribute format: {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!"
msgstr "激活链接无效!"
@ -86,11 +147,7 @@ msgstr "帐户已激活..."
msgid "something went wrong: {e!s}"
msgstr "出了问题:{e!s}"
#: vibes_auth/graphene/mutations.py:305
msgid "passwords do not match"
msgstr "密码不匹配"
#: vibes_auth/graphene/mutations.py:312
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81
msgid "token is invalid!"
msgstr "令牌无效!"
@ -336,5 +393,20 @@ msgstr "{config.PROJECT_NAME} 重置密码| 重置密码"
msgid ""
"invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed."
msgstr ""
"电话号码格式无效。电话号码必须按格式输入:\"+999999999\".最多允许 15 位数字。"
msgstr "电话号码格式无效。电话号码必须按格式输入:\"+999999999\".最多允许 15 位数字。"
#: vibes_auth/views.py: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
from django.utils.decorators import method_decorator
from django.utils.translation import gettext_lazy as _
from django_ratelimit.decorators import ratelimit
from drf_spectacular.utils import (
OpenApiExample,
@ -67,7 +68,6 @@ class TokenObtainPairView(TokenViewBase):
)
@method_decorator(ratelimit(key="ip", rate="5/h"))
def post(self, request, *args, **kwargs):
logger.debug("Got to super post")
return super().post(request, *args, **kwargs)
@ -128,8 +128,7 @@ class TokenVerifyView(TokenViewBase):
200: inline_serializer(
name="TokenVerifyResponse",
fields={
"refresh": serializers.CharField(),
"access": serializers.CharField(),
"token": serializers.CharField(choices=["valid", "no valid"]),
"user": UserSerializer(),
},
),
@ -166,6 +165,6 @@ class TokenVerifyView(TokenViewBase):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
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:
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
from contextlib import suppress
from secrets import compare_digest
from django.contrib.auth.tokens import PasswordResetTokenGenerator
from django.utils.decorators import method_decorator
from django.utils.http import urlsafe_base64_decode
from django.utils.translation import gettext_lazy as _
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.decorators import action
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_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.serializers import (
ActivateEmailSerializer,
ConfirmPasswordResetSerializer,
ResetPasswordSerializer,
UserSerializer,
)
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__)
@extend_schema_view(**USER_SCHEMA)
class UserViewSet(
mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
@ -36,36 +39,18 @@ class UserViewSet(
queryset = User.objects.filter(is_active=True)
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"])
@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):
try:
user = None
with suppress(User.DoesNotExist):
user = User.objects.get(email=request.data.get("email"))
except User.DoesNotExist:
return Response(
status=status.HTTP_400_BAD_REQUEST,
data={"error": "Email does not exist"},
)
send_reset_password_email_task.delay(user_pk=user.uuid)
if user:
send_reset_password_email_task.delay(user_pk=user.uuid)
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])
@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):
user = self.get_object()
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_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"])
@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):
try:
data = ConfirmPasswordResetSerializer(self.request.data).data
if not compare_digest(data.get("password"), data.get("confirm_password")):
return Response(
{"error": "Passwords do not match"},
{"error": _("passwords do not match")},
status=status.HTTP_400_BAD_REQUEST,
)
@ -101,53 +78,38 @@ class UserViewSet(
password_reset_token = PasswordResetTokenGenerator()
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.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:
logger.error(str(e))
return Response({"error": "Invalid uuid!"}, status=status.HTTP_400_BAD_REQUEST)
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
@extend_schema(
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"))
@method_decorator(ratelimit(key="ip", rate="3/h" if not DEBUG else "888/h"))
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.save()
user.save()
# send_email_confirmation.delay(user.pk)
headers = self.get_success_headers(serializer.data)
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"])
@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):
try:
uuid = urlsafe_base64_decode(request.data.get("uidb64")).decode()
user = User.objects.get(pk=uuid)
if not user.check_token(request.data.get("token")):
return Response(
{"error": "Activation link is invalid!"},
{"error": _("activation link is invalid!")},
status=status.HTTP_400_BAD_REQUEST,
)
if user.is_active:
return Response(
{"error": "Account already activated!"},
{"error": _("account already activated!")},
status=status.HTTP_400_BAD_REQUEST,
)
user.is_active = True
@ -158,7 +120,7 @@ class UserViewSet(
logger.error(str(e))
if user is None:
return Response(
{"error": "Activation link is invalid!"},
{"error": _("activation link is invalid!")},
status=status.HTTP_400_BAD_REQUEST,
)
else:
@ -168,16 +130,11 @@ class UserViewSet(
response_data["access"] = str(tokens.access_token)
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):
instance = self.get_object()
serializer = self.get_serializer(instance)
return Response(serializer.data)
@extend_schema(
description="Update a user's details.",
request=UserSerializer,
)
def update(self, request, pk=None, *args, **kwargs):
return Response(
self.get_serializer(self.get_object()).update(instance=self.get_object(), validated_data=request.data).data