diff --git a/core/locale/ar_AR/LC_MESSAGES/django.mo b/core/locale/ar_AR/LC_MESSAGES/django.mo index a3dc711d..959eaf96 100644 Binary files a/core/locale/ar_AR/LC_MESSAGES/django.mo and b/core/locale/ar_AR/LC_MESSAGES/django.mo differ diff --git a/core/locale/ar_AR/LC_MESSAGES/django.po b/core/locale/ar_AR/LC_MESSAGES/django.po index 73f78e0a..23da7b14 100644 --- a/core/locale/ar_AR/LC_MESSAGES/django.po +++ b/core/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -48,47 +48,47 @@ msgstr "تم التعديل" msgid "when the object was last modified" msgstr "متى تم تحرير الكائن آخر مرة" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "تنشيط المحدد %(verbose_name_plural)s" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "إلغاء تنشيط %(verbose_name_plural)s المحددة" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "قيمة السمة" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "قيم السمات" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "الاسم" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "الصورة" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "الصور" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "المخزون" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "الأسهم" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "تصنيف المنتج" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "معلومات أساسية" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "تواريخ مهمة" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "الترجمات" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "طلب المنتج" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "اطلب المنتجات" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "هل الأعمال" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "التكوين" @@ -220,141 +220,141 @@ msgstr "" "اشترِ طلبًا كعمل تجاري، باستخدام \"المنتجات\" المتوفرة مع \"معرّف_المنتج\" " "و\"السمات\"." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "سرد كل مجموعات السمات (عرض بسيط)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "استرداد مجموعة سمة واحدة (عرض تفصيلي)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "إنشاء مجموعة سمات" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "حذف مجموعة سمات" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "إعادة كتابة مجموعة سمات موجودة تحفظ غير القابلة للتعديل" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "إعادة كتابة بعض حقول مجموعة سمات موجودة تحفظ غير القابلة للتعديل" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "سرد جميع السمات (عرض بسيط)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "استرداد سمة واحدة (عرض تفصيلي)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "إنشاء سمة" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "حذف سمة" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "إعادة كتابة سمة موجودة تحفظ غير القابلة للتعديل" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "إعادة كتابة بعض حقول سمة موجودة تحفظ غير القابلة للتعديل" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "سرد جميع قيم السمات (عرض بسيط)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "استرداد قيمة سمة واحدة (عرض تفصيلي)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "إنشاء قيمة السمة" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "حذف قيمة سمة" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "إعادة كتابة قيمة سمة موجودة تحفظ غير القابلة للتعديل" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "إعادة كتابة بعض حقول قيمة سمة موجودة حفظ غير قابل للتعديل" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "قائمة بجميع الفئات (عرض بسيط)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "استرداد فئة واحدة (عرض تفصيلي)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "إنشاء فئة" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "حذف فئة" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "إعادة كتابة فئة موجودة حفظ غير المواد غير القابلة للتعديل" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "إعادة كتابة بعض حقول فئة موجودة حفظ غير القابلة للتعديل" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "قائمة بجميع الفئات (عرض بسيط)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "بالنسبة للمستخدمين من غير الموظفين، يتم إرجاع الطلبات الخاصة بهم فقط." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "استرداد فئة واحدة (عرض تفصيلي)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "إنشاء سمة" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "لا يعمل مع المستخدمين من غير الموظفين." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "حذف سمة" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "إعادة كتابة فئة موجودة حفظ غير المواد غير القابلة للتعديل" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "إعادة كتابة بعض حقول فئة موجودة حفظ غير القابلة للتعديل" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "سعر الشراء وقت الطلب" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -363,103 +363,103 @@ msgstr "" "ينهي أمر الشراء. إذا تم استخدام \"فرض_الرصيد\"، يتم إكمال عملية الشراء " "باستخدام رصيد المستخدم؛ إذا تم استخدام \"فرض_الدفع\"، يتم بدء المعاملة." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "شراء طلب شراء بدون إنشاء حساب" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "إنهاء طلب الشراء لمستخدم غير مسجل." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "إضافة منتج إلى الطلب" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." msgstr "يضيف منتجًا إلى طلب باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "إزالة منتج من الطلب" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." msgstr "يزيل منتجًا من أحد الطلبات باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "سرد جميع السمات (عرض بسيط)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "بالنسبة للمستخدمين من غير الموظفين، يتم إرجاع قوائم الرغبات الخاصة بهم فقط." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "استرداد سمة واحدة (عرض تفصيلي)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "إنشاء سمة" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "لا يعمل مع المستخدمين من غير الموظفين." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "حذف سمة" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "إعادة كتابة سمة موجودة تحفظ غير القابلة للتعديل" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "إعادة كتابة بعض حقول سمة موجودة تحفظ غير القابلة للتعديل" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "إضافة منتج إلى الطلب" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "يضيف منتجًا إلى قائمة أمنيات باستخدام 'product_uid' المتوفرة" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "إزالة منتج من قائمة الرغبات" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "يزيل منتجًا من قائمة أمنيات باستخدام 'product_uid' المتوفرة" -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "إضافة العديد من المنتجات إلى قائمة الرغبات" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "يضيف العديد من المنتجات إلى قائمة الرغبات باستخدام 'product_uids' المتوفرة" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "إزالة منتج من الطلب" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "يزيل العديد من المنتجات من قائمة الرغبات باستخدام 'product_uids' المتوفرة" -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -479,59 +479,59 @@ msgstr "" "'color=exact-red'، 'size=gt-10'، 'features=in-[\"wifi\"،\"bluetooth\"]، 'fatures=in-[\"wifi\",\"bluetooth\"],\n" "\"b64-description=icontains-aGVhdC1jb2xk" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "قائمة بجميع المنتجات (عرض بسيط)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(بالضبط) UUID المنتج" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(أيقونات) اسم المنتج" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(قائمة) أسماء الفئات، غير حساسة لحالة الأحرف" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(بالضبط) معرّف الفئة UUID" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(قائمة) أسماء العلامات، غير حساسة لحالة الأحرف" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) الحد الأدنى لسعر السهم" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) الحد الأقصى لسعر السهم" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(بالضبط) المنتجات النشطة فقط" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(أيكساكت) اسم العلامة التجارية" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(زط) الحد الأدنى لكمية المخزون" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(بالضبط) سبيكة المنتج" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(بالضبط) الرقمية مقابل المادية" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -539,32 +539,60 @@ msgstr "" "قائمة مفصولة بفواصل من الحقول للفرز حسب. البادئة بـ \"-\" للفرز التنازلي. \n" "**مسموح بها:** uuid، تصنيف، اسم، سبيكة، إنشاء، تعديل، سعر، عشوائي" -#: core/docs/drf/viewsets.py:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "استرداد منتج واحد (عرض تفصيلي)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "معرف المنتج UUID أو سبيكة المنتج" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "إنشاء منتج" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "إعادة كتابة منتج موجود، مع الحفاظ على الحقول غير القابلة للتحرير" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 msgid "" "update some fields of an existing product, preserving non-editable fields" msgstr "تحديث بعض حقول منتج موجود، مع الحفاظ على الحقول غير القابلة للتحرير" -#: core/docs/drf/viewsets.py:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "حذف منتج" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "قائمة بجميع العناوين" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "استرجاع عنوان واحد" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "إنشاء عنوان جديد" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "حذف عنوان" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "تحديث عنوان كامل" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "تحديث جزئي للعنوان" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "إدخال عنوان الإكمال التلقائي" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "لم يتم توفير مصطلح بحث." @@ -599,7 +627,7 @@ msgid "add a product to the order" msgstr "إضافة منتج إلى الطلب" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "الطلب {order_uuid} غير موجود" @@ -616,53 +644,65 @@ msgstr "إزالة جميع المنتجات من الطلب" msgid "buy an order" msgstr "شراء طلبية" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "جاء نوع خاطئ من طريقة order.buy(): {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "إضافة منتج إلى الطلب" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "قائمة الأمنيات {wishlist_uuid} غير موجودة" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "إزالة منتج من الطلب" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "إزالة منتج من الطلب" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "إزالة منتج من الطلب" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "شراء طلبية" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" msgstr "الرجاء إرسال السمات كسلسلة منسقة مثل attr1=قيمة1، attr2=قيمة2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "سلسلة العنوان الأصلي المقدمة من المستخدم" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} غير موجود: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "يجب أن يكون الحد بين 1 و10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - يعمل مثل السحر" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "السمات" @@ -675,11 +715,11 @@ msgid "groups of attributes" msgstr "مجموعات السمات" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "الفئات" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "العلامات التجارية" @@ -688,7 +728,7 @@ msgid "category image url" msgstr "الفئات" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "النسبة المئوية للترميز" @@ -702,40 +742,48 @@ msgid "" msgstr "" "الحد الأدنى والحد الأقصى لأسعار المنتجات في هذه الفئة، إذا كانت متوفرة." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "البائعون" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "خط العرض (الإحداثي Y)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "خط الطول (الإحداثي X)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "كيفية" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "قيمة التصنيف من 1 إلى 10، شاملة، أو 0 إذا لم يتم تعيينها." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "يمثل ملاحظات من المستخدم." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "الإشعارات" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "تحميل الرابط الخاص بمنتج الطلب هذا إن أمكن" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "قائمة بطلب المنتجات بهذا الترتيب" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "عنوان إرسال الفواتير" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -743,47 +791,47 @@ msgstr "" "عنوان الشحن لهذا الطلب، اترك العنوان فارغًا إذا كان هو نفسه عنوان إرسال " "الفواتير أو إذا لم يكن منطبقًا" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "السعر الإجمالي لهذا الطلب" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "إجمالي كمية المنتجات بالترتيب" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "هل جميع المنتجات في الطلب رقمي" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "الطلبات" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "رابط الصورة" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "صور المنتج" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "الفئة" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "الملاحظات" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "العلامة التجارية" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "مجموعات السمات" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -791,31 +839,31 @@ msgstr "مجموعات السمات" msgid "quantity" msgstr "الكمية" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "عدد الملاحظات" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "المنتجات" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "الرموز الترويجية" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "المنتجات المعروضة للبيع" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "العروض الترويجية" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "البائع" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -823,464 +871,472 @@ msgstr "البائع" msgid "product" msgstr "المنتج" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "المنتجات المفضلة" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "قوائم التمنيات" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "اسم المشروع" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "البريد الإلكتروني للشركة" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "اسم الشركة" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "عنوان الشركة" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "رقم هاتف الشركة" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "\"البريد الإلكتروني من\"، في بعض الأحيان يجب استخدامه بدلاً من قيمة المستخدم" " المضيف" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "مستخدم البريد الإلكتروني المضيف" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "الحد الأقصى لمبلغ السداد" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "الحد الأدنى لمبلغ السداد" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "التكوين" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "رمز اللغة" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "اسم اللغة" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "علم اللغة، إذا كان موجوداً :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "الحصول على قائمة باللغات المدعومة" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "نتائج البحث عن المنتجات" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "نتائج البحث عن المنتجات" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "والد هذه المجموعة" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "مجموعة السمات الرئيسية" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "اسم مجموعة السمات" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "مجموعة السمات" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "فئة هذه السمة" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "مجموعة هذه السمة" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "الخيط" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "عدد صحيح" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "تعويم" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "منطقية" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "المصفوفة" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "الكائن" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "نوع قيمة السمة" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "نوع القيمة" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "اسم هذه السمة" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "اسم السمة" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "السمة" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "سمة هذه القيمة" -#: core/models.py:141 +#: core/models.py:143 msgid "the specific product associated with this attribute's value" msgstr "المنتج المحدد المرتبط بقيمة هذه السمة" -#: core/models.py:142 core/models.py:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "المنتج المرتبط" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "القيمة المحددة لهذه السمة" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "تحميل صورة تمثل هذه الفئة" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "صورة الفئة" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "تحديد نسبة ترميز للمنتجات في هذه الفئة" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "أصل هذه الفئة لتكوين بنية هرمية" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "الفئة الرئيسية" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "اسم الفئة" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "تقديم اسم لهذه الفئة" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "إضافة وصف تفصيلي لهذه الفئة" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "وصف الفئة" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "اسم هذه العلامة التجارية" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "اسم العلامة التجارية" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "تحميل شعار يمثل هذه العلامة التجارية" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "صورة العلامة التجارية الصغيرة" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "رفع شعار كبير يمثل هذه العلامة التجارية" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "صورة كبيرة للعلامة التجارية" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "إضافة وصف تفصيلي للعلامة التجارية" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "وصف العلامة التجارية" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "الفئات الاختيارية التي ترتبط بها هذه العلامة التجارية" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "الفئات" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "الفئة التي ينتمي إليها هذا المنتج" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "ربط هذا المنتج اختياريًا بعلامة تجارية" -#: core/models.py:279 +#: core/models.py:281 msgid "tags that help describe or group this product" msgstr "العلامات التي تساعد في وصف أو تجميع هذا المنتج" -#: core/models.py:280 core/models.py:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "علامات المنتج" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "يشير إلى ما إذا كان هذا المنتج يتم تسليمه رقميًا أم لا" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "هل المنتج رقمي" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "توفير اسم تعريفي واضح للمنتج" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "اسم المنتج" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "إضافة وصف تفصيلي للمنتج" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "وصف المنتج" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "رقم الجزء لهذا المنتج" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "رقم الجزء" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "تخزين بيانات الاعتماد ونقاط النهاية المطلوبة لاتصالات واجهة برمجة التطبيقات " "الخاصة بالمورّد" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "معلومات المصادقة" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "تحديد الترميز للمنتجات المسترجعة من هذا البائع" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "نسبة هامش الربح للبائع" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "اسم هذا البائع" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "اسم البائع" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "التعليقات المقدمة من المستخدمين حول تجربتهم مع المنتج" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "تعليقات على الملاحظات" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "الإشارة إلى المنتج المحدد في الطلب الذي تدور حوله هذه الملاحظات" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "منتجات الطلبات ذات الصلة" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "التصنيف المعين من قبل المستخدم للمنتج" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "تصنيف المنتج" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "الملاحظات" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "عنوان إرسال الفواتير المستخدم لهذا الطلب" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "الرمز الترويجي الاختياري المطبق على هذا الطلب" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "الرمز الترويجي المطبق" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "عنوان الشحن المستخدم لهذا الطلب" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "عنوان الشحن" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "الحالة الحالية للطلب في دورة حياته" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "حالة الطلب" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "بنية JSON للإشعارات التي سيتم عرضها للمستخدمين، في واجهة مستخدم المشرف، يتم " "استخدام عرض الجدول" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "تمثيل JSON لسمات الطلب لهذا الطلب" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "المستخدم الذي قدم الطلب" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "المستخدم" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "الطابع الزمني عند الانتهاء من الطلب" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "وقت الشراء" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "معرّف يمكن قراءته بواسطة البشر للطلب" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "معرّف يمكن قراءته من قبل البشر" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "الطلب" -#: core/models.py:517 +#: core/models.py:519 msgid "a user must have only one pending order at a time" msgstr "يجب أن يكون لدى المستخدم طلب واحد فقط معلق في كل مرة!" -#: core/models.py:541 +#: core/models.py:543 msgid "you cannot add products to an order that is not a pending one" msgstr "لا يمكنك إضافة منتجات إلى طلب غير معلق إلى طلب غير معلق" -#: core/models.py:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "لا يمكنك إضافة منتجات غير نشطة للطلب" -#: core/models.py:563 +#: core/models.py:565 msgid "you cannot add more products than available in stock" msgstr "لا يمكنك إضافة منتجات أكثر من المتوفرة في المخزون" -#: core/models.py:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} غير موجود: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 msgid "you cannot remove products from an order that is not a pending one" msgstr "لا يمكنك إزالة المنتجات من طلب غير معلق من طلب غير معلق" -#: core/models.py:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} غير موجود مع الاستعلام <{query}>" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "الرمز الترويجي غير موجود" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "يمكنك فقط شراء المنتجات المادية مع تحديد عنوان الشحن فقط!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "العنوان غير موجود" + +#: core/models.py:659 core/models.py:700 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "لا يمكنك الشراء في هذه اللحظة، يرجى المحاولة مرة أخرى بعد بضع دقائق." -#: core/models.py:634 +#: core/models.py:662 msgid "invalid force value" msgstr "قيمة القوة غير صالحة" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "لا يمكنك شراء طلبية فارغة!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "عدم كفاية الأموال لإكمال الطلب" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1288,188 +1344,184 @@ msgstr "" "لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد" " الإلكتروني للعميل، رقم هاتف العميل" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "طريقة الدفع غير صالحة" -#: core/models.py:706 -msgid "you cannot create a momental order without providing a billing address" -msgstr "لا يمكنك إنشاء طلب مومنتال دون تقديم عنوان إرسال الفواتير" - -#: core/models.py:784 +#: core/models.py:773 msgid "the price paid by the customer for this product at purchase time" msgstr "السعر الذي دفعه العميل لهذا المنتج وقت الشراء" -#: core/models.py:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "سعر الشراء وقت الطلب" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "تعليقات داخلية للمسؤولين حول هذا المنتج المطلوب" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "التعليقات الداخلية" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "إشعارات المستخدم" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "تمثيل JSON لسمات هذا العنصر" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "سمات المنتج المطلوبة" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "الإشارة إلى الطلب الأصلي الذي يحتوي على هذا المنتج" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "ترتيب الوالدين" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "المنتج المحدد المرتبط بخط الطلب هذا" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "كمية هذا المنتج المحدد في الطلب" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "كمية المنتج" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "الحالة الحالية لهذا المنتج بالترتيب" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "حالة خط الإنتاج" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "معرّف العلامة الداخلي لعلامة المنتج" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "اسم العلامة" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "اسم سهل الاستخدام لعلامة المنتج" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "اسم عرض العلامة" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "علامة المنتج" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "توفير نص بديل للصورة لإمكانية الوصول" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "النص البديل للصورة" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "تحميل ملف الصورة لهذا المنتج" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "صورة المنتج" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "يحدد الترتيب الذي يتم عرض الصور به" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "أولوية العرض" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "المنتج الذي تمثله هذه الصورة" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "صور المنتج" -#: core/models.py:956 +#: core/models.py:945 msgid "unique code used by a user to redeem a discount" msgstr "الرمز الفريد الذي يستخدمه المستخدم لاسترداد قيمة الخصم" -#: core/models.py:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "معرّف الرمز الترويجي" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "مبلغ الخصم الثابت المطبق في حالة عدم استخدام النسبة المئوية" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "مبلغ الخصم الثابت" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "النسبة المئوية للخصم المطبق في حالة عدم استخدام مبلغ ثابت" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "النسبة المئوية للخصم" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "الطابع الزمني عند انتهاء صلاحية الرمز الترويجي" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "وقت انتهاء الصلاحية" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "الطابع الزمني الذي يكون هذا الرمز الترويجي صالحاً منه" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "وقت بدء الصلاحية" -#: core/models.py:989 +#: core/models.py:978 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" -#: core/models.py:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "الطابع الزمني للاستخدام" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "المستخدم المعين لهذا الرمز الترويجي إن أمكن" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "المستخدم المعين" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "الرمز الترويجي" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "الرموز الترويجية" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1477,143 +1529,187 @@ msgstr "" "يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين" " أو لا هذا ولا ذاك." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "تم استخدام الرمز الترويجي بالفعل" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "نوع الخصم غير صالح للرمز الترويجي {self.uuid}" -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "النسبة المئوية للخصم على المنتجات المختارة" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "نسبة الخصم" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "تقديم اسم فريد لهذا العرض الترويجي" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "اسم الترقية" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "وصف الترقية" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "حدد المنتجات المشمولة في هذا العرض الترويجي" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "المنتجات المشمولة" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "الترقية" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "البائع الذي يورد هذا المنتج المخزون" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "البائع المرتبط" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "السعر النهائي للعميل بعد هوامش الربح" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "سعر البيع" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "المنتج المرتبط بإدخال المخزون هذا" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "السعر المدفوع للبائع مقابل هذا المنتج" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "سعر الشراء من البائع" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "الكمية المتوفرة من المنتج في المخزون" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "الكمية في المخزون" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU المعين من قبل البائع لتحديد المنتج" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "وحدة تخزين البائع" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "الملف الرقمي المرتبط بهذا المخزون إن أمكن" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "ملف رقمي" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "إدخالات المخزون" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "المنتجات التي حددها المستخدم على أنها مطلوبة" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "المستخدم الذي يمتلك قائمة الرغبات هذه" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "مالك قائمة الرغبات" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "قائمة الرغبات" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "تنزيل" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "التنزيلات" -#: core/models.py:1208 +#: core/models.py:1206 msgid "you can not download a digital asset for a non-finished order" msgstr "لا يمكنك تنزيل أصل رقمي لطلب غير مكتمل" -#: core/models.py:1220 +#: core/models.py:1218 msgid "documentary" msgstr "فيلم وثائقي" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "الأفلام الوثائقية" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "لم يتم حلها" +#: core/models.py:1233 +msgid "street" +msgstr "الشارع" + +#: core/models.py:1234 +msgid "district" +msgstr "المنطقة" + +#: core/models.py:1235 +msgid "city" +msgstr "المدينة" + +#: core/models.py:1236 +msgid "region" +msgstr "المنطقة" + +#: core/models.py:1237 +msgid "postal code" +msgstr "الرمز البريدي" + +#: core/models.py:1238 +msgid "country" +msgstr "البلد" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "نقطة تحديد الموقع الجغرافي(خط الطول، خط العرض)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "استجابة JSON كاملة من أداة التشفير الجغرافي لهذا العنوان" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "استجابة JSON مخزّنة من خدمة الترميز الجغرافي" + +#: core/models.py:1270 +msgid "address" +msgstr "العنوان" + +#: core/models.py:1271 +msgid "addresses" +msgstr "العناوين" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "خطأ أثناء إنشاء الرمز الترويجي: {e!s}" @@ -1819,6 +1915,10 @@ msgstr "{config.PROJECT_NAME} | تم تسليم الطلب" msgid "you do not have permission to perform this action." msgstr "ليس لديك إذن لتنفيذ هذا الإجراء." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "يجب تكوين معلمة NOMINATIM_URL!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1835,3 +1935,8 @@ msgstr "يمكنك تنزيل الأصل الرقمي مرة واحدة فقط" #: core/views.py:264 msgid "favicon not found" msgstr "الرمز المفضل غير موجود" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "خطأ في الترميز الجغرافي: {e}" diff --git a/core/locale/cs_CZ/LC_MESSAGES/django.mo b/core/locale/cs_CZ/LC_MESSAGES/django.mo index eba8d72c..98396549 100644 Binary files a/core/locale/cs_CZ/LC_MESSAGES/django.mo and b/core/locale/cs_CZ/LC_MESSAGES/django.mo differ diff --git a/core/locale/cs_CZ/LC_MESSAGES/django.po b/core/locale/cs_CZ/LC_MESSAGES/django.po index 1d0b0006..556c7e2c 100644 --- a/core/locale/cs_CZ/LC_MESSAGES/django.po +++ b/core/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -50,47 +50,47 @@ msgstr "Upraveno" msgid "when the object was last modified" msgstr "Kdy byl objekt naposledy upraven" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktivovat vybrané %(verbose_name_plural)s" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deaktivovat vybrané %(verbose_name_plural)s" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Hodnota atributu" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Hodnoty atributů" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Název" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Obrázek" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Obrázky" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Stock" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Zásoby" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "Hodnocení produktu" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Základní informace" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Důležitá data" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Překlady" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Objednat produkt" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Objednat produkty" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Je podnikání" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Konfigurace" @@ -223,152 +223,152 @@ msgstr "" "Zakoupit objednávku jako podnik s použitím zadaných `produktů` s " "`product_uuid` a `atributy`." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "Seznam všech skupin atributů (jednoduché zobrazení)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Získání jedné skupiny atributů (podrobné zobrazení)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Vytvoření skupiny atributů" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Odstranění skupiny atributů" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "" "Přepsání existující skupiny atributů s uložením neupravitelných položek" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Přepsání některých polí existující skupiny atributů s uložením " "neupravitelných položek" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "Seznam všech atributů (jednoduché zobrazení)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Získání jednoho atributu (podrobné zobrazení)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Vytvoření atributu" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Odstranění atributu" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "Přepsat existující atribut a uložit neupravitelné položky" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" "Přepsání některých polí existujícího atributu s uložením neupravitelných " "položek" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "Seznam všech hodnot atributů (jednoduché zobrazení)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Získání jedné hodnoty atributu (podrobné zobrazení)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Vytvoření hodnoty atributu" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Odstranění hodnoty atributu" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "Přepsání existující hodnoty atributu uložením neupravitelných položek" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Přepsání některých polí existující hodnoty atributu s uložením " "neupravitelných položek" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "Seznam všech kategorií (jednoduché zobrazení)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Vyhledání jedné kategorie (podrobné zobrazení)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Vytvoření kategorie" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Odstranění kategorie" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "Přepsání existující kategorie ukládající neupravitelné položky" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" "Přepsat některá pole existující kategorie a uložit neupravitelné položky" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "Seznam všech kategorií (jednoduché zobrazení)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" "Uživatelům, kteří nejsou zaměstnanci, se vracejí pouze jejich vlastní " "objednávky." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Vyhledání jedné kategorie (podrobné zobrazení)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Vytvoření atributu" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Nefunguje pro uživatele, kteří nejsou zaměstnanci." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Odstranění atributu" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "Přepsání existující kategorie ukládající neupravitelné položky" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" "Přepsat některá pole existující kategorie a uložit neupravitelné položky" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Nákupní cena v době objednávky" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -378,108 +378,108 @@ msgstr "" " s použitím zůstatku uživatele; pokud je použito `force_payment`, zahájí se " "transakce." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "zakoupení objednávky bez vytvoření účtu" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "dokončí nákup objednávky pro neregistrovaného uživatele." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Přidání produktu do objednávky" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." msgstr "" "Přidá produkt do objednávky pomocí zadaného `product_uuid` a `attributes`." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Odstranění produktu z objednávky" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." msgstr "" "Odebere produkt z objednávky pomocí zadaného `product_uuid` a `attributes`." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "Seznam všech atributů (jednoduché zobrazení)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "Uživatelům, kteří nejsou zaměstnanci, se vrátí pouze jejich vlastní seznamy " "přání." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Získání jednoho atributu (podrobné zobrazení)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Vytvoření atributu" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Nefunguje pro uživatele, kteří nejsou zaměstnanci." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Odstranění atributu" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "Přepsat existující atribut a uložit neupravitelné položky" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" "Přepsání některých polí existujícího atributu s uložením neupravitelných " "položek" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Přidání produktu do objednávky" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "Přidá produkt do seznamu přání pomocí zadaného `product_uuid`." -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Odstranění produktu ze seznamu přání" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "Odebere produkt ze seznamu přání pomocí zadaného `product_uuid`." -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Přidání mnoha produktů do seznamu přání" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "Přidá mnoho produktů do seznamu přání pomocí zadaných `product_uuids`." -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Odstranění produktu z objednávky" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Odebere mnoho produktů ze seznamu přání pomocí zadaných `product_uuids`." -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -499,59 +499,59 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "Seznam všech produktů (jednoduché zobrazení)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(přesně) UUID produktu" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(icontains) Název produktu" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(seznam) Názvy kategorií, nerozlišuje velká a malá písmena" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(přesně) Kategorie UUID" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(seznam) Názvy značek, nerozlišuje velká a malá písmena" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Minimální cena akcií" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Maximální cena akcií" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(přesně) Pouze aktivní produkty" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Obchodní značka" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Minimální skladové množství" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(přesně) Product slug" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(přesně) Digitální vs. fyzické" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -559,35 +559,63 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Vyhledání jednoho produktu (podrobné zobrazení)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "Identifikátor UUID produktu nebo Slug" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Vytvoření produktu" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 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:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Odstranění produktu" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "Seznam všech adres" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Získání jedné adresy" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Vytvoření nové adresy" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Odstranění adresy" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Aktualizace celé adresy" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Částečná aktualizace adresy" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Automatické dokončování zadávání adresy" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "Nebyl zadán žádný vyhledávací termín." @@ -621,7 +649,7 @@ msgid "add a product to the order" msgstr "Přidání produktu do objednávky" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Objednávka {order_uuid} nebyla nalezena" @@ -638,42 +666,42 @@ msgstr "Odstranění všech produktů z objednávky" msgid "buy an order" msgstr "Koupit objednávku" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Z metody order.buy() pochází nesprávný typ: {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Přidání produktu do objednávky" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Seznam přání {wishlist_uuid} nebyl nalezen" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Odstranění produktu z objednávky" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Odstranění produktu z objednávky" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Odstranění produktu z objednávky" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Koupit objednávku" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" @@ -681,12 +709,24 @@ msgstr "" "Prosím, pošlete atributy jako řetězec ve formátu " "attr1=hodnota1,attr2=hodnota2." -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Původní řetězec adresy zadaný uživatelem" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} neexistuje: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "Limit musí být mezi 1 a 10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funguje jako kouzlo" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Atributy" @@ -699,11 +739,11 @@ msgid "groups of attributes" msgstr "Skupiny atributů" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Kategorie" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Značky" @@ -712,7 +752,7 @@ msgid "category image url" msgstr "Kategorie" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Procento přirážky" @@ -727,40 +767,48 @@ msgstr "" "Minimální a maximální ceny produktů v této kategorii, pokud jsou k " "dispozici." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Prodejci" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Zeměpisná šířka (souřadnice Y)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Zeměpisná délka (souřadnice X)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Jak na to" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Hodnota hodnocení od 1 do 10 včetně nebo 0, pokud není nastaveno." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Představuje zpětnou vazbu od uživatele." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Oznámení" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "Stáhněte si url adresu pro tento objednaný produkt, pokud je to možné" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "Seznam objednaných produktů v tomto pořadí" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Fakturační adresa" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -768,47 +816,47 @@ msgstr "" "Dodací adresa pro tuto objednávku, pokud je stejná jako fakturační adresa " "nebo pokud není použitelná, ponechte prázdné." -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Celková cena této objednávky" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Celkové množství objednaných produktů" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Jsou všechny produkty v objednávce digitální" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Objednávky" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "Adresa URL obrázku" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Obrázky produktu" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Kategorie" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Zpětná vazba" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Značka" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Skupiny atributů" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -816,31 +864,31 @@ msgstr "Skupiny atributů" msgid "quantity" msgstr "Množství" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Počet zpětných vazeb" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Produkty" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Propagační kódy" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Produkty v prodeji" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Propagační akce" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Prodejce" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -848,467 +896,475 @@ msgstr "Prodejce" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Produkty uvedené na seznamu přání" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Seznamy přání" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Název projektu" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "E-mail společnosti" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Název společnosti" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Adresa společnosti" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Telefonní číslo společnosti" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', někdy se musí použít místo hodnoty hostitelského uživatele." -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "Uživatel hostitelského e-mailu" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Maximální částka pro platbu" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Minimální částka pro platbu" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Konfigurace" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Kód jazyka" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Název jazyka" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Příznak jazyka, pokud existuje :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Získat seznam podporovaných jazyků" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Výsledky vyhledávání produktů" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Výsledky vyhledávání produktů" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Rodič této skupiny" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Nadřazená skupina atributů" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Název skupiny atributů" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Skupina atributů" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Kategorie tohoto atributu" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Skupina tohoto atributu" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "Řetězec" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Celé číslo" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Float" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Boolean" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Pole" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Objekt" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Typ hodnoty atributu" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Typ hodnoty" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Název tohoto atributu" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Název atributu" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Atribut" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Atribut této hodnoty" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Související produkt" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "Konkrétní hodnota tohoto atributu" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Nahrát obrázek reprezentující tuto kategorii" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Obrázek kategorie" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "Definovat procento přirážky pro produkty v této kategorii." -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "Nadřízený této kategorie, který tvoří hierarchickou strukturu." -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Nadřazená kategorie" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Název kategorie" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Uveďte název této kategorie" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Přidejte podrobný popis této kategorie" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Popis kategorie" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Název této značky" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Název značky" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Nahrát logo reprezentující tuto značku" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Malý obrázek značky" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Nahrát velké logo reprezentující tuto značku" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Velká image značky" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Přidejte podrobný popis značky" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Popis značky" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Volitelné kategorie, se kterými je tato značka spojena" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Kategorie" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Kategorie, do které tento produkt patří" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Volitelně přiřadit tento produkt ke značce" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Štítky produktu" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Označuje, zda je tento produkt dodáván digitálně" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "Je produkt digitální" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Uveďte jasný identifikační název výrobku" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Název produktu" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Přidejte podrobný popis produktu" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Popis produktu" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Číslo dílu pro tento produkt" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Číslo dílu" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Ukládá pověření a koncové body potřebné pro komunikaci s rozhraním API " "dodavatele." -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Informace o ověřování" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "Definice přirážky pro produkty získané od tohoto dodavatele" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Procento přirážky prodejce" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Název tohoto prodejce" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Název prodejce" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "Komentáře uživatelů o jejich zkušenostech s produktem" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Zpětná vazba" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Odkazuje na konkrétní produkt v objednávce, kterého se tato zpětná vazba " "týká." -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Související objednávka produktu" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "Hodnocení produktu přidělené uživatelem" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Hodnocení produktu" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Zpětná vazba" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "Fakturační adresa použitá pro tuto objednávku" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Volitelný promo kód použitý na tuto objednávku" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Použitý promo kód" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "Dodací adresa použitá pro tuto objednávku" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Dodací adresa" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Aktuální stav zakázky v jejím životním cyklu" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Stav objednávky" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "JSON struktura oznámení pro zobrazení uživatelům, v uživatelském rozhraní " "administrátora se používá tabulkové zobrazení." -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "JSON reprezentace atributů objednávky pro tuto objednávku" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "Uživatel, který zadal objednávku" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "Uživatel" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "Časové razítko, kdy byla objednávka dokončena." -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Kupte si čas" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "Lidsky čitelný identifikátor objednávky" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "lidsky čitelné ID" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Objednávka" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 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:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "Do objednávky nelze přidat neaktivní produkty" -#: core/models.py:563 +#: core/models.py:565 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:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} neexistuje: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} neexistuje s dotazem <{query}>" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Promo kód neexistuje" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "Fyzické produkty můžete zakoupit pouze se zadanou dodací adresou!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "Adresa neexistuje" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Neplatná hodnota síly" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "Nelze zakoupit prázdnou objednávku!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Nedostatek finančních prostředků na dokončení objednávky" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1316,187 +1372,183 @@ 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:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Neplatný způsob platby" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Nákupní cena v době objednávky" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "Interní komentáře pro administrátory k tomuto objednanému produktu" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Interní připomínky" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "Oznámení uživatele" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "JSON reprezentace atributů této položky" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Objednané atributy produktu" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Odkaz na nadřazenou objednávku, která obsahuje tento produkt" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Objednávka rodičů" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "Konkrétní produkt spojený s touto objednávkou" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Množství tohoto konkrétního produktu v objednávce" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Množství produktu" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Aktuální stav tohoto produktu v objednávce" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Stav produktové řady" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Interní identifikátor značky produktu" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Název štítku" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "Uživatelsky přívětivý název pro značku produktu" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Zobrazení názvu štítku" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Štítek produktu" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "Poskytněte alternativní text k obrázku kvůli přístupnosti." -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "Text alt obrázku" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Nahrát soubor s obrázkem tohoto produktu" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Obrázek produktu" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Určuje pořadí, v jakém se obrázky zobrazují." -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Priorita zobrazení" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "Výrobek, který tento obrázek představuje" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Obrázky produktů" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Identifikátor propagačního kódu" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "Pevná výše slevy, pokud není použito procento" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Pevná výše slevy" -#: core/models.py:971 +#: core/models.py:960 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:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Procentuální sleva" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Časové razítko ukončení platnosti promokódu" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "Doba ukončení platnosti" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Časové razítko, od kterého je tento promokód platný" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "Čas zahájení platnosti" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Časové razítko použití" -#: core/models.py:995 +#: core/models.py:984 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:996 +#: core/models.py:985 msgid "assigned user" msgstr "Přiřazený uživatel" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Propagační kód" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Propagační kódy" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1504,143 +1556,187 @@ 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:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "Promo kód byl již použit" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Neplatný typ slevy pro promocode {self.uuid}" -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Procentuální sleva na vybrané produkty" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Procento slevy" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Uveďte jedinečný název této propagační akce" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Název akce" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Popis propagace" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Vyberte, které produkty jsou zahrnuty do této akce" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Zahrnuté produkty" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Propagace" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "Prodejce dodávající tento výrobek na sklad" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Přidružený prodejce" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Konečná cena pro zákazníka po přirážkách" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Prodejní cena" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "Produkt spojený s touto skladovou položkou" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "Cena zaplacená prodejci za tento výrobek" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Kupní cena prodejce" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Dostupné množství produktu na skladě" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Množství na skladě" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU přidělený prodejcem pro identifikaci výrobku" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "SKU prodejce" -#: core/models.py:1123 +#: core/models.py:1116 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:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Digitální soubor" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Zápisy do zásob" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Výrobky, které uživatel označil jako požadované" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "Uživatel, který vlastní tento seznam přání" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Majitel seznamu přání" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Seznam přání" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Stáhnout" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Ke stažení na" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Dokumentární film" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Dokumentární filmy" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Nevyřešené" +#: core/models.py:1233 +msgid "street" +msgstr "Ulice" + +#: core/models.py:1234 +msgid "district" +msgstr "Okres" + +#: core/models.py:1235 +msgid "city" +msgstr "Město" + +#: core/models.py:1236 +msgid "region" +msgstr "Region" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Poštovní směrovací číslo" + +#: core/models.py:1238 +msgid "country" +msgstr "Země" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Geolokace Bod(Zeměpisná délka, Zeměpisná šířka)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Úplná odpověď JSON z geokodéru pro tuto adresu" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Uložená odpověď JSON ze služby geokódování" + +#: core/models.py:1270 +msgid "address" +msgstr "Adresa" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Adresy" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Chyba při vytváření promokódu: {e!s}" @@ -1852,6 +1948,10 @@ msgstr "{config.PROJECT_NAME} | Dodaná objednávka" msgid "you do not have permission to perform this action." msgstr "K provedení této akce nemáte oprávnění." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "Parametr NOMINATIM_URL musí být nakonfigurován!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1869,3 +1969,8 @@ msgstr "Digitální aktivum můžete stáhnout pouze jednou" #: core/views.py:264 msgid "favicon not found" msgstr "favicon nebyl nalezen" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Chyba v zeměpisném kódování: {e}" diff --git a/core/locale/da_DK/LC_MESSAGES/django.mo b/core/locale/da_DK/LC_MESSAGES/django.mo index cdb2201b..2b54dedc 100644 Binary files a/core/locale/da_DK/LC_MESSAGES/django.mo and b/core/locale/da_DK/LC_MESSAGES/django.mo differ diff --git a/core/locale/da_DK/LC_MESSAGES/django.po b/core/locale/da_DK/LC_MESSAGES/django.po index c895a2ca..88cce176 100644 --- a/core/locale/da_DK/LC_MESSAGES/django.po +++ b/core/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -49,47 +49,47 @@ msgstr "Modificeret" msgid "when the object was last modified" msgstr "Hvornår objektet sidst blev redigeret" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktivér udvalgte %(verbose_name_plural)s" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deaktiver udvalgte %(verbose_name_plural)s" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Attributværdi" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Attributværdier" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Navn" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Billede" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Billeder" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Lager" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Aktier" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "Produktvurdering" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Grundlæggende information" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Vigtige datoer" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Oversættelser" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Bestil produkt" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Bestil produkter" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Er forretning" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Konfig" @@ -221,155 +221,155 @@ msgstr "" "Køb en ordre som en virksomhed ved hjælp af de angivne `produkter` med " "`produkt_uuid` og `attributter`." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "Liste over alle attributgrupper (simpel visning)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Hent en enkelt attributgruppe (detaljeret visning)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Opret en attributgruppe" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Slet en attributgruppe" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "" "Omskriv en eksisterende attributgruppe, der gemmer ikke-redigerbare " "attributter" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Omskriv nogle felter i en eksisterende attributgruppe og gem ikke-" "redigerbare felter" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "Liste over alle attributter (simpel visning)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Hent en enkelt attribut (detaljeret visning)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Opret en attribut" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Slet en attribut" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "Omskriv en eksisterende attribut, der gemmer ikke-redigerbare filer" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" "Omskriv nogle felter i en eksisterende attribut og gem ikke-redigerbare " "felter" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "Liste over alle attributværdier (simpel visning)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Hent en enkelt attributværdi (detaljeret visning)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Opret en attributværdi" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Slet en attributværdi" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "" "Omskriv en eksisterende attributværdi, der gemmer ikke-redigerbare filer" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Omskriv nogle felter i en eksisterende attributværdi og gem ikke-redigerbare" " felter" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "Liste over alle kategorier (enkel visning)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Hent en enkelt kategori (detaljeret visning)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Opret en kategori" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Slet en kategori" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "Omskriv en eksisterende kategori, der gemmer ikke-redigerbare filer" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" "Omskriv nogle felter i en eksisterende kategori og gem ikke-redigerbare " "felter" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "Liste over alle kategorier (enkel visning)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" "For ikke-ansatte brugere er det kun deres egne ordrer, der returneres." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Hent en enkelt kategori (detaljeret visning)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Opret en attribut" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Virker ikke for ikke-ansatte brugere." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Slet en attribut" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "Omskriv en eksisterende kategori, der gemmer ikke-redigerbare filer" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" "Omskriv nogle felter i en eksisterende kategori og gem ikke-redigerbare " "felter" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Købspris på bestillingstidspunktet" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -379,19 +379,19 @@ msgstr "" "ved hjælp af brugerens saldo; hvis `force_payment` bruges, igangsættes en " "transaktion." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "Køb en ordre uden at oprette en konto" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "afslutter ordrekøbet for en ikke-registreret bruger." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Tilføj et produkt til ordren" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -399,11 +399,11 @@ msgstr "" "Tilføjer et produkt til en ordre ved hjælp af de angivne `product_uuid` og " "`attributes`." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Fjern et produkt fra ordren" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -411,83 +411,83 @@ msgstr "" "Fjerner et produkt fra en ordre ved hjælp af de angivne `product_uuid` og " "`attributes`." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "Liste over alle attributter (simpel visning)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "For ikke-ansatte brugere er det kun deres egne ønskelister, der returneres." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Hent en enkelt attribut (detaljeret visning)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Opret en attribut" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Virker ikke for ikke-ansatte brugere." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Slet en attribut" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "Omskriv en eksisterende attribut, der gemmer ikke-redigerbare filer" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" "Omskriv nogle felter i en eksisterende attribut og gem ikke-redigerbare " "felter" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Tilføj et produkt til ordren" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "" "Tilføjer et produkt til en ønskeliste ved hjælp af den angivne " "`product_uuid`." -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Fjern et produkt fra ønskelisten" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" "Fjerner et produkt fra en ønskeliste ved hjælp af den angivne " "`product_uuid`." -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Tilføj mange produkter til ønskelisten" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "Tilføjer mange produkter til en ønskeliste ved hjælp af de angivne " "`product_uuids`." -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Fjern et produkt fra ordren" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Fjerner mange produkter fra en ønskeliste ved hjælp af de angivne " "`product_uuids`." -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -507,59 +507,59 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "Liste over alle produkter (enkel visning)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(præcis) Produkt-UUID" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(icontains) Produktnavn" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(liste) Kategorinavne, skelner ikke mellem store og små bogstaver" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(præcis) UUID for kategori" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(liste) Tag-navne, skelner ikke mellem store og små bogstaver" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Minimum aktiekurs" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Maksimal aktiekurs" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(præcis) Kun aktive produkter" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Mærkenavn" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Minimum lagermængde" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(nøjagtig) Produktsug" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(præcis) Digital vs. fysisk" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -567,34 +567,62 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Hent et enkelt produkt (detaljeret visning)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "Produkt UUID eller Slug" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Opret et produkt" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "Omskriv et eksisterende produkt og bevar ikke-redigerbare felter" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Slet et produkt" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "Angiv alle adresser" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Hent en enkelt adresse" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Opret en ny adresse" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Slet en adresse" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Opdater en hel adresse" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Delvis opdatering af en adresse" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Automatisk udfyldning af adresseinput" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "Der er ikke angivet noget søgeord." @@ -628,7 +656,7 @@ msgid "add a product to the order" msgstr "Tilføj et produkt til ordren" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Ordre {order_uuid} ikke fundet" @@ -645,42 +673,42 @@ msgstr "Fjern alle produkter fra ordren" msgid "buy an order" msgstr "Køb en ordre" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Forkert type kom fra metoden order.buy(): {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Tilføj et produkt til ordren" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Ønskeliste {wishlist_uuid} ikke fundet" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Fjern et produkt fra ordren" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Fjern et produkt fra ordren" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Fjern et produkt fra ordren" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Køb en ordre" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" @@ -688,12 +716,24 @@ msgstr "" "Send venligst attributterne som en streng formateret som " "attr1=værdi1,attr2=værdi2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Original adressestreng leveret af brugeren" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} findes ikke: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "Grænsen skal være mellem 1 og 10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - fungerer som en charme" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Egenskaber" @@ -706,11 +746,11 @@ msgid "groups of attributes" msgstr "Grupper af attributter" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Kategorier" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Mærker" @@ -719,7 +759,7 @@ msgid "category image url" msgstr "Kategorier" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Markup-procentdel" @@ -736,42 +776,50 @@ msgstr "" "Minimums- og maksimumspriser for produkter i denne kategori, hvis de er " "tilgængelige." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Leverandører" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Breddegrad (Y-koordinat)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Længdegrad (X-koordinat)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Sådan gør du" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" "Vurderingsværdi fra 1 til 10, inklusive, eller 0, hvis den ikke er " "indstillet." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Repræsenterer feedback fra en bruger." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Meddelelser" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "Download url for dette ordreprodukt, hvis det er relevant" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "En liste over bestillingsprodukter i denne ordre" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Faktureringsadresse" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -779,47 +827,47 @@ msgstr "" "Leveringsadresse for denne ordre, lad den være tom, hvis den er den samme " "som faktureringsadressen, eller hvis den ikke er relevant" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Samlet pris for denne ordre" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Samlet antal produkter i ordren" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Er alle produkterne i ordren digitale?" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Bestillinger" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "Billed-URL" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Produktets billeder" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Kategori" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Tilbagemeldinger" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Attributgrupper" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -827,31 +875,31 @@ msgstr "Attributgrupper" msgid "quantity" msgstr "Mængde" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Antal tilbagemeldinger" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Produkter" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Promokoder" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Produkter til salg" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Kampagner" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Leverandør" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -859,467 +907,475 @@ msgstr "Leverandør" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Produkter på ønskelisten" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Ønskelister" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Projektets navn" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "Virksomhedens e-mail" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Virksomhedens navn" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Virksomhedens adresse" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Virksomhedens telefonnummer" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'e-mail fra', nogle gange skal den bruges i stedet for værtsbrugerværdien" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "E-mail-værtsbruger" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Maksimalt beløb til betaling" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Minimumsbeløb for betaling" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Konfiguration" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Sprogkode" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Sprogets navn" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Sprogflag, hvis det findes :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Få en liste over understøttede sprog" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Søgeresultater for produkter" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Søgeresultater for produkter" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Forælder til denne gruppe" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Overordnet attributgruppe" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Attributgruppens navn" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Attributgruppe" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Kategori for denne attribut" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Gruppe af denne attribut" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "Streng" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Heltal" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Flyder" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Boolsk" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Array" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Objekt" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Type af attributtens værdi" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Værditype" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Navn på denne attribut" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Attributtens navn" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Attribut" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Attribut for denne værdi" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Tilknyttet produkt" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "Den specifikke værdi for denne attribut" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Upload et billede, der repræsenterer denne kategori" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Kategori billede" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "Definer en markup-procentdel for produkter i denne kategori" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "Forælder til denne kategori for at danne en hierarkisk struktur" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Overordnet kategori" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Navn på kategori" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Giv et navn til denne kategori" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Tilføj en detaljeret beskrivelse af denne kategori" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Beskrivelse af kategori" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Navnet på dette mærke" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Varemærke" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Upload et logo, der repræsenterer dette brand" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Brandets lille image" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Upload et stort logo, der repræsenterer dette brand" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Brandets store image" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Tilføj en detaljeret beskrivelse af brandet" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Varemærkebeskrivelse" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Valgfrie kategorier, som dette brand er forbundet med" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Kategorier" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Kategori, som dette produkt tilhører" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Tilknyt eventuelt dette produkt til et brand" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Produktmærker" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Angiver, om dette produkt leveres digitalt" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "Er produktet digitalt?" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Giv produktet et klart identificerende navn" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Produktets navn" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Tilføj en detaljeret beskrivelse af produktet" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Produktbeskrivelse" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Reservedelsnummer for dette produkt" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Varenummer" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Gemmer legitimationsoplysninger og slutpunkter, der er nødvendige for " "leverandørens API-kommunikation" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Oplysninger om godkendelse" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "Definer markeringen for produkter, der hentes fra denne leverandør" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Sælgerens markup-procentdel" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Navn på denne leverandør" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Leverandørens navn" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "Brugernes kommentarer om deres oplevelse med produktet" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Kommentarer til feedback" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Henviser til det specifikke produkt i en ordre, som denne feedback handler " "om" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Relateret ordreprodukt" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "Brugertildelt vurdering af produktet" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Produktvurdering" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Feedback" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "Den faktureringsadresse, der bruges til denne ordre" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Valgfri kampagnekode anvendt på denne ordre" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Anvendt kampagnekode" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "Den leveringsadresse, der er brugt til denne ordre" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Leveringsadresse" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Ordrens aktuelle status i dens livscyklus" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Bestillingsstatus" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges" " tabelvisningen" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "JSON-repræsentation af ordreattributter for denne ordre" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "Den bruger, der har afgivet ordren" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "Bruger" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "Tidsstemplet for, hvornår ordren blev afsluttet" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Køb tid" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "En menneskeligt læsbar identifikator for ordren" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "menneskeligt læsbart ID" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Bestil" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 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:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "Du kan ikke tilføje inaktive produkter til en ordre" -#: core/models.py:563 +#: core/models.py:565 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:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} findes ikke: {product_uuid}." -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} findes ikke med forespørgsel <{query}>." -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Promokode findes ikke" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "Du kan kun købe fysiske produkter med angivet leveringsadresse!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "Adressen findes ikke" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Ugyldig kraftværdi" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "Du kan ikke købe en tom ordre!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Utilstrækkelige midler til at gennemføre ordren" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1327,189 +1383,184 @@ msgstr "" "du kan ikke købe uden registrering, angiv venligst følgende oplysninger: " "kundens navn, kundens e-mail, kundens telefonnummer" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Ugyldig betalingsmetode" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Købspris på bestillingstidspunktet" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "Interne kommentarer til administratorer om dette bestilte produkt" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Interne kommentarer" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "Notifikationer til brugere" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "JSON-repræsentation af dette elements attributter" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Bestilte produktattributter" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Henvisning til den overordnede ordre, der indeholder dette produkt" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Forældreordre" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "Det specifikke produkt, der er knyttet til denne ordrelinje" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Mængde af dette specifikke produkt i ordren" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Produktmængde" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Aktuel status for dette produkt i bestillingen" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Status for produktlinje" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Intern tag-identifikator for produkttagget" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Tag-navn" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "Brugervenligt navn til produktmærket" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Navn på tag-visning" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Produktmærke" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "Giv alternativ tekst til billedet af hensyn til tilgængeligheden" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "Billedets alt-tekst" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Upload billedfilen til dette produkt" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Produktbillede" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Bestemmer den rækkefølge, billederne vises i" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Skærm-prioritet" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "Det produkt, som dette billede repræsenterer" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Produktbilleder" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Identifikator for kampagnekode" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "Fast rabatbeløb anvendes, hvis procent ikke bruges" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Fast rabatbeløb" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentvis rabat, hvis det faste beløb ikke bruges" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Procentvis rabat" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Tidsstempel, når promokoden udløber" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "Slut gyldighedstid" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Tidsstempel, hvorfra denne promokode er gyldig" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "Start gyldighedstid" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Tidsstempel for brug" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "Bruger tildelt denne promokode, hvis relevant" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Tildelt bruger" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Kampagnekode" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Kampagnekoder" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1517,143 +1568,187 @@ msgstr "" "Der skal kun defineres én type rabat (beløb eller procent), men ikke begge " "eller ingen af dem." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "Promokoden er allerede blevet brugt" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ugyldig rabattype for promokode {self.uuid}." -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Procentvis rabat for de valgte produkter" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Rabatprocent" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Giv et unikt navn til denne kampagne" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Navn på kampagne" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Beskrivelse af kampagnen" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Vælg, hvilke produkter der er inkluderet i denne kampagne" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Inkluderede produkter" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Forfremmelse" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "Den leverandør, der leverer dette produkt, lagerfører" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Tilknyttet leverandør" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Endelig pris til kunden efter tillæg" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Salgspris" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "Det produkt, der er knyttet til denne lagerpost" -#: core/models.py:1106 +#: core/models.py:1099 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:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Leverandørens købspris" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Tilgængelig mængde af produktet på lager" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Antal på lager" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "Leverandørtildelt SKU til identifikation af produktet" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "Leverandørens SKU" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "Digital fil knyttet til dette lager, hvis relevant" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Digital fil" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Lagerposteringer" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Produkter, som brugeren har markeret som ønskede" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "Bruger, der ejer denne ønskeliste" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Ønskelistens ejer" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Ønskeliste" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Download" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Downloads" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Dokumentarfilm" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Dokumentarfilm" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Uafklaret" +#: core/models.py:1233 +msgid "street" +msgstr "Gade" + +#: core/models.py:1234 +msgid "district" +msgstr "Distrikt" + +#: core/models.py:1235 +msgid "city" +msgstr "By" + +#: core/models.py:1236 +msgid "region" +msgstr "Region" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Postnummer" + +#: core/models.py:1238 +msgid "country" +msgstr "Land" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Geolokaliseringspunkt (længdegrad, breddegrad)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Fuldt JSON-svar fra geokoderen for denne adresse" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Gemt JSON-svar fra geokodningstjenesten" + +#: core/models.py:1270 +msgid "address" +msgstr "Adresse" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Adresser" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Fejl under oprettelse af promokode: {e!s}" @@ -1864,6 +1959,10 @@ msgstr "{config.PROJECT_NAME} | Ordre leveret" msgid "you do not have permission to perform this action." msgstr "Du har ikke tilladelse til at udføre denne handling." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "Parameteren NOMINATIM_URL skal være konfigureret!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1882,3 +1981,8 @@ msgstr "Du kan kun downloade det digitale aktiv én gang" #: core/views.py:264 msgid "favicon not found" msgstr "Favicon ikke fundet" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Fejl i geokodning: {e}" diff --git a/core/locale/de_DE/LC_MESSAGES/django.mo b/core/locale/de_DE/LC_MESSAGES/django.mo index 34d16d84..6e39010d 100644 Binary files a/core/locale/de_DE/LC_MESSAGES/django.mo and b/core/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/core/locale/de_DE/LC_MESSAGES/django.po b/core/locale/de_DE/LC_MESSAGES/django.po index 0045549d..f8b0f066 100644 --- a/core/locale/de_DE/LC_MESSAGES/django.po +++ b/core/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,47 +51,47 @@ msgstr "Geändert" msgid "when the object was last modified" msgstr "Wann das Objekt zuletzt bearbeitet wurde" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Ausgewählte %(verbose_name_plural)s aktivieren" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Ausgewählte %(verbose_name_plural)s deaktivieren" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Attribut Wert" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Attribut Werte" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Name" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Bild" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Bilder" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Lagerbestand" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Bestände" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "Produktbewertung" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Grundlegende Informationen" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Wichtige Termine" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Übersetzungen" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Produkt bestellen" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Produkte bestellen" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Ist Business" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Konfigurieren Sie" @@ -223,160 +223,160 @@ msgstr "" "Kauf einer Bestellung als Unternehmen unter Verwendung der angegebenen " "\"Produkte\" mit \"product_uuid\" und \"Attributen\"." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "Alle Attributgruppen auflisten (einfache Ansicht)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Abrufen einer einzelnen Attributgruppe (Detailansicht)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Erstellen einer Attributgruppe" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Löschen einer Attributgruppe" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "" "Umschreiben einer bestehenden Attributgruppe mit Speicherung von Nicht-" "Editierbarkeit" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Umschreiben einiger Felder einer bestehenden Attributgruppe, wobei nicht " "editierbare Felder gespeichert werden" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "Alle Attribute auflisten (einfache Ansicht)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Ein einzelnes Attribut abrufen (detaillierte Ansicht)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Ein Attribut erstellen" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Ein Attribut löschen" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "" "Umschreiben eines vorhandenen Attributs, wobei nicht editierbare Daten " "gespeichert werden" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" "Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare" " Daten zu speichern" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "Alle Attributwerte auflisten (einfache Ansicht)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Abrufen eines einzelnen Attributwertes (Detailansicht)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Einen Attributwert erstellen" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Löschen eines Attributwertes" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "" "Umschreiben eines vorhandenen Attributwerts mit Speicherung von Nicht-" "Editierbarkeit" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Umschreiben einiger Felder eines vorhandenen Attributwerts, wobei nicht " "bearbeitbare Daten gespeichert werden" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "Alle Kategorien auflisten (einfache Ansicht)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Eine einzelne Kategorie abrufen (detaillierte Ansicht)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Eine Kategorie erstellen" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Eine Kategorie löschen" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "" "Eine bestehende Kategorie umschreiben und dabei Nicht-Editierbares speichern" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" "Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" " Daten zu speichern" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "Alle Kategorien auflisten (einfache Ansicht)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" "Bei Nicht-Mitarbeitern werden nur die eigenen Bestellungen zurückgeschickt." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Eine einzelne Kategorie abrufen (detaillierte Ansicht)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Ein Attribut erstellen" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Funktioniert nicht für Benutzer, die nicht zum Personal gehören." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Ein Attribut löschen" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "" "Eine bestehende Kategorie umschreiben und dabei Nicht-Editierbares speichern" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" "Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" " Daten zu speichern" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Einkaufspreis zum Zeitpunkt der Bestellung" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -386,21 +386,21 @@ msgstr "" "wird der Kauf mit dem Guthaben des Benutzers abgeschlossen; bei Verwendung " "von \"force_payment\" wird eine Transaktion ausgelöst." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "eine Bestellung kaufen, ohne ein Konto anzulegen" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "" "schließt den Kauf einer Bestellung für einen nicht registrierten Benutzer " "ab." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Ein Produkt zur Bestellung hinzufügen" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -408,11 +408,11 @@ msgstr "" "Fügt ein Produkt unter Verwendung der angegebenen `product_uuid` und " "`attributes` zu einer Bestellung hinzu." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Ein Produkt aus der Bestellung entfernen" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -420,85 +420,85 @@ msgstr "" "Entfernt ein Produkt aus einer Bestellung unter Verwendung der angegebenen " "`product_uuid` und `attributes`." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "Alle Attribute auflisten (einfache Ansicht)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "Bei Nicht-Mitarbeitern werden nur ihre eigenen Wunschlisten zurückgegeben." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Ein einzelnes Attribut abrufen (detaillierte Ansicht)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Ein Attribut erstellen" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Funktioniert nicht für Benutzer, die nicht zum Personal gehören." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Ein Attribut löschen" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "" "Umschreiben eines vorhandenen Attributs, wobei nicht editierbare Daten " "gespeichert werden" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" "Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare" " Daten zu speichern" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Ein Produkt zur Bestellung hinzufügen" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "" "Fügt ein Produkt mit der angegebenen `product_uuid` zu einer Wunschliste " "hinzu" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Ein Produkt von der Wunschliste entfernen" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" "Entfernt ein Produkt aus einer Wunschliste unter Verwendung der angegebenen " "`product_uuid`." -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Viele Produkte auf den Wunschzettel setzen" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "Fügt einer Wunschliste viele Produkte unter Verwendung der angegebenen " "`product_uuids` hinzu" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Ein Produkt aus der Bestellung entfernen" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Entfernt viele Produkte aus einer Wunschliste unter Verwendung der " "angegebenen `product_uuids`." -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -518,61 +518,61 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "Alle Produkte auflisten (einfache Ansicht)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(genaue) Produkt-UUID" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(icontains) Produktname" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "" "(Liste) Kategorienamen, Groß- und Kleinschreibung wird nicht berücksichtigt" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(genau) Kategorie UUID" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "" "(Liste) Tag-Namen, Groß- und Kleinschreibung wird nicht berücksichtigt" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Mindestaktienkurs" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Maximaler Aktienkurs" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(genau) Nur aktive Produkte" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Markenname" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Mindestlagermenge" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(genau) Produktausschnitt" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(genau) Digital vs. physisch" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -580,36 +580,64 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Ein einzelnes Produkt abrufen (Detailansicht)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "Produkt UUID oder Slug" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Ein Produkt erstellen" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "" "Umschreiben eines bestehenden Produkts unter Beibehaltung nicht editierbarer" " Felder" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Ein Produkt löschen" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "Alle Adressen auflisten" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Eine einzelne Adresse abrufen" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Eine neue Adresse erstellen" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Eine Adresse löschen" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Eine ganze Adresse aktualisieren" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Teilweise Aktualisierung einer Adresse" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Autovervollständigung der Adresseingabe" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "Kein Suchbegriff angegeben." @@ -643,7 +671,7 @@ msgid "add a product to the order" msgstr "Ein Produkt zur Bestellung hinzufügen" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Bestellung {order_uuid} nicht gefunden" @@ -660,56 +688,68 @@ msgstr "Alle Produkte aus der Bestellung entfernen" msgid "buy an order" msgstr "Eine Bestellung kaufen" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "" "Bitte geben Sie entweder order_uuid oder order_hr_id an - beide schließen " "sich gegenseitig aus!" -#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 -#: core/graphene/mutations.py:389 core/viewsets.py:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Von der Methode order.buy() kam der falsche Typ: {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Ein Produkt zur Bestellung hinzufügen" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Wunschzettel {wishlist_uuid} nicht gefunden" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Ein Produkt aus der Bestellung entfernen" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Ein Produkt aus der Bestellung entfernen" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Ein Produkt aus der Bestellung entfernen" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Eine Bestellung kaufen" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" msgstr "" "Bitte senden Sie die Attribute als String im Format attr1=wert1,attr2=wert2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Vom Benutzer angegebene Originaladresse" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} existiert nicht: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "Der Grenzwert muss zwischen 1 und 10 liegen." + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funktioniert wie ein Zauber" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Attribute" @@ -722,11 +762,11 @@ msgid "groups of attributes" msgstr "Gruppen von Attributen" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Kategorien" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Marken" @@ -735,7 +775,7 @@ msgid "category image url" msgstr "Kategorien" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Markup Percentage" @@ -752,41 +792,49 @@ msgstr "" "Mindest- und Höchstpreise für Produkte in dieser Kategorie, sofern " "verfügbar." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Anbieter" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Breitengrad (Y-Koordinate)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Längengrad (X-Koordinate)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Wie" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" "Bewertungswert von 1 bis einschließlich 10 oder 0, wenn nicht festgelegt." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Stellt das Feedback eines Benutzers dar." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Benachrichtigungen" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "Download-Url für dieses Bestellprodukt, falls zutreffend" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "Eine Liste der bestellten Produkte in dieser Reihenfolge" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Rechnungsadresse" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -794,47 +842,47 @@ msgstr "" "Lieferadresse für diese Bestellung, leer lassen, wenn sie mit der " "Rechnungsadresse übereinstimmt oder nicht zutrifft" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Gesamtpreis für diese Bestellung" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Gesamtmenge der bestellten Produkte" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Sind alle Produkte in der Bestellung digital" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Bestellungen" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "Bild URL" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Bilder des Produkts" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Kategorie" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Rückmeldungen" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Marke" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Attribut-Gruppen" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -842,31 +890,31 @@ msgstr "Attribut-Gruppen" msgid "quantity" msgstr "Menge" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Anzahl der Rückmeldungen" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Produkte" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Zum Verkauf stehende Produkte" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Werbeaktionen" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Anbieter" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -874,478 +922,487 @@ msgstr "Anbieter" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Auf dem Wunschzettel stehende Produkte" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Wunschzettel" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Name des Projekts" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "Unternehmen E-Mail" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Name des Unternehmens" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Adresse des Unternehmens" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Telefonnummer des Unternehmens" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "E-Mail von\", muss manchmal anstelle des Host-Benutzerwerts verwendet werden" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "E-Mail-Host-Benutzer" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Höchstbetrag für die Zahlung" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Mindestbetrag für die Zahlung" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Konfiguration" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Sprachcode" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Name der Sprache" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Sprachflagge, falls vorhanden :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Eine Liste der unterstützten Sprachen abrufen" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Suchergebnisse für Produkte" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Suchergebnisse für Produkte" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Elternteil dieser Gruppe" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Übergeordnete Attributgruppe" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Name der Attributgruppe" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Attribut-Gruppe" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Kategorie dieses Attributs" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Gruppe dieses Attributs" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "Zeichenfolge" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Integer" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Schwimmer" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Boolesche" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Array" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Objekt" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Typ des Attributwerts" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Werttyp" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Name dieses Attributs" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Name des Attributs" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Attribut" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Attribut dieses Wertes" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Zugehöriges Produkt" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "Der spezifische Wert für dieses Attribut" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Laden Sie ein Bild hoch, das diese Kategorie repräsentiert" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Kategorie Bild" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "" "Definieren Sie einen prozentualen Aufschlag für Produkte in dieser Kategorie" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "" "Übergeordneter dieser Kategorie, um eine hierarchische Struktur zu bilden" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Übergeordnete Kategorie" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Name der Kategorie" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Geben Sie einen Namen für diese Kategorie an" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Fügen Sie eine detaillierte Beschreibung für diese Kategorie hinzu" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Beschreibung der Kategorie" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Name dieser Marke" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Markenname" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Laden Sie ein Logo hoch, das diese Marke repräsentiert" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Marke kleines Bild" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Laden Sie ein großes Logo hoch, das diese Marke repräsentiert" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Großes Image der Marke" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Fügen Sie eine detaillierte Beschreibung der Marke hinzu" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Beschreibung der Marke" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "" "Optionale Kategorien, mit denen diese Marke in Verbindung gebracht wird" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Kategorien" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Kategorie, zu der dieses Produkt gehört" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Optional können Sie dieses Produkt mit einer Marke verknüpfen" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Produkt-Tags" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Gibt an, ob dieses Produkt digital geliefert wird" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "Ist das Produkt digital" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "" "Geben Sie einen eindeutigen Namen zur Identifizierung des Produkts an." -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Name des Produkts" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Fügen Sie eine detaillierte Beschreibung des Produkts hinzu" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Beschreibung des Produkts" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Teilenummer für dieses Produkt" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Teilnummer" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Speichert Anmeldeinformationen und Endpunkte, die für die API-Kommunikation " "des Anbieters erforderlich sind" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Informationen zur Authentifizierung" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definieren Sie den Aufschlag für Produkte, die von diesem Lieferanten " "bezogen werden" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Prozentualer Aufschlag des Lieferanten" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Name dieses Anbieters" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Name des Anbieters" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "Kommentare der Nutzer über ihre Erfahrungen mit dem Produkt" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Kommentare zum Feedback" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Verweist auf das spezifische Produkt in einer Bestellung, auf das sich diese" " Rückmeldung bezieht" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Produkt zur Bestellung" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "Vom Benutzer zugewiesene Bewertung für das Produkt" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Produktbewertung" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Rückmeldung" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "Die für diese Bestellung verwendete Rechnungsadresse" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Optionaler Promo-Code für diese Bestellung" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Angewandter Promo-Code" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "Die für diese Bestellung verwendete Lieferadresse" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Lieferadresse" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Aktueller Status des Auftrags in seinem Lebenszyklus" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Status der Bestellung" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "JSON-Struktur der Benachrichtigungen, die den Benutzern angezeigt werden " "sollen; in der Admin-UI wird die Tabellenansicht verwendet" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "JSON-Darstellung der Auftragsattribute für diesen Auftrag" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "Der Benutzer, der die Bestellung aufgegeben hat" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "Benutzer" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "Der Zeitstempel, zu dem der Auftrag abgeschlossen wurde" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Zeit kaufen" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "Ein von Menschen lesbarer Identifikator für den Auftrag" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "menschenlesbare ID" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Bestellung" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 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:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "Sie können keine inaktiven Produkte zur Bestellung hinzufügen" -#: core/models.py:563 +#: core/models.py:565 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:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} existiert nicht: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} existiert nicht mit Abfrage <{query}>" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Promocode existiert nicht" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "" +"Sie können nur physische Produkte mit angegebener Lieferadresse kaufen!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "Adresse ist nicht vorhanden" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Ungültiger Force-Wert" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "Sie können keine leere Bestellung kaufen!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Unzureichende Mittel für die Ausführung des Auftrags" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1353,198 +1410,192 @@ msgstr "" "Sie können nicht ohne Registrierung kaufen, bitte geben Sie die folgenden " "Informationen an: Kundenname, Kunden-E-Mail, Kunden-Telefonnummer" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Ungültige Zahlungsmethode" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Einkaufspreis zum Zeitpunkt der Bestellung" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "Interne Kommentare für Administratoren zu diesem bestellten Produkt" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Interne Kommentare" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "Benutzerbenachrichtigungen" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "JSON-Darstellung der Attribute dieses Artikels" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Bestellte Produktattribute" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Verweis auf den übergeordneten Auftrag, der dieses Produkt enthält" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Übergeordneter Auftrag" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "Das spezifische Produkt, das mit dieser Auftragszeile verbunden ist" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Menge dieses spezifischen Produkts in der Bestellung" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Produktmenge" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Aktueller Status dieses Produkts im Auftrag" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Status der Produktlinie" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Interner Tag-Identifikator für das Produkt-Tag" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Tag name" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "Benutzerfreundlicher Name für den Produktanhänger" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Tag-Anzeigename" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Produkt-Tag" -#: core/models.py:915 +#: core/models.py:904 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:916 +#: core/models.py:905 msgid "image alt text" msgstr "Bild-Alt-Text" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Laden Sie die Bilddatei für dieses Produkt hoch" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Produktbild" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Legt die Reihenfolge fest, in der die Bilder angezeigt werden" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Priorität anzeigen" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "Das Produkt, das dieses Bild darstellt" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Produktbilder" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Kennung des Promo-Codes" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "" "Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet " "wird" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Fester Rabattbetrag" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "Prozentualer Rabatt, wenn der Festbetrag nicht verwendet wird" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Prozentualer Rabatt" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Zeitstempel, wann der Promocode abläuft" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "Ende der Gültigkeitsdauer" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Zeitstempel, ab dem dieser Promocode gültig ist" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "Beginn der Gültigkeitsdauer" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Zeitstempel der Verwendung" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "Diesem Promocode zugewiesener Benutzer, falls zutreffend" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Zugewiesener Benutzer" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Promo-Code" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Promo-Codes" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1552,146 +1603,190 @@ msgstr "" "Es sollte nur eine Art von Rabatt definiert werden (Betrag oder " "Prozentsatz), aber nicht beides oder keines von beiden." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "Promocode wurde bereits verwendet" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ungültiger Rabatttyp für Promocode {self.uuid}" -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Prozentualer Rabatt für die ausgewählten Produkte" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Prozentsatz der Ermäßigung" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Geben Sie einen eindeutigen Namen für diese Aktion an" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Name der Aktion" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Wählen Sie aus, welche Produkte in dieser Aktion enthalten sind" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Enthaltene Produkte" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Förderung" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "Der Verkäufer, der dieses Produkt liefert, hat folgende Bestände" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Zugehöriger Anbieter" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Endpreis für den Kunden nach Aufschlägen" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Verkaufspreis" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "Das mit diesem Bestandseintrag verbundene Produkt" -#: core/models.py:1106 +#: core/models.py:1099 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:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Einkaufspreis des Verkäufers" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Verfügbare Menge des Produkts auf Lager" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Vorrätige Menge" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "Vom Hersteller zugewiesene SKU zur Identifizierung des Produkts" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "SKU des Verkäufers" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "" "Digitale Datei, die mit diesem Bestand verbunden ist, falls zutreffend" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Digitale Datei" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Bestandseinträge" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Produkte, die der Benutzer als gewünscht markiert hat" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "Benutzer, dem diese Wunschliste gehört" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Besitzer der Wishlist" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Wunschzettel" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Herunterladen" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Herunterladen" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Dokumentarfilm" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Dokumentarfilme" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Ungelöst" +#: core/models.py:1233 +msgid "street" +msgstr "Straße" + +#: core/models.py:1234 +msgid "district" +msgstr "Bezirk" + +#: core/models.py:1235 +msgid "city" +msgstr "Stadt" + +#: core/models.py:1236 +msgid "region" +msgstr "Region" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Postleitzahl" + +#: core/models.py:1238 +msgid "country" +msgstr "Land" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Geolocation Point(Längengrad, Breitengrad)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Vollständige JSON-Antwort vom Geocoder für diese Adresse" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Gespeicherte JSON-Antwort vom Geokodierungsdienst" + +#: core/models.py:1270 +msgid "address" +msgstr "Adresse" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Adressen" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Fehler bei der Erstellung des Promocodes: {e!s}" @@ -1904,6 +1999,10 @@ msgstr "{config.PROJECT_NAME} | Auftrag ausgeliefert" msgid "you do not have permission to perform this action." msgstr "Sie haben nicht die Erlaubnis, diese Aktion durchzuführen." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "Der Parameter NOMINATIM_URL muss konfiguriert werden!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1922,3 +2021,8 @@ msgstr "Sie können das digitale Asset nur einmal herunterladen" #: core/views.py:264 msgid "favicon not found" msgstr "Favicon nicht gefunden" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Geokodierungsfehler: {e}" diff --git a/core/locale/en_GB/LC_MESSAGES/django.mo b/core/locale/en_GB/LC_MESSAGES/django.mo index 65f1fde1..0d4c9764 100644 Binary files a/core/locale/en_GB/LC_MESSAGES/django.mo and b/core/locale/en_GB/LC_MESSAGES/django.mo differ diff --git a/core/locale/en_GB/LC_MESSAGES/django.po b/core/locale/en_GB/LC_MESSAGES/django.po index d8ec6385..5e42fe43 100644 --- a/core/locale/en_GB/LC_MESSAGES/django.po +++ b/core/locale/en_GB/LC_MESSAGES/django.po @@ -1,9 +1,14 @@ +# eVibes Translations. +# Copyright (C) 2025 Egor "fureunoir" Gorbunov +# This file is distributed under the same license as the eVibes package. +# EGOR GORBUNOV , 2025. # +#, fuzzy msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -49,47 +54,47 @@ msgstr "Modified" msgid "when the object was last modified" msgstr "When the object was last edited" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activate selected %(verbose_name_plural)s" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactivate selected %(verbose_name_plural)s" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Attribute Value" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Attribute Values" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Name" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Image" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Images" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Stock" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Stocks" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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 +102,35 @@ msgstr "Stocks" msgid "price" msgstr "Price" -#: core/admin.py:197 +#: core/admin.py:199 msgid "rating" msgstr "Rating" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Basic Info" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Important Dates" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Translations" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Order Product" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Order Products" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Is Business" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Config" @@ -221,143 +226,143 @@ msgstr "" "Purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "List all attribute groups (simple view)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Retrieve a single attribute group (detailed view)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Create an attribute group" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Delete an attribute group" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "Rewrite an existing attribute group saving non-editables" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rewrite some fields of an existing attribute group saving non-editables" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "List all attributes (simple view)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Retrieve a single attribute (detailed view)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Create an attribute" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Delete an attribute" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "Rewrite an existing attribute saving non-editables" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "Rewrite some fields of an existing attribute saving non-editables" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "List all attribute values (simple view)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Retrieve a single attribute value (detailed view)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Create an attribute value" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Delete an attribute value" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "Rewrite an existing attribute value saving non-editables" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rewrite some fields of an existing attribute value saving non-editables" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "List all categories (simple view)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Retrieve a single category (detailed view)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Create a category" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Delete a category" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "Rewrite an existing category saving non-editables" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "Rewrite some fields of an existing category saving non-editables" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "List all categories (simple view)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "For non-staff users, only their own orders are returned." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Retrieve a single category (detailed view)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Create an attribute" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Doesn't work for non-staff users." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Delete an attribute" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "Rewrite an existing category saving non-editables" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "Rewrite some fields of an existing category saving non-editables" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Purchase price at order time" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -367,19 +372,19 @@ msgstr "" "completed using the user's balance; If `force_payment` is used, a " "transaction is initiated." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "purchase an order without account creation" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "finalizes the order purchase for a non-registered user." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Add a product to the order" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -387,11 +392,11 @@ msgstr "" "Adds a product to an order using the provided `product_uuid` and " "`attributes`." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Remove a product from the order" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -399,73 +404,73 @@ msgstr "" "Removes a product from an order using the provided `product_uuid` and " "`attributes`." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "List all attributes (simple view)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "For non-staff users, only their own wishlists are returned." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Retrieve a single attribute (detailed view)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Create an attribute" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Doesn't work for non-staff users." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Delete an attribute" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "Rewrite an existing attribute saving non-editables" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "Rewrite some fields of an existing attribute saving non-editables" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Add a product to the order" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "Adds a product to an wishlist using the provided `product_uuid`" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Remove a product from the wishlist" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "Removes a product from an wishlist using the provided `product_uuid`" -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Add many products to the wishlist" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "Adds many products to an wishlist using the provided `product_uuids`" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Remove a product from the order" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Removes many products from an wishlist using the provided `product_uuids`" -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -485,59 +490,59 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "List all products (simple view)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(exact) Product UUID" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(icontains) Product name" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(list) Category names, case-insensitive" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(exact) Category UUID" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(list) Tag names, case-insensitive" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Minimum stock price" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Maximum stock price" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(exact) Only active products" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Brand name" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Minimum stock quantity" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(exact) Product slug" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(exact) Digital vs. physical" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -545,33 +550,61 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Retrieve a single product (detailed view)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "Product UUID or Slug" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Create a product" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "Rewrite an existing product, preserving non-editable fields" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Delete a product" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "List all addresses" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Retrieve a single address" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Create a new address" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Delete an address" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Update an entire address" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Partially update an address" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Autocomplete address input" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "No search term provided." @@ -605,7 +638,7 @@ msgid "add a product to the order" msgstr "Add a product to the order" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Order {order_uuid} not found" @@ -622,42 +655,42 @@ msgstr "Remove all products from the order" msgid "buy an order" msgstr "Buy an order" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Wrong type came from order.buy() method: {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Add a product to the order" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Wishlist {wishlist_uuid} not found" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Remove a product from the order" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Remove a product from the order" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Remove a product from the order" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Buy an order" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" @@ -665,12 +698,24 @@ msgstr "" "Please send the attributes as the string formatted like " "attr1=value1,attr2=value2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Original address string provided by the user" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} does not exist: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "Limit must be between 1 and 10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - works like a charm" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Attributes" @@ -683,11 +728,11 @@ msgid "groups of attributes" msgstr "Groups of attributes" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Categories" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Brands" @@ -696,7 +741,7 @@ msgid "category image url" msgstr "Categories" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Markup Percentage" @@ -710,40 +755,48 @@ msgid "" msgstr "" "Minimum and maximum prices for products in this category, if available." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Vendors" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Latitude (Y coordinate)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Longitude (X coordinate)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Comment" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Rating value from 1 to 10, inclusive, or 0 if not set." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Represents feedback from a user." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Notifications" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "Download url for this order product if applicable" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "A list of order products in this order" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Billing address" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -751,47 +804,47 @@ msgstr "" "Shipping address for this order, leave blank if same as billing address or " "if not applicable" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Total price of this order" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Total quantity of products in order" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Are all of the products in the order digital" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Orders" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "Image URL" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Product's images" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Category" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Attribute groups" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -799,31 +852,31 @@ msgstr "Attribute groups" msgid "quantity" msgstr "Quantity" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Number of feedbacks" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Products" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Products on sale" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -831,463 +884,471 @@ msgstr "Vendor" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Wishlisted products" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Wishlists" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Project name" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "Company Email" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Company Name" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Company Address" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Company Phone Number" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "'email from', sometimes it must be used instead of host user value" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "Email host user" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Maximum amount for payment" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Minimum amount for payment" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Language code" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Language name" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Language flag, if exists :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Get a list of supported languages" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Products search results" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Products search results" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Parent of this group" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Parent attribute group" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Attribute group's name" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Attribute group" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Category of this attribute" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Group of this attribute" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "String" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Integer" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Float" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Boolean" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Array" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Object" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Type of the attribute's value" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Value type" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Name of this attribute" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Attribute's name" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Attribute" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Attribute of this value" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Associated product" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "The specific value for this attribute" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Upload an image representing this category" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Category image" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "Define a markup percentage for products in this category" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "Parent of this category to form a hierarchical structure" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Parent category" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Category name" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Provide a name for this category" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Add a detailed description for this category" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Category description" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Name of this brand" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Brand name" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Upload a logo representing this brand" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Brand small image" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Upload a big logo representing this brand" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Brand big image" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Add a detailed description of the brand" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Brand description" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Optional categories that this brand is associated with" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Categories" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Category this product belongs to" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Optionally associate this product with a brand" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Product tags" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Indicates whether this product is digitally delivered" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "Is product digital" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Provide a clear identifying name for the product" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Product name" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Add a detailed description of the product" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Product description" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Part number for this product" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Part number" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stores credentials and endpoints required for vendor's API communication" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Authentication info" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "Define the markup for products retrieved from this vendor" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Vendor markup percentage" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Name of this vendor" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Vendor name" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Feedback comments" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "References the specific product in an order that this feedback is about" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Related order product" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Product rating" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Feedback" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Applied promo code" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Shipping address" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Order status" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "JSON structure of notifications to display to users, in admin UI the table-" "view is used" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "The user who placed the order" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "User" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Buy time" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "human-readable ID" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Order" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 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:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: core/models.py:563 +#: core/models.py:565 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: core/models.py:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} does not exist: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "You can only buy physical products with shipping address specified!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "Address does not exist" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Invalid force value" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1295,188 +1356,183 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Invalid payment method" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Internal comments" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "User notifications" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Parent order" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Product quantity" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Product line status" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Tag name" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "User-friendly name for the product tag" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Tag display name" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Product tag" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "Image alt text" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Upload the image file for this product" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Product image" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Determines the order in which images are displayed" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Display priority" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "The product that this image represents" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Product images" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Percentage discount" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "End validity time" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "Start validity time" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Usage timestamp" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Assigned user" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Promo code" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1484,143 +1540,187 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "Promocode has been used already" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}" -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Percentage discount for the selected products" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Discount percentage" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Provide a unique name for this promotion" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Promotion name" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Select which products are included in this promotion" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Included products" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Promotion" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "The vendor supplying this product stock" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Associated vendor" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Final price to the customer after markups" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Selling price" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "The price paid to the vendor for this product" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Vendor purchase price" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Available quantity of the product in stock" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Quantity in stock" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "Vendor's SKU" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Digital file" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Stock entries" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Wishlist" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Download" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Downloads" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Documentary" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Unresolved" +#: core/models.py:1233 +msgid "street" +msgstr "Street" + +#: core/models.py:1234 +msgid "district" +msgstr "District" + +#: core/models.py:1235 +msgid "city" +msgstr "City" + +#: core/models.py:1236 +msgid "region" +msgstr "Region" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Postal code" + +#: core/models.py:1238 +msgid "country" +msgstr "Country" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Geolocation Point(Longitude, Latitude)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Full JSON response from geocoder for this address" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Stored JSON response from the geocoding service" + +#: core/models.py:1270 +msgid "address" +msgstr "Address" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Adresses" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Error during promocode creation: {e!s}" @@ -1831,6 +1931,10 @@ msgstr "{config.PROJECT_NAME} | Order Delivered" msgid "you do not have permission to perform this action." msgstr "You do not have permission to perform this action." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "NOMINATIM_URL parameter must be configured!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1848,3 +1952,12 @@ msgstr "You can only download the digital asset once" #: core/views.py:264 msgid "favicon not found" msgstr "favicon not found" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Geocoding error: {e}" + +#~ msgid "you cannot create a momental order without providing a billing address" +#~ msgstr "" +#~ "you cannot create a momental order without providing a billing address" diff --git a/core/locale/en_US/LC_MESSAGES/django.mo b/core/locale/en_US/LC_MESSAGES/django.mo index 68417d0f..6fa08a5e 100644 Binary files a/core/locale/en_US/LC_MESSAGES/django.mo and b/core/locale/en_US/LC_MESSAGES/django.mo differ diff --git a/core/locale/en_US/LC_MESSAGES/django.po b/core/locale/en_US/LC_MESSAGES/django.po index f3249ecd..66d41d55 100644 --- a/core/locale/en_US/LC_MESSAGES/django.po +++ b/core/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -49,47 +49,47 @@ msgstr "Modified" msgid "when the object was last modified" msgstr "When the object was last edited" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activate selected %(verbose_name_plural)s" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactivate selected %(verbose_name_plural)s" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Attribute Value" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Attribute Values" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Name" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Image" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Images" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Stock" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Stocks" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "Product rating" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Basic Info" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Important dates" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Translations" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Order Product" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Order Products" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Is Business" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Config" @@ -221,143 +221,143 @@ msgstr "" "Purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "List all attribute groups (simple view)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Retrieve a single attribute group (detailed view)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Create an attribute group" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Delete an attribute group" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "Rewrite an existing attribute group saving non-editables" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rewrite some fields of an existing attribute group saving non-editables" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "List all attributes (simple view)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Retrieve a single attribute (detailed view)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Create an attribute" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Delete an attribute" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "Rewrite an existing attribute saving non-editables" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "Rewrite some fields of an existing attribute saving non-editables" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "List all attribute values (simple view)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Retrieve a single attribute value (detailed view)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Create an attribute value" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Delete an attribute value" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "Rewrite an existing attribute value saving non-editables" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rewrite some fields of an existing attribute value saving non-editables" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "List all categories (simple view)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Retrieve a single category (detailed view)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Create a category" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Delete a category" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "Rewrite an existing category saving non-editables" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "Rewrite some fields of an existing category saving non-editables" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "List all categories (simple view)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "For non-staff users, only their own orders are returned." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Retrieve a single category (detailed view)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Create an attribute" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Doesn't work for non-staff users." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Delete an attribute" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "Rewrite an existing category saving non-editables" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "Rewrite some fields of an existing category saving non-editables" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Purchase price at order time" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -367,19 +367,19 @@ msgstr "" "completed using the user's balance; If `force_payment` is used, a " "transaction is initiated." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "purchase an order without account creation" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "finalizes the order purchase for a non-registered user." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Add a product to the order" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -387,11 +387,11 @@ msgstr "" "Adds a product to an order using the provided `product_uuid` and " "`attributes`." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Remove a product from the order" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -399,73 +399,73 @@ msgstr "" "Removes a product from an order using the provided `product_uuid` and " "`attributes`." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "List all attributes (simple view)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "For non-staff users, only their own wishlists are returned." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Retrieve a single attribute (detailed view)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Create an attribute" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Doesn't work for non-staff users." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Delete an attribute" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "Rewrite an existing attribute saving non-editables" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "Rewrite some fields of an existing attribute saving non-editables" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Add a product to the order" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "Adds a product to an wishlist using the provided `product_uuid`" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Remove a product from the wishlist" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "Removes a product from an wishlist using the provided `product_uuid`" -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Add many products to the wishlist" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "Adds many products to an wishlist using the provided `product_uuids`" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Remove a product from the order" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Removes many products from an wishlist using the provided `product_uuids`" -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -485,59 +485,59 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "List all products (simple view)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(exact) Product UUID" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(icontains) Product name" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(list) Category names, case-insensitive" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(exact) Category UUID" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(list) Tag names, case-insensitive" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Minimum stock price" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Maximum stock price" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(exact) Only active products" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Brand name" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Minimum stock quantity" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(exact) Product slug" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(exact) Digital vs. physical" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -545,33 +545,61 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Retrieve a single product (detailed view)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "Product UUID or Slug" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Create a product" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "Rewrite an existing product, preserving non-editable fields" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Delete a product" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "List all addresses" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Retrieve a single address" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Create a new address" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Delete an address" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Update an entire address" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Partially update an address" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Autocomplete address input" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "No search term provided." @@ -605,7 +633,7 @@ msgid "add a product to the order" msgstr "Add a product to the order" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Order {order_uuid} not found" @@ -622,42 +650,42 @@ msgstr "Remove all products from the order" msgid "buy an order" msgstr "Buy an order" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Wrong type came from order.buy() method: {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Add a product to the order" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Wishlist {wishlist_uuid} not found" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Remove a product from the order" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Remove a product from the order" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Remove a product from the order" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Buy an order" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" @@ -665,12 +693,24 @@ msgstr "" "Please send the attributes as the string formatted like " "attr1=value1,attr2=value2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Original address string provided by the user" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} does not exist: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "Limit must be between 1 and 10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - works like a charm" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Attributes" @@ -683,11 +723,11 @@ msgid "groups of attributes" msgstr "Groups of attributes" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Categories" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Brands" @@ -696,7 +736,7 @@ msgid "category image url" msgstr "Categories" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Markup Percentage" @@ -710,40 +750,48 @@ msgid "" msgstr "" "Minimum and maximum prices for products in this category, if available." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Vendors" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Latitude (Y coordinate)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Longitude (X coordinate)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "How to" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Rating value from 1 to 10, inclusive, or 0 if not set." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Represents feedback from a user." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Notifications" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "Download url for this order product if applicable" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "A list of order products in this order" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Billing address" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -751,47 +799,47 @@ msgstr "" "Shipping address for this order, leave blank if same as billing address or " "if not applicable" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Total price of this order" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Total quantity of products in order" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Are all of the products in the order digital" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Orders" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "Image URL" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Product's images" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Category" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Attribute groups" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -799,31 +847,31 @@ msgstr "Attribute groups" msgid "quantity" msgstr "Quantity" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Number of feedbacks" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Products" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Products on sale" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -831,463 +879,471 @@ msgstr "Vendor" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Wishlisted products" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Wishlists" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Project name" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "Company Email" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Company Name" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Company Address" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Company Phone Number" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "'email from', sometimes it must be used instead of host user value" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "Email host user" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Maximum amount for payment" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Minimum amount for payment" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Language code" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Language name" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Language flag, if exists :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Get a list of supported languages" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Products search results" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Products search results" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Parent of this group" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Parent attribute group" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Attribute group's name" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Attribute group" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Category of this attribute" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Group of this attribute" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "String" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Integer" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Float" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Boolean" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Array" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Object" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Type of the attribute's value" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Value type" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Name of this attribute" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Attribute's name" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Attribute" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Attribute of this value" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Associated product" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "The specific value for this attribute" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Upload an image representing this category" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Category image" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "Define a markup percentage for products in this category" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "Parent of this category to form a hierarchical structure" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Parent category" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Category name" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Provide a name for this category" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Add a detailed description for this category" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Category description" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Name of this brand" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Brand name" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Upload a logo representing this brand" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Brand small image" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Upload a big logo representing this brand" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Brand big image" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Add a detailed description of the brand" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Brand description" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Optional categories that this brand is associated with" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Categories" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Category this product belongs to" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Optionally associate this product with a brand" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Product tags" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Indicates whether this product is digitally delivered" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "Is product digital" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Provide a clear identifying name for the product" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Product name" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Add a detailed description of the product" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Product description" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Part number for this product" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Part number" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stores credentials and endpoints required for vendor's API communication" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Authentication info" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "Define the markup for products retrieved from this vendor" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Vendor markup percentage" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Name of this vendor" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Vendor name" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Feedback comments" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "References the specific product in an order that this feedback is about" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Related order product" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Product rating" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Feedback" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Applied promo code" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Shipping address" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Order status" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "JSON structure of notifications to display to users, in admin UI the table-" "view is used" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "The user who placed the order" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "User" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Buy time" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "human-readable ID" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Order" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 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:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: core/models.py:563 +#: core/models.py:565 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: core/models.py:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} does not exist: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "You can only buy physical products with shipping address specified!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "Address does not exist" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Invalid force value" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1295,188 +1351,183 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Invalid payment method" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Internal comments" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "User notifications" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Parent order" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Product quantity" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Product line status" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Tag name" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "User-friendly name for the product tag" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Tag display name" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Product tag" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "Image alt text" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Upload the image file for this product" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Product image" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Determines the order in which images are displayed" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Display priority" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "The product that this image represents" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Product images" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Percentage discount" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "End validity time" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "Start validity time" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Usage timestamp" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Assigned user" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Promo code" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1484,143 +1535,187 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "Promocode has been used already" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}" -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Percentage discount for the selected products" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Discount percentage" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Provide a unique name for this promotion" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Promotion name" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Select which products are included in this promotion" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Included products" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Promotion" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "The vendor supplying this product stock" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Associated vendor" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Final price to the customer after markups" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Selling price" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "The price paid to the vendor for this product" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Vendor purchase price" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Available quantity of the product in stock" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Quantity in stock" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "Vendor's SKU" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Digital file" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Stock entries" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Wishlist" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Download" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Downloads" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Documentary" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Unresolved" +#: core/models.py:1233 +msgid "street" +msgstr "Street" + +#: core/models.py:1234 +msgid "district" +msgstr "District" + +#: core/models.py:1235 +msgid "city" +msgstr "City" + +#: core/models.py:1236 +msgid "region" +msgstr "Region" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Postal code" + +#: core/models.py:1238 +msgid "country" +msgstr "Country" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Geolocation Point(Longitude, Latitude)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Full JSON response from geocoder for this address" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Stored JSON response from the geocoding service" + +#: core/models.py:1270 +msgid "address" +msgstr "Address" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Adresses" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Error during promocode creation: {e!s}" @@ -1831,6 +1926,10 @@ msgstr "{config.PROJECT_NAME} | Order Delivered" msgid "you do not have permission to perform this action." msgstr "You do not have permission to perform this action." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "NOMINATIM_URL parameter must be configured!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1848,3 +1947,8 @@ msgstr "You can only download the digital asset once" #: core/views.py:264 msgid "favicon not found" msgstr "favicon not found" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Geocoding error: {e}" diff --git a/core/locale/es_ES/LC_MESSAGES/django.mo b/core/locale/es_ES/LC_MESSAGES/django.mo index 623b4256..1a714bb1 100644 Binary files a/core/locale/es_ES/LC_MESSAGES/django.mo and b/core/locale/es_ES/LC_MESSAGES/django.mo differ diff --git a/core/locale/es_ES/LC_MESSAGES/django.po b/core/locale/es_ES/LC_MESSAGES/django.po index 831ef492..84bc7da1 100644 --- a/core/locale/es_ES/LC_MESSAGES/django.po +++ b/core/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,47 +51,47 @@ msgstr "Modificado" msgid "when the object was last modified" msgstr "Cuándo se editó el objeto por última vez" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activar %(verbose_name_plural)s seleccionados" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Desactivar %(verbose_name_plural)s seleccionados" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Atributo Valor" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Valores de los atributos" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Nombre" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Imagen" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Imágenes" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Stock" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Acciones" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "Valoración del producto" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Información básica" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Fechas importantes" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Traducciones" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Pedir un producto" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Pedir productos" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Es Negocio" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Configurar" @@ -224,153 +224,153 @@ msgstr "" "Compra un pedido como empresa, utilizando los `productos` proporcionados con" " `product_uuid` y `attributes`." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "Lista de todos los grupos de atributos (vista simple)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Recuperar un único grupo de atributos (vista detallada)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Crear un grupo de atributos" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Eliminar un grupo de atributos" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "Reescribir un grupo de atributos existente guardando los no editables" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Reescribir algunos campos de un grupo de atributos existente guardando los " "no editables" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "Listar todos los atributos (vista simple)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Recuperar un único atributo (vista detallada)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Crear un atributo" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Borrar un atributo" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "Reescribir un atributo existente guardando los no editables" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" "Reescribir algunos campos de un atributo existente guardando los no " "editables" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "Listar todos los valores de atributos (vista simple)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Recuperar un único valor de atributo (vista detallada)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Crear un valor de atributo" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Borrar un valor de atributo" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "Reescribir un valor de atributo existente guardando los no editables" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Reescribir algunos campos de un valor de atributo existente guardando los no" " editables" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "Lista de todas las categorías (vista simple)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Recuperar una sola categoría (vista detallada)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Crear una categoría" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Eliminar una categoría" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "Reescribir una categoría existente guardando los no editables" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" "Reescribir algunos campos de una categoría existente guardando los no " "editables" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "Lista de todas las categorías (vista simple)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" "Para los usuarios que no forman parte del personal, sólo se devuelven sus " "propios pedidos." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Recuperar una sola categoría (vista detallada)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Crear un atributo" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "No funciona para los usuarios que no son personal." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Borrar un atributo" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "Reescribir una categoría existente guardando los no editables" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" "Reescribir algunos campos de una categoría existente guardando los no " "editables" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Precio de compra en el momento del pedido" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -380,19 +380,19 @@ msgstr "" "finaliza utilizando el saldo del usuario; Si se utiliza `force_payment`, se " "inicia una transacción." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "comprar un pedido sin crear una cuenta" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "finaliza la compra del pedido para un usuario no registrado." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Añadir un producto al pedido" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -400,11 +400,11 @@ msgstr "" "Añade un producto a un pedido utilizando el `product_uuid` y los " "`attributes` proporcionados." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Eliminar un producto del pedido" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -412,84 +412,84 @@ msgstr "" "Elimina un producto de un pedido utilizando el `product_uuid` y los " "`attributes` proporcionados." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "Listar todos los atributos (vista simple)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "Para los usuarios que no forman parte del personal, sólo se devuelven sus " "propias listas de deseos." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Recuperar un único atributo (vista detallada)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Crear un atributo" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "No funciona para los usuarios que no son personal." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Borrar un atributo" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "Reescribir un atributo existente guardando los no editables" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" "Reescribir algunos campos de un atributo existente guardando los no " "editables" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Añadir un producto al pedido" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "" "Añade un producto a una lista de deseos utilizando el `product_uuid` " "proporcionado" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Eliminar un producto de la lista de deseos" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" "Elimina un producto de una lista de deseos utilizando el `product_uuid` " "proporcionado." -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Añadir muchos productos a la lista de deseos" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "Añade varios productos a una lista de deseos utilizando los `product_uuids` " "proporcionados." -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Eliminar un producto del pedido" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Elimina varios productos de una lista de deseos utilizando los " "`product_uuids` proporcionados." -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -509,61 +509,61 @@ msgstr "" "`color=rojo exacto`, `tamaño=gt-10`, `características=en-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "Listar todos los productos (vista simple)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "UUID (exacto) del producto" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(icontains) Nombre del producto" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 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:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(exacto) Categoría UUID" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 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:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Precio mínimo de las acciones" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Precio máximo de las acciones" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(exacto) Sólo productos activos" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Marca" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Cantidad mínima de existencias" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(exacto) Babosa del producto" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(exacto) Digital frente a físico" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -571,34 +571,62 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Recuperar un solo producto (vista detallada)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "UUID o babosa del producto" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Crear un producto" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "Reescribir un producto existente conservando los campos no editables" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Eliminar un producto" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "Enumerar todas las direcciones" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Recuperar una única dirección" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Crear una nueva dirección" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Borrar una dirección" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Actualizar una dirección completa" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Actualizar parcialmente una dirección" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Autocompletar direcciones" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "No se proporciona ningún término de búsqueda." @@ -632,7 +660,7 @@ msgid "add a product to the order" msgstr "Añadir un producto al pedido" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Pedido {order_uuid} no encontrado" @@ -649,43 +677,43 @@ msgstr "Eliminar todos los productos del pedido" msgid "buy an order" msgstr "Comprar un pedido" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "" "Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Añadir un producto al pedido" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Lista de deseos {wishlist_uuid} no encontrada" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Eliminar un producto del pedido" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Eliminar un producto del pedido" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Eliminar un producto del pedido" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Comprar un pedido" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" @@ -693,12 +721,24 @@ msgstr "" "Por favor, envíe los atributos como una cadena formateada como " "attr1=valor1,attr2=valor2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Cadena de dirección original proporcionada por el usuario" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} no existe: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "El límite debe estar entre 1 y 10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funciona a las mil maravillas" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Atributos" @@ -711,11 +751,11 @@ msgid "groups of attributes" msgstr "Grupos de atributos" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Categorías" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Marcas" @@ -724,7 +764,7 @@ msgid "category image url" msgstr "Categorías" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Porcentaje de recargo" @@ -740,42 +780,50 @@ msgstr "" "Precios mínimo y máximo de los productos de esta categoría, si están " "disponibles." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Vendedores" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Latitud (coordenada Y)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Longitud (coordenada X)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Cómo" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" "Valor de calificación de 1 a 10, ambos inclusive, o 0 si no está " "configurado." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Representa la opinión de un usuario." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Notificaciones" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "Descargar url para este producto de pedido si procede" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "Una lista de los productos del pedido" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Dirección de facturación" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -783,47 +831,47 @@ msgstr "" "Dirección de envío para este pedido, dejar en blanco si es la misma que la " "de facturación o si no procede" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Precio total de este pedido" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Cantidad total de productos del pedido" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "¿Están todos los productos en el pedido digital" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Pedidos" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "URL de la imagen" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Imágenes del producto" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Categoría" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Comentarios" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Marca" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Grupos de atributos" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -831,31 +879,31 @@ msgstr "Grupos de atributos" msgid "quantity" msgstr "Cantidad" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Número de reacciones" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Productos" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Códigos promocionales" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Productos a la venta" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Promociones" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Vendedor" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -863,469 +911,478 @@ msgstr "Vendedor" msgid "product" msgstr "Producto" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Productos deseados" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Listas de deseos" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Nombre del proyecto" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "Correo electrónico de la empresa" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Nombre de la empresa" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Dirección de la empresa" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Teléfono de la empresa" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', a veces debe utilizarse en lugar del valor del usuario host" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "Correo electrónico del usuario anfitrión" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Importe máximo de pago" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Importe mínimo de pago" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Configuración" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Código de idioma" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Nombre de la lengua" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Bandera de idioma, si existe :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Obtener una lista de los idiomas admitidos" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Resultados de la búsqueda de productos" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Resultados de la búsqueda de productos" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Padre de este grupo" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Grupo de atributos padre" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Nombre del grupo de atributos" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Grupo de atributos" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Categoría de este atributo" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Grupo de este atributo" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "Cadena" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Entero" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Flotador" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Booleano" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Matriz" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Objeto" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Tipo del valor del atributo" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Tipo de valor" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Nombre de este atributo" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Nombre del atributo" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Atributo" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Atributo de este valor" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Producto asociado" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "El valor específico de este atributo" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Cargar una imagen que represente esta categoría" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Categoría imagen" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "Definir un porcentaje de recargo para los productos de esta categoría" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "Padre de esta categoría para formar una estructura jerárquica" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Categoría de padres" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Nombre de la categoría" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Indique un nombre para esta categoría" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Añadir una descripción detallada para esta categoría" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Descripción de la categoría" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Nombre de esta marca" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Marca" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Cargar un logotipo que represente a esta marca" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Marca pequeña imagen" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Sube un logotipo grande que represente a esta marca" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Gran imagen de marca" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Añadir una descripción detallada de la marca" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Descripción de la marca" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Categorías opcionales a las que se asocia esta marca" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Categorías" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Categoría a la que pertenece este producto" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Si lo desea, puede asociar este producto a una marca" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Etiquetas del producto" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Indica si este producto se entrega digitalmente" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "¿Es digital el producto?" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Proporcionar un nombre que identifique claramente el producto" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Nombre del producto" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Añada una descripción detallada del producto" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Descripción del producto" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Número de pieza de este producto" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Número de pieza" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Almacena las credenciales y los puntos finales necesarios para la " "comunicación API del proveedor" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Información de autenticación" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definir el margen de beneficio para los productos recuperados de este " "proveedor" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Porcentaje de margen del vendedor" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Nombre de este vendedor" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Nombre del vendedor" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "Comentarios de los usuarios sobre su experiencia con el producto" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Comentarios" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Hace referencia al producto específico de un pedido sobre el que trata esta " "opinión" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Producto relacionado con el pedido" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "Valoración del producto asignada por el usuario" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Valoración del producto" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Comentarios" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "La dirección de facturación utilizada para este pedido" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Código promocional aplicado" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "La dirección de envío utilizada para este pedido" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Dirección de envío" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Estado actual del pedido en su ciclo de vida" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Estado del pedido" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "Estructura JSON de las notificaciones para mostrar a los usuarios, en la " "interfaz de administración se utiliza la vista de tabla." -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "Representación JSON de los atributos de la orden para esta orden" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "El usuario que realizó el pedido" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "Usuario" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "Fecha de finalización de la orden" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Comprar tiempo" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "Un identificador legible por el ser humano para la orden" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "ID legible por humanos" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Pida" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 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:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "No se pueden añadir productos inactivos al pedido" -#: core/models.py:563 +#: core/models.py:565 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:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} no existe: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} no existe con la consulta <{query}>" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Promocode no existe" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "" +"Sólo puede comprar productos físicos con la dirección de envío especificada." + +#: core/models.py:652 +msgid "address does not exist" +msgstr "La dirección no existe" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Valor de fuerza no válido" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "No se puede comprar un pedido vacío." -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Fondos insuficientes para completar el pedido" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1333,192 +1390,187 @@ 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:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Método de pago no válido" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Precio de compra en el momento del pedido" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarios internos para los administradores sobre este producto solicitado" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Comentarios internos" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "Notificaciones a los usuarios" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "Representación JSON de los atributos de este elemento" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Atributos ordenados del producto" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Referencia al pedido principal que contiene este producto" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Orden de los padres" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "El producto específico asociado a esta línea de pedido" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Cantidad de este producto específico en el pedido" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Cantidad de productos" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Estado actual de este producto en el pedido" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Estado de la línea de productos" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Identificador interno de la etiqueta del producto" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Nombre de la etiqueta" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "Nombre fácil de usar para la etiqueta del producto" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Nombre de la etiqueta" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Etiqueta del producto" -#: core/models.py:915 +#: core/models.py:904 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:916 +#: core/models.py:905 msgid "image alt text" msgstr "Texto alternativo de la imagen" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Cargar el archivo de imagen para este producto" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Imagen del producto" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Determina el orden de visualización de las imágenes" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Prioridad de visualización" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "El producto que representa esta imagen" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Imágenes de productos" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:964 +#: core/models.py:953 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:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Importe fijo del descuento" -#: core/models.py:971 +#: core/models.py:960 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:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Porcentaje de descuento" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Fecha de caducidad del promocode" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "Hora de fin de validez" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Fecha a partir de la cual es válido este promocode" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "Hora de inicio de validez" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Marca de tiempo de uso" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "Usuario asignado a este promocode si procede" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Usuario asignado" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Promo code" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1526,143 +1578,187 @@ msgstr "" "Sólo debe definirse un tipo de descuento (importe o porcentaje), pero no " "ambos ni ninguno." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "El código promocional ya ha sido utilizado" -#: core/models.py:1038 +#: core/models.py:1030 #, 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:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Porcentaje de descuento para los productos seleccionados" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Porcentaje de descuento" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Proporcione un nombre único para esta promoción" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Nombre de la promoción" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Descripción de la promoción" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Seleccione los productos incluidos en esta promoción" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Productos incluidos" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Promoción" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "El vendedor que suministra este producto dispone de" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Proveedor asociado" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Precio final al cliente después de márgenes" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Precio de venta" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "El producto asociado a esta entrada en stock" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "El precio pagado al vendedor por este producto" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Precio de compra al vendedor" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Cantidad disponible del producto en stock" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Cantidad en stock" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU asignada por el proveedor para identificar el producto" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "SKU del vendedor" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "Archivo digital asociado a esta acción, si procede" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Archivo digital" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Entradas en existencias" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Productos que el usuario ha marcado como deseados" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "Usuario propietario de esta lista de deseos" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Propietario de Wishlist" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Lista de deseos" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Descargar" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Descargas" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Documental" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Sin resolver" +#: core/models.py:1233 +msgid "street" +msgstr "Calle" + +#: core/models.py:1234 +msgid "district" +msgstr "Distrito" + +#: core/models.py:1235 +msgid "city" +msgstr "Ciudad" + +#: core/models.py:1236 +msgid "region" +msgstr "Región" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Promo code" + +#: core/models.py:1238 +msgid "country" +msgstr "País" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Geolocalización Punto(Longitud, Latitud)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Respuesta JSON completa del geocodificador para esta dirección" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Respuesta JSON almacenada del servicio de geocodificación" + +#: core/models.py:1270 +msgid "address" +msgstr "Dirección" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Direcciones" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Error durante la creación del promocode: {e!s}" @@ -1874,6 +1970,10 @@ msgstr "{config.PROJECT_NAME} | Pedido entregado" msgid "you do not have permission to perform this action." msgstr "No tiene permiso para realizar esta acción." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "El parámetro NOMINATIM_URL debe estar configurado." + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1892,3 +1992,8 @@ msgstr "Sólo puede descargar el activo digital una vez" #: core/views.py:264 msgid "favicon not found" msgstr "favicon no encontrado" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Error de geocodificación: {e}" diff --git a/core/locale/fr_FR/LC_MESSAGES/django.mo b/core/locale/fr_FR/LC_MESSAGES/django.mo index de1c6d1f..b953828b 100644 Binary files a/core/locale/fr_FR/LC_MESSAGES/django.mo and b/core/locale/fr_FR/LC_MESSAGES/django.mo differ diff --git a/core/locale/fr_FR/LC_MESSAGES/django.po b/core/locale/fr_FR/LC_MESSAGES/django.po index 8d04603d..e2536201 100644 --- a/core/locale/fr_FR/LC_MESSAGES/django.po +++ b/core/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,47 +51,47 @@ msgstr "Modifié" msgid "when the object was last modified" msgstr "Date de la dernière modification de l'objet" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activer les %(verbose_name_plural)s sélectionnés" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Désactiver les %(verbose_name_plural)s sélectionnés" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Valeur de l'attribut" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Valeurs des attributs" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Nom" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Image" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Images" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Stock" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Stocks" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "Evaluation du produit" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Informations de base" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Important Dates" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Traductions" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Commander un produit" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Commander des produits" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Est l'entreprise" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Config" @@ -224,158 +224,158 @@ msgstr "" "Acheter une commande en tant qu'entreprise, en utilisant les `produits` " "fournis avec `product_uuid` et `attributs`." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "Liste de tous les groupes d'attributs (vue simple)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Récupérer un seul groupe d'attributs (vue détaillée)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Créer un groupe d'attributs" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Supprimer un groupe d'attributs" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "" "Réécrire un groupe d'attributs existant en sauvegardant les éléments non " "modifiables" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Réécrire certains champs d'un groupe d'attributs existant en sauvegardant " "les non-éditables" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "Liste de tous les attributs (vue simple)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Récupérer un seul attribut (vue détaillée)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Créer un attribut" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Supprimer un attribut" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "" "Réécrire un attribut existant en sauvegardant les éléments non modifiables" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" "Réécrire certains champs d'un attribut existant en sauvegardant les éléments" " non modifiables" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "Liste de toutes les valeurs d'attributs (vue simple)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Récupérer une seule valeur d'attribut (vue détaillée)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Créer une valeur d'attribut" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Supprimer une valeur d'attribut" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "" "Réécrire une valeur d'attribut existante en sauvegardant les éléments non " "modifiables" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Réécrire certains champs d'une valeur d'attribut existante en sauvegardant " "les éléments non modifiables" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "Liste de toutes les catégories (vue simple)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Récupérer une seule catégorie (vue détaillée)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Créer une catégorie" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Supprimer une catégorie" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "Réécrire une catégorie existante en sauvegardant les non-éditables" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" "Réécrire certains champs d'une catégorie existante en sauvegardant les non-" "éditables" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "Liste de toutes les catégories (vue simple)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" "Pour les utilisateurs non fonctionnaires, seules leurs propres commandes " "sont renvoyées." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Récupérer une seule catégorie (vue détaillée)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Créer un attribut" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Ne fonctionne pas pour les utilisateurs non fonctionnaires." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Supprimer un attribut" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "Réécrire une catégorie existante en sauvegardant les non-éditables" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" "Réécrire certains champs d'une catégorie existante en sauvegardant les non-" "éditables" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Prix d'achat au moment de la commande" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -385,19 +385,19 @@ msgstr "" " complété en utilisant le solde de l'utilisateur ; Si `force_payment` est " "utilisé, une transaction est initiée." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "acheter une commande sans créer de compte" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "finalise l'achat d'une commande pour un utilisateur non enregistré." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Ajouter un produit à la commande" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -405,11 +405,11 @@ msgstr "" "Ajoute un produit à une commande en utilisant le `product_uuid` et les " "`attributs` fournis." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Supprimer un produit de la commande" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -417,85 +417,85 @@ msgstr "" "Supprime un produit d'une commande en utilisant le `product_uuid` et les " "`attributs` fournis." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "Liste de tous les attributs (vue simple)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "Pour les utilisateurs non fonctionnaires, seules leurs propres listes de " "souhaits sont renvoyées." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Récupérer un seul attribut (vue détaillée)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Créer un attribut" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Ne fonctionne pas pour les utilisateurs non fonctionnaires." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Supprimer un attribut" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "" "Réécrire un attribut existant en sauvegardant les éléments non modifiables" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" "Réécrire certains champs d'un attribut existant en sauvegardant les éléments" " non modifiables" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Ajouter un produit à la commande" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "" "Ajoute un produit à une liste de souhaits en utilisant le `product_uuid` " "fourni" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Supprimer un produit de la liste de souhaits" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" "Supprime un produit d'une liste de souhaits en utilisant l'identifiant " "`product_uuid` fourni." -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Ajouter plusieurs produits à la liste de souhaits" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "Ajoute plusieurs produits à une liste de souhaits en utilisant les " "`product_uuids` fournis" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Supprimer un produit de la commande" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Supprime plusieurs produits d'une liste de souhaits en utilisant les " "`product_uuids` fournis" -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -515,59 +515,59 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "Liste de tous les produits (vue simple)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "UUID (exact) du produit" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(icontains) Nom du produit" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(liste) Noms de catégories, insensibles à la casse" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "UUID (exact) de la catégorie" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(liste) Noms d'étiquettes, insensibles à la casse" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Prix minimum de l'action" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Prix maximum de l'action" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(exact) Uniquement les produits actifs" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Nom de marque" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Quantité minimale en stock" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "UUID ou Slug du produit" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(exact) Numérique ou physique" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -575,34 +575,62 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Récupérer un seul produit (vue détaillée)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "UUID ou Slug du produit" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Créer un produit" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 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:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Supprimer un produit" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "Liste de toutes les adresses" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Récupérer une seule adresse" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Créer une nouvelle adresse" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Supprimer une adresse" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Mise à jour d'une adresse entière" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Mise à jour partielle d'une adresse" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Saisie automatique des adresses" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "Aucun terme de recherche n'est fourni." @@ -636,7 +664,7 @@ msgid "add a product to the order" msgstr "Ajouter un produit à la commande" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "L'ordre {order_uuid} n'a pas été trouvé" @@ -653,45 +681,45 @@ msgstr "Supprimer tous les produits de la commande" msgid "buy an order" msgstr "Acheter une commande" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "" "Veuillez fournir soit order_uuid, soit order_hr_id - les deux s'excluent " "mutuellement !" -#: core/graphene/mutations.py:201 core/graphene/mutations.py:355 -#: core/graphene/mutations.py:389 core/viewsets.py:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 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}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Ajouter un produit à la commande" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Wishlist {wishlist_uuid} introuvable" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Supprimer un produit de la commande" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Supprimer un produit de la commande" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Supprimer un produit de la commande" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Acheter une commande" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" @@ -699,12 +727,24 @@ msgstr "" "Veuillez envoyer les attributs sous la forme d'une chaîne formatée comme " "attr1=valeur1,attr2=valeur2." -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Chaîne d'adresse originale fournie par l'utilisateur" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} n'existe pas : {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "La limite doit être comprise entre 1 et 10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - fonctionne comme un charme" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Attributs" @@ -717,11 +757,11 @@ msgid "groups of attributes" msgstr "Groupes d'attributs" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Catégories" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Marques" @@ -730,7 +770,7 @@ msgid "category image url" msgstr "Catégories" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Markup Percentage" @@ -747,40 +787,48 @@ msgstr "" "Prix minimum et maximum pour les produits de cette catégorie, s'ils sont " "disponibles." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Vendeurs" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Latitude (coordonnée Y)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Longitude (coordonnée X)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Comment" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Valeur d'évaluation de 1 à 10 inclus, ou 0 si elle n'est pas définie." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Représente le retour d'information d'un utilisateur." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Notifications" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "URL de téléchargement pour ce produit de la commande, le cas échéant" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "Une liste des produits commandés dans cette commande" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Adresse de facturation" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -788,47 +836,47 @@ msgstr "" "Adresse d'expédition pour cette commande, laisser vide si elle est identique" " à l'adresse de facturation ou si elle n'est pas applicable" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Prix total de la commande" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Quantité totale de produits dans la commande" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Tous les produits de la commande sont-ils numériques ?" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Commandes" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "Image URL" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Images du produit" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Catégorie" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Retour d'information" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Marque" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Groupes d'attributs" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -836,31 +884,31 @@ msgstr "Groupes d'attributs" msgid "quantity" msgstr "Quantité" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Nombre de retours d'information" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Produits" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Produits en vente" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Vendeur" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -868,475 +916,485 @@ msgstr "Vendeur" msgid "product" msgstr "Produit" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Produits en liste de souhaits" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Liste de souhaits" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Nom du projet" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "Courriel de l'entreprise" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Nom de l'entreprise" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Adresse de l'entreprise" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Numéro de téléphone de l'entreprise" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', parfois il doit être utilisé à la place de la valeur de " "l'utilisateur de l'hôte" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "Utilisateur de l'hôte de messagerie" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Montant maximum du paiement" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Montant minimum pour le paiement" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Code langue" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Nom de la langue" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Drapeau linguistique, s'il existe :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Obtenir la liste des langues prises en charge" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Résultats de la recherche de produits" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Résultats de la recherche de produits" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Parent de ce groupe" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Groupe d'attributs parent" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Nom du groupe d'attributs" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Groupe d'attributs" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Catégorie de cet attribut" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Groupe de cet attribut" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "Chaîne" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Entier" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Flotteur" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Booléen" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Tableau" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Objet" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Type de la valeur de l'attribut" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Type de valeur" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Nom de cet attribut" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Nom de l'attribut" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Attribut" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Attribut de cette valeur" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Produit associé" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "La valeur spécifique de cet attribut" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Télécharger une image représentant cette catégorie" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Image de catégorie" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "" "Définir un pourcentage de majoration pour les produits de cette catégorie" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "Parent de cette catégorie pour former une structure hiérarchique" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Catégorie de parents" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Nom de la catégorie" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Donnez un nom à cette catégorie" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Ajouter une description détaillée pour cette catégorie" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Description de la catégorie" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Nom de cette marque" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Nom de marque" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Télécharger un logo représentant cette marque" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Petite image de marque" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Télécharger un grand logo représentant cette marque" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Une grande image de marque" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Ajouter une description détaillée de la marque" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Description de la marque" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Catégories facultatives auxquelles cette marque est associée" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Catégories" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Catégorie à laquelle appartient ce produit" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Possibilité d'associer ce produit à une marque" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Étiquettes du produit" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Indique si ce produit est livré numériquement" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "Le produit est-il numérique ?" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Fournir un nom d'identification clair pour le produit" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Nom du produit" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Ajouter une description détaillée du produit" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Description du produit" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Numéro de pièce pour ce produit" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Numéro de pièce" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stocke les informations d'identification et les points d'extrémité " "nécessaires à la communication avec l'API du fournisseur." -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Informations sur l'authentification" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "" "Définir la majoration pour les produits récupérés auprès de ce fournisseur" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Pourcentage de marge du vendeur" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Nom de ce vendeur" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Nom du vendeur" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "Commentaires des utilisateurs sur leur expérience du produit" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Commentaires" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Fait référence au produit spécifique d'une commande sur lequel porte le " "retour d'information." -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Produit de commande apparenté" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "Note attribuée par l'utilisateur au produit" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Evaluation du produit" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Retour d'information" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "L'adresse de facturation utilisée pour cette commande" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Code promo optionnel appliqué à cette commande" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Code promo appliqué" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "L'adresse de livraison utilisée pour cette commande" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Adresse de livraison" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Statut actuel de la commande dans son cycle de vie" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Statut de la commande" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "Structure JSON des notifications à afficher aux utilisateurs ; dans " "l'interface d'administration, la vue en tableau est utilisée." -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "Représentation JSON des attributs de cette commande" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "L'utilisateur qui a passé la commande" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "Utilisateur" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "L'heure à laquelle la commande a été finalisée." -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Temps d'achat" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "Un identifiant lisible par l'homme pour la commande" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "ID lisible par l'homme" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Commande" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 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:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "Vous ne pouvez pas ajouter des produits inactifs à la commande" -#: core/models.py:563 +#: core/models.py:565 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:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} n'existe pas : {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} n'existe pas avec la requête <{query}>" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Le code promotionnel n'existe pas" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "" +"Vous ne pouvez acheter que des produits physiques dont l'adresse de " +"livraison est spécifiée !" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "L'adresse n'existe pas" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Valeur de force non valide" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "Vous ne pouvez pas acheter une commande vide !" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Insuffisance de fonds pour compléter la commande" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1345,195 +1403,189 @@ msgstr "" "informations suivantes : nom du client, courriel du client, numéro de " "téléphone du client" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Méthode de paiement non valide" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Prix d'achat au moment de la commande" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "" "Commentaires internes pour les administrateurs sur ce produit commandé" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Commentaires internes" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "Notifications aux utilisateurs" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "Représentation JSON des attributs de cet élément" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Attributs du produit ordonnés" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Référence à l'ordre parent qui contient ce produit" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Ordonnance parentale" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "Le produit spécifique associé à cette ligne de commande" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Quantité de ce produit spécifique dans la commande" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Quantité de produits" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Statut actuel de ce produit dans la commande" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Statut de la ligne de produits" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Identifiant interne de l'étiquette du produit" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Nom du jour" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "Nom convivial pour l'étiquette du produit" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Nom d'affichage de l'étiquette" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Étiquette du produit" -#: core/models.py:915 +#: core/models.py:904 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:916 +#: core/models.py:905 msgid "image alt text" msgstr "Texte alt de l'image" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Télécharger le fichier image pour ce produit" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Image du produit" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Détermine l'ordre d'affichage des images" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Priorité à l'affichage" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "Le produit que cette image représente" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Images du produit" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Identifiant du code promotionnel" -#: core/models.py:964 +#: core/models.py:953 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:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Montant de l'escompte fixe" -#: core/models.py:971 +#: core/models.py:960 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:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Pourcentage de réduction" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Date d'expiration du code promotionnel" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "Heure de fin de validité" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Date à partir de laquelle ce code promotionnel est valable" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "Heure de début de validité" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Horodatage de l'utilisation" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "Utilisateur assigné à ce code promo, le cas échéant" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Utilisateur assigné" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Code promo" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Codes promotionnels" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1541,145 +1593,189 @@ msgstr "" "Un seul type de remise doit être défini (montant ou pourcentage), mais pas " "les deux ni aucun des deux." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "Le code promotionnel a déjà été utilisé" -#: core/models.py:1038 +#: core/models.py:1030 #, 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:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Pourcentage de réduction pour les produits sélectionnés" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Pourcentage de réduction" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Donnez un nom unique à cette promotion" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Nom de la promotion" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Sélectionnez les produits inclus dans cette promotion" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Produits inclus" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Promotion" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "Le vendeur qui fournit ce stock de produits" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Vendeur associé" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Prix final pour le client après majoration" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Prix de vente" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "Le produit associé à cette entrée de stock" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "Le prix payé au vendeur pour ce produit" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Prix d'achat du vendeur" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Quantité disponible du produit en stock" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Quantité en stock" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU attribué par le fournisseur pour identifier le produit" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "UGS du vendeur" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "Fichier numérique associé à ce stock, le cas échéant" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Fichier numérique" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Entrées de stock" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Produits que l'utilisateur a marqués comme souhaités" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "Utilisateur qui possède cette liste de souhaits" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Propriétaire de la liste de souhaits" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Liste de souhaits" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Télécharger" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Téléchargements" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Documentaire" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Documentaires" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Non résolu" +#: core/models.py:1233 +msgid "street" +msgstr "Rue" + +#: core/models.py:1234 +msgid "district" +msgstr "District" + +#: core/models.py:1235 +msgid "city" +msgstr "Ville" + +#: core/models.py:1236 +msgid "region" +msgstr "Région" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Code postal" + +#: core/models.py:1238 +msgid "country" +msgstr "Pays" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Point de géolocalisation (longitude, latitude)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Réponse JSON complète du géocodeur pour cette adresse" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Réponse JSON stockée du service de géocodage" + +#: core/models.py:1270 +msgid "address" +msgstr "Adresse" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Adresses" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Erreur lors de la création du promocode : {e!s}" @@ -1894,6 +1990,10 @@ msgstr "{config.PROJECT_NAME} | Commande livrée" msgid "you do not have permission to perform this action." msgstr "Vous n'êtes pas autorisé à effectuer cette action." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "Le paramètre NOMINATIM_URL doit être configuré !" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1912,3 +2012,8 @@ msgstr "Vous ne pouvez télécharger le bien numérique qu'une seule fois" #: core/views.py:264 msgid "favicon not found" msgstr "favicon introuvable" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Erreur de géocodage : {e}" diff --git a/core/locale/hi_IN/LC_MESSAGES/django.po b/core/locale/hi_IN/LC_MESSAGES/django.po index 27e44e03..978503c3 100644 --- a/core/locale/hi_IN/LC_MESSAGES/django.po +++ b/core/locale/hi_IN/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -50,47 +50,47 @@ msgstr "" msgid "when the object was last modified" msgstr "" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "" @@ -218,239 +218,239 @@ msgid "" "`product_uuid` and `attributes`." msgstr "" -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "" -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "" -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." msgstr "" -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "" -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -467,91 +467,119 @@ msgid "" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 msgid "" "update some fields of an existing product, preserving non-editable fields" msgstr "" -#: core/docs/drf/viewsets.py:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "" @@ -585,7 +613,7 @@ msgid "add a product to the order" msgstr "" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "" @@ -602,53 +630,66 @@ msgstr "" msgid "buy an order" msgstr "" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like attr1=value1," "attr2=value2" msgstr "" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "" + +#: core/graphene/mutations.py:501 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "" @@ -661,11 +702,11 @@ msgid "groups of attributes" msgstr "" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "" @@ -674,7 +715,7 @@ msgid "category image url" msgstr "" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "" @@ -686,86 +727,94 @@ msgstr "" msgid "minimum and maximum prices for products in this category, if available." msgstr "" -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "" #: core/graphene/object_types.py:213 -msgid "comment" +msgid "Latitude (Y coordinate)" msgstr "" #: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "" + +#: core/graphene/object_types.py:240 +msgid "comment" +msgstr "" + +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "" -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -773,31 +822,31 @@ msgstr "" msgid "quantity" msgstr "" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -805,784 +854,832 @@ msgstr "" msgid "product" msgstr "" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "" -#: core/models.py:141 +#: core/models.py:143 msgid "the specific product associated with this attribute's value" msgstr "" -#: core/models.py:142 core/models.py:819 core/models.py:933 core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 core/models.py:1092 msgid "associated product" msgstr "" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "" -#: core/models.py:279 +#: core/models.py:281 msgid "tags that help describe or group this product" msgstr "" -#: core/models.py:280 core/models.py:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "" -#: core/models.py:413 +#: core/models.py:415 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "" -#: core/models.py:517 +#: core/models.py:519 msgid "a user must have only one pending order at a time" msgstr "" -#: core/models.py:541 +#: core/models.py:543 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: core/models.py:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "" -#: core/models.py:563 +#: core/models.py:565 msgid "you cannot add more products than available in stock" msgstr "" -#: core/models.py:572 core/models.py:589 core/models.py:613 core/models.py:1170 -#: core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 core/models.py:1163 +#: core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: core/models.py:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "" -#: 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:634 -msgid "invalid force value" -msgstr "" - -#: core/models.py:637 core/models.py:673 -msgid "you cannot purchase an empty order!" +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" msgstr "" #: core/models.py:652 -msgid "insufficient funds to complete the order" +msgid "address does not exist" +msgstr "" + +#: core/models.py:659 core/models.py:700 +msgid "you can not buy at this moment, please try again in a few minutes" +msgstr "" + +#: core/models.py:662 +msgid "invalid force value" +msgstr "" + +#: core/models.py:667 core/models.py:703 +msgid "you cannot purchase an empty order!" msgstr "" #: core/models.py:682 +msgid "insufficient funds to complete the order" +msgstr "" + +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "" -#: core/models.py:706 -msgid "you cannot create a momental order without providing a billing address" -msgstr "" - -#: core/models.py:784 +#: core/models.py:773 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: core/models.py:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "" -#: core/models.py:956 +#: core/models.py:945 msgid "unique code used by a user to redeem a discount" msgstr "" -#: core/models.py:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "" -#: core/models.py:989 +#: core/models.py:978 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: core/models.py:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "" -#: core/models.py:1208 +#: core/models.py:1206 msgid "you can not download a digital asset for a non-finished order" msgstr "" -#: core/models.py:1220 +#: core/models.py:1218 msgid "documentary" msgstr "" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "" +#: core/models.py:1233 +msgid "street" +msgstr "" + +#: core/models.py:1234 +msgid "district" +msgstr "" + +#: core/models.py:1235 +msgid "city" +msgstr "" + +#: core/models.py:1236 +msgid "region" +msgstr "" + +#: core/models.py:1237 +msgid "postal code" +msgstr "" + +#: core/models.py:1238 +msgid "country" +msgstr "" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "" + +#: core/models.py:1270 +msgid "address" +msgstr "" + +#: core/models.py:1271 +msgid "addresses" +msgstr "" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "" @@ -1783,6 +1880,10 @@ msgstr "" msgid "you do not have permission to perform this action." msgstr "" +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1799,3 +1900,8 @@ msgstr "" #: core/views.py:264 msgid "favicon not found" msgstr "" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "" diff --git a/core/locale/it_IT/LC_MESSAGES/django.mo b/core/locale/it_IT/LC_MESSAGES/django.mo index 78865871..09b91d64 100644 Binary files a/core/locale/it_IT/LC_MESSAGES/django.mo and b/core/locale/it_IT/LC_MESSAGES/django.mo differ diff --git a/core/locale/it_IT/LC_MESSAGES/django.po b/core/locale/it_IT/LC_MESSAGES/django.po index 4019386d..fd9b3a13 100644 --- a/core/locale/it_IT/LC_MESSAGES/django.po +++ b/core/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,14 @@ +# eVibes Translations. +# Copyright (C) 2025 Egor "fureunoir" Gorbunov +# This file is distributed under the same license as the eVibes package. +# EGOR GORBUNOV , 2025. # +#, fuzzy msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,47 +56,47 @@ msgstr "Modificato" msgid "when the object was last modified" msgstr "Quando l'oggetto è stato modificato per l'ultima volta" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" -msgstr "Attivare i %(verbose_name_plural)s selezionati" +msgstr "Attivare il %(verbose_name_plural)s selezionato" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" -msgstr "Disattivare i %(verbose_name_plural)s selezionati" +msgstr "Disattivare il %(verbose_name_plural)s selezionato" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Valore dell'attributo" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Valori degli attributi" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Nome" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Immagine" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Immagini" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Stock" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Le scorte" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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 +104,35 @@ msgstr "Le scorte" msgid "price" msgstr "Prezzo" -#: core/admin.py:197 +#: core/admin.py:199 msgid "rating" -msgstr "Valutazione del prodotto" +msgstr "Valutazione" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Informazioni di base" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Date importanti" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Traduzioni" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Ordina il prodotto" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Ordinare i prodotti" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "È Business" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Configurazione" @@ -224,159 +229,159 @@ msgstr "" "Acquistare un ordine come azienda, utilizzando i `prodotti` forniti con " "`product_uuid` e `attributi`." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "Elenco di tutti i gruppi di attributi (vista semplice)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Recuperare un singolo gruppo di attributi (vista dettagliata)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Creare un gruppo di attributi" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Cancellare un gruppo di attributi" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "" -"Riscrivere un gruppo di attributi esistente salvando quelli non modificabili" +"Riscrivere un gruppo di attributi esistente salvando i non modificabili" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Riscrivere alcuni campi di un gruppo di attributi esistente salvando quelli " "non modificabili" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "Elenco di tutti gli attributi (vista semplice)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Recuperare un singolo attributo (vista dettagliata)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Creare un attributo" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Cancellare un attributo" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "" "Riscrivere un attributo esistente salvando gli elementi non modificabili" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" "Riscrivere alcuni campi di un attributo esistente salvando i campi non " "modificabili" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "Elenco di tutti i valori degli attributi (vista semplice)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Recuperare il valore di un singolo attributo (vista dettagliata)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Creare un valore di attributo" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Cancellare il valore di un attributo" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "" "Riscrivere il valore di un attributo esistente salvando gli elementi non " "modificabili" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Riscrivere alcuni campi di un valore di attributo esistente salvando i " "valori non modificabili" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "Elenco di tutte le categorie (visualizzazione semplice)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Recuperare una singola categoria (vista dettagliata)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Creare una categoria" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Eliminare una categoria" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "" "Riscrivere una categoria esistente salvando gli elementi non modificabili" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" "Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" " modificabili" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "Elenco di tutte le categorie (visualizzazione semplice)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" "Per gli utenti che non fanno parte del personale, vengono restituiti solo i " "loro ordini." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Recuperare una singola categoria (vista dettagliata)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Creare un attributo" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Non funziona per gli utenti che non fanno parte del personale." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Cancellare un attributo" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "" "Riscrivere una categoria esistente salvando gli elementi non modificabili" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" "Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" " modificabili" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Prezzo di acquisto al momento dell'ordine" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -386,19 +391,19 @@ msgstr "" "l'acquisto viene completato utilizzando il saldo dell'utente; se si utilizza" " `forza_pagamento`, viene avviata una transazione." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "acquistare un ordine senza creare un account" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "finalizza l'acquisto dell'ordine per un utente non registrato." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Aggiungere un prodotto all'ordine" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -406,11 +411,11 @@ msgstr "" "Aggiunge un prodotto a un ordine utilizzando il `product_uuid` e gli " "`attributi` forniti." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Rimuovere un prodotto dall'ordine" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -418,84 +423,84 @@ msgstr "" "Rimuove un prodotto da un ordine utilizzando il `product_uuid` e gli " "`attributi` forniti." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "Elenco di tutti gli attributi (vista semplice)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "Per gli utenti che non fanno parte del personale, vengono restituite solo le" " loro liste dei desideri." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Recuperare un singolo attributo (vista dettagliata)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Creare un attributo" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Non funziona per gli utenti che non fanno parte del personale." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Cancellare un attributo" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "" "Riscrivere un attributo esistente salvando gli elementi non modificabili" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" "Riscrivere alcuni campi di un attributo esistente salvando i campi non " "modificabili" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Aggiungere un prodotto all'ordine" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "" "Aggiunge un prodotto a una lista dei desideri utilizzando il `product_uuid` " "fornito." -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Rimuovere un prodotto dalla lista dei desideri" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" "Rimuove un prodotto da una wishlist utilizzando il `product_uuid` fornito." -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Aggiungere molti prodotti alla lista dei desideri" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "Aggiunge molti prodotti a una lista dei desideri utilizzando i " "`product_uuids` forniti." -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Rimuovere un prodotto dall'ordine" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Rimuove molti prodotti da una lista di desideri utilizzando i " "`product_uuids` forniti." -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -515,60 +520,60 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "Elenco di tutti i prodotti (visualizzazione semplice)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(esatto) UUID del prodotto" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(icontains) Nome del prodotto" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "" "(elenco) Nomi di categoria, senza distinzione tra maiuscole e minuscole" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(esatto) UUID della categoria" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(elenco) Nomi di tag, senza distinzione tra maiuscole e minuscole" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Prezzo minimo delle azioni" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Prezzo massimo del titolo" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(esatto) Solo prodotti attivi" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Nome del marchio" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Quantità minima di scorte" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(esatto) Prodotto slug" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(esatto) Digitale e fisico" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -576,35 +581,63 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Recuperare un singolo prodotto (vista dettagliata)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "UUID o Slug del prodotto" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Creare un prodotto" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "" "Riscrivere un prodotto esistente, preservando i campi non modificabili" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Eliminare un prodotto" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "Elenco di tutti gli indirizzi" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Recuperare un singolo indirizzo" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Creare un nuovo indirizzo" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Cancellare un indirizzo" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Aggiornare un intero indirizzo" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Aggiornare parzialmente un indirizzo" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Inserimento automatico dell'indirizzo" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "Non è stato fornito alcun termine di ricerca." @@ -619,7 +652,7 @@ msgstr "Data to store in cache" #: core/graphene/mutations.py:35 msgid "timeout in seconds to set the data for into the cache" -msgstr "Timeout in secondi per impostare i dati nella cache" +msgstr "Timeout in secondi per l'inserimento dei dati nella cache" #: core/graphene/mutations.py:38 msgid "cached data" @@ -631,14 +664,14 @@ msgstr "Dati JSON camelizzati dall'URL richiesto" #: core/graphene/mutations.py:57 core/views.py:169 msgid "only URLs starting with http(s):// are allowed" -msgstr "Sono ammessi solo gli URL che iniziano con http(s)://" +msgstr "Sono consentiti solo gli URL che iniziano con http(s)://" #: core/graphene/mutations.py:72 msgid "add a product to the order" msgstr "Aggiungere un prodotto all'ordine" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Ordine {order_uuid} non trovato" @@ -655,44 +688,44 @@ msgstr "Rimuovere tutti i prodotti dall'ordine" msgid "buy an order" msgstr "Acquistare un ordine" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 msgid "please provide either order_uuid or order_hr_id - mutually exclusive" 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "" "Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Aggiungere un prodotto all'ordine" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Lista dei desideri {wishlist_uuid} non trovata" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Rimuovere un prodotto dall'ordine" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Rimuovere un prodotto dall'ordine" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Rimuovere un prodotto dall'ordine" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Acquistare un ordine" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" @@ -700,12 +733,24 @@ msgstr "" "Inviare gli attributi come stringa formattata come " "attr1=valore1,attr2=valore2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Stringa di indirizzo originale fornita dall'utente" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} non esiste: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "Il limite deve essere compreso tra 1 e 10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch: funziona a meraviglia" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Attributi" @@ -718,11 +763,11 @@ msgid "groups of attributes" msgstr "Gruppi di attributi" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Categorie" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Marche" @@ -731,7 +776,7 @@ msgid "category image url" msgstr "Categorie" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Percentuale di markup" @@ -747,40 +792,48 @@ msgid "" msgstr "" "Prezzi minimi e massimi per i prodotti di questa categoria, se disponibili." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Venditori" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Latitudine (coordinata Y)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Longitudine (coordinata X)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Come" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Valore di valutazione da 1 a 10, incluso, o 0 se non impostato." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Rappresenta il feedback di un utente." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Notifiche" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "URL di download per il prodotto dell'ordine, se applicabile" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "Un elenco di prodotti ordinati in questo ordine" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Indirizzo di fatturazione" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -788,47 +841,47 @@ msgstr "" "Indirizzo di spedizione per questo ordine, lasciare in bianco se è uguale " "all'indirizzo di fatturazione o se non è applicabile" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Prezzo totale dell'ordine" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Quantità totale di prodotti in ordine" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Tutti i prodotti sono presenti nell'ordine digitale" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Ordini" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "URL immagine" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Immagini del prodotto" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Categoria" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Feedback" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Marchio" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Gruppi di attributi" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -836,31 +889,31 @@ msgstr "Gruppi di attributi" msgid "quantity" msgstr "Quantità" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Numero di feedback" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Prodotti" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Codici promozionali" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Prodotti in vendita" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Promozioni" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Venditore" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -868,807 +921,856 @@ msgstr "Venditore" msgid "product" msgstr "Prodotto" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Prodotti desiderati" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Liste dei desideri" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Nome del progetto" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "Email aziendale" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Nome della società" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Indirizzo dell'azienda" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Numero di telefono dell'azienda" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', a volte deve essere usato al posto del valore dell'utente host" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "Utente host dell'e-mail" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Importo massimo per il pagamento" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Importo minimo per il pagamento" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Configurazione" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Codice lingua" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Nome della lingua" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Bandiera della lingua, se esiste :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Ottenere un elenco delle lingue supportate" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Risultati della ricerca dei prodotti" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Risultati della ricerca dei prodotti" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Genitore di questo gruppo" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Gruppo di attributi padre" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Nome del gruppo di attributi" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Gruppo di attributi" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Categoria di questo attributo" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Gruppo di questo attributo" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "Stringa" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Intero" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Galleggiante" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Booleano" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Array" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Oggetto" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Tipo di valore dell'attributo" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Tipo di valore" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Nome dell'attributo" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Nome dell'attributo" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Attributo" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Attributo di questo valore" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Prodotto associato" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "Il valore specifico per questo attributo" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Caricare un'immagine che rappresenti questa categoria" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Categoria immagine" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "" "Definire una percentuale di ricarico per i prodotti di questa categoria" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" -msgstr "Genitore di questa categoria, per formare una struttura gerarchica." +msgstr "Genitore di questa categoria per formare una struttura gerarchica" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Categoria di genitori" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Nome della categoria" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Indicare un nome per questa categoria" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Aggiungere una descrizione dettagliata per questa categoria" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Descrizione della categoria" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Nome del marchio" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Nome del marchio" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Caricare un logo che rappresenti questo marchio" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Immagine piccola del marchio" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Caricare un grande logo che rappresenti questo marchio" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Grande immagine del marchio" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Aggiungere una descrizione dettagliata del marchio" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Descrizione del marchio" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Categorie opzionali a cui questo marchio è associato" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Categorie" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Categoria a cui appartiene questo prodotto" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Associare facoltativamente questo prodotto a un marchio" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Tag del prodotto" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Indica se il prodotto è consegnato in formato digitale" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "Il prodotto è digitale" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Fornire un nome identificativo chiaro per il prodotto" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Nome del prodotto" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Aggiungere una descrizione dettagliata del prodotto" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Descrizione del prodotto" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Numero di parte per questo prodotto" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Numero di parte" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Memorizza le credenziali e gli endpoint necessari per la comunicazione API " "del fornitore." -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Informazioni sull'autenticazione" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "Definire il markup per i prodotti recuperati da questo fornitore" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Percentuale di ricarico del fornitore" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Nome del fornitore" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Nome del fornitore" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "Commenti degli utenti sulla loro esperienza con il prodotto" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Commenti di feedback" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Riferisce il prodotto specifico in un ordine di cui si tratta il feedback." -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Prodotto correlato all'ordine" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "Valutazione del prodotto assegnata dall'utente" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Valutazione del prodotto" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Feedback" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "L'indirizzo di fatturazione utilizzato per questo ordine" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Codice promozionale opzionale applicato a questo ordine" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Codice promozionale applicato" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "L'indirizzo di spedizione utilizzato per questo ordine" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Indirizzo di spedizione" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Stato attuale dell'ordine nel suo ciclo di vita" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Stato dell'ordine" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "Struttura JSON delle notifiche da mostrare agli utenti; nell'interfaccia " "utente dell'amministratore viene utilizzata la visualizzazione a tabella." -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "Rappresentazione JSON degli attributi dell'ordine per questo ordine" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "L'utente che ha effettuato l'ordine" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "Utente" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "Il timestamp del momento in cui l'ordine è stato finalizzato" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Acquista tempo" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "Un identificatore leggibile dall'uomo per l'ordine" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "ID leggibile dall'uomo" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Ordine" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 msgid "you cannot add products to an order that is not a pending one" -msgstr "Non è possibile aggiungere prodotti a un ordine che non sia in corso." +msgstr "" +"Non è possibile aggiungere prodotti a un ordine che non sia in sospeso." -#: core/models.py:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "Non è possibile aggiungere all'ordine prodotti inattivi" -#: core/models.py:563 +#: core/models.py:565 msgid "you cannot add more products than available in stock" msgstr "" "Non è possibile aggiungere più prodotti di quelli disponibili in magazzino" -#: core/models.py:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} non esiste: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} non esiste con la query <{query}>." -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Il codice promozionale non esiste" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "" +"È possibile acquistare solo prodotti fisici con indirizzo di spedizione " +"specificato!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "L'indirizzo non esiste" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Valore di forza non valido" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "Non è possibile acquistare un ordine vuoto!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Fondi insufficienti per completare l'ordine" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" "non è possibile acquistare senza registrazione, si prega di fornire le " -"seguenti informazioni: nome del cliente, email del cliente, numero di " +"seguenti informazioni: nome del cliente, e-mail del cliente, numero di " "telefono del cliente" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Metodo di pagamento non valido" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Prezzo di acquisto al momento dell'ordine" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "Commenti interni per gli amministratori su questo prodotto ordinato" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Commenti interni" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "Notifiche degli utenti" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "Rappresentazione JSON degli attributi di questo elemento" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Attributi del prodotto ordinati" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Riferimento all'ordine padre che contiene questo prodotto" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Ordine dei genitori" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "Il prodotto specifico associato a questa riga d'ordine" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Quantità di questo prodotto specifico nell'ordine" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Quantità di prodotto" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Stato attuale di questo prodotto nell'ordine" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Stato della linea di prodotti" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Identificatore interno dell'etichetta del prodotto" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Nome del tag" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "Nome intuitivo per l'etichetta del prodotto" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Nome del tag" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Etichetta del prodotto" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "" "Fornire un testo alternativo per l'immagine ai fini dell'accessibilità." -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "Testo alt dell'immagine" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Caricare il file immagine per questo prodotto" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Immagine del prodotto" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Determina l'ordine di visualizzazione delle immagini" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Priorità del display" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "Il prodotto che questa immagine rappresenta" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Immagini del prodotto" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Identificatore del codice promozionale" -#: core/models.py:964 +#: core/models.py:953 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:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Importo fisso dello sconto" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "Sconto percentuale applicato se l'importo fisso non viene utilizzato" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Sconto percentuale" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Data di scadenza del codice promozionale" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "Tempo di validità finale" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Data a partire dalla quale il codice promozionale è valido" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" -msgstr "Tempo di validità iniziale" +msgstr "Ora di inizio validità" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Timestamp d'uso" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "Utente assegnato a questo codice promozionale, se applicabile" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Utente assegnato" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Codice promozionale" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Codici promozionali" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" "È necessario definire un solo tipo di sconto (importo o percentuale), ma non" -" entrambi o nessuno dei due." +" entrambi o nessuno." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "Il codice promozionale è già stato utilizzato" -#: core/models.py:1038 +#: core/models.py:1030 #, 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:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Percentuale di sconto per i prodotti selezionati" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Percentuale di sconto" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Fornite un nome unico per questa promozione" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Nome della promozione" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Descrizione della promozione" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Selezionare i prodotti inclusi in questa promozione" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Prodotti inclusi" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Promozione" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "Il venditore che fornisce questo stock di prodotti" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Venditore associato" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Prezzo finale al cliente dopo i ricarichi" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Prezzo di vendita" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "Il prodotto associato a questa voce di magazzino" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "Il prezzo pagato al venditore per questo prodotto" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Prezzo di acquisto del fornitore" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Quantità disponibile del prodotto in magazzino" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Quantità in magazzino" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU assegnato dal fornitore per identificare il prodotto" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "SKU del venditore" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "File digitale associato a questo stock, se applicabile" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "File digitale" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Voci di magazzino" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Prodotti che l'utente ha contrassegnato come desiderati" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "Utente che possiede questa wishlist" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Proprietario della lista dei desideri" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Lista dei desideri" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Scaricare" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Scaricamento" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Documentario" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Documentari" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Non risolto" +#: core/models.py:1233 +msgid "street" +msgstr "Via" + +#: core/models.py:1234 +msgid "district" +msgstr "Distretto" + +#: core/models.py:1235 +msgid "city" +msgstr "Città" + +#: core/models.py:1236 +msgid "region" +msgstr "Regione" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Codice postale" + +#: core/models.py:1238 +msgid "country" +msgstr "Paese" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Punto di geolocalizzazione(Longitudine, Latitudine)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Risposta JSON completa di geocoder per questo indirizzo" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Risposta JSON memorizzata dal servizio di geocodifica" + +#: core/models.py:1270 +msgid "address" +msgstr "Indirizzo" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Indirizzi" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Errore durante la creazione del codice promozionale: {e!s}" @@ -1729,7 +1831,7 @@ msgstr "Logo" #: core/templates/shipped_order_delivered_email.html:87 #, python-format msgid "hello %(order.user.first_name)s," -msgstr "Ciao %(order.user.first_name)s," +msgstr "Hello %(order.user.first_name)s," #: core/templates/digital_order_created_email.html:102 #, python-format @@ -1763,13 +1865,13 @@ msgid "" "if you have any questions, feel free to contact our support at " "%(config.EMAIL_HOST_USER)s." msgstr "" -"Per qualsiasi domanda, potete contattare il nostro supporto all'indirizzo " -"%(config.EMAIL_HOST_USER)s." +"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero" +" %(config.EMAIL_HOST_USER)s." #: core/templates/digital_order_created_email.html:130 #, python-format msgid "best regards,
the %(config.PROJECT_NAME)s team" -msgstr "Cordiali saluti,
il team di %(config.PROJECT_NAME)s" +msgstr "Cordiali saluti,
il team %(config.PROJECT_NAME)s" #: core/templates/digital_order_created_email.html:136 #: core/templates/digital_order_delivered_email.html:168 @@ -1785,7 +1887,7 @@ msgstr "Ordine consegnato" #: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "hello %(user_first_name)s," -msgstr "Ciao %(user_first_name)s," +msgstr "Hello %(user_first_name)s," #: core/templates/digital_order_delivered_email.html:102 #, python-format @@ -1806,13 +1908,13 @@ msgid "" "if you have any questions, feel free to contact our support at " "%(contact_email)s." msgstr "" -"In caso di domande, non esitate a contattare il nostro supporto " -"all'indirizzo %(contact_email)s." +"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero" +" %(contact_email)s." #: core/templates/digital_order_delivered_email.html:162 #, python-format msgid "best regards,
the %(project_name)s team" -msgstr "Cordiali saluti,
il team di %(project_name)s" +msgstr "Cordiali saluti,
il team %(project_name)s" #: core/templates/json_table_widget.html:5 msgid "key" @@ -1841,7 +1943,7 @@ msgstr "Il vostro ordine sarà consegnato al seguente indirizzo:" #: core/templates/shipped_order_delivered_email.html:127 #, python-format msgid "best regards,
The %(config.PROJECT_NAME)s team" -msgstr "Cordiali saluti,
il team di %(config.PROJECT_NAME)s" +msgstr "Cordiali saluti,
il team %(config.PROJECT_NAME)s" #: core/utils/caching.py:41 msgid "both data and timeout are required" @@ -1855,7 +1957,7 @@ msgstr "" #: core/utils/db.py:7 #, python-brace-format msgid "{model} must be model" -msgstr "{model} deve essere il modello" +msgstr "{model} deve essere un modello" #: core/utils/db.py:9 #, python-brace-format @@ -1881,12 +1983,16 @@ msgstr "{config.PROJECT_NAME} | Ordine consegnato" msgid "you do not have permission to perform this action." msgstr "Non si ha il permesso di eseguire questa azione." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "Il parametro NOMINATIM_URL deve essere configurato!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Le dimensioni dell'immagine non devono superare w{max_width} x h{max_height}" -" pixel." +" pixel" #: core/validators.py:22 msgid "invalid phone number format" @@ -1899,3 +2005,8 @@ msgstr "È possibile scaricare l'asset digitale una sola volta" #: core/views.py:264 msgid "favicon not found" msgstr "favicon non trovata" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Errore di geocodifica: {e}" diff --git a/core/locale/ja_JP/LC_MESSAGES/django.mo b/core/locale/ja_JP/LC_MESSAGES/django.mo index c8b3940f..2411262d 100644 Binary files a/core/locale/ja_JP/LC_MESSAGES/django.mo and b/core/locale/ja_JP/LC_MESSAGES/django.mo differ diff --git a/core/locale/ja_JP/LC_MESSAGES/django.po b/core/locale/ja_JP/LC_MESSAGES/django.po index 10fe112d..d498c977 100644 --- a/core/locale/ja_JP/LC_MESSAGES/django.po +++ b/core/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -47,47 +47,47 @@ msgstr "変形" msgid "when the object was last modified" msgstr "オブジェクトの最終編集日時" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "選択した %(verbose_name_plural)s をアクティブにする。" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "選択された %(verbose_name_plural)s を非アクティブにする。" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "属性値" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "属性値" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "名称" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "画像" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "画像" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "在庫" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "株式" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "製品評価" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "基本情報" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "重要な日程" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "翻訳" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "商品のご注文" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "商品のご注文" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "ビジネス" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "コンフィグ" @@ -217,141 +217,141 @@ msgid "" "`product_uuid` and `attributes`." msgstr "提供された `product` と `product_uuid` と `attributes` を使用して、ビジネスとして注文を購入する。" -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "すべての属性グループをリストアップ(シンプルビュー)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "単一の属性グループを取得する(詳細表示)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "属性グループの作成" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "属性グループの削除" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "既存の属性グループを書き換えて、編集不可能なものを保存する。" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "既存の属性グループのいくつかのフィールドを書き換え、編集不可能なものを保存する。" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "すべての属性をリストアップ(シンプルな表示)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "単一の属性を取得する(詳細表示)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "属性を作成する" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "属性を削除する" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "既存の属性を書き換える。" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "すべての属性値をリストアップ(シンプルビュー)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "単一の属性値を取得する(詳細表示)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "属性値の作成" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "属性値の削除" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "既存の属性値を書き換える。" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "既存の属性値のいくつかのフィールドを書き換え、編集不可能な値を保存する。" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "全カテゴリーを一覧表示(シンプル表示)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "単一のカテゴリーを取得する(詳細表示)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "カテゴリーを作成する" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "カテゴリーの削除" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "既存のカテゴリーを書き換え、編集不可能なものを保存する。" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "編集不可を保存している既存のカテゴリのいくつかのフィールドを書き換える" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "全カテゴリーを一覧表示(シンプル表示)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "スタッフ以外のユーザーについては、自分の注文のみが返却される。" -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "単一のカテゴリーを取得する(詳細表示)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "属性を作成する" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "スタッフ以外のユーザーには使えない。" -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "属性を削除する" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "既存のカテゴリーを書き換え、編集不可能なものを保存する。" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "編集不可を保存している既存のカテゴリのいくつかのフィールドを書き換える" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "注文時の購入価格" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -360,100 +360,100 @@ msgstr "" "注文の購入を確定する。force_balance` が使用された場合、ユーザーの残高を使用して購入が完了します。 `force_payment` " "が使用された場合、トランザクションが開始されます。" -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "アカウントを作成せずに注文を購入する" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "は、未登録ユーザーの注文購入を確定します。" -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "注文に商品を追加する" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." msgstr "指定した `product_uuid` と `attributes` を使用して、商品を注文に追加する。" -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "注文から商品を削除する" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." msgstr "指定された `product_uuid` と `attributes` を使用して、注文から商品を削除する。" -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "すべての属性をリストアップ(シンプルな表示)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "スタッフ以外のユーザーには、自分のウィッシュリストのみが返されます。" -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "単一の属性を取得する(詳細表示)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "属性を作成する" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "スタッフ以外のユーザーには使えない。" -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "属性を削除する" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "既存の属性を書き換える。" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "注文に商品を追加する" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "指定された `product_uuid` を使ってウィッシュリストに商品を追加する。" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "ウィッシュリストから商品を削除する" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "指定された `product_uuid` を使ってウィッシュリストから商品を削除します。" -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "ウィッシュリストに多くの商品を追加する" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "指定された `product_uuids` を使ってウィッシュリストに多くの商品を追加する。" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "注文から商品を削除する" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "指定された `product_uuids` を使ってウィッシュリストから多くの商品を削除する。" -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -473,59 +473,59 @@ msgstr "" "color=exact-red`、`size=gt-10`、`features=in-[\"wifi\", \"bluetooth\"]`、\n" "b64-description=icontains-aGVhdC1jb2xk`。" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "全商品を一覧表示(シンプル表示)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(正確には)製品UUID" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(アイコン) 製品名" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(リスト)カテゴリー名、大文字と小文字は区別しない" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(正確には)カテゴリーUUID" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(リスト) タグ名、大文字と小文字は区別されない" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(最低株価" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(最大株価" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(正確には)アクティブ製品のみ" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(商品名" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(最低在庫量" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(正確には)製品スラッグ" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(正確には)デジタルとフィジカル" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -533,32 +533,60 @@ msgstr "" "カンマ区切りの並べ替えフィールドのリスト。降順の場合は `-` をプレフィックスとしてつける。 \n" "**許可:** uuid, rating, name, slug, created, modified, price, random" -#: core/docs/drf/viewsets.py:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "単一の製品を取得する(詳細表示)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "製品UUIDまたはスラグ" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "製品を作る" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "編集不可能なフィールドを保持したまま、既存の製品を書き換える。" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 msgid "" "update some fields of an existing product, preserving non-editable fields" msgstr "編集不可能なフィールドを保持したまま、既存の製品の一部のフィールドを更新する。" -#: core/docs/drf/viewsets.py:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "製品を削除する" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "全住所のリスト" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "単一アドレスの取得" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "新しいアドレスを作成する" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "アドレスの削除" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "アドレス全体の更新" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "アドレスの一部更新" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "オートコンプリート住所入力" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "検索語はありません。" @@ -592,7 +620,7 @@ msgid "add a product to the order" msgstr "注文に商品を追加する" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "注文{order_uuid}が見つかりません" @@ -609,53 +637,65 @@ msgstr "注文からすべての商品を削除する" msgid "buy an order" msgstr "注文する" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "order.buy()メソッドから間違った型が来た:{type(instance)!s}。" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "注文に商品を追加する" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "ウィッシュリスト{wishlist_uuid}が見つかりません。" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "注文から商品を削除する" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "注文から商品を削除する" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "注文から商品を削除する" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "注文する" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" msgstr "属性は、attr1=value1,attr2=value2のような形式の文字列として送信してください。" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "ユーザーが提供したオリジナルのアドレス文字列" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} は存在しません:{uuid} は存在しません。" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "上限は1から10の間でなければならない" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - 魅力のように動作" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "属性" @@ -668,11 +708,11 @@ msgid "groups of attributes" msgstr "属性のグループ" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "カテゴリー" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "ブランド" @@ -681,7 +721,7 @@ msgid "category image url" msgstr "カテゴリー" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "マークアップ率" @@ -694,86 +734,94 @@ msgid "" "minimum and maximum prices for products in this category, if available." msgstr "このカテゴリーの商品の最低価格と最高価格がある場合。" -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "ベンダー" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "緯度(Y座標)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "経度(X座標)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "どのように" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "1から10までの評価値(設定されていない場合は0)。" -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "ユーザーからのフィードバックを表す。" -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "お知らせ" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "該当する場合は、この注文商品のダウンロードURLを入力してください。" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "注文商品のリスト" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "請求先住所" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "請求先住所と同じ場合、または該当しない場合は空白にしてください。" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "この注文の合計金額" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "注文商品の総数量" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "ご注文の商品はすべてデジタルですか?" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "受注状況" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "画像URL" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "製品画像" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "カテゴリー" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "フィードバック" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "ブランド" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "属性グループ" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -781,31 +829,31 @@ msgstr "属性グループ" msgid "quantity" msgstr "数量" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "フィードバック数" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "製品紹介" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "プロモコード" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "販売商品" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "プロモーション" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "ベンダー" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -813,786 +861,834 @@ msgstr "ベンダー" msgid "product" msgstr "製品" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "ウィッシュリスト掲載商品" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "ウィッシュリスト" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "プロジェクト名" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "会社Eメール" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "会社名" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "会社住所" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "会社電話番号" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "'email from' は、ホストユーザの値の代わりに使用されることがあります。" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "メールホストユーザー" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "支払限度額" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "最低支払額" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "構成" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "言語コード" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "言語名" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "言語フラグがある場合 :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "サポートされている言語のリストを取得する" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "製品検索結果" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "製品検索結果" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "このグループの親" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "親属性グループ" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "属性グループ名" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "属性グループ" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "この属性のカテゴリー" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "この属性のグループ" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "ストリング" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "整数" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "フロート" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "ブーリアン" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "配列" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "対象" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "属性値のタイプ" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "値の種類" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "この属性の名前" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "属性名" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "属性" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "この値の属性" -#: core/models.py:141 +#: core/models.py:143 msgid "the specific product associated with this attribute's value" msgstr "この属性の値に関連する特定の製品" -#: core/models.py:142 core/models.py:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "関連製品" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "この属性の具体的な値" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "このカテゴリーを表す画像をアップロードする" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "カテゴリーイメージ" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "このカテゴリの商品のマークアップ率を定義する" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "階層構造を形成するこのカテゴリの親" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "親カテゴリー" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "カテゴリー名" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "このカテゴリの名前を入力してください。" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "このカテゴリの詳細説明を追加する" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "カテゴリー説明" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "ブランド名" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "ブランド名" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "このブランドを代表するロゴをアップロードする" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "小さなブランドイメージ" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "このブランドを象徴する大きなロゴをアップロードする" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "大きなブランドイメージ" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "ブランドの詳細な説明を加える" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "ブランド説明" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "このブランドが関連するオプション・カテゴリー" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "カテゴリー" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "この製品が属するカテゴリ" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "オプションでこの製品をブランドと関連付ける" -#: core/models.py:279 +#: core/models.py:281 msgid "tags that help describe or group this product" msgstr "この商品の説明やグループ分けに役立つタグ" -#: core/models.py:280 core/models.py:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "商品タグ" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "この製品がデジタル配信されるかどうかを示す" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "製品はデジタルか" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "製品の明確な識別名を提供する" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "商品名" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "商品の詳細説明を追加する" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "商品説明" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "この製品の品番" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "品番" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "ベンダーのAPI通信に必要な認証情報とエンドポイントを保存する。" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "認証情報" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "このベンダーから取得した商品のマークアップを定義する。" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "ベンダーのマークアップ率" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "このベンダーの名前" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "ベンダー名" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "ユーザーから寄せられた製品使用体験に関するコメント" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "フィードバック・コメント" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "このフィードバックが対象としている注文の特定の製品を参照する。" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "関連注文商品" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "ユーザーによる製品の評価" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "製品評価" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "フィードバック" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "この注文に使用される請求先住所" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "この注文に適用されるプロモコード" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "プロモーションコード適用" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "この注文に使用された配送先住所" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "配送先住所" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "ライフサイクルにおける現在の注文状況" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "注文状況" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "この注文の注文属性のJSON表現" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "注文を行ったユーザー" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "ユーザー" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "注文が確定したタイムスタンプ" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "時間を買う" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "オーダーの人間が読み取り可能な識別子。" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "人間が読めるID" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "オーダー" -#: core/models.py:517 +#: core/models.py:519 msgid "a user must have only one pending order at a time" msgstr "ユーザーは一度に1つの未決注文しか持つことができません!" -#: core/models.py:541 +#: core/models.py:543 msgid "you cannot add products to an order that is not a pending one" msgstr "保留中の注文以外の注文に商品を追加することはできません。" -#: core/models.py:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "アクティブでない商品を注文に追加することはできません。" -#: core/models.py:563 +#: core/models.py:565 msgid "you cannot add more products than available in stock" msgstr "在庫以上の商品を追加することはできません。" -#: core/models.py:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name}が存在しません:{product_uuid}が存在しません。" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 msgid "you cannot remove products from an order that is not a pending one" msgstr "保留中の注文以外の注文から商品を削除することはできません。" -#: core/models.py:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "クエリ<{query}>で{name}が存在しません。" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "プロモコードが存在しない" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "配送先住所が指定された現物商品のみ購入可能!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "アドレスが存在しない" + +#: core/models.py:659 core/models.py:700 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "現在ご購入いただけません。数分後にもう一度お試しください。" -#: core/models.py:634 +#: core/models.py:662 msgid "invalid force value" msgstr "無効なフォース値" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "空注文はできません!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "注文を完了するための資金不足" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "ご登録がない場合はご購入いただけませんので、以下の情報をお知らせください:お客様のお名前、お客様のEメール、お客様の電話番号" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "無効な支払い方法" -#: core/models.py:706 -msgid "you cannot create a momental order without providing a billing address" -msgstr "請求先住所を記入せずに、モーメンタルの注文を作成することはできません。" - -#: core/models.py:784 +#: core/models.py:773 msgid "the price paid by the customer for this product at purchase time" msgstr "この商品の購入時に顧客が支払った価格" -#: core/models.py:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "注文時の購入価格" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "この注文商品に関する管理者への内部コメント" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "社内コメント" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "ユーザー通知" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "このアイテムの属性のJSON表現" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "製品属性の順序" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "この商品を含む親注文への参照" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "親注文" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "この注文ラインに関連する特定の製品" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "注文に含まれる特定の商品の数量" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "製品数量" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "この商品の現在のご注文状況" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "製品ラインの状況" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "商品タグの内部タグ識別子" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "タグ名" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "商品タグのユーザーフレンドリーな名前" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "タグ表示名" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "商品タグ" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "アクセシビリティのために、画像に代替テキストを提供する。" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "画像のaltテキスト" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "この商品の画像ファイルをアップロードする" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "商品画像" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "画像の表示順を決める" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "表示優先度" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "この画像が表す製品" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "商品画像" -#: core/models.py:956 +#: core/models.py:945 msgid "unique code used by a user to redeem a discount" msgstr "ユーザーが割引を利用する際に使用する固有のコード" -#: core/models.py:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "プロモコード識別子" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "パーセントを使用しない場合に適用される固定割引額" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "固定割引額" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "定額を使用しない場合に適用される割引率" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "割引率" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "プロモコードの有効期限が切れるタイムスタンプ" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "終了有効時間" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "このプロモコードが有効なタイムスタンプ" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "開始有効時間" -#: core/models.py:989 +#: core/models.py:978 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "プロモコードが使用されたタイムスタンプ、未使用の場合は空白" -#: core/models.py:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "使用タイムスタンプ" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "該当する場合、このプロモコードに割り当てられたユーザー" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "担当ユーザー" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "プロモコード" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "プロモコード" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "割引の種類は1つだけ(金額またはパーセント)定義されるべきで、両方またはどちらも定義してはならない。" -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "プロモコードはすでに使用されています" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "プロモコード {self.uuid} の割引タイプが無効です。" -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "選択した商品の割引率" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "割引率" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "このプロモーションのユニークな名前を入力してください。" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "プロモーション名" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "プロモーション内容" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "キャンペーン対象商品をお選びください。" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "含まれる製品" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "プロモーション" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "この製品の在庫を供給しているベンダー" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "関連ベンダー" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "マークアップ後の顧客への最終価格" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "販売価格" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "このストックエントリーに関連する製品" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "この製品に対してベンダーに支払われた価格" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "ベンダーの購入価格" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "在庫数" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "在庫数" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "製品を識別するためにベンダーが割り当てたSKU" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "ベンダーのSKU" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "この銘柄に関連するデジタルファイル(該当する場合" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "デジタルファイル" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "ストックエントリー" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "ユーザーが欲しいとマークした商品" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "このウィッシュリストを所有しているユーザー" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "ウィッシュリストのオーナー" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "ウィッシュリスト" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "ダウンロード" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "ダウンロード" -#: core/models.py:1208 +#: core/models.py:1206 msgid "you can not download a digital asset for a non-finished order" msgstr "未完成の注文のデジタル資産をダウンロードすることはできません。" -#: core/models.py:1220 +#: core/models.py:1218 msgid "documentary" msgstr "ドキュメンタリー" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "ドキュメンタリー" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "未解決" +#: core/models.py:1233 +msgid "street" +msgstr "ストリート" + +#: core/models.py:1234 +msgid "district" +msgstr "地区" + +#: core/models.py:1235 +msgid "city" +msgstr "都市" + +#: core/models.py:1236 +msgid "region" +msgstr "地域" + +#: core/models.py:1237 +msgid "postal code" +msgstr "郵便番号" + +#: core/models.py:1238 +msgid "country" +msgstr "国名" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "ジオロケーションポイント(経度、緯度)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "この住所に対するジオコーダーからの完全なJSON応答" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "ジオコーディング・サービスからの保存されたJSONレスポンス" + +#: core/models.py:1270 +msgid "address" +msgstr "住所" + +#: core/models.py:1271 +msgid "addresses" +msgstr "住所" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "プロモコード作成中にエラーが発生しました:{e!s}です。" @@ -1793,6 +1889,10 @@ msgstr "{config.PROJECT_NAME}|プロジェクト名| 注文の配信" msgid "you do not have permission to perform this action." msgstr "この操作を行う権限がありません。" +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "NOMINATIM_URLパラメータを設定する必要があります!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1809,3 +1909,8 @@ msgstr "デジタルアセットのダウンロードは1回限りです。" #: core/views.py:264 msgid "favicon not found" msgstr "ファビコンが見つかりません" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "ジオコーディングエラー:{e}" diff --git a/core/locale/kk_KZ/LC_MESSAGES/django.po b/core/locale/kk_KZ/LC_MESSAGES/django.po index 27e44e03..978503c3 100644 --- a/core/locale/kk_KZ/LC_MESSAGES/django.po +++ b/core/locale/kk_KZ/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -50,47 +50,47 @@ msgstr "" msgid "when the object was last modified" msgstr "" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "" @@ -218,239 +218,239 @@ msgid "" "`product_uuid` and `attributes`." msgstr "" -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "" -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "" -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." msgstr "" -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "" -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -467,91 +467,119 @@ msgid "" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 msgid "" "update some fields of an existing product, preserving non-editable fields" msgstr "" -#: core/docs/drf/viewsets.py:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "" @@ -585,7 +613,7 @@ msgid "add a product to the order" msgstr "" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "" @@ -602,53 +630,66 @@ msgstr "" msgid "buy an order" msgstr "" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like attr1=value1," "attr2=value2" msgstr "" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "" + +#: core/graphene/mutations.py:501 +#, python-brace-format +msgid "{name} does not exist: {uuid}" +msgstr "" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "" @@ -661,11 +702,11 @@ msgid "groups of attributes" msgstr "" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "" @@ -674,7 +715,7 @@ msgid "category image url" msgstr "" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "" @@ -686,86 +727,94 @@ msgstr "" msgid "minimum and maximum prices for products in this category, if available." msgstr "" -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "" #: core/graphene/object_types.py:213 -msgid "comment" +msgid "Latitude (Y coordinate)" msgstr "" #: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "" + +#: core/graphene/object_types.py:240 +msgid "comment" +msgstr "" + +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "" -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -773,31 +822,31 @@ msgstr "" msgid "quantity" msgstr "" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -805,784 +854,832 @@ msgstr "" msgid "product" msgstr "" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "" -#: core/models.py:141 +#: core/models.py:143 msgid "the specific product associated with this attribute's value" msgstr "" -#: core/models.py:142 core/models.py:819 core/models.py:933 core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 core/models.py:1092 msgid "associated product" msgstr "" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "" -#: core/models.py:279 +#: core/models.py:281 msgid "tags that help describe or group this product" msgstr "" -#: core/models.py:280 core/models.py:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "" -#: core/models.py:413 +#: core/models.py:415 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "" -#: core/models.py:517 +#: core/models.py:519 msgid "a user must have only one pending order at a time" msgstr "" -#: core/models.py:541 +#: core/models.py:543 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: core/models.py:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "" -#: core/models.py:563 +#: core/models.py:565 msgid "you cannot add more products than available in stock" msgstr "" -#: core/models.py:572 core/models.py:589 core/models.py:613 core/models.py:1170 -#: core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 core/models.py:1163 +#: core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: core/models.py:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "" -#: 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:634 -msgid "invalid force value" -msgstr "" - -#: core/models.py:637 core/models.py:673 -msgid "you cannot purchase an empty order!" +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" msgstr "" #: core/models.py:652 -msgid "insufficient funds to complete the order" +msgid "address does not exist" +msgstr "" + +#: core/models.py:659 core/models.py:700 +msgid "you can not buy at this moment, please try again in a few minutes" +msgstr "" + +#: core/models.py:662 +msgid "invalid force value" +msgstr "" + +#: core/models.py:667 core/models.py:703 +msgid "you cannot purchase an empty order!" msgstr "" #: core/models.py:682 +msgid "insufficient funds to complete the order" +msgstr "" + +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "" -#: core/models.py:706 -msgid "you cannot create a momental order without providing a billing address" -msgstr "" - -#: core/models.py:784 +#: core/models.py:773 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: core/models.py:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "" -#: core/models.py:956 +#: core/models.py:945 msgid "unique code used by a user to redeem a discount" msgstr "" -#: core/models.py:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "" -#: core/models.py:989 +#: core/models.py:978 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: core/models.py:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "" -#: core/models.py:1208 +#: core/models.py:1206 msgid "you can not download a digital asset for a non-finished order" msgstr "" -#: core/models.py:1220 +#: core/models.py:1218 msgid "documentary" msgstr "" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "" +#: core/models.py:1233 +msgid "street" +msgstr "" + +#: core/models.py:1234 +msgid "district" +msgstr "" + +#: core/models.py:1235 +msgid "city" +msgstr "" + +#: core/models.py:1236 +msgid "region" +msgstr "" + +#: core/models.py:1237 +msgid "postal code" +msgstr "" + +#: core/models.py:1238 +msgid "country" +msgstr "" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "" + +#: core/models.py:1270 +msgid "address" +msgstr "" + +#: core/models.py:1271 +msgid "addresses" +msgstr "" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "" @@ -1783,6 +1880,10 @@ msgstr "" msgid "you do not have permission to perform this action." msgstr "" +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1799,3 +1900,8 @@ msgstr "" #: core/views.py:264 msgid "favicon not found" msgstr "" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "" diff --git a/core/locale/nl_NL/LC_MESSAGES/django.mo b/core/locale/nl_NL/LC_MESSAGES/django.mo index b8bdacd9..cd25157c 100644 Binary files a/core/locale/nl_NL/LC_MESSAGES/django.mo and b/core/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/core/locale/nl_NL/LC_MESSAGES/django.po b/core/locale/nl_NL/LC_MESSAGES/django.po index e2b44204..b7b7e5a0 100644 --- a/core/locale/nl_NL/LC_MESSAGES/django.po +++ b/core/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -49,47 +49,47 @@ msgstr "Gewijzigd" msgid "when the object was last modified" msgstr "Wanneer het object voor het laatst bewerkt is" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activeer geselecteerde %(verbose_name_plural)s" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactiveer geselecteerde %(verbose_name_plural)s" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Attribuut Waarde" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Attribuutwaarden" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Naam" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Afbeelding" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Afbeeldingen" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Voorraad" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Aandelen" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "Productbeoordeling" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Basisinformatie" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Belangrijke data" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Vertalingen" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Product bestellen" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Producten bestellen" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Is zakelijk" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Config" @@ -222,158 +222,158 @@ msgstr "" "Koop een bestelling in als een bedrijf, met behulp van de meegeleverde " "`producten` met `product_uuid` en `attributen`." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "Alle attribuutgroepen weergeven (eenvoudige weergave)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Een enkele groep kenmerken ophalen (gedetailleerde weergave)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Een attribuutgroep maken" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Een attribuutgroep verwijderen" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "" "Een bestaande attribuutgroep herschrijven en niet-wijzigbare attributen " "opslaan" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Enkele velden van een bestaande attribuutgroep herschrijven door niet-" "wijzigbare velden op te slaan" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "Alle attributen weergeven (eenvoudige weergave)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Een enkel kenmerk ophalen (gedetailleerde weergave)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Een attribuut maken" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Een attribuut verwijderen" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "" "Een bestaand attribuut herschrijven en niet-wijzigbare attributen opslaan" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" "Herschrijf sommige velden van een bestaand attribuut door niet-wijzigbare " "velden op te slaan" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "Alle attribuutwaarden weergeven (eenvoudige weergave)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Een waarde voor een enkel kenmerk ophalen (gedetailleerde weergave)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Een attribuutwaarde maken" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Een attribuutwaarde verwijderen" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "" "Een bestaande attribuutwaarde herschrijven waarbij niet-wijzigbare " "attributen worden opgeslagen" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Herschrijf sommige velden van een bestaande attribuutwaarde door niet-" "wijzigbare velden op te slaan" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "Alle categorieën weergeven (eenvoudige weergave)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Een enkele categorie ophalen (gedetailleerde weergave)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Een categorie maken" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Een categorie verwijderen" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "Een bestaande categorie herschrijven en niet-wijzigbare items opslaan" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" "Herschrijf sommige velden van een bestaande categorie door niet-wijzigbare " "velden op te slaan" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "Alle categorieën weergeven (eenvoudige weergave)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" "Voor niet-personeelsleden worden alleen hun eigen bestellingen " "geretourneerd." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Een enkele categorie ophalen (gedetailleerde weergave)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Een attribuut maken" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Werkt niet voor gebruikers die geen personeel zijn." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Een attribuut verwijderen" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "Een bestaande categorie herschrijven en niet-wijzigbare items opslaan" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" "Herschrijf sommige velden van een bestaande categorie door niet-wijzigbare " "velden op te slaan" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Aankoopprijs bij bestelling" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -383,21 +383,21 @@ msgstr "" "wordt de aankoop afgerond met het saldo van de gebruiker; als " "`force_payment` wordt gebruikt, wordt een transactie gestart." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "een bestelling kopen zonder een account aan te maken" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "" "Rondt de aankoop van de bestelling af voor een niet-geregistreerde " "gebruiker." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Een product aan de bestelling toevoegen" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -405,11 +405,11 @@ msgstr "" "Voegt een product toe aan een bestelling met de opgegeven `product_uuid` en " "`attributen`." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Een product uit de bestelling verwijderen" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -417,85 +417,85 @@ msgstr "" "Verwijdert een product uit een bestelling met behulp van de opgegeven " "`product_uuid` en `attributen`." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "Alle attributen weergeven (eenvoudige weergave)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "Voor niet-personeelsleden worden alleen hun eigen verlanglijstjes " "geretourneerd." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Een enkel kenmerk ophalen (gedetailleerde weergave)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Een attribuut maken" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Werkt niet voor gebruikers die geen personeel zijn." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Een attribuut verwijderen" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "" "Een bestaand attribuut herschrijven en niet-wijzigbare attributen opslaan" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" "Herschrijf sommige velden van een bestaand attribuut door niet-wijzigbare " "velden op te slaan" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Een product aan de bestelling toevoegen" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "" "Voegt een product toe aan een verlanglijstje met behulp van de opgegeven " "`product_uuid`." -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Een product uit het verlanglijstje verwijderen" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" "Verwijdert een product van een verlanglijstje met behulp van de opgegeven " "`product_uuid`." -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Veel producten toevoegen aan het verlanglijstje" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "Voegt veel producten toe aan een verlanglijstje met behulp van de opgegeven " "`product_uuids`." -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Een product uit de bestelling verwijderen" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Verwijdert een groot aantal producten uit een verlanglijstje met behulp van " "de opgegeven `product_uuids`." -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -515,59 +515,59 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "Alle producten weergeven (eenvoudige weergave)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(exacte) UUID van product" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(pictogrammen) Productnaam" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(lijst) Categorienamen, hoofdlettergevoelig" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(exacte) UUID van categorie" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(lijst) Labelnamen, hoofdlettergevoelig" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Minimale aandelenprijs" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Maximale aandelenprijs" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(exact) Alleen actieve producten" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Merknaam" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Minimumvoorraad" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(exacte) productnaam" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(exact) Digitaal vs. fysiek" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 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,63 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Een enkel product ophalen (gedetailleerde weergave)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "Product UUID of Slug" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Een product maken" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 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:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Een product verwijderen" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "Vermeld alle adressen" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Een enkel adres ophalen" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Een nieuw adres maken" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Een adres verwijderen" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Een heel adres bijwerken" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Een adres gedeeltelijk bijwerken" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Automatische adresinvoer" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "Geen zoekterm opgegeven." @@ -637,7 +665,7 @@ msgid "add a product to the order" msgstr "Een product aan de bestelling toevoegen" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Order {order_uuid} niet gevonden" @@ -654,54 +682,66 @@ msgstr "Alle producten uit de bestelling verwijderen" msgid "buy an order" msgstr "Een bestelling kopen" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Verkeerd type kwam uit order.buy() methode: {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Een product aan de bestelling toevoegen" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Verlanglijst {wishlist_uuid} niet gevonden" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Een product uit de bestelling verwijderen" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Een product uit de bestelling verwijderen" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Een product uit de bestelling verwijderen" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Een bestelling kopen" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" msgstr "" "Stuur de attributen als de string opgemaakt als attr1=waarde1,attr2=waarde2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Originele adresstring geleverd door de gebruiker" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} bestaat niet: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "Limiet moet tussen 1 en 10 liggen" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - werkt als een charme" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Attributen" @@ -714,11 +754,11 @@ msgid "groups of attributes" msgstr "Groepen van kenmerken" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Categorieën" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Merken" @@ -727,7 +767,7 @@ msgid "category image url" msgstr "Categorieën" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Opwaarderingspercentage" @@ -744,40 +784,48 @@ msgstr "" "Minimale en maximale prijzen voor producten in deze categorie, indien " "beschikbaar." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Verkopers" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Breedtegraad (Y-coördinaat)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Lengtegraad (X-coördinaat)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Hoe" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Waarderingswaarde van 1 tot en met 10, of 0 indien niet ingesteld." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Vertegenwoordigt feedback van een gebruiker." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Meldingen" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "Download url voor dit bestelproduct indien van toepassing" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "Een lijst met bestelde producten in deze bestelling" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Factuuradres" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -785,47 +833,47 @@ msgstr "" "Verzendadres voor deze bestelling, leeg laten als dit hetzelfde is als het " "factuuradres of als dit niet van toepassing is" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Totale prijs van deze bestelling" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Totale hoeveelheid producten in bestelling" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Zijn alle producten in de bestelling digitaal" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Bestellingen" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "Afbeelding URL" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Afbeeldingen van het product" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Categorie" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Reacties" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Merk" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Attribuutgroepen" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -833,31 +881,31 @@ msgstr "Attribuutgroepen" msgid "quantity" msgstr "Hoeveelheid" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Aantal terugkoppelingen" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Producten" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Producten te koop" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Promoties" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Verkoper" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -865,472 +913,480 @@ msgstr "Verkoper" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Gewenste producten" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Verlanglijst" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Naam project" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "Bedrijf E-mail" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Bedrijfsnaam" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Adres" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Telefoonnummer bedrijf" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "e-mail van', soms moet deze worden gebruikt in plaats van de " "hostgebruikerswaarde" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "Gebruiker e-mail hosten" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Maximumbedrag voor betaling" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Minimumbedrag voor betaling" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Configuratie" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Taalcode" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Naam van de taal" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Taalvlag, indien aanwezig :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Een lijst met ondersteunde talen opvragen" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Producten zoekresultaten" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Zoekresultaten" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Ouder van deze groep" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Ouderattribuutgroep" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Naam attribuutgroep" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Attribuutgroep" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Categorie van dit kenmerk" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Groep van dit kenmerk" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "String" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Integer" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Vlotter" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Booleaans" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Array" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Object" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Type waarde van het kenmerk" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Waardetype" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Naam van dit kenmerk" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Naam attribuut" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Attribuut" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Attribuut van deze waarde" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Bijbehorend product" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "De specifieke waarde voor dit kenmerk" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Upload een afbeelding die deze categorie vertegenwoordigt" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Categorie afbeelding" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "Definieer een toeslagpercentage voor producten in deze categorie" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "Ouder van deze categorie om een hiërarchische structuur te vormen" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Oudercategorie" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Naam categorie" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Geef deze categorie een naam" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Voeg een gedetailleerde beschrijving toe voor deze categorie" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Categorie beschrijving" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Naam van dit merk" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Merknaam" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Upload een logo dat dit merk vertegenwoordigt" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Klein merkimago" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Upload een groot logo dat dit merk vertegenwoordigt" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Groot merkimago" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Een gedetailleerde beschrijving van het merk toevoegen" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Merknaam" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Optionele categorieën waarmee dit merk wordt geassocieerd" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Categorieën" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Categorie waartoe dit product behoort" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Dit product optioneel koppelen aan een merk" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Product tags" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Geeft aan of dit product digitaal wordt geleverd" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "Is product digitaal" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Zorg voor een duidelijke identificerende naam voor het product" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Naam product" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Voeg een gedetailleerde beschrijving van het product toe" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Productbeschrijving" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Onderdeelnummer voor dit product" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Onderdeelnummer" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Slaat referenties en eindpunten op die vereist zijn voor API-communicatie " "van de verkoper" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Authenticatie-info" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definieer de opmaak voor producten die zijn opgehaald bij deze leverancier" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Verkoper winstpercentage" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Naam van deze verkoper" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Naam verkoper" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "Opmerkingen van gebruikers over hun ervaring met het product" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Reacties" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Verwijst naar het specifieke product in een bestelling waar deze feedback " "over gaat" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Gerelateerd product bestellen" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "Door de gebruiker toegekende waardering voor het product" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Productbeoordeling" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Feedback" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "Het factuuradres dat voor deze bestelling is gebruikt" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Optionele promotiecode toegepast op deze bestelling" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Kortingscode toegepast" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "Het verzendadres dat voor deze bestelling is gebruikt" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Verzendadres" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Huidige status van de order in zijn levenscyclus" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Bestelstatus" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "JSON-structuur van meldingen om weer te geven aan gebruikers, in admin UI " "wordt de tabelweergave gebruikt" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "JSON-weergave van bestelattributen voor deze bestelling" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "De gebruiker die de bestelling heeft geplaatst" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "Gebruiker" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "De tijdstempel waarop de bestelling is afgerond" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Tijd kopen" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "Een menselijk leesbare identificatiecode voor de bestelling" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "menselijk leesbare ID" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Bestel" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 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:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "U kunt geen inactieve producten toevoegen aan uw bestelling" -#: core/models.py:563 +#: core/models.py:565 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:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} bestaat niet: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} bestaat niet met query <{query}>" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Promocode bestaat niet" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "Je kunt alleen fysieke producten kopen met opgegeven verzendadres!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "Adres bestaat niet" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Ongeldige krachtwaarde" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "Je kunt geen lege bestelling kopen!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Onvoldoende fondsen om de bestelling te voltooien" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1338,193 +1394,188 @@ msgstr "" "u niet kunt kopen zonder registratie, geef dan de volgende informatie: " "klantnaam, e-mail klant, telefoonnummer klant" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Ongeldige betaalmethode" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Aankoopprijs bij bestelling" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "Interne opmerkingen voor beheerders over dit bestelde product" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Interne opmerkingen" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "Meldingen van gebruikers" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "JSON weergave van de attributen van dit item" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Geordende producteigenschappen" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Verwijzing naar de bovenliggende bestelling die dit product bevat" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Ouderlijk bevel" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "Het specifieke product dat bij deze bestelregel hoort" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Hoeveelheid van dit specifieke product in de bestelling" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Hoeveelheid product" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Huidige status van dit product in de bestelling" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Status productlijn" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Interne tagidentifier voor de producttag" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Tag naam" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "Gebruiksvriendelijke naam voor de producttag" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Tag weergavenaam" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Productlabel" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "Geef alternatieve tekst voor de afbeelding voor toegankelijkheid" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "Alt-tekst afbeelding" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Upload het afbeeldingsbestand voor dit product" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Product afbeelding" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Bepaalt de volgorde waarin afbeeldingen worden weergegeven" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Prioriteit weergeven" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "Het product dat deze afbeelding vertegenwoordigt" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Product afbeeldingen" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Promo code identificatie" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "" "Vast kortingsbedrag dat wordt toegepast als percentage niet wordt gebruikt" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Vast kortingsbedrag" -#: core/models.py:971 +#: core/models.py:960 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:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Kortingspercentage" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Tijdstempel wanneer de promocode verloopt" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "Geldigheidsduur einde" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Tijdstempel vanaf wanneer deze promocode geldig is" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "Begin geldigheidsduur" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Gebruik tijdstempel" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "Gebruiker toegewezen aan deze promocode indien van toepassing" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Toegewezen gebruiker" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Kortingscode" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Actiecodes" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1532,144 +1583,188 @@ msgstr "" "Er moet slechts één type korting worden gedefinieerd (bedrag of percentage)," " maar niet beide of geen van beide." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "Promocode is al gebruikt" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ongeldig kortingstype voor promocode {self.uuid}" -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Kortingspercentage voor de geselecteerde producten" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Kortingspercentage" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Geef deze promotie een unieke naam" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Naam promotie" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Promotie beschrijving" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Selecteer welke producten onder deze promotie vallen" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Meegeleverde producten" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Promotie" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "De verkoper die dit product levert" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Geassocieerde verkoper" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Eindprijs voor de klant na winstmarges" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Verkoopprijs" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "Het product dat bij deze voorraadvermelding hoort" -#: core/models.py:1106 +#: core/models.py:1099 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:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Aankoopprijs verkoper" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Beschikbare hoeveelheid van het product in voorraad" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Hoeveelheid op voorraad" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "Door de verkoper toegewezen SKU om het product te identificeren" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "Verkoper SKU" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "Digitaal bestand gekoppeld aan deze voorraad indien van toepassing" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Digitaal bestand" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Voorraadboekingen" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Producten die de gebruiker als gewenst heeft gemarkeerd" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "Gebruiker die eigenaar is van deze verlanglijst" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Eigenaar verlanglijstje" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Verlanglijst" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Downloaden" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Downloads" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Documentaire" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Documentaires" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Onopgelost" +#: core/models.py:1233 +msgid "street" +msgstr "Straat" + +#: core/models.py:1234 +msgid "district" +msgstr "District" + +#: core/models.py:1235 +msgid "city" +msgstr "Stad" + +#: core/models.py:1236 +msgid "region" +msgstr "Regio" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Postcode" + +#: core/models.py:1238 +msgid "country" +msgstr "Land" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Geolocatie Punt (lengtegraad, breedtegraad)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Volledig JSON-antwoord van geocoder voor dit adres" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Opgeslagen JSON-antwoord van de geocoderingsservice" + +#: core/models.py:1270 +msgid "address" +msgstr "Adres" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Adressen" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Fout tijdens aanmaken promocode: {e!s}" @@ -1882,6 +1977,10 @@ msgstr "{config.PROJECT_NAME}. | Geleverd" msgid "you do not have permission to perform this action." msgstr "U hebt geen toestemming om deze actie uit te voeren." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "De parameter NOMINATIM_URL moet worden geconfigureerd!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1900,3 +1999,8 @@ msgstr "U kunt het digitale goed maar één keer downloaden" #: core/views.py:264 msgid "favicon not found" msgstr "favicon niet gevonden" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Fout bij geocodering: {e}" diff --git a/core/locale/pl_PL/LC_MESSAGES/django.mo b/core/locale/pl_PL/LC_MESSAGES/django.mo index 395cf85d..6e57355e 100644 Binary files a/core/locale/pl_PL/LC_MESSAGES/django.mo and b/core/locale/pl_PL/LC_MESSAGES/django.mo differ diff --git a/core/locale/pl_PL/LC_MESSAGES/django.po b/core/locale/pl_PL/LC_MESSAGES/django.po index 13c575ee..53ece807 100644 --- a/core/locale/pl_PL/LC_MESSAGES/django.po +++ b/core/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,47 +51,47 @@ msgstr "Zmodyfikowany" msgid "when the object was last modified" msgstr "Kiedy obiekt był ostatnio edytowany" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktywuj wybrane %(verbose_name_plural)s" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Dezaktywacja wybranych %(verbose_name_plural)s" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Wartość atrybutu" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Wartości atrybutów" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Nazwa" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Obraz" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Obrazy" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Stan magazynowy" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Akcje" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "Ocena" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Podstawowe informacje" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Ważne daty" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Tłumaczenia" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Zamów produkt" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Zamawianie produktów" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Czy biznes" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Konfiguracja" @@ -223,158 +223,158 @@ msgstr "" "Kup zamówienie jako firma, używając dostarczonych `products` z " "`product_uuid` i `attributes`." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "Lista wszystkich grup atrybutów (widok prosty)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Pobieranie pojedynczej grupy atrybutów (widok szczegółowy)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Tworzenie grupy atrybutów" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Usuwanie grupy atrybutów" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "" "Przepisanie istniejącej grupy atrybutów z zachowaniem atrybutów " "nieedytowalnych" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Przepisanie niektórych pól istniejącej grupy atrybutów z zachowaniem " "atrybutów nieedytowalnych" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "Lista wszystkich atrybutów (widok prosty)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Pobieranie pojedynczego atrybutu (widok szczegółowy)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Utwórz atrybut" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Usuwanie atrybutu" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "" "Przepisanie istniejącego atrybutu z zachowaniem atrybutów nieedytowalnych" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" "Przepisanie niektórych pól istniejącego atrybutu z zachowaniem atrybutów " "nieedytowalnych" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "Lista wszystkich wartości atrybutów (widok prosty)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Pobieranie wartości pojedynczego atrybutu (widok szczegółowy)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Tworzenie wartości atrybutu" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Usuwanie wartości atrybutu" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "" "Przepisanie istniejącej wartości atrybutu z zachowaniem atrybutów " "nieedytowalnych" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Przepisz niektóre pola istniejącej wartości atrybutu, zapisując wartości " "nieedytowalne" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "Lista wszystkich kategorii (widok prosty)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Pobieranie pojedynczej kategorii (widok szczegółowy)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Utwórz kategorię" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Usuwanie kategorii" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "Przepisz istniejącą kategorię, zapisując nieedytowalne elementy" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" "Przepisz niektóre pola istniejącej kategorii, zapisując elementy " "nieedytowalne" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "Lista wszystkich kategorii (widok prosty)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" "W przypadku użytkowników niebędących pracownikami zwracane są tylko ich " "własne zamówienia." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Pobieranie pojedynczej kategorii (widok szczegółowy)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Utwórz atrybut" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Nie działa dla użytkowników spoza personelu." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Usuwanie atrybutu" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "Przepisz istniejącą kategorię, zapisując nieedytowalne elementy" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" "Przepisz niektóre pola istniejącej kategorii, zapisując elementy " "nieedytowalne" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Cena zakupu w momencie zamówienia" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -384,19 +384,19 @@ msgstr "" "finalizowany przy użyciu salda użytkownika; Jeśli użyto `force_payment`, " "transakcja jest inicjowana." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "zakup zamówienia bez tworzenia konta" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "finalizuje zakup zamówienia dla niezarejestrowanego użytkownika." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Dodawanie produktu do zamówienia" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -404,11 +404,11 @@ msgstr "" "Dodaje produkt do zamówienia przy użyciu podanych `product_uuid` i " "`attributes`." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Usunięcie produktu z zamówienia" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -416,81 +416,81 @@ msgstr "" "Usuwa produkt z zamówienia przy użyciu podanego `product_uuid` i " "`attributes`." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "Lista wszystkich atrybutów (widok prosty)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "W przypadku użytkowników niebędących pracownikami zwracane są tylko ich " "własne listy życzeń." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Pobieranie pojedynczego atrybutu (widok szczegółowy)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Utwórz atrybut" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Nie działa dla użytkowników spoza personelu." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Usuwanie atrybutu" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "" "Przepisanie istniejącego atrybutu z zachowaniem atrybutów nieedytowalnych" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" "Przepisanie niektórych pól istniejącego atrybutu z zachowaniem atrybutów " "nieedytowalnych" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Dodawanie produktu do zamówienia" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "Dodaje produkt do listy życzeń używając podanego `product_uuid`" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Usunięcie produktu z listy życzeń" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" "Usuwa produkt z listy życzeń przy użyciu podanego identyfikatora " "`product_uuid`." -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Dodaj wiele produktów do listy życzeń" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "Dodaje wiele produktów do listy życzeń przy użyciu podanych `product_uuids`" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Usunięcie produktu z zamówienia" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Usuwa wiele produktów z listy życzeń przy użyciu podanych `product_uuids`" -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -510,59 +510,59 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "Lista wszystkich produktów (widok prosty)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(dokładny) UUID produktu" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(ikony) Nazwa produktu" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(lista) Nazwy kategorii, wielkość liter nie ma znaczenia" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(dokładny) UUID kategorii" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(lista) Nazwy tagów, wielkość liter nie ma znaczenia" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Minimalna cena akcji" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Maksymalna cena akcji" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(dokładnie) Tylko aktywne produkty" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Nazwa marki" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Minimalna ilość zapasów" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(dokładny) Ślimak produktu" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(dokładnie) Cyfrowe vs. fizyczne" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -570,34 +570,62 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Pobieranie pojedynczego produktu (widok szczegółowy)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "UUID produktu lub Slug" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Tworzenie produktu" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "Przepisz istniejący produkt, zachowując nieedytowalne pola" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Usuń produkt" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "Lista wszystkich adresów" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Pobieranie pojedynczego adresu" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Utwórz nowy adres" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Usuwanie adresu" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Aktualizacja całego adresu" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Częściowa aktualizacja adresu" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Wprowadzanie adresu w trybie autouzupełniania" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "Nie podano wyszukiwanego hasła." @@ -631,7 +659,7 @@ msgid "add a product to the order" msgstr "Dodawanie produktu do zamówienia" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Nie znaleziono zamówienia {order_uuid}" @@ -648,42 +676,42 @@ msgstr "Usuń wszystkie produkty z zamówienia" msgid "buy an order" msgstr "Kup zamówienie" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Nieprawidłowy typ pochodzi z metody order.buy(): {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Dodawanie produktu do zamówienia" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Lista życzeń {wishlist_uuid} nie została znaleziona" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Usunięcie produktu z zamówienia" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Usunięcie produktu z zamówienia" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Usunięcie produktu z zamówienia" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Kup zamówienie" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" @@ -691,12 +719,24 @@ msgstr "" "Prześlij atrybuty jako ciąg znaków sformatowany w następujący sposób: " "attr1=value1,attr2=value2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Oryginalny ciąg adresu podany przez użytkownika" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} nie istnieje: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "Limit musi wynosić od 1 do 10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - działa jak urok" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Atrybuty" @@ -709,11 +749,11 @@ msgid "groups of attributes" msgstr "Grupy atrybutów" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Kategorie" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Marki" @@ -722,7 +762,7 @@ msgid "category image url" msgstr "Kategorie" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Procentowy narzut" @@ -737,40 +777,48 @@ msgid "" msgstr "" "Minimalne i maksymalne ceny produktów w tej kategorii, jeśli są dostępne." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Sprzedawcy" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Szerokość geograficzna (współrzędna Y)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Długość geograficzna (współrzędna X)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Jak" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Wartość oceny od 1 do 10 włącznie lub 0, jeśli nie jest ustawiona." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Reprezentuje informacje zwrotne od użytkownika." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Powiadomienia" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "Adres URL pobierania dla tego produktu zamówienia, jeśli dotyczy" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "Lista zamówionych produktów w tym zamówieniu" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Adres rozliczeniowy" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -778,47 +826,47 @@ msgstr "" "Adres wysyłki dla tego zamówienia, pozostaw pusty, jeśli jest taki sam jak " "adres rozliczeniowy lub jeśli nie dotyczy" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Całkowita cena tego zamówienia" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Całkowita ilość produktów w zamówieniu" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Czy wszystkie produkty w zamówieniu są cyfrowe?" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Zamówienia" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "Adres URL obrazu" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Zdjęcia produktu" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Kategoria" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Informacje zwrotne" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Marka" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Grupy atrybutów" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -826,31 +874,31 @@ msgstr "Grupy atrybutów" msgid "quantity" msgstr "Ilość" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Liczba informacji zwrotnych" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Produkty" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Produkty w sprzedaży" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Promocje" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Sprzedawca" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -858,470 +906,478 @@ msgstr "Sprzedawca" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Produkty z listy życzeń" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Listy życzeń" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Nazwa projektu" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "Firmowy adres e-mail" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Nazwa firmy" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Adres firmy" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Numer telefonu firmy" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "\"email from\", czasami musi być użyty zamiast wartości użytkownika hosta" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "Użytkownik hosta poczty e-mail" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Maksymalna kwota płatności" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Minimalna kwota płatności" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Konfiguracja" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Kod języka" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Nazwa języka" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Flaga języka, jeśli istnieje :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Pobierz listę obsługiwanych języków" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Wyniki wyszukiwania produktów" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Wyniki wyszukiwania produktów" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Rodzic tej grupy" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Grupa atrybutów nadrzędnych" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Nazwa grupy atrybutów" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Grupa atrybutów" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Kategoria tego atrybutu" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Grupa tego atrybutu" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "String" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Integer" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Pływak" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Wartość logiczna" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Tablica" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Obiekt" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Typ wartości atrybutu" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Typ wartości" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Nazwa tego atrybutu" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Nazwa atrybutu" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Atrybut" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Atrybut tej wartości" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Produkt powiązany" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "Konkretna wartość dla tego atrybutu" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Prześlij obraz reprezentujący tę kategorię" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Obraz kategorii" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "Zdefiniuj procentowy narzut dla produktów w tej kategorii." -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "Rodzic tej kategorii w celu utworzenia struktury hierarchicznej" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Kategoria nadrzędna" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Nazwa kategorii" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Podaj nazwę dla tej kategorii" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Dodaj szczegółowy opis dla tej kategorii" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Opis kategorii" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Nazwa tej marki" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Nazwa marki" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Prześlij logo reprezentujące tę markę" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Mały wizerunek marki" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Prześlij duże logo reprezentujące tę markę" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Duży wizerunek marki" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Dodaj szczegółowy opis marki" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Opis marki" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Opcjonalne kategorie, z którymi powiązana jest ta marka" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Kategorie" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Kategoria, do której należy ten produkt" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Opcjonalnie można powiązać ten produkt z marką" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Tagi produktu" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Wskazuje, czy produkt jest dostarczany cyfrowo." -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "Czy produkt jest cyfrowy?" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Wyraźna nazwa identyfikująca produkt" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Nazwa produktu" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Dodaj szczegółowy opis produktu" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Opis produktu" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Numer części dla tego produktu" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Numer części" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Przechowuje dane uwierzytelniające i punkty końcowe wymagane do komunikacji " "API dostawcy." -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Informacje o uwierzytelnianiu" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "Definiowanie znaczników dla produktów pobranych od tego dostawcy" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Procentowa marża sprzedawcy" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Nazwa tego sprzedawcy" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Nazwa sprzedawcy" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "Komentarze użytkowników na temat ich doświadczeń z produktem" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Komentarze zwrotne" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Odnosi się do konkretnego produktu w zamówieniu, którego dotyczy ta " "informacja zwrotna." -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Powiązany produkt zamówienia" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "Ocena produktu przypisana przez użytkownika" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Ocena produktu" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Informacje zwrotne" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "Adres rozliczeniowy użyty dla tego zamówienia" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Opcjonalny kod promocyjny zastosowany do tego zamówienia" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Zastosowany kod promocyjny" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "Adres wysyłki użyty dla tego zamówienia" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Adres wysyłki" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Aktualny status zamówienia w jego cyklu życia" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Status zamówienia" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "Struktura JSON powiadomień do wyświetlenia użytkownikom, w interfejsie " "administratora używany jest widok tabeli" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "Reprezentacja JSON atrybutów zamówienia dla tego zamówienia" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "Użytkownik, który złożył zamówienie" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "Użytkownik" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "Znacznik czasu, kiedy zamówienie zostało sfinalizowane" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Kup czas" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "Czytelny dla człowieka identyfikator zamówienia" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "Identyfikator czytelny dla człowieka" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Zamówienie" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 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:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "Nie można dodać nieaktywnych produktów do zamówienia" -#: core/models.py:563 +#: core/models.py:565 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:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} nie istnieje: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nie istnieje z zapytaniem <{query}>." -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Kod promocyjny nie istnieje" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "Możesz kupować tylko produkty fizyczne z podanym adresem wysyłki!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "Adres nie istnieje" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Nieprawidłowa wartość siły" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "Nie można kupić pustego zamówienia!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Niewystarczające środki do zrealizowania zamówienia" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1330,193 +1386,188 @@ msgstr "" "informacje: imię i nazwisko klienta, adres e-mail klienta, numer telefonu " "klienta." -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Nieprawidłowa metoda płatności" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Cena zakupu w momencie zamówienia" -#: core/models.py:790 +#: core/models.py:779 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:791 +#: core/models.py:780 msgid "internal comments" msgstr "Uwagi wewnętrzne" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "Powiadomienia użytkownika" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "Reprezentacja JSON atrybutów tego elementu" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Zamówione atrybuty produktu" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Odniesienie do zamówienia nadrzędnego zawierającego ten produkt" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Zamówienie nadrzędne" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "Konkretny produkt powiązany z tą linią zamówienia" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Ilość tego konkretnego produktu w zamówieniu" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Ilość produktu" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Aktualny status tego produktu w zamówieniu" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Status linii produktów" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Wewnętrzny identyfikator tagu produktu" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Nazwa tagu" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "Przyjazna dla użytkownika nazwa etykiety produktu" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Wyświetlana nazwa znacznika" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Etykieta produktu" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "" "Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "Tekst alternatywny obrazu" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Prześlij plik obrazu dla tego produktu" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Obraz produktu" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Określa kolejność wyświetlania obrazów" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Priorytet wyświetlania" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "Produkt, który przedstawia ten obraz" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Zdjęcia produktów" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Identyfikator kodu promocyjnego" -#: core/models.py:964 +#: core/models.py:953 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:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Stała kwota rabatu" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "Rabat procentowy stosowany w przypadku niewykorzystania stałej kwoty" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Rabat procentowy" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Znacznik czasu wygaśnięcia kodu promocyjnego" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "Końcowy czas ważności" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Znacznik czasu, od którego ten kod promocyjny jest ważny" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "Czas rozpoczęcia ważności" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Znacznik czasu użycia" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "Użytkownik przypisany do tego kodu promocyjnego, jeśli dotyczy" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Przypisany użytkownik" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Kod promocyjny" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Kody promocyjne" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1524,143 +1575,187 @@ msgstr "" "Należy zdefiniować tylko jeden rodzaj rabatu (kwotowy lub procentowy), ale " "nie oba lub żaden z nich." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "Kod promocyjny został już wykorzystany" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Nieprawidłowy typ rabatu dla kodu promocyjnego {self.uuid}." -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Rabat procentowy na wybrane produkty" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Procent rabatu" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Podaj unikalną nazwę tej promocji" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Nazwa promocji" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Opis promocji" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Wybierz produkty objęte promocją" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Dołączone produkty" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Promocja" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "Sprzedawca dostarczający ten produkt" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Powiązany sprzedawca" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Ostateczna cena dla klienta po uwzględnieniu marży" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Cena sprzedaży" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "Produkt powiązany z tym wpisem magazynowym" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "Cena zapłacona sprzedawcy za ten produkt" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Cena zakupu przez sprzedawcę" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Dostępna ilość produktu w magazynie" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Ilość w magazynie" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "Jednostki SKU przypisane przez dostawcę w celu identyfikacji produktu" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "SKU sprzedawcy" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "Plik cyfrowy powiązany z tymi zapasami, jeśli dotyczy" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Plik cyfrowy" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Zapisy magazynowe" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Produkty, które użytkownik oznaczył jako poszukiwane" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "Użytkownik posiadający tę listę życzeń" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Właściciel listy życzeń" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Lista życzeń" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Pobierz" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Pliki do pobrania" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Film dokumentalny" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Filmy dokumentalne" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Nierozwiązany" +#: core/models.py:1233 +msgid "street" +msgstr "ul." + +#: core/models.py:1234 +msgid "district" +msgstr "Okręg" + +#: core/models.py:1235 +msgid "city" +msgstr "Miasto" + +#: core/models.py:1236 +msgid "region" +msgstr "Region" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Kod pocztowy" + +#: core/models.py:1238 +msgid "country" +msgstr "Kraj" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Geolocation Point(Longitude, Latitude)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Pełna odpowiedź JSON z geokodera dla tego adresu" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Przechowywana odpowiedź JSON z usługi geokodowania" + +#: core/models.py:1270 +msgid "address" +msgstr "Adres" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Adresy" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Błąd podczas tworzenia kodu promocyjnego: {e!s}" @@ -1874,6 +1969,10 @@ msgstr "{config.PROJECT_NAME} | Zamówienie dostarczone" msgid "you do not have permission to perform this action." msgstr "Nie masz uprawnień do wykonania tej akcji." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "Parametr NOMINATIM_URL musi być skonfigurowany!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1891,3 +1990,8 @@ msgstr "Zasób cyfrowy można pobrać tylko raz" #: core/views.py:264 msgid "favicon not found" msgstr "nie znaleziono favicon" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Błąd geokodowania: {e}" diff --git a/core/locale/pt_BR/LC_MESSAGES/django.mo b/core/locale/pt_BR/LC_MESSAGES/django.mo index d2f011f1..374dab64 100644 Binary files a/core/locale/pt_BR/LC_MESSAGES/django.mo and b/core/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/core/locale/pt_BR/LC_MESSAGES/django.po b/core/locale/pt_BR/LC_MESSAGES/django.po index bebac405..8530e536 100644 --- a/core/locale/pt_BR/LC_MESSAGES/django.po +++ b/core/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,47 +51,47 @@ msgstr "Modificado" msgid "when the object was last modified" msgstr "Quando o objeto foi editado pela última vez" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Ativar %(verbose_name_plural)s selecionados" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Desativar %(verbose_name_plural)s selecionados" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Valor do atributo" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Valores de atributos" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Nome" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Imagem" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Imagens" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Estoque" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Ações" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "Avaliação do produto" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Informações básicas" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Datas importantes" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Traduções" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Pedido de produto" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Solicitar produtos" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "É um negócio" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Configuração" @@ -224,149 +224,149 @@ msgstr "" "Compre um pedido como uma empresa, usando os `products` fornecidos com " "`product_uuid` e `attributes`." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "Listar todos os grupos de atributos (visualização simples)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Recuperar um único grupo de atributos (visualização detalhada)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Criar um grupo de atributos" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Excluir um grupo de atributos" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "Reescrever um grupo de atributos existente salvando os não editáveis" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Reescreva alguns campos de um grupo de atributos existente salvando os não " "editáveis" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "Listar todos os atributos (visualização simples)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Recuperar um único atributo (visualização detalhada)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Criar um atributo" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Excluir um atributo" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "Reescreva um atributo existente salvando os não editáveis" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" "Reescreva alguns campos de um atributo existente salvando os não editáveis" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "Listar todos os valores de atributos (visualização simples)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Recuperar um único valor de atributo (visualização detalhada)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Criar um valor de atributo" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Excluir um valor de atributo" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "Reescreva um valor de atributo existente salvando os não editáveis" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Reescreva alguns campos de um valor de atributo existente salvando os não " "editáveis" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "Listar todas as categorias (visualização simples)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Recuperar uma única categoria (visualização detalhada)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Criar uma categoria" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Excluir uma categoria" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "Reescrever uma categoria existente salvando itens não editáveis" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" "Reescreva alguns campos de uma categoria existente salvando os não editáveis" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "Listar todas as categorias (visualização simples)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" "Para usuários não funcionários, apenas seus próprios pedidos são devolvidos." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Recuperar uma única categoria (visualização detalhada)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Criar um atributo" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Não funciona para usuários que não são da equipe." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Excluir um atributo" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "Reescrever uma categoria existente salvando itens não editáveis" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" "Reescreva alguns campos de uma categoria existente salvando os não editáveis" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Preço de compra no momento do pedido" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -376,19 +376,19 @@ msgstr "" "concluída usando o saldo do usuário; se `force_payment` for usado, uma " "transação será iniciada." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "comprar um pedido sem criar uma conta" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "finaliza a compra do pedido para um usuário não registrado." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Adicionar um produto ao pedido" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -396,11 +396,11 @@ msgstr "" "Adiciona um produto a um pedido usando o `product_uuid` e os `attributes` " "fornecidos." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Remover um produto do pedido" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -408,81 +408,81 @@ msgstr "" "Remove um produto de um pedido usando o `product_uuid` e os `attributes` " "fornecidos." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "Listar todos os atributos (visualização simples)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "Para usuários que não pertencem à equipe, apenas suas próprias listas de " "desejos são retornadas." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Recuperar um único atributo (visualização detalhada)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Criar um atributo" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Não funciona para usuários que não são da equipe." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Excluir um atributo" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "Reescreva um atributo existente salvando os não editáveis" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" "Reescreva alguns campos de um atributo existente salvando os não editáveis" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Adicionar um produto ao pedido" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "" "Adiciona um produto a uma lista de desejos usando o `product_uuid` fornecido" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Remover um produto da lista de desejos" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" "Remove um produto de uma lista de desejos usando o `product_uuid` fornecido" -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Adicionar muitos produtos à lista de desejos" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "Adiciona vários produtos a uma lista de desejos usando os `product_uuids` " "fornecidos" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Remover um produto do pedido" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Remove vários produtos de uma lista de desejos usando os `product_uuids` " "fornecidos" -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -502,60 +502,60 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "Listar todos os produtos (visualização simples)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "UUID (exato) do produto" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(icontains) Nome do produto" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 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:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(exato) UUID da categoria" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 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:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Preço mínimo das ações" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Preço máximo da ação" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(exato) Somente produtos ativos" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Nome da marca" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Quantidade mínima em estoque" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(exato) Slug do produto" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(exato) Digital vs. físico" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -563,34 +563,62 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Recuperar um único produto (visualização detalhada)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "UUID ou Slug do produto" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Criar um produto" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 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:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Excluir um produto" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "Listar todos os endereços" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Recuperar um único endereço" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Criar um novo endereço" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Excluir um endereço" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Atualizar um endereço inteiro" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Atualizar parcialmente um endereço" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Entrada de endereço com preenchimento automático" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "Nenhum termo de pesquisa foi fornecido." @@ -624,7 +652,7 @@ msgid "add a product to the order" msgstr "Adicionar um produto ao pedido" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Pedido {order_uuid} não encontrado" @@ -641,54 +669,66 @@ msgstr "Remover todos os produtos do pedido" msgid "buy an order" msgstr "Comprar um pedido" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "O tipo errado veio do método order.buy(): {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Adicionar um produto ao pedido" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Lista de desejos {wishlist_uuid} não encontrada" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Remover um produto do pedido" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Remover um produto do pedido" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Remover um produto do pedido" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Comprar um pedido" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" msgstr "" "Envie os atributos como uma string formatada como attr1=value1,attr2=value2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Cadeia de endereços original fornecida pelo usuário" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} não existe: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "O limite deve estar entre 1 e 10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funciona muito bem" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Atributos" @@ -701,11 +741,11 @@ msgid "groups of attributes" msgstr "Grupos de atributos" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Categorias" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Marcas" @@ -714,7 +754,7 @@ msgid "category image url" msgstr "Categorias" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Porcentagem de marcação" @@ -728,41 +768,49 @@ msgid "" "minimum and maximum prices for products in this category, if available." msgstr "Preços mínimo e máximo dos produtos dessa categoria, se disponíveis." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Vendors" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Latitude (coordenada Y)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Longitude (coordenada X)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Como fazer" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" "Valor de classificação de 1 a 10, inclusive, ou 0 se não estiver definido." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Representa o feedback de um usuário." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Notificações" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "URL de download para este produto do pedido, se aplicável" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "Uma lista dos produtos solicitados nesse pedido" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Endereço de cobrança" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -770,47 +818,47 @@ msgstr "" "Endereço de entrega para este pedido, deixe em branco se for o mesmo que o " "endereço de cobrança ou se não for aplicável" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Preço total deste pedido" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Quantidade total de produtos no pedido" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Todos os produtos estão no pedido digital?" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Pedidos" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "URL da imagem" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Imagens do produto" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Categoria" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Grupos de atributos" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -818,31 +866,31 @@ msgstr "Grupos de atributos" msgid "quantity" msgstr "Quantidade" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Número de feedbacks" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Produtos" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Códigos promocionais" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Produtos à venda" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Promoções" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -850,468 +898,478 @@ msgstr "Vendor" msgid "product" msgstr "Produto" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Produtos da lista de desejos" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Listas de desejos" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Nome do projeto" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "E-mail da empresa" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Nome da empresa" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Endereço da empresa" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Número de telefone da empresa" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', às vezes ele deve ser usado em vez do valor do usuário do host" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "Usuário do host de e-mail" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Valor máximo para pagamento" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Valor mínimo para pagamento" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Configuração" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Código do idioma" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Nome do idioma" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Sinalizador de idioma, se houver :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Obter uma lista de idiomas suportados" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Resultados da pesquisa de produtos" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Resultados da pesquisa de produtos" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Pai deste grupo" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Grupo de atributos pai" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Nome do grupo de atributos" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Grupo de atributos" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Categoria desse atributo" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Grupo desse atributo" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "Cordas" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Inteiro" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Flutuação" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Booleano" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Matriz" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Objeto" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Tipo do valor do atributo" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Tipo de valor" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Nome desse atributo" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Nome do atributo" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Atributo" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Atributo desse valor" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Produto associado" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "O valor específico para esse atributo" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Faça upload de uma imagem que represente essa categoria" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Imagem da categoria" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "Definir uma porcentagem de majoração para os produtos dessa categoria" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "Pai dessa categoria para formar uma estrutura hierárquica" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Categoria dos pais" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Nome da categoria" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Forneça um nome para essa categoria" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Adicione uma descrição detalhada para essa categoria" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Descrição da categoria" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Nome da marca" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Nome da marca" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Faça upload de um logotipo que represente essa marca" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Imagem pequena da marca" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Faça upload de um logotipo grande que represente essa marca" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Imagem de marca grande" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Adicione uma descrição detalhada da marca" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Descrição da marca" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Categorias opcionais às quais essa marca está associada" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Categorias" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Categoria à qual este produto pertence" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Opcionalmente, associe esse produto a uma marca" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Etiquetas do produto" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Indica se esse produto é entregue digitalmente" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "O produto é digital" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Fornecer um nome de identificação claro para o produto" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Nome do produto" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Adicione uma descrição detalhada do produto" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Descrição do produto" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Número de peça para este produto" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Número da peça" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Armazena as credenciais e os pontos de extremidade necessários para a " "comunicação da API do fornecedor" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Informações de autenticação" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "Definir a marcação para produtos recuperados desse fornecedor" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Porcentagem da margem de lucro do fornecedor" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Nome do fornecedor" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Nome do fornecedor" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "" "Comentários fornecidos pelo usuário sobre sua experiência com o produto" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Comentários de feedback" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Faz referência ao produto específico em um pedido sobre o qual se trata esse" " feedback" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Produto de pedido relacionado" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "Classificação atribuída pelo usuário ao produto" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Avaliação do produto" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Feedback" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "O endereço de cobrança usado para esse pedido" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Código promocional aplicado" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "O endereço de entrega usado para esse pedido" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Endereço de entrega" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Status atual do pedido em seu ciclo de vida" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Status do pedido" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "Estrutura JSON de notificações a serem exibidas aos usuários; na interface " "do usuário do administrador, é usada a visualização de tabela" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "Representação JSON dos atributos do pedido para esse pedido" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "O usuário que fez o pedido" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "Usuário" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "O registro de data e hora em que o pedido foi finalizado" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Tempo de compra" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "Um identificador legível por humanos para o pedido" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "ID legível por humanos" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Pedido" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 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:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "Não é possível adicionar produtos inativos ao pedido" -#: core/models.py:563 +#: core/models.py:565 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:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} não existe: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} não existe com a consulta <{query}>" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "O código promocional não existe" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "" +"Você só pode comprar produtos físicos com o endereço de entrega " +"especificado!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "O endereço não existe" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Valor de força inválido" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "Você não pode comprar um pedido vazio!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Fundos insuficientes para concluir o pedido" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1319,194 +1377,188 @@ 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:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Método de pagamento inválido" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Preço de compra no momento do pedido" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "" "Comentários internos para administradores sobre este produto encomendado" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Comentários internos" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "Notificações do usuário" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "Representação JSON dos atributos desse item" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Atributos ordenados do produto" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Referência ao pedido pai que contém esse produto" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Ordem dos pais" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "O produto específico associado a essa linha de pedido" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Quantidade desse produto específico no pedido" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Quantidade do produto" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Status atual desse produto no pedido" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Status da linha de produtos" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Identificador de tag interno para a tag do produto" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Nome da etiqueta" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "Nome de fácil utilização para a etiqueta do produto" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Nome de exibição da tag" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Etiqueta do produto" -#: core/models.py:915 +#: core/models.py:904 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:916 +#: core/models.py:905 msgid "image alt text" msgstr "Texto alternativo da imagem" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Faça o upload do arquivo de imagem para este produto" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Imagem do produto" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Determina a ordem em que as imagens são exibidas" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Prioridade de exibição" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "O produto que esta imagem representa" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Imagens do produto" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Identificador de código promocional" -#: core/models.py:964 +#: core/models.py:953 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:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Valor do desconto fixo" -#: core/models.py:971 +#: core/models.py:960 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:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Desconto percentual" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Registro de data e hora em que o código promocional expira" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "Tempo de validade final" -#: core/models.py:983 +#: core/models.py:972 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:984 +#: core/models.py:973 msgid "start validity time" msgstr "Hora de início da validade" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Registro de data e hora de uso" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "Usuário atribuído a esse código promocional, se aplicável" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Usuário atribuído" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Código promocional" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Códigos promocionais" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1514,145 +1566,189 @@ msgstr "" "Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não" " ambos ou nenhum." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "O código promocional já foi usado" -#: core/models.py:1038 +#: core/models.py:1030 #, 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:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Desconto percentual para os produtos selecionados" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Porcentagem de desconto" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Forneça um nome exclusivo para essa promoção" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Nome da promoção" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Descrição da promoção" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Selecione quais produtos estão incluídos nessa promoção" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Produtos incluídos" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Promoção" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "O fornecedor que fornece esse estoque de produtos" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Fornecedor associado" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Preço final para o cliente após as marcações" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Preço de venda" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "O produto associado a essa entrada em estoque" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "O preço pago ao fornecedor por esse produto" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Preço de compra do fornecedor" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Quantidade disponível do produto em estoque" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Quantidade em estoque" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU atribuído pelo fornecedor para identificar o produto" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "SKU do fornecedor" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "Arquivo digital associado a esse estoque, se aplicável" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Arquivo digital" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Entradas de estoque" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Produtos que o usuário marcou como desejados" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "Usuário que possui esta lista de desejos" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Proprietário da lista de desejos" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Lista de desejos" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Baixar" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Downloads" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Documentário" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Documentários" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Não resolvido" +#: core/models.py:1233 +msgid "street" +msgstr "Rua" + +#: core/models.py:1234 +msgid "district" +msgstr "Distrito" + +#: core/models.py:1235 +msgid "city" +msgstr "Cidade" + +#: core/models.py:1236 +msgid "region" +msgstr "Região" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Código postal" + +#: core/models.py:1238 +msgid "country" +msgstr "País" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Ponto de geolocalização (Longitude, Latitude)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Resposta JSON completa do geocodificador para este endereço" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Resposta JSON armazenada do serviço de geocodificação" + +#: core/models.py:1270 +msgid "address" +msgstr "Endereço" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Endereços" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Erro durante a criação do código promocional: {e!s}" @@ -1863,6 +1959,10 @@ msgstr "{config.PROJECT_NAME} | Order Delivered" msgid "you do not have permission to perform this action." msgstr "Você não tem permissão para executar essa ação." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "O parâmetro NOMINATIM_URL deve ser configurado!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1880,3 +1980,8 @@ msgstr "Você só pode fazer o download do ativo digital uma vez" #: core/views.py:264 msgid "favicon not found" msgstr "favicon não encontrado" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Erro de geocodificação: {e}" diff --git a/core/locale/ro_RO/LC_MESSAGES/django.mo b/core/locale/ro_RO/LC_MESSAGES/django.mo index 85116c53..5b8ce07c 100644 Binary files a/core/locale/ro_RO/LC_MESSAGES/django.mo and b/core/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/core/locale/ro_RO/LC_MESSAGES/django.po b/core/locale/ro_RO/LC_MESSAGES/django.po index 9f533d67..09c5d9c2 100644 --- a/core/locale/ro_RO/LC_MESSAGES/django.po +++ b/core/locale/ro_RO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,47 +51,47 @@ msgstr "Modificat" msgid "when the object was last modified" msgstr "Când a fost editat obiectul ultima dată" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activați %(verbose_name_plural)s selectate" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Dezactivați %(verbose_name_plural)s selectate" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Atribut Valoare" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Valori ale atributului" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Nume și prenume" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Imagine" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Imagini" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Stoc" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Stocuri" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "Evaluarea produsului" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Informații de bază" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Date importante" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Traduceri" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Comanda Produs" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Comandați produse" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Este o afacere" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Configurare" @@ -225,156 +225,156 @@ msgstr "" "Achiziționați o comandă ca o afacere, utilizând `products` cu `product_uuid`" " și `attributes` furnizate." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "Lista tuturor grupurilor de atribute (vizualizare simplă)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Recuperarea unui singur grup de atribute (vedere detaliată)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Crearea unui grup de atribute" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Ștergerea unui grup de atribute" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "" "Rescrierea unui grup de atribute existent cu salvarea elementelor " "needitabile" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rescrierea unor câmpuri ale unui grup de atribute existent, cu salvarea " "elementelor needitabile" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "Lista tuturor atributelor (vizualizare simplă)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Recuperarea unui singur atribut (vedere detaliată)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Crearea unui atribut" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Ștergerea unui atribut" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "Rescrierea unui atribut existent cu salvarea elementelor needitabile" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" "Rescrieți unele câmpuri ale unui atribut existent salvând elementele " "needitabile" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "Lista tuturor valorilor atributelor (vizualizare simplă)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Recuperarea valorii unui singur atribut (vedere detaliată)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Crearea unei valori de atribut" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Ștergerea unei valori de atribut" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "" "Rescrierea unei valori de atribut existente care salvează non-editabile" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rescrierea unor câmpuri ale unei valori de atribut existente salvând " "elementele needitabile" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "Lista tuturor categoriilor (vizualizare simplă)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Recuperarea unei singure categorii (vedere detaliată)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Creați o categorie" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Ștergeți o categorie" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "Rescrieți o categorie existentă salvând non-editabile" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" "Rescrieți unele câmpuri ale unei categorii existente, salvând elementele " "needitabile" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "Lista tuturor categoriilor (vizualizare simplă)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" "Pentru utilizatorii care nu fac parte din personal, sunt returnate doar " "comenzile proprii." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Recuperarea unei singure categorii (vedere detaliată)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Crearea unui atribut" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Nu funcționează pentru utilizatorii care nu fac parte din personal." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Ștergerea unui atribut" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "Rescrieți o categorie existentă salvând non-editabile" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" "Rescrieți unele câmpuri ale unei categorii existente, salvând elementele " "needitabile" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Prețul de achiziție la momentul comenzii" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -384,19 +384,19 @@ msgstr "" "achiziția este finalizată utilizând soldul utilizatorului; Dacă se " "utilizează `force_payment`, este inițiată o tranzacție." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "achiziționarea unei comenzi fără crearea unui cont" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "finalizează achiziția comenzii pentru un utilizator neînregistrat." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Adăugați un produs la comandă" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -404,11 +404,11 @@ msgstr "" "Adaugă un produs la o comandă folosind `product_uuid` și `attributes` " "furnizate." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Eliminați un produs din comandă" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -416,82 +416,82 @@ msgstr "" "Elimină un produs dintr-o comandă folosind `product_uuid` și `attributes` " "furnizate." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "Lista tuturor atributelor (vizualizare simplă)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "Pentru utilizatorii care nu fac parte din personal, sunt returnate doar " "propriile liste de dorințe." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Recuperarea unui singur atribut (vedere detaliată)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Crearea unui atribut" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Nu funcționează pentru utilizatorii care nu fac parte din personal." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Ștergerea unui atribut" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "Rescrierea unui atribut existent cu salvarea elementelor needitabile" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" "Rescrieți unele câmpuri ale unui atribut existent salvând elementele " "needitabile" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Adăugați un produs la comandă" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "" "Adaugă un produs la o listă de dorințe folosind `product_uuid` furnizat" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Eliminați un produs din lista de dorințe" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" "Înlătură un produs dintr-o listă de dorințe folosind `product_uuid` furnizat" -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Adăugați mai multe produse la lista de dorințe" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "Adaugă mai multe produse la o listă de dorințe folosind `product_uuids` " "furnizat" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Eliminați un produs din comandă" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Îndepărtează mai multe produse dintr-o listă de dorințe folosind " "`product_uuids` furnizat" -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -511,59 +511,59 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "Listează toate produsele (vizualizare simplă)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(exact) UUID al produsului" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(icontains) Denumirea produsului" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(listă) Numele categoriilor, fără deosebire de majuscule" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(exact) UUID al categoriei" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(listă) Nume de etichete, fără diferențiere de majuscule" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Prețul minim al acțiunilor" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Prețul maxim al acțiunilor" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(exact) Numai produse active" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Denumire comercială" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Cantitatea minimă de stoc" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(exact) Limbajul produsului" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(exact) Digital vs. fizic" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 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,63 @@ 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:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Recuperarea unui singur produs (vedere detaliată)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "UUID sau Slug al produsului" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Creați un produs" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 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:411 +#: core/docs/drf/viewsets.py:414 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:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Ștergeți un produs" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "Enumerați toate adresele" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Recuperarea unei singure adrese" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Creați o adresă nouă" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Ștergeți o adresă" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Actualizarea unei adrese întregi" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Actualizarea parțială a unei adrese" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Autocompletare adresă de intrare" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "Nu a fost furnizat niciun termen de căutare." @@ -633,7 +661,7 @@ msgid "add a product to the order" msgstr "Adăugați un produs la comandă" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Comanda {order_uuid} nu a fost găsită" @@ -650,43 +678,43 @@ msgstr "Eliminați toate produsele din comandă" msgid "buy an order" msgstr "Cumpărați o comandă" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 msgid "please provide either order_uuid or order_hr_id - mutually exclusive" 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Metoda order.buy() a generat un tip greșit: {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Adăugați un produs la comandă" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Lista dorințelor {wishlist_uuid} nu a fost găsită" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Eliminați un produs din comandă" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Eliminați un produs din comandă" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Eliminați un produs din comandă" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Cumpărați o comandă" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" @@ -694,12 +722,24 @@ msgstr "" "Vă rugăm să trimiteți atributele sub formă de șir format ca attr1=valoare1, " "attr2=valoare2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Șirul de adrese original furnizat de utilizator" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} nu există: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "Limita trebuie să fie între 1 și 10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funcționează ca un farmec" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Atribute" @@ -712,11 +752,11 @@ msgid "groups of attributes" msgstr "Grupuri de atribute" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Categorii" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Mărci" @@ -725,7 +765,7 @@ msgid "category image url" msgstr "Categorii" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Procentul de majorare" @@ -742,40 +782,48 @@ msgstr "" "Prețurile minime și maxime pentru produsele din această categorie, dacă sunt" " disponibile." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Furnizori" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Latitudine (coordonata Y)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Longitudine (coordonata X)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Cum să" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "Valoare nominală de la 1 la 10, inclusiv, sau 0 dacă nu este setată." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Reprezintă feedback de la un utilizator." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Notificări" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "URL de descărcare pentru acest produs de comandă, dacă este cazul" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "O listă a produselor comandate în această comandă" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Adresa de facturare" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -783,47 +831,47 @@ msgstr "" "Adresa de expediere pentru această comandă, lăsați în alb dacă este aceeași " "cu adresa de facturare sau dacă nu se aplică" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Prețul total al acestei comenzi" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Cantitatea totală de produse din comandă" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Sunt toate produsele din comanda digitală" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Ordine" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "URL imagine" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Imagini ale produsului" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Categorie" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Feedback-uri" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Marca" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Grupuri de atribute" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -831,31 +879,31 @@ msgstr "Grupuri de atribute" msgid "quantity" msgstr "Cantitate" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Numărul de reacții" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Produse" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Coduri promoționale" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Produse scoase la vânzare" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Promoții" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Furnizor" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -863,473 +911,482 @@ msgstr "Furnizor" msgid "product" msgstr "Produs" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Produse dorite" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Liste de dorințe" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Numele proiectului" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "Email companie" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Numele companiei" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Adresa companiei" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Numărul de telefon al companiei" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "\"e-mail de la\", uneori trebuie să fie utilizat în locul valorii " "utilizatorului gazdă" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "Utilizator gazdă e-mail" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Suma maximă pentru plată" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Suma minimă pentru plată" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Configurație" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Codul limbii" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Numele limbii" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Indicatorul de limbă, dacă există :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Obțineți o listă a limbilor acceptate" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Rezultate căutare produse" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Rezultate căutare produse" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Părinte al acestui grup" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Grup de atribute părinte" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Numele grupului de atribute" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Grup de atribute" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Categoria acestui atribut" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Grupul acestui atribut" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "Șir de caractere" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Număr întreg" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Float" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Boolean" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Array" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Obiect" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Tipul valorii atributului" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Tipul de valoare" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Denumirea acestui atribut" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Numele atributului" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Atribut" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Atributul acestei valori" -#: core/models.py:141 +#: core/models.py:143 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:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Produs asociat" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "Valoarea specifică pentru acest atribut" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Încărcați o imagine care reprezintă această categorie" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Categorie imagine" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "" "Definiți un procent de majorare pentru produsele din această categorie" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "Părinte al acestei categorii pentru a forma o structură ierarhică" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Categoria de părinți" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Numele categoriei" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Furnizați un nume pentru această categorie" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Adăugați o descriere detaliată pentru această categorie" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Descriere categorie" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Denumirea acestui brand" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Nume de marcă" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Încărcați un logo care reprezintă acest brand" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Brand imagine mică" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Încărcați un logo mare care reprezintă acest brand" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Imagine de marcă mare" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Adăugați o descriere detaliată a mărcii" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Descrierea mărcii" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Categorii opționale cu care acest brand este asociat" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Categorii" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Categoria din care face parte acest produs" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "Opțional, asociați acest produs cu un brand" -#: core/models.py:279 +#: core/models.py:281 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:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Etichete de produs" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Indică dacă acest produs este livrat digital" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "Produsul este digital" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Furnizați o denumire clară de identificare a produsului" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Denumirea produsului" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Adăugați o descriere detaliată a produsului" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Descrierea produsului" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Numărul piesei pentru acest produs" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Numărul piesei" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stochează acreditările și punctele finale necesare pentru comunicarea API a " "furnizorului" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Informații privind autentificarea" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definirea marjei de profit pentru produsele preluate de la acest furnizor" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Procentul de majorare al furnizorului" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Numele acestui vânzător" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Numele furnizorului" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "" "Comentarii furnizate de utilizatori cu privire la experiența lor cu produsul" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Comentarii de feedback" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Face referire la produsul specific dintr-o comandă despre care este vorba în" " acest feedback" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Produs aferent comenzii" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "Rating atribuit de utilizator pentru produs" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Evaluarea produsului" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Feedback" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "Adresa de facturare utilizată pentru această comandă" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Cod promoțional opțional aplicat la această comandă" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Cod promoțional aplicat" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "Adresa de expediere utilizată pentru această comandă" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Adresa de expediere" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Stadiul actual al comenzii în ciclul său de viață" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Stadiul comenzii" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "Structura JSON a notificărilor care urmează să fie afișate utilizatorilor, " "în interfața de administrare este utilizată vizualizarea tabelară" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "Reprezentarea JSON a atributelor comenzii pentru această comandă" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "Utilizatorul care a plasat comanda" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "Utilizator" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "Momentul în care comanda a fost finalizată" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Cumpărați timp" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "Un identificator ușor de citit pentru comandă" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "ID lizibil de către om" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Comandă" -#: core/models.py:517 +#: core/models.py:519 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 +#: core/models.py:543 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:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "Nu puteți adăuga produse inactive la comandă" -#: core/models.py:563 +#: core/models.py:565 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:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} nu există: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 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:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nu există cu interogarea <{query}>" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Codul promoțional nu există" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "" +"Puteți cumpăra numai produse fizice cu adresa de expediere specificată!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "Adresa nu există" + +#: core/models.py:659 core/models.py:700 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:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Valoare forță invalidă" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "Nu puteți achiziționa o comandă goală!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Insuficiența fondurilor pentru finalizarea comenzii" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1337,191 +1394,186 @@ 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:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Metodă de plată invalidă" -#: 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:784 +#: core/models.py:773 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:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Prețul de achiziție la momentul comenzii" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarii interne pentru administratori cu privire la acest produs comandat" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Observații interne" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "Notificări pentru utilizatori" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "Reprezentarea JSON a atributelor acestui element" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Atribute de produs ordonate" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Trimitere la comanda mamă care conține acest produs" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Ordinul părinților" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "Produsul specific asociat cu această linie de comandă" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Cantitatea acestui produs specific din comandă" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Cantitatea produsului" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Starea actuală a acestui produs în comandă" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Starea liniei de produse" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Identificator intern de etichetă pentru eticheta produsului" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Nume etichetă" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "Nume ușor de utilizat pentru eticheta produsului" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Nume afișare etichetă" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Etichetă produs" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "Furnizați text alternativ pentru imagine pentru accesibilitate" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "Textul alt al imaginii" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Încărcați fișierul de imagine pentru acest produs" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Imaginea produsului" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Determină ordinea în care sunt afișate imaginile" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Prioritatea afișării" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "Produsul pe care îl reprezintă această imagine" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Imagini ale produsului" -#: core/models.py:956 +#: core/models.py:945 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:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Cod promoțional de identificare" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "Valoarea fixă a reducerii aplicate dacă procentul nu este utilizat" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Valoarea fixă a reducerii" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentul de reducere aplicat dacă suma fixă nu este utilizată" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Reducere procentuală" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Data la care expiră codul promoțional" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "Timpul final de valabilitate" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Timestamp de la care acest cod promoțional este valabil" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "Ora de începere a valabilității" -#: core/models.py:989 +#: core/models.py:978 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:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Timestamp de utilizare" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "Utilizatorul atribuit acestui cod promoțional, dacă este cazul" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Utilizator atribuit" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Cod promoțional" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Coduri promoționale" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1529,143 +1581,187 @@ msgstr "" "Trebuie definit un singur tip de reducere (sumă sau procent), dar nu ambele " "sau niciuna." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "Codul promoțional a fost deja utilizat" -#: core/models.py:1038 +#: core/models.py:1030 #, 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:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Procentul de reducere pentru produsele selectate" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Procent de reducere" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Furnizați un nume unic pentru această promoție" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Numele promoției" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Descrierea promoției" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Selectați ce produse sunt incluse în această promoție" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Produse incluse" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Promovare" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "Furnizorul care furnizează acest stoc de produse" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Furnizor asociat" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Prețul final pentru client după majorări" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Prețul de vânzare" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "Produsul asociat cu această intrare în stoc" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "Prețul plătit vânzătorului pentru acest produs" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Prețul de achiziție al furnizorului" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Cantitatea disponibilă a produsului în stoc" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Cantitate în stoc" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU atribuit de furnizor pentru identificarea produsului" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "SKU al furnizorului" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "Fișier digital asociat cu acest stoc, dacă este cazul" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Fișier digital" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Intrări pe stoc" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Produse pe care utilizatorul le-a marcat ca fiind dorite" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "Utilizatorul care deține această listă de dorințe" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Proprietarul listei de dorințe" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Lista dorințelor" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Descărcare" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Descărcări" -#: core/models.py:1208 +#: core/models.py:1206 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:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Documentar" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Documentare" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Nerezolvat" +#: core/models.py:1233 +msgid "street" +msgstr "Strada" + +#: core/models.py:1234 +msgid "district" +msgstr "Districtul" + +#: core/models.py:1235 +msgid "city" +msgstr "Oraș" + +#: core/models.py:1236 +msgid "region" +msgstr "Regiunea" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Cod poștal" + +#: core/models.py:1238 +msgid "country" +msgstr "Țara" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Punct de geolocație (longitudine, latitudine)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Răspuns JSON complet de la geocoder pentru această adresă" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Răspuns JSON stocat de la serviciul de geocodare" + +#: core/models.py:1270 +msgid "address" +msgstr "Adresă" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Adrese" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Eroare în timpul creării codului promoțional: {e!s}" @@ -1877,6 +1973,10 @@ msgstr "{config.PROJECT_NAME} | Comanda livrată" msgid "you do not have permission to perform this action." msgstr "Nu aveți permisiunea de a efectua această acțiune." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "Parametrul NOMINATIM_URL trebuie să fie configurat!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1895,3 +1995,8 @@ msgstr "Puteți descărca activul digital o singură dată" #: core/views.py:264 msgid "favicon not found" msgstr "favicon nu a fost găsit" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Eroare de geocodare: {e}" diff --git a/core/locale/ru_RU/LC_MESSAGES/django.mo b/core/locale/ru_RU/LC_MESSAGES/django.mo index 6ef53e2c..e796008b 100644 Binary files a/core/locale/ru_RU/LC_MESSAGES/django.mo and b/core/locale/ru_RU/LC_MESSAGES/django.mo differ diff --git a/core/locale/ru_RU/LC_MESSAGES/django.po b/core/locale/ru_RU/LC_MESSAGES/django.po index 047f4cdf..de528aa7 100644 --- a/core/locale/ru_RU/LC_MESSAGES/django.po +++ b/core/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -51,47 +51,47 @@ msgstr "Модифицированный" msgid "when the object was last modified" msgstr "Когда объект был отредактирован в последний раз" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Активировать выбранные %(verbose_name_plural)s" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Деактивировать выбранные %(verbose_name_plural)s" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "Значение атрибута" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "Значения атрибутов" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "Имя" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "Изображение" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "Изображения" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "Наличие" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "Наличия" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "Рейтинг продукции" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "Основная информация" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "Важные даты" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "Переводы" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "Заказать товар" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "Заказать товары" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Бизнес" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "Конфигурация" @@ -224,159 +224,159 @@ msgstr "" "Приобретите заказ как бизнес, используя предоставленные `продукты` с " "`product_uuid` и `attributes`." -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "Список всех групп атрибутов (простой вид)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "Получение одной группы атрибутов (подробный просмотр)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "Создайте группу атрибутов" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "Удаление группы атрибутов" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "" "Переписать существующую группу атрибутов с сохранением нередактируемых " "элементов" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Переписывание некоторых полей существующей группы атрибутов с сохранением " "нередактируемых полей" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "Список всех атрибутов (простой вид)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "Получение одного атрибута (подробный просмотр)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "Создайте атрибут" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "Удалить атрибут" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "Переписать существующий атрибут, сохранив нередактируемый" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" "Переписывание некоторых полей существующего атрибута с сохранением " "нередактируемых полей" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "Список всех значений атрибутов (простой вид)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "Получение значения одного атрибута (подробный просмотр)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "Создание значения атрибута" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "Удалить значение атрибута" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "" "Перезапись существующего значения атрибута с сохранением нередактируемых " "значений" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Переписывание некоторых полей существующего значения атрибута с сохранением " "нередактируемых значений" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "Список всех категорий (простой вид)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "Получение одной категории (подробный просмотр)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "Создайте категорию" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "Удалить категорию" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "" "Переписать существующую категорию с сохранением нередактируемых объектов" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" "Переписать некоторые поля существующей категории с сохранением " "нередактируемых полей" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "Список всех категорий (простой вид)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "" "Для пользователей, не являющихся сотрудниками, возвращаются только их " "собственные заказы." -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "Получение одной категории (подробный просмотр)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "Создайте атрибут" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "Не работает для нештатных пользователей." -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "Удалить атрибут" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "" "Переписать существующую категорию с сохранением нередактируемых объектов" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" "Переписать некоторые поля существующей категории с сохранением " "нередактируемых полей" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "Покупная цена на момент заказа" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " @@ -386,19 +386,19 @@ msgstr "" "завершается с использованием баланса пользователя; если используется " "`force_payment`, инициируется транзакция." -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "приобретение заказа без создания учетной записи" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "завершает покупку заказа для незарегистрированного пользователя." -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "Добавить товар в заказ" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." @@ -406,11 +406,11 @@ msgstr "" "Добавляет товар в заказ, используя предоставленные `product_uuid` и " "`attributes`." -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "Удалить продукт из заказа" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." @@ -418,82 +418,82 @@ msgstr "" "Удаляет товар из заказа, используя предоставленные `product_uuid` и " "`attributes`." -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "Список всех атрибутов (простой вид)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "" "Для пользователей, не являющихся сотрудниками, возвращаются только их " "собственные списки желаний." -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "Получение одного атрибута (подробный просмотр)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "Создайте атрибут" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "Не работает для нештатных пользователей." -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "Удалить атрибут" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "Переписать существующий атрибут, сохранив нередактируемый" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" "Переписывание некоторых полей существующего атрибута с сохранением " "нередактируемых полей" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "Добавить товар в заказ" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "" "Добавляет товар в список желаний, используя предоставленный `product_uuid`." -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "Удалить продукт из списка желаний" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" "Удаляет продукт из списка желаний, используя предоставленный `product_uuid`." -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "Добавьте много товаров в список желаний" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "" "Добавляет множество товаров в список желаний, используя предоставленные " "`product_uuids`." -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "Удалить продукт из заказа" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "" "Удаляет множество товаров из списка желаний, используя предоставленные " "`product_uuids`." -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -513,59 +513,59 @@ msgstr "" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "Список всех продуктов (простой вид)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(точный) UUID продукта" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(иконки) Название продукта" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(список) Названия категорий, без учета регистра" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(точный) UUID категории" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(список) Имена тегов, нечувствительные к регистру" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) Минимальная цена акции" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) Максимальная цена акции" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(точно) Только активные продукты" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) Торговое название" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) Минимальное количество на складе" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(точный) Артикул" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(точно) Цифровые и физические" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -573,34 +573,62 @@ msgstr "" "Список полей для сортировки, разделенных запятыми. Для сортировки по убыванию используйте префикс `-`. \n" "**Разрешенные:** uuid, рейтинг, название, slug, created, modified, price, random" -#: core/docs/drf/viewsets.py:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "Получение одного продукта (подробный просмотр)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "UUID или Slug продукта" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "Создать продукт" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "Переписать существующий продукт, сохранив нередактируемые поля" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 msgid "" "update some fields of an existing product, preserving non-editable fields" msgstr "" "Обновление некоторых полей существующего продукта с сохранением " "нередактируемых полей" -#: core/docs/drf/viewsets.py:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "Удалить продукт" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "Перечислите все адреса" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "Получение одного адреса" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "Создайте новый адрес" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "Удалить адрес" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "Обновление всего адреса" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "Частичное обновление адреса" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "Автозаполнение ввода адреса" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "Поисковый запрос не предоставлен." @@ -634,7 +662,7 @@ msgid "add a product to the order" msgstr "Добавить товар в заказ" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "Заказ {order_uuid} не найден" @@ -651,44 +679,44 @@ msgstr "Удалить все товары из заказа" msgid "buy an order" msgstr "Купить заказ" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Неправильный тип получен из метода order.buy(): {type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "Добавить товар в заказ" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "Список желаний {wishlist_uuid} не найден" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "Удалить продукт из заказа" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "Удалить продукт из заказа" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "Удалить продукт из заказа" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "Купить заказ" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" @@ -696,12 +724,24 @@ msgstr "" "Пожалуйста, отправьте атрибуты в виде строки, отформатированной как " "attr1=value1,attr2=value2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "Оригинальная строка адреса, предоставленная пользователем" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} не существует: {uuid}" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "Предел должен быть от 1 до 10" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - работает как шарм" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "Атрибуты" @@ -714,11 +754,11 @@ msgid "groups of attributes" msgstr "Группы атрибутов" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "Категории" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "Бренды" @@ -727,7 +767,7 @@ msgid "category image url" msgstr "Категории" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "Процент наценки" @@ -743,41 +783,49 @@ msgstr "" "Минимальные и максимальные цены на товары в этой категории, если они " "доступны." -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "Поставщики" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "Широта (координата Y)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "Долгота (координата X)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "Как" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" "Значение рейтинга от 1 до 10, включительно, или 0, если он не установлен." -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "Представляет собой отзыв пользователя." -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "Уведомления" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "Если применимо, загрузите url для этого продукта заказа" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "Список товаров, заказанных в этом заказе" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "Адрес для выставления счетов" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -785,47 +833,47 @@ msgstr "" "Адрес доставки для данного заказа, оставьте пустым, если он совпадает с " "адресом выставления счета или не применяется" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "Общая стоимость этого заказа" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "Общее количество продуктов в заказе" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "Все ли товары в заказе представлены в цифровом виде" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "Заказы" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "URL-адрес изображения" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "Изображения продукта" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "Категория" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "Отзывы" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "Бренд" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "Группы атрибутов" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -833,31 +881,31 @@ msgstr "Группы атрибутов" msgid "quantity" msgstr "Количество" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "Количество отзывов" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "Продукция" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "Промокоды" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "Продукты в продаже" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "Акции" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "Поставщик" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -865,468 +913,477 @@ msgstr "Поставщик" msgid "product" msgstr "Продукт" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "Продукты из списка желаний" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "Списки желаний" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "Название проекта" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "Электронная почта компании" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "Название компании" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "Адрес компании" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "Номер телефона компании" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', иногда его нужно использовать вместо значения пользователя " "хоста." -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "Пользователь узла электронной почты" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "Максимальная сумма для оплаты" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "Минимальная сумма для оплаты" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "Конфигурация" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "Код языка" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "Название языка" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "Языковой флаг, если он существует :)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "Получите список поддерживаемых языков" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "Результаты поиска товаров" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "Результаты поиска товаров" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "Родитель этой группы" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "Родительская группа атрибутов" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "Имя группы атрибутов" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "Группа атрибутов" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "Категория этого атрибута" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "Группа этого атрибута" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "Строка" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "Целое число" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "Поплавок" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "Булево" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "Массив" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "Объект" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "Тип значения атрибута" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "Тип значения" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "Имя этого атрибута" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "Имя атрибута" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "Атрибут" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "Атрибут этого значения" -#: core/models.py:141 +#: core/models.py:143 msgid "the specific product associated with this attribute's value" msgstr "Конкретный продукт, связанный со значением этого атрибута" -#: core/models.py:142 core/models.py:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "Сопутствующий товар" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "Конкретное значение для этого атрибута" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "Загрузите изображение, представляющее эту категорию" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "Изображение категории" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "Определите процент наценки для товаров в этой категории" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "Родитель данной категории для формирования иерархической структуры" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "Родительская категория" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "Название категории" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "Укажите название этой категории" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "Добавьте подробное описание для этой категории" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "Описание категории" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "Название этой марки" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "Название бренда" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "Загрузите логотип, представляющий этот бренд" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "Маленький образ бренда" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "Загрузите большой логотип, представляющий этот бренд" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "Большой имидж бренда" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "Добавьте подробное описание бренда" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "Описание бренда" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "Дополнительные категории, с которыми ассоциируется этот бренд" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "Категории" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "Категория, к которой относится этот продукт" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "По желанию ассоциируйте этот продукт с брендом" -#: core/models.py:279 +#: core/models.py:281 msgid "tags that help describe or group this product" msgstr "Теги, которые помогают описать или сгруппировать этот продукт" -#: core/models.py:280 core/models.py:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "Теги товара" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "Указывает, поставляется ли этот продукт в цифровом виде" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "Является ли продукт цифровым" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "Обеспечьте четкое идентификационное название продукта" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "Название продукта" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "Добавьте подробное описание продукта" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "Описание товара" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "Парт. номер для данного товара" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "Парт. номер" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Хранит учетные данные и конечные точки, необходимые для взаимодействия с API" " поставщика." -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "Информация об аутентификации" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "Определите наценку для товаров, полученных от этого продавца" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "Процент наценки поставщика" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "Имя этого продавца" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "Название поставщика" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "Комментарии пользователей об их опыте использования продукта" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "Комментарии к отзывам" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "" "Ссылка на конкретный продукт в заказе, о котором идет речь в этом отзыве" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "Сопутствующий товар для заказа" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "Присвоенный пользователем рейтинг продукта" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "Рейтинг продукции" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "Обратная связь" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "Адрес для выставления счетов, используемый для данного заказа" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "Дополнительный промокод, применяемый к этому заказу" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "Примененный промокод" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "Адрес доставки, используемый для данного заказа" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "Адрес доставки" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "Текущий статус заказа в его жизненном цикле" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "Статус заказа" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "" "JSON-структура уведомлений для отображения пользователям, в административном" " интерфейсе используется табличный вид" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "JSON-представление атрибутов заказа для этого заказа" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "Пользователь, разместивший заказ" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "Пользователь" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "Временная метка, когда заказ был завершен" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "Время покупки" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "Человекочитаемый идентификатор для заказа" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "человекочитаемый идентификатор" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "Заказать" -#: core/models.py:517 +#: core/models.py:519 msgid "a user must have only one pending order at a time" msgstr "Пользователь может одновременно иметь только один отложенный ордер!" -#: core/models.py:541 +#: core/models.py:543 msgid "you cannot add products to an order that is not a pending one" msgstr "Вы не можете добавить товары в заказ, который не является отложенным." -#: core/models.py:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "Вы не можете добавить неактивные товары в заказ" -#: core/models.py:563 +#: core/models.py:565 msgid "you cannot add more products than available in stock" msgstr "Вы не можете добавить больше товаров, чем есть на складе" -#: core/models.py:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} не существует: {product_uuid}" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Вы не можете удалить товары из заказа, который не является отложенным." -#: core/models.py:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} не существует в запросе <{query}>." -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "Промокод не существует" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "" +"Вы можете купить физические товары только с указанным адресом доставки!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "Адрес не существует" + +#: core/models.py:659 core/models.py:700 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "В данный момент вы не можете совершить покупку, пожалуйста, повторите " "попытку через несколько минут." -#: core/models.py:634 +#: core/models.py:662 msgid "invalid force value" msgstr "Недопустимое значение силы" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "Вы не можете приобрести пустой заказ!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "Недостаточно средств для выполнения заказа" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1334,194 +1391,189 @@ msgstr "" "Вы не можете купить без регистрации, пожалуйста, предоставьте следующую " "информацию: имя клиента, электронная почта клиента, номер телефона клиента" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "Неверный метод оплаты" -#: core/models.py:706 -msgid "you cannot create a momental order without providing a billing address" -msgstr "" -"Вы не можете создать заказ momental, не указав адрес для выставления счета" - -#: core/models.py:784 +#: core/models.py:773 msgid "the price paid by the customer for this product at purchase time" msgstr "Цена, уплаченная клиентом за данный продукт на момент покупки" -#: core/models.py:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "Покупная цена на момент заказа" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "" "Внутренние комментарии для администраторов об этом заказанном продукте" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "Внутренние комментарии" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "Уведомления пользователей" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "JSON-представление атрибутов этого элемента" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "Атрибуты заказанного продукта" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "Ссылка на родительский заказ, содержащий данный продукт" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "Родительский приказ" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "Конкретный продукт, связанный с этой линией заказа" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "Количество данного товара в заказе" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "Количество продукта" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "Текущий статус этого продукта в заказе" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "Состояние продуктовой линейки" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "Внутренний идентификатор тега для тега продукта" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "Название тега" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "Удобное название для метки продукта" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "Отображаемое имя тега" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "Метка продукта" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "" "Предоставьте альтернативный текст для изображения, чтобы обеспечить " "доступность" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "Альтовый текст изображения" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "Загрузите файл изображения для этого продукта" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "Изображение продукта" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "Определяет порядок отображения изображений" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "Приоритет отображения" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "Продукт, который представлен на этом изображении" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "Изображения продуктов" -#: core/models.py:956 +#: core/models.py:945 msgid "unique code used by a user to redeem a discount" msgstr "Уникальный код, используемый пользователем для получения скидки" -#: core/models.py:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "Идентификатор промо-кода" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "Фиксированная сумма скидки, применяемая, если процент не используется" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "Фиксированная сумма скидки" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "" "Процентная скидка, применяемая, если фиксированная сумма не используется" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "Процентная скидка" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "Временная метка, когда истекает срок действия промокода" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "Время окончания срока действия" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "Время, с которого действует этот промокод" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "Время начала действия" -#: core/models.py:989 +#: core/models.py:978 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Временная метка, когда был использован промокод, пустая, если он еще не " "использовался" -#: core/models.py:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "Временная метка использования" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "Пользователь, назначенный на этот промокод, если применимо" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "Назначенный пользователь" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "Промокод" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "Промокоды" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1529,143 +1581,187 @@ msgstr "" "Следует определить только один тип скидки (сумма или процент), но не оба или" " ни один из них." -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "Промокоды" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Неверный тип скидки для промокода {self.uuid}" -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "Процентная скидка на выбранные продукты" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "Процент скидки" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "Укажите уникальное имя для этой акции" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "Название акции" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "Описание акции" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "Выберите, какие продукты участвуют в этой акции" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "Включенные продукты" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "Продвижение" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "Поставщик, поставляющий данный товар на склад" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "Ассоциированный поставщик" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "Окончательная цена для покупателя после наценок" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "Цена продажи" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "Продукт, связанный с этой складской записью" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "Цена, уплаченная продавцу за этот продукт" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "Цена покупки у поставщика" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "Доступное количество продукта на складе" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "Количество на складе" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "Присвоенный поставщиком SKU для идентификации продукта" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "SKU поставщика" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "Цифровой файл, связанный с этой акцией, если применимо" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "Цифровой файл" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "Проводки по запасам" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "Продукты, которые пользователь отметил как желаемые" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "Пользователь, владеющий этим списком желаний" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "Владелец вишлиста" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "Список желаний" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "Скачать" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "Скачать" -#: core/models.py:1208 +#: core/models.py:1206 msgid "you can not download a digital asset for a non-finished order" msgstr "Вы не можете загрузить цифровой актив для незавершенного заказа" -#: core/models.py:1220 +#: core/models.py:1218 msgid "documentary" msgstr "Документальный фильм" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "Документальные фильмы" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "Неразрешенные" +#: core/models.py:1233 +msgid "street" +msgstr "Улица" + +#: core/models.py:1234 +msgid "district" +msgstr "Округ" + +#: core/models.py:1235 +msgid "city" +msgstr "Город" + +#: core/models.py:1236 +msgid "region" +msgstr "Регион" + +#: core/models.py:1237 +msgid "postal code" +msgstr "Почтовый индекс" + +#: core/models.py:1238 +msgid "country" +msgstr "Страна" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "Геолокационная точка(долгота, широта)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "Полный JSON-ответ от геокодера для этого адреса" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "Сохраненный JSON-ответ от сервиса геокодирования" + +#: core/models.py:1270 +msgid "address" +msgstr "Адрес" + +#: core/models.py:1271 +msgid "addresses" +msgstr "Адреса" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "Ошибка при создании промокода: {e!s}" @@ -1878,6 +1974,10 @@ msgstr "{config.PROJECT_NAME} | Заказ доставлен" msgid "you do not have permission to perform this action." msgstr "У вас нет разрешения на выполнение этого действия." +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "Параметр NOMINATIM_URL должен быть настроен!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1896,3 +1996,8 @@ msgstr "Вы можете загрузить цифровой актив тол #: core/views.py:264 msgid "favicon not found" msgstr "favicon не найден" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "Ошибка геокодирования: {e}" diff --git a/core/locale/zh_Hans/LC_MESSAGES/django.mo b/core/locale/zh_Hans/LC_MESSAGES/django.mo index e783b96c..0ff5067a 100644 Binary files a/core/locale/zh_Hans/LC_MESSAGES/django.mo and b/core/locale/zh_Hans/LC_MESSAGES/django.mo differ diff --git a/core/locale/zh_Hans/LC_MESSAGES/django.po b/core/locale/zh_Hans/LC_MESSAGES/django.po index 2d3c65e6..97453edf 100644 --- a/core/locale/zh_Hans/LC_MESSAGES/django.po +++ b/core/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -47,47 +47,47 @@ msgstr "改装" msgid "when the object was last modified" msgstr "对象最后一次编辑的时间" -#: core/admin.py:34 core/admin.py:47 +#: core/admin.py:36 core/admin.py:49 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "激活选定的 %(verbose_name_plural)s" -#: core/admin.py:38 core/admin.py:52 +#: core/admin.py:40 core/admin.py:54 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "停用选定的 %(verbose_name_plural)s" -#: core/admin.py:61 core/graphene/object_types.py:363 -#: core/graphene/object_types.py:370 core/models.py:146 core/models.py:154 +#: core/admin.py:63 core/graphene/object_types.py:390 +#: core/graphene/object_types.py:397 core/models.py:148 core/models.py:156 msgid "attribute value" msgstr "属性值" -#: core/admin.py:62 core/graphene/object_types.py:35 core/models.py:155 +#: core/admin.py:64 core/graphene/object_types.py:35 core/models.py:157 msgid "attribute values" msgstr "属性值" -#: core/admin.py:133 +#: core/admin.py:135 #: core/templates/admin/constance/includes/results_list.html:6 msgid "name" msgstr "名称" -#: core/admin.py:152 +#: core/admin.py:154 msgid "image" msgstr "图片" -#: core/admin.py:153 core/graphene/object_types.py:316 +#: core/admin.py:155 core/graphene/object_types.py:343 msgid "images" msgstr "图片" -#: core/admin.py:160 core/models.py:1132 +#: core/admin.py:162 core/models.py:1125 msgid "stock" msgstr "库存" -#: core/admin.py:161 core/graphene/object_types.py:417 +#: core/admin.py:163 core/graphene/object_types.py:444 msgid "stocks" msgstr "股票" -#: core/admin.py:192 core/graphene/object_types.py:320 +#: core/admin.py:194 core/graphene/object_types.py:347 #: 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:197 +#: core/admin.py:199 msgid "rating" msgstr "产品评级" -#: core/admin.py:201 +#: core/admin.py:203 msgid "basic info" msgstr "基本信息" -#: core/admin.py:215 +#: core/admin.py:217 msgid "important dates" msgstr "重要日期" -#: core/admin.py:216 +#: core/admin.py:218 msgid "translations" msgstr "翻译" -#: core/admin.py:254 core/models.py:842 +#: core/admin.py:256 core/models.py:831 msgid "order product" msgstr "订购产品" -#: core/admin.py:255 core/graphene/object_types.py:242 core/models.py:843 +#: core/admin.py:257 core/graphene/object_types.py:269 core/models.py:832 msgid "order products" msgstr "订购产品" -#: core/admin.py:274 +#: core/admin.py:276 msgid "is business" msgstr "Is Business" -#: core/admin.py:382 +#: core/admin.py:399 msgid "config" msgstr "配置" @@ -217,241 +217,241 @@ msgid "" "`product_uuid` and `attributes`." msgstr "使用提供的带有 `product_uuid` 和 `attributes` 的 `products` 作为企业购买订单。" -#: core/docs/drf/viewsets.py:34 +#: core/docs/drf/viewsets.py:37 msgid "list all attribute groups (simple view)" msgstr "列出所有属性组(简单视图)" -#: core/docs/drf/viewsets.py:38 +#: core/docs/drf/viewsets.py:41 msgid "retrieve a single attribute group (detailed view)" msgstr "检索单个属性组(详细视图)" -#: core/docs/drf/viewsets.py:42 +#: core/docs/drf/viewsets.py:45 msgid "create an attribute group" msgstr "创建属性组" -#: core/docs/drf/viewsets.py:46 +#: core/docs/drf/viewsets.py:49 msgid "delete an attribute group" msgstr "删除属性组" -#: core/docs/drf/viewsets.py:50 +#: core/docs/drf/viewsets.py:53 msgid "rewrite an existing attribute group saving non-editables" msgstr "重写保存不可编辑的现有属性组" -#: core/docs/drf/viewsets.py:54 +#: core/docs/drf/viewsets.py:57 msgid "" "rewrite some fields of an existing attribute group saving non-editables" msgstr "重写现有属性组的某些字段,保存不可编辑的内容" -#: core/docs/drf/viewsets.py:61 +#: core/docs/drf/viewsets.py:64 msgid "list all attributes (simple view)" msgstr "列出所有属性(简单视图)" -#: core/docs/drf/viewsets.py:65 +#: core/docs/drf/viewsets.py:68 msgid "retrieve a single attribute (detailed view)" msgstr "检索单个属性(详细视图)" -#: core/docs/drf/viewsets.py:69 +#: core/docs/drf/viewsets.py:72 msgid "create an attribute" msgstr "创建属性" -#: core/docs/drf/viewsets.py:73 +#: core/docs/drf/viewsets.py:76 msgid "delete an attribute" msgstr "删除属性" -#: core/docs/drf/viewsets.py:77 +#: core/docs/drf/viewsets.py:80 msgid "rewrite an existing attribute saving non-editables" msgstr "重写现有属性,保存不可编辑属性" -#: core/docs/drf/viewsets.py:81 +#: core/docs/drf/viewsets.py:84 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "重写现有属性的某些字段,保存不可编辑的内容" -#: core/docs/drf/viewsets.py:88 +#: core/docs/drf/viewsets.py:91 msgid "list all attribute values (simple view)" msgstr "列出所有属性值(简单视图)" -#: core/docs/drf/viewsets.py:92 +#: core/docs/drf/viewsets.py:95 msgid "retrieve a single attribute value (detailed view)" msgstr "读取单个属性值(详细视图)" -#: core/docs/drf/viewsets.py:96 +#: core/docs/drf/viewsets.py:99 msgid "create an attribute value" msgstr "创建属性值" -#: core/docs/drf/viewsets.py:100 +#: core/docs/drf/viewsets.py:103 msgid "delete an attribute value" msgstr "删除属性值" -#: core/docs/drf/viewsets.py:104 +#: core/docs/drf/viewsets.py:107 msgid "rewrite an existing attribute value saving non-editables" msgstr "重写现有属性值,保存不可编辑属性" -#: core/docs/drf/viewsets.py:108 +#: core/docs/drf/viewsets.py:111 msgid "" "rewrite some fields of an existing attribute value saving non-editables" msgstr "重写现有属性值的某些字段,保存不可编辑的属性值" -#: core/docs/drf/viewsets.py:115 +#: core/docs/drf/viewsets.py:118 msgid "list all categories (simple view)" msgstr "列出所有类别(简单视图)" -#: core/docs/drf/viewsets.py:119 +#: core/docs/drf/viewsets.py:122 msgid "retrieve a single category (detailed view)" msgstr "检索单个类别(详细视图)" -#: core/docs/drf/viewsets.py:123 +#: core/docs/drf/viewsets.py:126 msgid "create a category" msgstr "创建类别" -#: core/docs/drf/viewsets.py:127 +#: core/docs/drf/viewsets.py:130 msgid "delete a category" msgstr "删除类别" -#: core/docs/drf/viewsets.py:131 +#: core/docs/drf/viewsets.py:134 msgid "rewrite an existing category saving non-editables" msgstr "重写现有类别,保存不可编辑内容" -#: core/docs/drf/viewsets.py:135 +#: core/docs/drf/viewsets.py:138 msgid "rewrite some fields of an existing category saving non-editables" msgstr "重写现有类别的某些字段,保存不可编辑内容" -#: core/docs/drf/viewsets.py:142 +#: core/docs/drf/viewsets.py:145 msgid "list all orders (simple view)" msgstr "列出所有类别(简单视图)" -#: core/docs/drf/viewsets.py:143 +#: core/docs/drf/viewsets.py:146 msgid "for non-staff users, only their own orders are returned." msgstr "对于非工作人员用户,只有他们自己的订单才会被退回。" -#: core/docs/drf/viewsets.py:147 +#: core/docs/drf/viewsets.py:150 msgid "retrieve a single order (detailed view)" msgstr "检索单个类别(详细视图)" -#: core/docs/drf/viewsets.py:151 +#: core/docs/drf/viewsets.py:154 msgid "create an order" msgstr "创建属性" -#: core/docs/drf/viewsets.py:152 +#: core/docs/drf/viewsets.py:155 msgid "doesn't work for non-staff users." msgstr "不适用于非工作人员用户。" -#: core/docs/drf/viewsets.py:156 +#: core/docs/drf/viewsets.py:159 msgid "delete an order" msgstr "删除属性" -#: core/docs/drf/viewsets.py:160 +#: core/docs/drf/viewsets.py:163 msgid "rewrite an existing order saving non-editables" msgstr "重写现有类别,保存不可编辑内容" -#: core/docs/drf/viewsets.py:164 +#: core/docs/drf/viewsets.py:167 msgid "rewrite some fields of an existing order saving non-editables" msgstr "重写现有类别的某些字段,保存不可编辑内容" -#: core/docs/drf/viewsets.py:168 +#: core/docs/drf/viewsets.py:171 msgid "purchase an order" msgstr "订购时的购买价格" -#: core/docs/drf/viewsets.py:170 +#: core/docs/drf/viewsets.py:173 msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "完成订单购买。如果使用 \"force_balance\",则使用用户的余额完成购买;如果使用 \"force_payment\",则启动交易。" -#: core/docs/drf/viewsets.py:182 core/graphene/mutations.py:208 +#: core/docs/drf/viewsets.py:185 core/graphene/mutations.py:215 msgid "purchase an order without account creation" msgstr "无需创建账户即可购买订单" -#: core/docs/drf/viewsets.py:184 +#: core/docs/drf/viewsets.py:187 msgid "finalizes the order purchase for a non-registered user." msgstr "完成非注册用户的订单购买。" -#: core/docs/drf/viewsets.py:193 +#: core/docs/drf/viewsets.py:196 msgid "add product to order" msgstr "在订单中添加产品" -#: core/docs/drf/viewsets.py:194 +#: core/docs/drf/viewsets.py:197 msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." msgstr "使用提供的 `product_uuid` 和 `attributes` 将产品添加到订单中。" -#: core/docs/drf/viewsets.py:199 +#: core/docs/drf/viewsets.py:202 msgid "remove product from order" msgstr "从订单中删除产品" -#: core/docs/drf/viewsets.py:200 +#: core/docs/drf/viewsets.py:203 msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." msgstr "使用提供的 `product_uuid` 和 `attributes` 从订单中删除产品。" -#: core/docs/drf/viewsets.py:208 +#: core/docs/drf/viewsets.py:211 msgid "list all wishlists (simple view)" msgstr "列出所有属性(简单视图)" -#: core/docs/drf/viewsets.py:209 +#: core/docs/drf/viewsets.py:212 msgid "for non-staff users, only their own wishlists are returned." msgstr "对于非工作人员用户,只返回他们自己的愿望清单。" -#: core/docs/drf/viewsets.py:213 +#: core/docs/drf/viewsets.py:216 msgid "retrieve a single wishlist (detailed view)" msgstr "检索单个属性(详细视图)" -#: core/docs/drf/viewsets.py:217 +#: core/docs/drf/viewsets.py:220 msgid "create an wishlist" msgstr "创建属性" -#: core/docs/drf/viewsets.py:218 +#: core/docs/drf/viewsets.py:221 msgid "Doesn't work for non-staff users." msgstr "不适用于非工作人员用户。" -#: core/docs/drf/viewsets.py:222 +#: core/docs/drf/viewsets.py:225 msgid "delete an wishlist" msgstr "删除属性" -#: core/docs/drf/viewsets.py:226 +#: core/docs/drf/viewsets.py:229 msgid "rewrite an existing wishlist saving non-editables" msgstr "重写现有属性,保存不可编辑属性" -#: core/docs/drf/viewsets.py:230 +#: core/docs/drf/viewsets.py:233 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "重写现有属性的某些字段,保存不可编辑的内容" -#: core/docs/drf/viewsets.py:234 +#: core/docs/drf/viewsets.py:237 msgid "add product to wishlist" msgstr "在订单中添加产品" -#: core/docs/drf/viewsets.py:235 +#: core/docs/drf/viewsets.py:238 msgid "adds a product to an wishlist using the provided `product_uuid`" msgstr "使用提供的 `product_uuid` 将产品添加到愿望清单中" -#: core/docs/drf/viewsets.py:240 +#: core/docs/drf/viewsets.py:243 msgid "remove product from wishlist" msgstr "从愿望清单中删除产品" -#: core/docs/drf/viewsets.py:241 +#: core/docs/drf/viewsets.py:244 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "使用提供的 `product_uuid` 从愿望清单中删除产品" -#: core/docs/drf/viewsets.py:246 +#: core/docs/drf/viewsets.py:249 msgid "add many products to wishlist" msgstr "将许多产品添加到愿望清单" -#: core/docs/drf/viewsets.py:247 +#: core/docs/drf/viewsets.py:250 msgid "adds many products to an wishlist using the provided `product_uuids`" msgstr "使用提供的 `product_uuids` 将许多产品添加到愿望清单中" -#: core/docs/drf/viewsets.py:252 +#: core/docs/drf/viewsets.py:255 msgid "remove many products from wishlist" msgstr "从订单中删除产品" -#: core/docs/drf/viewsets.py:253 +#: core/docs/drf/viewsets.py:256 msgid "" "removes many products from an wishlist using the provided `product_uuids`" msgstr "使用提供的 `product_uuids` 从愿望清单中删除多个产品" -#: core/docs/drf/viewsets.py:260 +#: core/docs/drf/viewsets.py:263 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" @@ -471,59 +471,59 @@ msgstr "" "color=exact-red`、`size=gt-10`、`features=in-[\"wifi\"、\"bluetooth\"]`、\n" "`b64-description=icontains-aGVhdC1jb2xk`." -#: core/docs/drf/viewsets.py:276 +#: core/docs/drf/viewsets.py:279 msgid "list all products (simple view)" msgstr "列出所有产品(简单视图)" -#: core/docs/drf/viewsets.py:281 +#: core/docs/drf/viewsets.py:284 msgid "(exact) Product UUID" msgstr "(产品 UUID" -#: core/docs/drf/viewsets.py:287 +#: core/docs/drf/viewsets.py:290 msgid "(icontains) Product name" msgstr "(图示) 产品名称" -#: core/docs/drf/viewsets.py:293 +#: core/docs/drf/viewsets.py:296 msgid "(list) Category names, case-insensitive" msgstr "(列表) 类别名称,不区分大小写" -#: core/docs/drf/viewsets.py:299 +#: core/docs/drf/viewsets.py:302 msgid "(exact) Category UUID" msgstr "(类别 UUID" -#: core/docs/drf/viewsets.py:305 +#: core/docs/drf/viewsets.py:308 msgid "(list) Tag names, case-insensitive" msgstr "(标签名称,不区分大小写" -#: core/docs/drf/viewsets.py:311 +#: core/docs/drf/viewsets.py:314 msgid "(gte) Minimum stock price" msgstr "(gte) 最低股价" -#: core/docs/drf/viewsets.py:317 +#: core/docs/drf/viewsets.py:320 msgid "(lte) Maximum stock price" msgstr "(lte) 最高股价" -#: core/docs/drf/viewsets.py:323 +#: core/docs/drf/viewsets.py:326 msgid "(exact) Only active products" msgstr "(准确)只有活性产品" -#: core/docs/drf/viewsets.py:329 +#: core/docs/drf/viewsets.py:332 msgid "(iexact) Brand name" msgstr "(iexact) 品牌名称" -#: core/docs/drf/viewsets.py:341 +#: core/docs/drf/viewsets.py:344 msgid "(gt) Minimum stock quantity" msgstr "(gt) 最低库存量" -#: core/docs/drf/viewsets.py:347 +#: core/docs/drf/viewsets.py:350 msgid "(exact) Product slug" msgstr "(准确) 产品标题" -#: core/docs/drf/viewsets.py:353 +#: core/docs/drf/viewsets.py:356 msgid "(exact) Digital vs. physical" msgstr "(准确)数字与实物" -#: core/docs/drf/viewsets.py:360 +#: core/docs/drf/viewsets.py:363 msgid "" "Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" @@ -531,32 +531,60 @@ msgstr "" "用逗号分隔的要排序的字段列表。前缀为 `-` 表示降序。 \n" "**允许:** uuid、评分、名称、标签、创建、修改、价格、随机" -#: core/docs/drf/viewsets.py:374 +#: core/docs/drf/viewsets.py:377 msgid "retrieve a single product (detailed view)" msgstr "检索单个产品(详细视图)" -#: core/docs/drf/viewsets.py:379 core/docs/drf/viewsets.py:401 -#: core/docs/drf/viewsets.py:416 core/docs/drf/viewsets.py:431 +#: core/docs/drf/viewsets.py:382 core/docs/drf/viewsets.py:404 +#: core/docs/drf/viewsets.py:419 core/docs/drf/viewsets.py:434 msgid "Product UUID or slug" msgstr "产品 UUID 或 Slug" -#: core/docs/drf/viewsets.py:389 +#: core/docs/drf/viewsets.py:392 msgid "create a product" msgstr "创建产品" -#: core/docs/drf/viewsets.py:396 +#: core/docs/drf/viewsets.py:399 msgid "rewrite an existing product, preserving non-editable fields" msgstr "重写现有产品,保留不可编辑字段" -#: core/docs/drf/viewsets.py:411 +#: core/docs/drf/viewsets.py:414 msgid "" "update some fields of an existing product, preserving non-editable fields" msgstr "更新现有产品的某些字段,保留不可编辑的字段" -#: core/docs/drf/viewsets.py:426 +#: core/docs/drf/viewsets.py:429 msgid "delete a product" msgstr "删除产品" +#: core/docs/drf/viewsets.py:447 +msgid "list all addresses" +msgstr "列出所有地址" + +#: core/docs/drf/viewsets.py:454 +msgid "retrieve a single address" +msgstr "检索单个地址" + +#: core/docs/drf/viewsets.py:461 +msgid "create a new address" +msgstr "创建新地址" + +#: core/docs/drf/viewsets.py:469 +msgid "delete an address" +msgstr "删除地址" + +#: core/docs/drf/viewsets.py:476 +msgid "update an entire address" +msgstr "更新整个地址" + +#: core/docs/drf/viewsets.py:484 +msgid "partially update an address" +msgstr "部分更新地址" + +#: core/docs/drf/viewsets.py:492 +msgid "autocomplete address suggestions" +msgstr "自动完成地址输入" + #: core/elasticsearch/__init__.py:40 msgid "no search term provided." msgstr "未提供搜索条件。" @@ -590,7 +618,7 @@ msgid "add a product to the order" msgstr "在订单中添加产品" #: core/graphene/mutations.py:93 core/graphene/mutations.py:119 -#: core/graphene/mutations.py:203 +#: core/graphene/mutations.py:210 #, python-brace-format msgid "order {order_uuid} not found" msgstr "未找到订单 {order_uuid}" @@ -607,53 +635,65 @@ msgstr "从订单中删除所有产品" msgid "buy an order" msgstr "购买订单" -#: core/graphene/mutations.py:183 +#: core/graphene/mutations.py:185 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:253 +#: core/graphene/mutations.py:207 core/graphene/mutations.py:364 +#: core/graphene/mutations.py:398 core/viewsets.py:261 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "order.buy() 方法中的类型有误:{type(instance)!s}" -#: core/graphene/mutations.py:239 +#: core/graphene/mutations.py:248 msgid "add a product to the wishlist" msgstr "在订单中添加产品" -#: core/graphene/mutations.py:261 core/graphene/mutations.py:288 -#: core/graphene/mutations.py:315 core/graphene/mutations.py:358 +#: core/graphene/mutations.py:270 core/graphene/mutations.py:297 +#: core/graphene/mutations.py:324 core/graphene/mutations.py:367 #, python-brace-format msgid "wishlist {wishlist_uuid} not found" msgstr "未找到愿望清单 {wishlist_uuid}" -#: core/graphene/mutations.py:266 +#: core/graphene/mutations.py:275 msgid "remove a product from the wishlist" msgstr "从订单中删除产品" -#: core/graphene/mutations.py:293 +#: core/graphene/mutations.py:302 msgid "remove all products from the wishlist" msgstr "从订单中删除产品" -#: core/graphene/mutations.py:320 +#: core/graphene/mutations.py:329 msgid "buy all products from the wishlist" msgstr "从订单中删除产品" -#: core/graphene/mutations.py:363 +#: core/graphene/mutations.py:372 msgid "buy a product" msgstr "购买订单" -#: core/graphene/mutations.py:369 +#: core/graphene/mutations.py:378 msgid "" "please send the attributes as the string formatted like " "attr1=value1,attr2=value2" msgstr "请以字符串形式发送属性,格式如 attr1=value1,attr2=value2" -#: core/graphene/mutations.py:485 +#: core/graphene/mutations.py:463 +msgid "original address string provided by the user" +msgstr "用户提供的原始地址字符串" + +#: core/graphene/mutations.py:501 +msgid "{name} does not exist: {uuid}" +msgstr "{name} 不存在:{uuid}不存在" + +#: core/graphene/mutations.py:514 +msgid "limit must be between 1 and 10" +msgstr "限值必须在 1 和 10 之间" + +#: core/graphene/mutations.py:558 msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - 工作起来得心应手" -#: core/graphene/object_types.py:42 core/graphene/object_types.py:225 -#: core/graphene/object_types.py:266 core/models.py:123 core/models.py:478 +#: core/graphene/object_types.py:42 core/graphene/object_types.py:252 +#: core/graphene/object_types.py:293 core/models.py:125 core/models.py:480 msgid "attributes" msgstr "属性" @@ -666,11 +706,11 @@ msgid "groups of attributes" msgstr "属性组" #: core/graphene/object_types.py:75 core/graphene/object_types.py:104 -#: core/graphene/object_types.py:131 core/models.py:87 core/models.py:209 +#: core/graphene/object_types.py:131 core/models.py:89 core/models.py:211 msgid "categories" msgstr "类别" -#: core/graphene/object_types.py:82 core/models.py:256 +#: core/graphene/object_types.py:82 core/models.py:258 msgid "brands" msgstr "品牌" @@ -679,7 +719,7 @@ msgid "category image url" msgstr "类别" #: core/graphene/object_types.py:107 core/graphene/object_types.py:202 -#: core/models.py:173 +#: core/models.py:175 msgid "markup percentage" msgstr "加价百分比" @@ -692,86 +732,94 @@ msgid "" "minimum and maximum prices for products in this category, if available." msgstr "该类别产品的最低和最高价格(如有)。" -#: core/graphene/object_types.py:209 core/models.py:393 +#: core/graphene/object_types.py:209 core/models.py:395 msgid "vendors" msgstr "供应商" #: core/graphene/object_types.py:213 +msgid "Latitude (Y coordinate)" +msgstr "纬度(Y 坐标)" + +#: core/graphene/object_types.py:214 +msgid "Longitude (X coordinate)" +msgstr "经度(X 坐标)" + +#: core/graphene/object_types.py:240 msgid "comment" msgstr "如何" -#: core/graphene/object_types.py:214 +#: core/graphene/object_types.py:241 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "评级值从 1 到 10(包括 10),如果未设置,则为 0。" -#: core/graphene/object_types.py:221 +#: core/graphene/object_types.py:248 msgid "represents feedback from a user." msgstr "代表用户的反馈意见。" -#: core/graphene/object_types.py:226 core/graphene/object_types.py:267 -#: core/models.py:472 +#: core/graphene/object_types.py:253 core/graphene/object_types.py:294 +#: core/models.py:474 msgid "notifications" msgstr "通知" -#: core/graphene/object_types.py:227 +#: core/graphene/object_types.py:254 msgid "download url for this order product if applicable" msgstr "此订单产品的下载网址(如适用" -#: core/graphene/object_types.py:256 +#: core/graphene/object_types.py:283 msgid "a list of order products in this order" msgstr "该订单中的订单产品列表" -#: core/graphene/object_types.py:258 core/models.py:442 +#: core/graphene/object_types.py:285 core/models.py:444 msgid "billing address" msgstr "账单地址" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:288 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "此订单的送货地址,如果与账单地址相同或不适用,请留空" -#: core/graphene/object_types.py:263 +#: core/graphene/object_types.py:290 msgid "total price of this order" msgstr "订单总价" -#: core/graphene/object_types.py:264 +#: core/graphene/object_types.py:291 msgid "total quantity of products in order" msgstr "订单中产品的总数量" -#: core/graphene/object_types.py:265 +#: core/graphene/object_types.py:292 msgid "are all products in the order digital" msgstr "订单中的所有产品都是数字产品吗?" -#: core/graphene/object_types.py:285 core/models.py:506 +#: core/graphene/object_types.py:312 core/models.py:508 msgid "orders" msgstr "订单" -#: core/graphene/object_types.py:301 +#: core/graphene/object_types.py:328 msgid "image url" msgstr "图片 URL" -#: core/graphene/object_types.py:308 +#: core/graphene/object_types.py:335 msgid "product's images" msgstr "产品图片" -#: core/graphene/object_types.py:315 core/models.py:208 core/models.py:266 +#: core/graphene/object_types.py:342 core/models.py:210 core/models.py:268 msgid "category" msgstr "类别" -#: core/graphene/object_types.py:317 core/models.py:429 +#: core/graphene/object_types.py:344 core/models.py:431 msgid "feedbacks" msgstr "反馈意见" -#: core/graphene/object_types.py:318 core/models.py:255 core/models.py:274 +#: core/graphene/object_types.py:345 core/models.py:257 core/models.py:276 msgid "brand" msgstr "品牌" -#: core/graphene/object_types.py:319 core/models.py:77 +#: core/graphene/object_types.py:346 core/models.py:79 msgid "attribute groups" msgstr "属性组" -#: core/graphene/object_types.py:321 +#: core/graphene/object_types.py:348 #: core/templates/digital_order_created_email.html:108 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:94 @@ -779,31 +827,31 @@ msgstr "属性组" msgid "quantity" msgstr "数量" -#: core/graphene/object_types.py:322 +#: core/graphene/object_types.py:349 msgid "number of feedbacks" msgstr "反馈数量" -#: core/graphene/object_types.py:340 core/models.py:318 +#: core/graphene/object_types.py:367 core/models.py:320 msgid "products" msgstr "产品" -#: core/graphene/object_types.py:388 +#: core/graphene/object_types.py:415 msgid "promocodes" msgstr "促销代码" -#: core/graphene/object_types.py:398 +#: core/graphene/object_types.py:425 msgid "products on sale" msgstr "销售产品" -#: core/graphene/object_types.py:405 core/models.py:1073 +#: core/graphene/object_types.py:432 core/models.py:1066 msgid "promotions" msgstr "促销活动" -#: core/graphene/object_types.py:409 core/models.py:392 +#: core/graphene/object_types.py:436 core/models.py:394 msgid "vendor" msgstr "供应商" -#: core/graphene/object_types.py:410 core/models.py:317 +#: core/graphene/object_types.py:437 core/models.py:319 #: core/templates/digital_order_created_email.html:107 #: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:93 @@ -811,786 +859,834 @@ msgstr "供应商" msgid "product" msgstr "产品" -#: core/graphene/object_types.py:421 core/models.py:1143 +#: core/graphene/object_types.py:448 core/models.py:1136 msgid "wishlisted products" msgstr "心愿单上的产品" -#: core/graphene/object_types.py:427 core/models.py:1160 +#: core/graphene/object_types.py:454 core/models.py:1153 msgid "wishlists" msgstr "愿望清单" -#: core/graphene/object_types.py:431 +#: core/graphene/object_types.py:458 msgid "project name" msgstr "项目名称" -#: core/graphene/object_types.py:432 +#: core/graphene/object_types.py:459 msgid "company email" msgstr "公司电子邮件" -#: core/graphene/object_types.py:433 +#: core/graphene/object_types.py:460 msgid "company name" msgstr "公司名称" -#: core/graphene/object_types.py:434 +#: core/graphene/object_types.py:461 msgid "company address" msgstr "公司地址" -#: core/graphene/object_types.py:435 +#: core/graphene/object_types.py:462 msgid "company phone number" msgstr "公司电话号码" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:463 msgid "email from, sometimes it must be used instead of host user value" msgstr "电子邮件来自\",有时必须使用它来代替主机用户值" -#: core/graphene/object_types.py:437 +#: core/graphene/object_types.py:464 msgid "email host user" msgstr "电子邮件主机用户" -#: core/graphene/object_types.py:438 +#: core/graphene/object_types.py:465 msgid "maximum amount for payment" msgstr "最高付款额" -#: core/graphene/object_types.py:439 +#: core/graphene/object_types.py:466 msgid "minimum amount for payment" msgstr "最低付款额" -#: core/graphene/object_types.py:442 +#: core/graphene/object_types.py:469 msgid "company configuration" msgstr "配置" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:473 msgid "language code" msgstr "语言代码" -#: core/graphene/object_types.py:447 +#: core/graphene/object_types.py:474 msgid "language name" msgstr "语言名称" -#: core/graphene/object_types.py:448 +#: core/graphene/object_types.py:475 msgid "language flag, if exists :)" msgstr "语言标志(如果有):)" -#: core/graphene/object_types.py:451 +#: core/graphene/object_types.py:478 msgid "supported languages" msgstr "获取支持的语言列表" -#: core/graphene/object_types.py:479 core/graphene/object_types.py:480 -#: core/graphene/object_types.py:481 +#: core/graphene/object_types.py:506 core/graphene/object_types.py:507 +#: core/graphene/object_types.py:508 msgid "products search results" msgstr "产品搜索结果" -#: core/graphene/object_types.py:482 +#: core/graphene/object_types.py:509 msgid "posts search results" msgstr "产品搜索结果" -#: core/models.py:62 +#: core/models.py:64 msgid "parent of this group" msgstr "本组家长" -#: core/models.py:63 +#: core/models.py:65 msgid "parent attribute group" msgstr "父属性组" -#: core/models.py:67 core/models.py:68 +#: core/models.py:69 core/models.py:70 msgid "attribute group's name" msgstr "属性组名称" -#: core/models.py:76 core/models.py:95 +#: core/models.py:78 core/models.py:97 msgid "attribute group" msgstr "属性组" -#: core/models.py:86 +#: core/models.py:88 msgid "category of this attribute" msgstr "该属性的类别" -#: core/models.py:94 +#: core/models.py:96 msgid "group of this attribute" msgstr "该属性的组" -#: core/models.py:100 +#: core/models.py:102 msgid "string" msgstr "字符串" -#: core/models.py:101 +#: core/models.py:103 msgid "integer" msgstr "整数" -#: core/models.py:102 +#: core/models.py:104 msgid "float" msgstr "浮动" -#: core/models.py:103 +#: core/models.py:105 msgid "boolean" msgstr "布尔型" -#: core/models.py:104 +#: core/models.py:106 msgid "array" msgstr "阵列" -#: core/models.py:105 +#: core/models.py:107 msgid "object" msgstr "对象" -#: core/models.py:107 +#: core/models.py:109 msgid "type of the attribute's value" msgstr "属性值的类型" -#: core/models.py:108 +#: core/models.py:110 msgid "value type" msgstr "价值类型" -#: core/models.py:113 +#: core/models.py:115 msgid "name of this attribute" msgstr "该属性的名称" -#: core/models.py:114 +#: core/models.py:116 msgid "attribute's name" msgstr "属性名称" -#: core/models.py:122 core/models.py:134 +#: core/models.py:124 core/models.py:136 #: core/templates/digital_order_delivered_email.html:132 msgid "attribute" msgstr "属性" -#: core/models.py:133 +#: core/models.py:135 msgid "attribute of this value" msgstr "该值的属性" -#: core/models.py:141 +#: core/models.py:143 msgid "the specific product associated with this attribute's value" msgstr "与该属性值相关的特定产品" -#: core/models.py:142 core/models.py:819 core/models.py:933 -#: core/models.py:1099 +#: core/models.py:144 core/models.py:808 core/models.py:922 +#: core/models.py:1092 msgid "associated product" msgstr "相关产品" -#: core/models.py:147 +#: core/models.py:149 msgid "the specific value for this attribute" msgstr "该属性的具体值" -#: core/models.py:164 +#: core/models.py:166 msgid "upload an image representing this category" msgstr "上传代表该类别的图片" -#: core/models.py:167 +#: core/models.py:169 msgid "category image" msgstr "类别 图像" -#: core/models.py:172 +#: core/models.py:174 msgid "define a markup percentage for products in this category" msgstr "定义该类别产品的加价百分比" -#: core/models.py:181 +#: core/models.py:183 msgid "parent of this category to form a hierarchical structure" msgstr "该类别的父类别,形成等级结构" -#: core/models.py:182 +#: core/models.py:184 msgid "parent category" msgstr "父类" -#: core/models.py:187 +#: core/models.py:189 msgid "category name" msgstr "类别名称" -#: core/models.py:188 +#: core/models.py:190 msgid "provide a name for this category" msgstr "提供该类别的名称" -#: core/models.py:195 +#: core/models.py:197 msgid "add a detailed description for this category" msgstr "为该类别添加详细说明" -#: core/models.py:196 +#: core/models.py:198 msgid "category description" msgstr "类别说明" -#: core/models.py:218 +#: core/models.py:220 msgid "name of this brand" msgstr "品牌名称" -#: core/models.py:219 +#: core/models.py:221 msgid "brand name" msgstr "品牌名称" -#: core/models.py:226 +#: core/models.py:228 msgid "upload a logo representing this brand" msgstr "上传代表该品牌的徽标" -#: core/models.py:228 +#: core/models.py:230 msgid "brand small image" msgstr "品牌小形象" -#: core/models.py:234 +#: core/models.py:236 msgid "upload a big logo representing this brand" msgstr "上传代表该品牌的大徽标" -#: core/models.py:236 +#: core/models.py:238 msgid "brand big image" msgstr "品牌大形象" -#: core/models.py:241 +#: core/models.py:243 msgid "add a detailed description of the brand" msgstr "添加品牌的详细描述" -#: core/models.py:242 +#: core/models.py:244 msgid "brand description" msgstr "品牌描述" -#: core/models.py:247 +#: core/models.py:249 msgid "optional categories that this brand is associated with" msgstr "与该品牌相关的可选类别" -#: core/models.py:248 +#: core/models.py:250 msgid "associated categories" msgstr "类别" -#: core/models.py:265 +#: core/models.py:267 msgid "category this product belongs to" msgstr "该产品所属类别" -#: core/models.py:273 +#: core/models.py:275 msgid "optionally associate this product with a brand" msgstr "可选择将该产品与某个品牌联系起来" -#: core/models.py:279 +#: core/models.py:281 msgid "tags that help describe or group this product" msgstr "有助于描述或归类该产品的标签" -#: core/models.py:280 core/models.py:907 +#: core/models.py:282 core/models.py:896 msgid "product tags" msgstr "产品标签" -#: core/models.py:284 +#: core/models.py:286 msgid "indicates whether this product is digitally delivered" msgstr "表示该产品是否以数字方式交付" -#: core/models.py:285 +#: core/models.py:287 msgid "is product digital" msgstr "产品是否数字化" -#: core/models.py:291 +#: core/models.py:293 msgid "provide a clear identifying name for the product" msgstr "为产品提供一个明确的标识名称" -#: core/models.py:292 +#: core/models.py:294 msgid "product name" msgstr "产品名称" -#: core/models.py:297 core/models.py:1061 +#: core/models.py:299 core/models.py:1054 msgid "add a detailed description of the product" msgstr "添加产品的详细描述" -#: core/models.py:298 +#: core/models.py:300 msgid "product description" msgstr "产品说明" -#: core/models.py:305 +#: core/models.py:307 msgid "part number for this product" msgstr "该产品的零件编号" -#: core/models.py:306 +#: core/models.py:308 msgid "part number" msgstr "部件编号" -#: core/models.py:370 +#: core/models.py:372 msgid "stores credentials and endpoints required for vendor communication" msgstr "存储供应商应用程序接口通信所需的凭证和端点" -#: core/models.py:371 +#: core/models.py:373 msgid "authentication info" msgstr "认证信息" -#: core/models.py:376 +#: core/models.py:378 msgid "define the markup for products retrieved from this vendor" msgstr "定义从该供应商获取的产品的标记" -#: core/models.py:377 +#: core/models.py:379 msgid "vendor markup percentage" msgstr "供应商加价百分比" -#: core/models.py:381 +#: core/models.py:383 msgid "name of this vendor" msgstr "供应商名称" -#: core/models.py:382 +#: core/models.py:384 msgid "vendor name" msgstr "供应商名称" -#: core/models.py:405 +#: core/models.py:407 msgid "user-provided comments about their experience with the product" msgstr "用户提供的产品使用体验评论" -#: core/models.py:406 +#: core/models.py:408 msgid "feedback comments" msgstr "反馈意见" -#: core/models.py:413 +#: core/models.py:415 msgid "" "references the specific product in an order that this feedback is about" msgstr "引用该反馈意见涉及的订单中的具体产品" -#: core/models.py:414 +#: core/models.py:416 msgid "related order product" msgstr "相关订购产品" -#: core/models.py:419 +#: core/models.py:421 msgid "user-assigned rating for the product" msgstr "用户对产品的评分" -#: core/models.py:420 +#: core/models.py:422 msgid "product rating" msgstr "产品评级" -#: core/models.py:428 +#: core/models.py:430 msgid "feedback" msgstr "反馈意见" -#: core/models.py:441 +#: core/models.py:443 msgid "the billing address used for this order" msgstr "该订单使用的账单地址" -#: core/models.py:449 +#: core/models.py:451 msgid "optional promo code applied to this order" msgstr "此订单可选择使用促销代码" -#: core/models.py:450 +#: core/models.py:452 msgid "applied promo code" msgstr "应用促销代码" -#: core/models.py:458 +#: core/models.py:460 msgid "the shipping address used for this order" msgstr "该订单使用的送货地址" -#: core/models.py:459 +#: core/models.py:461 msgid "shipping address" msgstr "送货地址" -#: core/models.py:465 +#: core/models.py:467 msgid "current status of the order in its lifecycle" msgstr "订单在其生命周期中的当前状态" -#: core/models.py:466 +#: core/models.py:468 msgid "order status" msgstr "订单状态" -#: core/models.py:471 core/models.py:796 +#: core/models.py:473 core/models.py:785 msgid "json structure of notifications to display to users" msgstr "向用户显示的通知的 JSON 结构,在管理用户界面中使用表格视图" -#: core/models.py:477 +#: core/models.py:479 msgid "json representation of order attributes for this order" msgstr "该订单属性的 JSON 表示形式" -#: core/models.py:483 +#: core/models.py:485 msgid "the user who placed the order" msgstr "下订单的用户" -#: core/models.py:484 +#: core/models.py:486 msgid "user" msgstr "用户" -#: core/models.py:490 +#: core/models.py:492 msgid "the timestamp when the order was finalized" msgstr "订单确定的时间戳" -#: core/models.py:491 +#: core/models.py:493 msgid "buy time" msgstr "购买时间" -#: core/models.py:498 +#: core/models.py:500 msgid "a human-readable identifier for the order" msgstr "订单的人工可读标识符" -#: core/models.py:499 +#: core/models.py:501 msgid "human readable id" msgstr "人类可读 ID" -#: core/models.py:505 +#: core/models.py:507 msgid "order" msgstr "订购" -#: core/models.py:517 +#: core/models.py:519 msgid "a user must have only one pending order at a time" msgstr "用户每次只能有一个挂单!" -#: core/models.py:541 +#: core/models.py:543 msgid "you cannot add products to an order that is not a pending one" msgstr "您不能向非待处理订单添加产品" -#: core/models.py:546 +#: core/models.py:548 msgid "you cannot add inactive products to order" msgstr "您不能在订单中添加非活动产品" -#: core/models.py:563 +#: core/models.py:565 msgid "you cannot add more products than available in stock" msgstr "添加的产品数量不能超过现有库存" -#: core/models.py:572 core/models.py:589 core/models.py:613 -#: core/models.py:1170 core/models.py:1181 +#: core/models.py:574 core/models.py:591 core/models.py:615 +#: core/models.py:1163 core/models.py:1175 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} 不存在:{product_uuid} 不存在" -#: core/models.py:576 core/models.py:597 core/models.py:605 +#: core/models.py:578 core/models.py:599 core/models.py:607 msgid "you cannot remove products from an order that is not a pending one" msgstr "您不能从非待处理订单中删除产品" -#: core/models.py:593 +#: core/models.py:595 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "查询 <{query}> 时 {name} 不存在" -#: core/models.py:624 +#: core/models.py:626 msgid "promocode does not exist" msgstr "促销代码不存在" -#: core/models.py:631 core/models.py:670 +#: core/models.py:633 +msgid "you can only buy physical products with shipping address specified" +msgstr "您只能购买指定送货地址的实物产品!" + +#: core/models.py:652 +msgid "address does not exist" +msgstr "地址不存在" + +#: core/models.py:659 core/models.py:700 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "您现在无法购买,请稍后再试。" -#: core/models.py:634 +#: core/models.py:662 msgid "invalid force value" msgstr "力值无效" -#: core/models.py:637 core/models.py:673 +#: core/models.py:667 core/models.py:703 msgid "you cannot purchase an empty order!" msgstr "您不能购买空单!" -#: core/models.py:652 +#: core/models.py:682 msgid "insufficient funds to complete the order" msgstr "资金不足,无法完成订单" -#: core/models.py:682 +#: core/models.py:712 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "未经注册不能购买,请提供以下信息:客户姓名、客户电子邮件、客户电话号码" -#: core/models.py:690 +#: core/models.py:720 msgid "invalid payment method" msgstr "付款方式无效" -#: core/models.py:706 -msgid "you cannot create a momental order without providing a billing address" -msgstr "如果不提供账单地址,就无法创建妈妈订单" - -#: core/models.py:784 +#: core/models.py:773 msgid "the price paid by the customer for this product at purchase time" msgstr "客户购买该产品时支付的价格" -#: core/models.py:785 +#: core/models.py:774 msgid "purchase price at order time" msgstr "订购时的购买价格" -#: core/models.py:790 +#: core/models.py:779 msgid "internal comments for admins about this ordered product" msgstr "管理员对该订购产品的内部评论" -#: core/models.py:791 +#: core/models.py:780 msgid "internal comments" msgstr "内部意见" -#: core/models.py:797 +#: core/models.py:786 msgid "user notifications" msgstr "用户通知" -#: core/models.py:802 +#: core/models.py:791 msgid "json representation of this item's attributes" msgstr "该项属性的 JSON 表示形式" -#: core/models.py:803 +#: core/models.py:792 msgid "ordered product attributes" msgstr "有序的产品属性" -#: core/models.py:808 +#: core/models.py:797 msgid "reference to the parent order that contains this product" msgstr "对包含该产品的父订单的引用" -#: core/models.py:809 +#: core/models.py:798 msgid "parent order" msgstr "父顺序" -#: core/models.py:818 +#: core/models.py:807 msgid "the specific product associated with this order line" msgstr "与该订单项目相关的具体产品" -#: core/models.py:825 +#: core/models.py:814 msgid "quantity of this specific product in the order" msgstr "订单中该特定产品的数量" -#: core/models.py:826 +#: core/models.py:815 msgid "product quantity" msgstr "产品数量" -#: core/models.py:833 +#: core/models.py:822 msgid "current status of this product in the order" msgstr "订单中该产品的当前状态" -#: core/models.py:834 +#: core/models.py:823 msgid "product line status" msgstr "产品系列状态" -#: core/models.py:892 +#: core/models.py:881 msgid "internal tag identifier for the product tag" msgstr "产品标签的内部标签标识符" -#: core/models.py:893 +#: core/models.py:882 msgid "tag name" msgstr "标签名称" -#: core/models.py:897 +#: core/models.py:886 msgid "user-friendly name for the product tag" msgstr "方便用户使用的产品标签名称" -#: core/models.py:898 +#: core/models.py:887 msgid "tag display name" msgstr "标签显示名称" -#: core/models.py:906 +#: core/models.py:895 msgid "product tag" msgstr "产品标签" -#: core/models.py:915 +#: core/models.py:904 msgid "provide alternative text for the image for accessibility" msgstr "为图像提供替代文字,以便于访问" -#: core/models.py:916 +#: core/models.py:905 msgid "image alt text" msgstr "图片 alt 文本" -#: core/models.py:919 +#: core/models.py:908 msgid "upload the image file for this product" msgstr "上传该产品的图片文件" -#: core/models.py:920 core/models.py:945 +#: core/models.py:909 core/models.py:934 msgid "product image" msgstr "产品图片" -#: core/models.py:926 +#: core/models.py:915 msgid "determines the order in which images are displayed" msgstr "确定图像的显示顺序" -#: core/models.py:927 +#: core/models.py:916 msgid "display priority" msgstr "显示优先级" -#: core/models.py:932 +#: core/models.py:921 msgid "the product that this image represents" msgstr "该图片所代表的产品" -#: core/models.py:946 +#: core/models.py:935 msgid "product images" msgstr "产品图片" -#: core/models.py:956 +#: core/models.py:945 msgid "unique code used by a user to redeem a discount" msgstr "用户用于兑换折扣的唯一代码" -#: core/models.py:957 +#: core/models.py:946 msgid "promo code identifier" msgstr "促销代码标识符" -#: core/models.py:964 +#: core/models.py:953 msgid "fixed discount amount applied if percent is not used" msgstr "如果不使用百分比,则使用固定折扣额" -#: core/models.py:965 +#: core/models.py:954 msgid "fixed discount amount" msgstr "固定折扣额" -#: core/models.py:971 +#: core/models.py:960 msgid "percentage discount applied if fixed amount is not used" msgstr "未使用固定金额时适用的折扣百分比" -#: core/models.py:972 +#: core/models.py:961 msgid "percentage discount" msgstr "折扣百分比" -#: core/models.py:977 +#: core/models.py:966 msgid "timestamp when the promocode expires" msgstr "促销代码过期的时间戳" -#: core/models.py:978 +#: core/models.py:967 msgid "end validity time" msgstr "结束有效时间" -#: core/models.py:983 +#: core/models.py:972 msgid "timestamp from which this promocode is valid" msgstr "该促销代码有效的时间戳" -#: core/models.py:984 +#: core/models.py:973 msgid "start validity time" msgstr "开始有效时间" -#: core/models.py:989 +#: core/models.py:978 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "使用促销代码的时间戳,如果尚未使用,则留空" -#: core/models.py:990 +#: core/models.py:979 msgid "usage timestamp" msgstr "使用时间戳" -#: core/models.py:995 +#: core/models.py:984 msgid "user assigned to this promocode if applicable" msgstr "分配给此促销代码的用户(如适用" -#: core/models.py:996 +#: core/models.py:985 msgid "assigned user" msgstr "指定用户" -#: core/models.py:1003 +#: core/models.py:992 msgid "promo code" msgstr "促销代码" -#: core/models.py:1004 +#: core/models.py:993 msgid "promo codes" msgstr "促销代码" -#: core/models.py:1011 +#: core/models.py:1000 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。" -#: core/models.py:1026 +#: core/models.py:1016 msgid "promocode already used" msgstr "促销代码已被使用" -#: core/models.py:1038 +#: core/models.py:1030 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "促销代码 {self.uuid} 的折扣类型无效" -#: core/models.py:1049 +#: core/models.py:1042 msgid "percentage discount for the selected products" msgstr "所选产品的折扣百分比" -#: core/models.py:1050 +#: core/models.py:1043 msgid "discount percentage" msgstr "折扣百分比" -#: core/models.py:1055 +#: core/models.py:1048 msgid "provide a unique name for this promotion" msgstr "为该促销活动提供一个独特的名称" -#: core/models.py:1056 +#: core/models.py:1049 msgid "promotion name" msgstr "推广名称" -#: core/models.py:1062 +#: core/models.py:1055 msgid "promotion description" msgstr "促销说明" -#: core/models.py:1067 +#: core/models.py:1060 msgid "select which products are included in this promotion" msgstr "选择促销活动包括哪些产品" -#: core/models.py:1068 +#: core/models.py:1061 msgid "included products" msgstr "包括产品" -#: core/models.py:1072 +#: core/models.py:1065 msgid "promotion" msgstr "促销活动" -#: core/models.py:1087 +#: core/models.py:1080 msgid "the vendor supplying this product stock" msgstr "提供该产品库存的供应商" -#: core/models.py:1088 +#: core/models.py:1081 msgid "associated vendor" msgstr "相关供应商" -#: core/models.py:1092 +#: core/models.py:1085 msgid "final price to the customer after markups" msgstr "加价后给客户的最终价格" -#: core/models.py:1093 +#: core/models.py:1086 msgid "selling price" msgstr "销售价格" -#: core/models.py:1098 +#: core/models.py:1091 msgid "the product associated with this stock entry" msgstr "与该库存条目相关的产品" -#: core/models.py:1106 +#: core/models.py:1099 msgid "the price paid to the vendor for this product" msgstr "为该产品支付给供应商的价格" -#: core/models.py:1107 +#: core/models.py:1100 msgid "vendor purchase price" msgstr "供应商购买价格" -#: core/models.py:1111 +#: core/models.py:1104 msgid "available quantity of the product in stock" msgstr "产品的可用库存量" -#: core/models.py:1112 +#: core/models.py:1105 msgid "quantity in stock" msgstr "库存数量" -#: core/models.py:1116 +#: core/models.py:1109 msgid "vendor-assigned SKU for identifying the product" msgstr "供应商指定的 SKU,用于识别产品" -#: core/models.py:1117 +#: core/models.py:1110 msgid "vendor sku" msgstr "供应商 SKU" -#: core/models.py:1123 +#: core/models.py:1116 msgid "digital file associated with this stock if applicable" msgstr "与该库存相关的数字文件(如适用" -#: core/models.py:1124 +#: core/models.py:1117 msgid "digital file" msgstr "数字文件" -#: core/models.py:1133 +#: core/models.py:1126 msgid "stock entries" msgstr "库存条目" -#: core/models.py:1142 +#: core/models.py:1135 msgid "products that the user has marked as wanted" msgstr "用户标记为想要的产品" -#: core/models.py:1150 +#: core/models.py:1143 msgid "user who owns this wishlist" msgstr "拥有此愿望清单的用户" -#: core/models.py:1151 +#: core/models.py:1144 msgid "wishlist owner" msgstr "心愿单所有者" -#: core/models.py:1159 +#: core/models.py:1152 msgid "wishlist" msgstr "愿望清单" -#: core/models.py:1199 +#: core/models.py:1197 msgid "download" msgstr "下载" -#: core/models.py:1200 +#: core/models.py:1198 msgid "downloads" msgstr "下载" -#: core/models.py:1208 +#: core/models.py:1206 msgid "you can not download a digital asset for a non-finished order" msgstr "您无法下载未完成订单的数字资产" -#: core/models.py:1220 +#: core/models.py:1218 msgid "documentary" msgstr "纪录片" -#: core/models.py:1221 +#: core/models.py:1219 msgid "documentaries" msgstr "纪录片" -#: core/models.py:1231 +#: core/models.py:1229 msgid "unresolved" msgstr "未解决" +#: core/models.py:1233 +msgid "street" +msgstr "街道" + +#: core/models.py:1234 +msgid "district" +msgstr "地区" + +#: core/models.py:1235 +msgid "city" +msgstr "城市" + +#: core/models.py:1236 +msgid "region" +msgstr "地区" + +#: core/models.py:1237 +msgid "postal code" +msgstr "邮政编码" + +#: core/models.py:1238 +msgid "country" +msgstr "国家" + +#: core/models.py:1245 +msgid "geolocation point: (longitude, latitude)" +msgstr "地理位置点(经度、纬度)" + +#: core/models.py:1251 +msgid "full JSON response from geocoder for this address" +msgstr "地理编码器对此地址的完整 JSON 响应" + +#: core/models.py:1257 +msgid "stored JSON response from the geocoding service" +msgstr "存储的来自地理编码服务的 JSON 响应" + +#: core/models.py:1270 +msgid "address" +msgstr "地址" + +#: core/models.py:1271 +msgid "addresses" +msgstr "地址" + #: core/signals.py:59 msgid "error during promocode creation: {e!s}" msgstr "创建促销代码时出错:{e!s}" @@ -1791,6 +1887,10 @@ msgstr "{config.PROJECT_NAME}(项目名称| 已交付订单" msgid "you do not have permission to perform this action." msgstr "您没有执行此操作的权限。" +#: core/utils/nominatim.py:13 +msgid "NOMINATIM_URL must be configured." +msgstr "必须配置 NOMINATIM_URL 参数!" + #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" @@ -1807,3 +1907,8 @@ msgstr "您只能下载一次数字资产" #: core/views.py:264 msgid "favicon not found" msgstr "未找到 favicon" + +#: core/viewsets.py:496 +#, python-brace-format +msgid "Geocoding error: {e}" +msgstr "地理编码错误:{e}" diff --git a/evibes/settings/base.py b/evibes/settings/base.py index 09316240..4217da4c 100644 --- a/evibes/settings/base.py +++ b/evibes/settings/base.py @@ -2,7 +2,7 @@ import logging from os import getenv from pathlib import Path -EVIBES_VERSION = "2.6.2" +EVIBES_VERSION = "2.7.0" BASE_DIR = Path(__file__).resolve().parent.parent.parent diff --git a/pyproject.toml b/pyproject.toml index 74f04ba0..f9075fe6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "eVibes" -version = "2.6.2" +version = "2.7.0" description = "eVibes is an open-source eCommerce backend service built with Django. It’s designed for flexibility, making it ideal for various use cases and learning Django skills. The project is easy to customize, allowing for straightforward editing and extension." authors = ["fureunoir "] readme = "README.md" diff --git a/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo b/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo index 1e48d9e0..e4c42f94 100644 Binary files a/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo and b/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po b/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po index 6ccd61dd..9c171420 100644 --- a/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,6 +70,10 @@ msgstr "التحقق من الرمز المميز" msgid "Verify a token (refresh or access)." msgstr "التحقق من الرمز المميز (التحديث أو الوصول)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "الرمز المميز صالح" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "إنشاء مستخدم جديد" @@ -89,8 +93,8 @@ 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" @@ -153,11 +157,11 @@ msgstr "حدث خطأ ما: {e!s}" msgid "token is invalid!" msgstr "الرمز غير صالح!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "المنتجات التي تم عرضها مؤخراً" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "المجموعات" @@ -230,43 +234,39 @@ msgstr "مشترك" msgid "user's newsletter subscription status" msgstr "حالة اشتراك المستخدم في النشرة الإخبارية" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "تمت مشاهدته مؤخراً" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "رمز التفعيل" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "السمات" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "المستخدم" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "المستخدمون" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "المجموعة" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "الرمز المميز" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "الرموز المميزة المعلقة" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "الرمز المميز المدرج في القائمة السوداء" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "الرموز المميزة المدرجة في القائمة السوداء" @@ -405,11 +405,7 @@ msgstr "" "تنسيق رقم الهاتف غير صالح. يجب إدخال الرقم بالصيغة: \"+999999999\". يُسمح " "بإدخال 15 رقماً كحد أقصى." -#: vibes_auth/views.py:168 -msgid "the token is valid" -msgstr "الرمز المميز صالح" - -#: vibes_auth/views.py:170 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "الرمز المميز غير صالح" @@ -420,3 +416,6 @@ msgstr "تمت إعادة تعيين كلمة المرور بنجاح!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "لقد قمت بتفعيل الحساب بالفعل..." + +#~ msgid "recently viwed" +#~ msgstr "تمت مشاهدته مؤخراً" diff --git a/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo b/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo index 8799ca9d..ce38e219 100644 Binary files a/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo and b/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po b/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po index eddc4552..daaf66ed 100644 --- a/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po +++ b/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,6 +70,10 @@ msgstr "Ověření tokenu" msgid "Verify a token (refresh or access)." msgstr "Ověření tokenu (obnovení nebo přístup)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "Token je platný" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Vytvoření nového uživatele" @@ -151,11 +155,11 @@ msgstr "Něco se pokazilo: {e!s}" msgid "token is invalid!" msgstr "Token je neplatný!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Nedávno zobrazené produkty" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Skupiny" @@ -228,43 +232,39 @@ msgstr "Je přihlášena k odběru" msgid "user's newsletter subscription status" msgstr "Stav odběru newsletteru uživatele" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Nedávno zobrazené" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Aktivační token" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Atributy" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "Uživatel" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Uživatelé" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Skupina" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Vynikající žeton" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Nevyplacené žetony" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Token na černé listině" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Tokeny na černé listině" @@ -368,7 +368,8 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující adresu URL\n" +"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující " +"adresu URL\n" " do webového prohlížeče:" #: vibes_auth/templates/user_verification_email.html:101 @@ -403,11 +404,7 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "Token je neplatný" @@ -418,3 +415,6 @@ msgstr "Heslo bylo úspěšně resetováno!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "Účet jste již aktivovali..." + +#~ msgid "recently viwed" +#~ msgstr "Nedávno zobrazené" diff --git a/vibes_auth/locale/da_DK/LC_MESSAGES/django.mo b/vibes_auth/locale/da_DK/LC_MESSAGES/django.mo index 4a1235b2..ea4a8820 100644 Binary files a/vibes_auth/locale/da_DK/LC_MESSAGES/django.mo and b/vibes_auth/locale/da_DK/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/da_DK/LC_MESSAGES/django.po b/vibes_auth/locale/da_DK/LC_MESSAGES/django.po index b469aa75..e634733a 100644 --- a/vibes_auth/locale/da_DK/LC_MESSAGES/django.po +++ b/vibes_auth/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,6 +70,10 @@ msgstr "Bekræft et token" msgid "Verify a token (refresh or access)." msgstr "Bekræft et token (opdatering eller adgang)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "Tokenet er gyldigt" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Opret en ny bruger" @@ -153,11 +157,11 @@ msgstr "Noget gik galt: {e!s}" msgid "token is invalid!" msgstr "Token er ugyldig!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Nyligt viste produkter" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Grupper" @@ -230,43 +234,39 @@ msgstr "Er tilmeldt" msgid "user's newsletter subscription status" msgstr "Status for brugerens abonnement på nyhedsbrev" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Set for nylig" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Aktiveringstoken" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Egenskaber" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "Bruger" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Brugere" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Gruppe" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Enestående token" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Udestående tokens" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Sortlistet token" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Sortlistede tokens" @@ -371,7 +371,8 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende URL\n" +"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende " +"URL\n" " i din webbrowser:" #: vibes_auth/templates/user_verification_email.html:101 @@ -406,11 +407,7 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "Tokenet er ugyldigt" @@ -421,3 +418,6 @@ msgstr "Adgangskoden er blevet nulstillet med succes!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "Du har allerede aktiveret kontoen..." + +#~ msgid "recently viwed" +#~ msgstr "Set for nylig" diff --git a/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo b/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo index 8c9a1a29..48a77d59 100644 Binary files a/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo and b/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/de_DE/LC_MESSAGES/django.po b/vibes_auth/locale/de_DE/LC_MESSAGES/django.po index 1e801529..84640f1f 100644 --- a/vibes_auth/locale/de_DE/LC_MESSAGES/django.po +++ b/vibes_auth/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -71,6 +71,10 @@ msgstr "Überprüfen eines Tokens" msgid "Verify a token (refresh or access)." msgstr "Überprüfen eines Tokens (Aktualisierung oder Zugriff)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "Das Token ist gültig" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Einen neuen Benutzer anlegen" @@ -117,8 +121,8 @@ 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 @@ -156,11 +160,11 @@ msgstr "Etwas ist schief gelaufen: {e!s}" msgid "token is invalid!" msgstr "Token ist ungültig!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Zuletzt angesehene Produkte" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Gruppen" @@ -234,43 +238,39 @@ msgstr "Ist abonniert" msgid "user's newsletter subscription status" msgstr "Status des Newsletter-Abonnements des Benutzers" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Kürzlich gesehen" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Aktivierungs-Token" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Attribute" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "Benutzer" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Benutzer" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Gruppe" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Hervorragende Wertmarke" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Ausstehende Wertmarken" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Token auf der schwarzen Liste" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Token auf der schwarzen Liste" @@ -336,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 @@ -376,7 +376,8 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die folgende URL und fügen Sie sie in Ihren Browser ein\n" +"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die " +"folgende URL und fügen Sie sie in Ihren Browser ein\n" " in Ihren Webbrowser ein:" #: vibes_auth/templates/user_verification_email.html:101 @@ -411,11 +412,7 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "Das Token ist ungültig" @@ -426,3 +423,6 @@ msgstr "Das Passwort wurde erfolgreich zurückgesetzt!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "Sie haben das Konto bereits aktiviert..." + +#~ msgid "recently viwed" +#~ msgstr "Kürzlich gesehen" diff --git a/vibes_auth/locale/en_GB/LC_MESSAGES/django.mo b/vibes_auth/locale/en_GB/LC_MESSAGES/django.mo index 13ee0e47..c2658187 100644 Binary files a/vibes_auth/locale/en_GB/LC_MESSAGES/django.mo and b/vibes_auth/locale/en_GB/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/en_GB/LC_MESSAGES/django.po b/vibes_auth/locale/en_GB/LC_MESSAGES/django.po index 712ac2d4..466022f0 100644 --- a/vibes_auth/locale/en_GB/LC_MESSAGES/django.po +++ b/vibes_auth/locale/en_GB/LC_MESSAGES/django.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the eVibes package. # EGOR GORBUNOV , 2025. # -#,fuzzy +#, fuzzy msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -75,6 +75,10 @@ msgstr "Verify a token" msgid "Verify a token (refresh or access)." msgstr "Verify a token (refresh or access)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "The token is valid" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Create a new user" @@ -156,11 +160,11 @@ msgstr "Something went wrong: {e!s}" msgid "token is invalid!" msgstr "Token is invalid!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Recently viewed products" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Groups" @@ -233,43 +237,39 @@ msgstr "Is subscribed" msgid "user's newsletter subscription status" msgstr "User's newsletter subscription status" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Recently viewed" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Activation token" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Attributes" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "User" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Users" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Group" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Outstanding token" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Outstanding tokens" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Blacklisted token" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Blacklisted tokens" @@ -408,11 +408,7 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "The token is invalid" @@ -423,3 +419,6 @@ msgstr "Password has been reset successfully!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "You have already activated the account..." + +#~ msgid "recently viwed" +#~ msgstr "Recently viewed" diff --git a/vibes_auth/locale/en_US/LC_MESSAGES/django.mo b/vibes_auth/locale/en_US/LC_MESSAGES/django.mo index 7202e090..88438b35 100644 Binary files a/vibes_auth/locale/en_US/LC_MESSAGES/django.mo and b/vibes_auth/locale/en_US/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/en_US/LC_MESSAGES/django.po b/vibes_auth/locale/en_US/LC_MESSAGES/django.po index 239fc430..72f70e91 100644 --- a/vibes_auth/locale/en_US/LC_MESSAGES/django.po +++ b/vibes_auth/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,6 +70,10 @@ msgstr "Verify a token" msgid "Verify a token (refresh or access)." msgstr "Verify a token (refresh or access)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "The token is valid" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Create a new user" @@ -151,11 +155,11 @@ msgstr "Something went wrong: {e!s}" msgid "token is invalid!" msgstr "Token is invalid!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Recently viewed products" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Groups" @@ -228,43 +232,39 @@ msgstr "Is subscribed" msgid "user's newsletter subscription status" msgstr "User's newsletter subscription status" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Recently viewed" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Activation token" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Attributes" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "User" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Users" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Group" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Outstanding token" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Outstanding tokens" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Blacklisted token" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Blacklisted tokens" @@ -403,11 +403,7 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "The token is invalid" @@ -418,3 +414,6 @@ msgstr "Password has been reset successfully!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "You have already activated the account..." + +#~ msgid "recently viwed" +#~ msgstr "Recently viewed" diff --git a/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo b/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo index 92e8c759..ab51f0d4 100644 Binary files a/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo and b/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/es_ES/LC_MESSAGES/django.po b/vibes_auth/locale/es_ES/LC_MESSAGES/django.po index 8abf1bc3..a97e1524 100644 --- a/vibes_auth/locale/es_ES/LC_MESSAGES/django.po +++ b/vibes_auth/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,6 +70,10 @@ msgstr "Verificar un token" msgid "Verify a token (refresh or access)." msgstr "Verificar un token (actualización o acceso)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "El token es válido" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Crear un nuevo usuario" @@ -154,11 +158,11 @@ msgstr "Algo salió mal: {e!s}." msgid "token is invalid!" msgstr "¡La ficha no es válida!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Productos vistos recientemente" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Grupos" @@ -231,43 +235,39 @@ msgstr "Está suscrito" msgid "user's newsletter subscription status" msgstr "Estado de suscripción del usuario al boletín" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Vistos recientemente" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Ficha de activación" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Atributos" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "Usuario" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Usuarios" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Grupo" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Ficha pendiente" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Fichas pendientes" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Ficha en la lista negra" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Fichas en la lista negra" @@ -406,11 +406,7 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "El token no es válido" @@ -421,3 +417,6 @@ msgstr "La contraseña se ha restablecido correctamente." #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "Ya ha activado la cuenta..." + +#~ msgid "recently viwed" +#~ msgstr "Vistos recientemente" diff --git a/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo b/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo index 09504c81..9e1c1a25 100644 Binary files a/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo and b/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po b/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po index 8a572a21..c888b224 100644 --- a/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -72,6 +72,10 @@ msgstr "Vérifier un jeton" msgid "Verify a token (refresh or access)." msgstr "Vérifier un jeton (rafraîchissement ou accès)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "Le jeton est valide" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Créer un nouvel utilisateur" @@ -157,11 +161,11 @@ msgstr "Quelque chose a mal tourné : {e!s}" msgid "token is invalid!" msgstr "Le jeton n'est pas valide !" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Produits récemment consultés" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Groupes" @@ -237,43 +241,39 @@ msgstr "Est abonné" msgid "user's newsletter subscription status" msgstr "Statut de l'abonnement à la lettre d'information de l'utilisateur" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Récemment consultés" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Jeton d'activation" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Attributs" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "Utilisateur" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Utilisateurs" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Groupe" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Jeton exceptionnel" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Jetons en circulation" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Jeton sur liste noire" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Jetons sur liste noire" @@ -291,8 +291,7 @@ 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" @@ -340,8 +339,7 @@ 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 @@ -364,8 +362,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 "" @@ -380,7 +378,8 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL suivante\n" +"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL " +"suivante\n" " suivante dans votre navigateur web :" #: vibes_auth/templates/user_verification_email.html:101 @@ -415,11 +414,7 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "Le jeton n'est pas valide" @@ -430,3 +425,6 @@ 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..." + +#~ msgid "recently viwed" +#~ msgstr "Récemment consultés" diff --git a/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po b/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po index be535738..40f548a3 100644 --- a/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po +++ b/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -74,6 +74,10 @@ msgstr "" msgid "Verify a token (refresh or access)." msgstr "" +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "" @@ -155,11 +159,11 @@ msgstr "" msgid "token is invalid!" msgstr "" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "" @@ -232,43 +236,39 @@ msgstr "" msgid "user's newsletter subscription status" msgstr "" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "" @@ -395,11 +395,7 @@ msgid "" "\"+999999999\". up to 15 digits allowed." msgstr "" -#: vibes_auth/views.py:168 -msgid "the token is valid" -msgstr "" - -#: vibes_auth/views.py:170 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "" diff --git a/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo b/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo index 0512581c..70236926 100644 Binary files a/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo and b/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/it_IT/LC_MESSAGES/django.po b/vibes_auth/locale/it_IT/LC_MESSAGES/django.po index 780283fc..eeb4250f 100644 --- a/vibes_auth/locale/it_IT/LC_MESSAGES/django.po +++ b/vibes_auth/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -71,6 +71,10 @@ msgstr "Verifica di un token" msgid "Verify a token (refresh or access)." msgstr "Verifica di un token (aggiornamento o accesso)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "Il token è valido" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Creare un nuovo utente" @@ -154,11 +158,11 @@ msgstr "Qualcosa è andato storto: {e!s}" msgid "token is invalid!" msgstr "Il gettone non è valido!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Prodotti visti di recente" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Gruppi" @@ -233,43 +237,39 @@ msgstr "È iscritto" msgid "user's newsletter subscription status" msgstr "Stato di iscrizione alla newsletter dell'utente" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Visti di recente" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Token di attivazione" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Attributi" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "Utente" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Utenti" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Gruppo" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Gettone eccezionale" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Gettoni in sospeso" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Token in lista nera" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Gettoni nella lista nera" @@ -408,11 +408,7 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "Il token non è valido" @@ -423,3 +419,6 @@ msgstr "La password è stata reimpostata con successo!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "Avete già attivato l'account..." + +#~ msgid "recently viwed" +#~ msgstr "Visti di recente" diff --git a/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo b/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo index 86addbaf..d4456323 100644 Binary files a/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo and b/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po b/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po index 232479c5..4e2fadf2 100644 --- a/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,6 +70,10 @@ msgstr "トークンの検証" msgid "Verify a token (refresh or access)." msgstr "トークンを確認する(リフレッシュまたはアクセス)。" +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "トークンは有効です" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "新規ユーザーの作成" @@ -109,7 +113,9 @@ msgstr "ユーザーアカウントの有効化" #: vibes_auth/docs/drf/viewsets.py:62 msgid "activation link is invalid or account already activated" -msgstr "アクティベーションリンクが無効であるか、アカウントがすでにアクティベーションされています。" +msgstr "" +"アクティベーションリンクが無効であるか、アカウントがすでにアクティベーション" +"されています。" #: vibes_auth/graphene/mutations.py:40 msgid "the user's b64-encoded uuid who referred the new user to us." @@ -151,11 +157,11 @@ msgstr "何かが間違っていた:{e!s}" msgid "token is invalid!" msgstr "トークンが無効です!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "最近見た製品" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "グループ" @@ -228,43 +234,39 @@ msgstr "購読中" msgid "user's newsletter subscription status" msgstr "ユーザーのニュースレター購読状況" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "最近閲覧した記事" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "アクティベーション・トークン" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "属性" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "ユーザー" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "ユーザー" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "グループ" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "卓越したトークン" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "トークン残高" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "ブラックリストトークン" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "ブラックリストに載ったトークン" @@ -311,7 +313,9 @@ 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" @@ -321,7 +325,9 @@ 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." @@ -347,7 +353,9 @@ 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 "" @@ -362,7 +370,8 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けてください。\n" +"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けて" +"ください。\n" " をウェブブラウザに貼り付けてください:" #: vibes_auth/templates/user_verification_email.html:101 @@ -393,13 +402,11 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "トークンが無効" @@ -410,3 +417,6 @@ msgstr "パスワードのリセットに成功しました!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "あなたはすでにアカウントを有効にしています..." + +#~ msgid "recently viwed" +#~ msgstr "最近閲覧した記事" diff --git a/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po b/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po index be535738..40f548a3 100644 --- a/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po +++ b/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -74,6 +74,10 @@ msgstr "" msgid "Verify a token (refresh or access)." msgstr "" +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "" @@ -155,11 +159,11 @@ msgstr "" msgid "token is invalid!" msgstr "" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "" @@ -232,43 +236,39 @@ msgstr "" msgid "user's newsletter subscription status" msgstr "" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "" @@ -395,11 +395,7 @@ msgid "" "\"+999999999\". up to 15 digits allowed." msgstr "" -#: vibes_auth/views.py:168 -msgid "the token is valid" -msgstr "" - -#: vibes_auth/views.py:170 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "" diff --git a/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo b/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo index 85fe3255..c165e9b6 100644 Binary files a/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo and b/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po b/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po index 75399712..ae96c71a 100644 --- a/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po +++ b/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,6 +70,10 @@ msgstr "Een token verifiëren" msgid "Verify a token (refresh or access)." msgstr "Een token verifiëren (verversen of toegang)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "The token is valid" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Een nieuwe gebruiker maken" @@ -155,11 +159,11 @@ msgstr "Er ging iets mis: {e!s}" msgid "token is invalid!" msgstr "Token is invalid!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Recent bekeken producten" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Groepen" @@ -232,43 +236,39 @@ msgstr "Is geabonneerd" msgid "user's newsletter subscription status" msgstr "Inschrijvingsstatus nieuwsbrief gebruiker" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Onlangs bekeken" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Activeringstoken" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Attributen" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "Gebruiker" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Gebruikers" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Groep" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Uitstekende penning" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Uitstaande tokens" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Token op zwarte lijst" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Tokens op de zwarte lijst" @@ -316,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" @@ -356,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 "" @@ -407,11 +407,7 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "Het token is ongeldig" @@ -422,3 +418,6 @@ msgstr "Wachtwoord is succesvol gereset!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "Je hebt de account al geactiveerd..." + +#~ msgid "recently viwed" +#~ msgstr "Onlangs bekeken" diff --git a/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo b/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo index 7d2c9b13..bfa5bb87 100644 Binary files a/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo and b/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po b/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po index 918e6872..c89fc1f9 100644 --- a/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po +++ b/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,8 +52,7 @@ msgstr "Uzyskanie pary tokenów" #: vibes_auth/docs/drf/views.py:16 msgid "obtain a token pair (refresh and access) for authentication." -msgstr "" -"Uzyskanie pary tokenów (odświeżenie i dostęp) w celu uwierzytelnienia." +msgstr "Uzyskanie pary tokenów (odświeżenie i dostęp) w celu uwierzytelnienia." #: vibes_auth/docs/drf/views.py:35 msgid "refresh a token pair" @@ -71,6 +70,10 @@ msgstr "Weryfikacja tokena" msgid "Verify a token (refresh or access)." msgstr "Weryfikacja tokena (odświeżenie lub dostęp)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "Token jest ważny" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Tworzenie nowego użytkownika" @@ -156,11 +159,11 @@ msgstr "Coś poszło nie tak: {e!s}" msgid "token is invalid!" msgstr "Token jest nieprawidłowy!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Ostatnio oglądane produkty" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Grupy" @@ -233,43 +236,39 @@ msgstr "Jest subskrybowany" msgid "user's newsletter subscription status" msgstr "Status subskrypcji newslettera użytkownika" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Ostatnio oglądane" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Token aktywacyjny" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Atrybuty" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "Użytkownik" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Użytkownicy" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Grupa" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Wyjątkowy token" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Zaległe tokeny" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Token na czarnej liście" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Tokeny znajdujące się na czarnej liście" @@ -405,14 +404,10 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "Token jest nieprawidłowy" @@ -423,3 +418,6 @@ msgstr "Hasło zostało pomyślnie zresetowane!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "Konto zostało już aktywowane..." + +#~ msgid "recently viwed" +#~ msgstr "Ostatnio oglądane" diff --git a/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo b/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo index ec882183..cb9bbfe3 100644 Binary files a/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo and b/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po b/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po index 36715000..1bc0c34e 100644 --- a/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,6 +70,10 @@ msgstr "Verificar um token" msgid "Verify a token (refresh or access)." msgstr "Verificar um token (atualização ou acesso)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "O token é válido" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Criar um novo usuário" @@ -152,11 +156,11 @@ msgstr "Algo deu errado: {e!s}" msgid "token is invalid!" msgstr "O token é inválido!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Produtos visualizados recentemente" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Grupos" @@ -229,43 +233,39 @@ msgstr "Está inscrito" msgid "user's newsletter subscription status" msgstr "Status da assinatura do boletim informativo do usuário" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Visualizado recentemente" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Token de ativação" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Atributos" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "Usuário" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Usuários" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Grupo" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Token excepcional" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Tokens pendentes" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Token na lista negra" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Tokens na lista negra" @@ -325,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." @@ -404,11 +404,7 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "O token é inválido" @@ -419,3 +415,6 @@ msgstr "A senha foi redefinida com sucesso!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "Você já ativou a conta..." + +#~ msgid "recently viwed" +#~ msgstr "Visualizado recentemente" diff --git a/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo b/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo index 33e190ab..0dc47427 100644 Binary files a/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo and b/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po b/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po index e439f269..c0ddac3b 100644 --- a/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -71,6 +71,10 @@ msgstr "Verificarea unui jeton" msgid "Verify a token (refresh or access)." msgstr "Verificarea unui jeton (reîmprospătare sau acces)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "Jetonul este valid" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Creați un utilizator nou" @@ -155,11 +159,11 @@ msgstr "Ceva nu a mers bine: {e!s}" msgid "token is invalid!" msgstr "Token-ul nu este valabil!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Produse vizualizate recent" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Grupuri" @@ -232,43 +236,39 @@ msgstr "Este abonat" msgid "user's newsletter subscription status" msgstr "Starea abonării utilizatorului la buletinul informativ" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Văzut recent" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Jeton de activare" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Atribute" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "Utilizator" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Utilizatori" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Grup" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Simbol excepțional" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Jetoane restante" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Token pe lista neagră" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Jetoane pe lista neagră" @@ -372,7 +372,8 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți următoarea adresă URL\n" +"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți " +"următoarea adresă URL\n" " în browserul dvs. web:" #: vibes_auth/templates/user_verification_email.html:101 @@ -407,11 +408,7 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "Jetonul nu este valabil" @@ -422,3 +419,6 @@ msgstr "Parola a fost resetată cu succes!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "Ați activat deja contul..." + +#~ msgid "recently viwed" +#~ msgstr "Văzut recent" diff --git a/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo b/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo index 4e0080cf..38d47db0 100644 Binary files a/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo and b/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po b/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po index 0532a5e7..e792a580 100644 --- a/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,6 +70,10 @@ msgstr "Проверка маркера" msgid "Verify a token (refresh or access)." msgstr "Проверка маркера (обновление или доступ)." +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "Токен действителен" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "Создайте нового пользователя" @@ -155,11 +159,11 @@ msgstr "Что-то пошло не так: {e!s}" msgid "token is invalid!" msgstr "Токен недействителен!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "Недавно просмотренные товары" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "Группы" @@ -232,43 +236,39 @@ msgstr "Подписан" msgid "user's newsletter subscription status" msgstr "Статус подписки пользователя на рассылку новостей" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "Недавно просмотренные" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "Активационный маркер" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "Атрибуты" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "Пользователь" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "Пользователи" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "Группа" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "Выдающийся жетон" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "Выпущенные жетоны" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "Токен в черном списке" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "Токены, внесенные в черный список" @@ -373,7 +373,8 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий URL-адрес\n" +"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий " +"URL-адрес\n" " в свой веб-браузер:" #: vibes_auth/templates/user_verification_email.html:101 @@ -408,11 +409,7 @@ msgstr "" "Неверный формат телефонного номера. Номер должен быть введен в формате: " "\"+999999999\". Допускается до 15 цифр." -#: vibes_auth/views.py:168 -msgid "the token is valid" -msgstr "Токен действителен" - -#: vibes_auth/views.py:170 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "Токен недействителен" @@ -423,3 +420,6 @@ msgstr "Пароль был успешно сброшен!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "Вы уже активировали учетную запись..." + +#~ msgid "recently viwed" +#~ msgstr "Недавно просмотренные" diff --git a/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo b/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo index d71fb3d6..557741b8 100644 Binary files a/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo and b/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo differ diff --git a/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po b/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po index e69f9522..dd7fea4f 100644 --- a/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-13 20:44+0100\n" +"POT-Creation-Date: 2025-05-20 06:26+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,6 +70,10 @@ msgstr "验证令牌" msgid "Verify a token (refresh or access)." msgstr "验证令牌(刷新或访问)。" +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +msgid "the token is valid" +msgstr "令牌有效" + #: vibes_auth/docs/drf/viewsets.py:15 msgid "create a new user" msgstr "创建新用户" @@ -151,11 +155,11 @@ msgstr "出了问题:{e!s}" msgid "token is invalid!" msgstr "令牌无效!" -#: vibes_auth/graphene/object_types.py:30 vibes_auth/models.py:72 +#: vibes_auth/graphene/object_types.py:30 msgid "recently viewed products" msgstr "最近浏览过的产品" -#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:107 +#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 msgid "groups" msgstr "组别" @@ -228,43 +232,39 @@ msgstr "已订阅" msgid "user's newsletter subscription status" msgstr "用户的通讯订阅状态" -#: vibes_auth/models.py:70 -msgid "recently viwed" -msgstr "最近浏览" - -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:69 msgid "activation token" msgstr "激活令牌" -#: vibes_auth/models.py:77 +#: vibes_auth/models.py:71 msgid "attributes" msgstr "属性" -#: vibes_auth/models.py:99 +#: vibes_auth/models.py:100 msgid "user" msgstr "用户" -#: vibes_auth/models.py:100 +#: vibes_auth/models.py:101 msgid "users" msgstr "用户" -#: vibes_auth/models.py:106 +#: vibes_auth/models.py:107 msgid "group" msgstr "组别" -#: vibes_auth/models.py:113 +#: vibes_auth/models.py:114 msgid "outstanding token" msgstr "出色的代币" -#: vibes_auth/models.py:114 +#: vibes_auth/models.py:115 msgid "outstanding tokens" msgstr "未兑代币" -#: vibes_auth/models.py:120 +#: vibes_auth/models.py:121 msgid "blacklisted token" msgstr "黑名单令牌" -#: vibes_auth/models.py:121 +#: vibes_auth/models.py:122 msgid "blacklisted tokens" msgstr "黑名单令牌" @@ -393,13 +393,10 @@ 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 +#: vibes_auth/views.py:57 msgid "the token is invalid" msgstr "令牌无效" @@ -410,3 +407,6 @@ msgstr "密码已重置成功!" #: vibes_auth/viewsets.py:112 msgid "account already activated!" msgstr "您已经激活了账户..." + +#~ msgid "recently viwed" +#~ msgstr "最近浏览"